Intentional Software - Democratizing Software Creation
Business users doing programming? Simonyi and Kolk presents how Intentional Software offers a radical new software approach that separates business knowledge from software engineering knowledge.
Tracking change and innovation in the enterprise software development community
Posted by Moxie Zhang on May 02, 2008 01:25 PM
Last month Joe Berkovitz of Allurent announced the initial experimental release of Flexcover, an open-source code coverage tool suite for Flex, AIR and AS3.
Java developers who participate in the test-driven development (TDD) process have been using code coverage for some time as a way to measure the extent to which the source code of a program has been tested. However, this capability was not been available for Flex.
Tools used in code coverage for Java include Clover, EMMA, Cobertura and NoUnit. Windows.Net developers have used Ncover, Cover for .Net, and PartCover among others.
To learn more about the experimental release of Flexcover, InfoQ spoke with Berkovitz, who explains:
Flexcover incorporates a modified version of the AS3 compiler, which inserts extra function calls in the code within the SWF or SWC output file. At runtime, these function calls send information on the application's code coverage to a separate tool. The modified compiler also emits a separate coverage metadata file that describes all the possible packages, classes, functions, code blocks and lines in the code as well as the names of the associated source code files.
Recalling the development of Flexcover, Berkovitz says:
I consider testing an essential aspect of software development, and code coverage is a key tool for measuring the quality of one's testing. It answers an important question: "How much of our code is being exercised when we test?"
I have used code coverage tools for other languages with excellent results, but have been frustrated that none was available for Flex. One morning, I woke up and realized that thanks to the Flex compiler becoming open source, it would be possible to modify it in order to add coverage measurement functions to the SWF byte code that it creates. As it turned out, this wasn't too hard to do, as I had worked on compilers and code generators in the past.
According to Berkovitz, the major goals behind the design of Flexcover include:
In developing Flexcover, Berkovitz carefully built up the existing code coverage tools used for other languages. In particular, he says, “I looked at a number of Java open-source coverage tools, including Emma and Covertura, and the way they presented information. Then, I tried to go one better and add live coverage, so you can watch the source code update with coverage numbers while you test the application.”
Berkovitz explains that the structure of Flexcover consists of three parts:
Berkovitz is not alone. Alex Uhlmann of Adobe Consulting has been working on a set of ideas related to code coverage for some time, and he will be collaborating in future releases of Flexcover. Berkovitz and Uhlmann are working together on some new user experience ideas.
When asked about involvement from Adobe, Berkovitz told InfoQ: “I can't comment on anything going on at Adobe, but I know that they are interested in code coverage and that people on the Flex team are actively thinking about how to support it. Also, they've been a big help in getting Flexcover off the ground. I'm grateful for that!”
IBM Web 2.0 Developer eKit: Free Tutorials, Webcasts, Whitepapers
SpringSource Launches New Application Server without Java EE
RESTful todo list sample tutorial with Groovy & Project Zero
Create a photo album application with Project Zero and REST design principles
Rational Model Driven Development eKit: Examples, Tutorials, Webcasts
Business users doing programming? Simonyi and Kolk presents how Intentional Software offers a radical new software approach that separates business knowledge from software engineering knowledge.
Jason Rudolph discusses Java/Grails integration, Grails plugins, creating a Grails sample application, Grails app structure, data querying and persistence, validation, controllers and tag libraries.
The Scrum Product Owner role is powerful, valuable and challenging to implement. It brings healthier relationships between customers and developers, and competitive advantage - if you do it right.
Effective Java, Second Edition by Joshua Bloch is an updated version of the classic first edition, which won a 2001 Jolt Award. InfoQ asked Bloch questions about the areas that the new edition covers.
A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.
In this interview, Burton Group consultant Pete Lacey talks to Stefan Tilkov about his disillusionment with SOAP, his opinion on REST, and addresses some of the perceived shortcomings REST vs. WS-*.
Jay Fields presents his concept of Business Natural Languages - a type of Domain Specific Languages geared towards being readable by domain experts.
Adoption and interest for Distributed Version Control Systems is constantly rising. We will introduce the concept of DVCS and have a look at 3 actors in the area: git, Mercurial and Bazaar.
No comments
Reply