PLATINUM SPONSOR

 

 

Many companies have no idea whether their code is vulnerable or not. In this white paper, you will explore how to uncover the risk of open source applications and other software within your organization. Read results of a detailed security analysis of popular open source applications and understand the best methods for uncovering and eliminating software vulnerabilities in your company. Co-authored by two of the leading experts in software security.

www.ouncelabs.com/QASecurity

 



Agile Methods Target Higher Quality

By Lindsey Vereen

The ability to achieve both high productivity and high quality is a conundrum for software developers. Agile methodologies have been proposed as a solution that allows developers to solve the functionality versus defects trade-off, says Dean Leffingwell, who serves as a consulting methodologist to Boulder, Colo.-based Rally Software.

Agile methods allow teams to deliver a small amount of working code in a defined time period. “At the end of each iteration, typically two weeks in length, the teams produce incremental, working code that is potentially available for shipment,” he says. “This basic and frequent iteration foundation is the heartbeat of agility.”

He says that agile methods “forgo the large-scale, up-front planning (including test planning) and the sequential phase activities (testing at or near the end) of the traditional waterfall model of development.” Because the waterfall model entails doing system-level testing and system integration toward the end of the life cycle, much system development work occurs without the feedback that integral testing provides.

“In agile, all code is tested code,” Leffingwell says. That means that test groups don’t have to field huge amounts of code that is largely untested. “Instead the agile teams have the skills and the mandate to test the software as it’s written,” he says. “In the extreme case, tests are written even before the code is written.” When that is not the case, tests are developed at the same time code is being developed.

Continued BELOW   

 



GOLD SPONSOR

 

Friday April 28 Deadline for Super Early Bird Rates

Attend the Software Security Summit East at Baltimore’s Hyatt Regency Inner Harbor June 5-7 and improve the quality and security of your software.

• Learn How to Build Secure Software
• Test the Security of Your Software
• Understand Software Security Vulnerabilities
• Architect Security Into the Development Life Cycle

Special Group Rates Are Available!

Software Security SummitBaltimore • June 5-7

 

 

When developers are forced to think through how the code will be tested, they will write code differently from they way they would have done otherwise, he says. They will create testable systems by building in the required interfaces and methods inside their components to make sure they work as they are supposed to. “This is one of the key benefits of agile methods,” he says. "These inherently testable systems exhibit higher overall quality [than would otherwise be achieved].”

Leffingwell says that agile testing processes entail the following principles:
• All code is tested code. Teams don’t deliver functionality that has been coded but not tested.
• Tests are written before, or at the same time as, the code itself.
• Testing is a team effort, which means testers and developers all write tests.
• Automation is the rule, not the exception.
• The system always runs. Continuous integration, concurrent testing and testing automation assures that there is always a running system baseline that can be continually assessed against its requirements.

These principles drive a set of practices that agile teams apply, he says, adding that most agile teams have developed a testing strategy that includes unit testing, component testing, and system and performance testing to satisfy the principles.

Unit testing is a method by which the developers themselves write testing code to test their target code at the module (class, object and interface) level. Developers have access to the internals of the object, method or interface that is being tested. They use a set of open-source and commercial method frameworks to facilitate development, management and execution of unit tests.

Continued BELOW   

 

SILVER SPONSOR

 

VSS, CVS, and PVC0

Seapine’s Surround SCM makes source code management nearly effortless, so you can spend more time doing what you like best - writing code. Surround SCM offers significant advantages over other SCM tools like advanced branching, email notifications, Guiffy merging and diffing, repository cloaking, automation capabilities, and seamless IDE integration.

 

 

Acceptance, or functional, testing, says Leffingwell, is “the testing performed by a customer, QA or test team member, product owner or other stakeholder who has the ability to evaluate any new code that has been written against its requirements.” Acceptance testing treats the system as a black box, and components and modules are evaluated based on their interaction with the user. “Acceptance testing takes place concurrently and incrementally, as each new piece of functionality is added to the system,” he says.

Systems typically comprise components and higher-level modules that fulfill certain functions and conform to a set of interfaces. “During the course of each iteration and/or release, agile teams test their systems at the component level with a variety of tools and practices,” Leffingwell says. “These tools and practices should be relevant to the languages they use and the types of systems they are building.”

Unit testing tests the code being written, acceptance testing tests the functional behavior the code delivers to the user, and component testing tests the behavior of some higher-order abstraction. “None of these methods alone (or even taken together) assures that the system as a whole meets its objectives nor will they naturally test the overall requirements of performance, accuracy, scalability or reliability,” he says. “Thus, the last level of testing is intended to test the system as a whole.”

“Taken together,” says Leffingwell, “these test practices, coupled [with] the goal of being able to perform all the testing within the course of an iteration, will drive the team to a higher level of agility and quality.”

Send FEEDBACK   



BRONZE SPONSOR

 

*SD TIMES WEB SEMINAR ARCHIVES*

If you need a great source of problem-solving techniques and tips, best practices and up-to-date product information, check out BZ Media’s Web Seminar Archives. Hosted by SD Times and Software Test & Performance, these Web seminars offer real-time solutions to your software development problems.

Here’s a sample of what you’ll find:

• Two Steps to Centralized, Secure and Auditable Source Code
• Improve Java Code Quality by Empowering Developers
• Fast, Simple, Effective Test Automation of Eclipse Applications
• Best Practices for Delivering Out-of-the-Box On-Demand Data Integration
• Aligning Software Testing With Business Goals: Best Practices for Optimized Testing

To find out more, go to www.bzmedia.com/webseminar

 

 




Test & QA Report is published weekly by BZ Media LLC, Huntington, New York.

Editor: Lindsey Vereen
Editorial Assistant: Natalie Itin
Publisher: Ted Bahr
Associate Publisher: Charlie Shively
Editorial Director: Alan Zeichick

Please Do Not Reply To This Message
For advertising information, contact sales@bzmedia.com
Send your feedback, comments and suggestions to feedback@bzmedia.com
For customer service, contact testqanews@bzmedia.com

Keep Getting This Newsletter
For uninterrupted delivery, add testqanews@bzmedia.com to your address book or anti-spam whitelist.

Discontinue This Newsletter

Copyright © 2006, BZ Media LLC. All rights reserved.
www.bzmedia.com

Test & QA Report may be redistributed only in unedited form. Written permission from
the publisher must be obtained to reprint the information contained within this newsletter.