Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
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!”
Adobe® Rich Internet Application Project Portal
Download the Free Adobe® Flex® Builder 3 Trial
Open Source Middleware Reference Architecture Whitepaper
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
No comments
Watch Thread Reply