CHANNELS
 
 
 
 
 
 
 
 
ON THE WEB
 
 
 
 
PRINT EDITION
 
 
 
 
BZ MEDIA
 
 
 
 
ADVERTISER LINKS
 
 
 
 
 
 
 
AS OF 11/21/2008 10:42AM EST
Testing and Development—Together Forever
Stories Columns Opinions Resources

By Edward J. Correia

May 27, 2008 —  Software testing and development go hand in hand. The two are different disciplines, of course, and testing tasks are often performed well apart from those of development. But from the point of view of management, the two must go hand-in-hand to deliver a quality product.

“Some of the people in my experience believe that testing cycles can be completely separated from those of development, and can focus primarily on the features they think are important,” says Kiran Bhumana, a lead engineer developing enterprise integration products at Sun Microsystems. “They believe that testing can follow development or that any one feature can be more important than the quality of that feature.” While it’s true that feature-rich products win more deals, he says, it’s easily forgotten that product stability also plays a vital role.

“Stability may not get your foot in the door, but in markets where competition is stiff and features abundant,” quality is crucial to once you do, says Bhumana, who’s been developing software for eight years. What’s more, if quality does come into question, you may not get a second chance to prove yourself.

Like the development cycle itself, testing too should span requirements, design, development and integration. Here are a few ways to integrate testing within all the stages of development, provided by this developer at Sun.

Requirements
The development of test cases immediately after requirements can provide a good understanding of the application’s use cases. “A fact so well known as to become comic is the gaps between what the customer says, what the analyst understands and what the programmer develops.” The early development of test and use cases can help bridge those gaps when they can do the most good. “Test cases don’t even necessarily have to be from real-world scenarios. An empirical form of the real world data can do just as well,” Bhumana says.  

Design
“The design phase of development is where there is least overlap with testing,” but there is some, Bhumana says. By further developing test cases during the design phase, testers can help developers get a better picture of how the software is to be used, which he says will ultimately lead to a better design.

Development
During the code-writing phase, the developer also should be writing corresponding unit tests to validate code as it’s built. “In cases where simple [unit] tests are not sufficient, appropriate testing needs to be done such that the functionality is not regressed as code progresses,” Bhumana says. For teams with many people contributing code, “we wouldn't want them to inadvertently regress each other's functionality.” Proven ways to avoid this problem include continuous integration, documentation and peer review.

Documents that describe development are helpful only when someone reads them. A better way to document the process is through test cases, which Bhumana says can yield double the benefit of documentation alone. “They offer more testing and overall code coverage, and also serve as a form of unwritten documentation. Once the tests are in place, no one in his right mind would change the code and commit those changes if the tests are failing from those changes.” Also, attempts to fix tests to compensate for changes in code will lead to the discovery of new usage scenarios and new test cases to match.

During the integration phase, what’s most needed are tests to prove that things work as designed or don't work as expected. “These tests are closest to the real-world scenario testing. In some scenarios, they may, in fact, overlap with what we may call ‘testing during the staging phase,’ ” Bhumana explains. But this is typically a test-only phase, he adds, and usually does not involve developers.

“From what I’ve seen as an enterprise application developer, the testing cycle plays a major role throughout any project cycle, and is an inseparable part of development,” Bhumana says. He adds, “The one stage during which they don't completely mesh is during design, but only if design is to be understood primarily as a development-cycle task,” which he says is how a good many developers see things. Conversely, the integration phase is often seen as a test-only domain.


Share this link: http://www.sdtimes.com/link/32241
 


 
 
 
 
 
 
 
 
 
 
SUBSCRIBE TODAY!
 E-Newsletters:
  News on Mon/Thurs.  More info
  Test & QA Report  More info
  EclipseNews  
  SPTech Report  More info
 
 
 
PDF & PRINT EDITION
* Requires Resource Account!  LOGIN or SIGN UP

Download Current Issue!
ISSUE 11/15/2008 PDF

Need Back Issues?
DOWNLOAD HERE

Receive The Print Edition?
SUBSCRIBE HERE
 
REGISTER
 
GET NOTIFIED!
About all of the latest Resources
 
 
SD TIMES 100
It's time once again to
recognize the organizations
or individuals that have
demonstrated leadership in
their markets.