• No results found

Development Testing for Agile Environments

N/A
N/A
Protected

Academic year: 2021

Share "Development Testing for Agile Environments"

Copied!
7
0
0

Loading.... (view fulltext now)

Full text

(1)

November 2011

Development Testing for

Agile Environments

(2)

The Pressure Is On

More than ever before, companies are being asked to do things faster. They need to get products to market faster to remain competitive and capitalize on market opportunity. That time pressure is being felt across all phases of the software development lifecycle. Development teams need to deliver more innovation through software, and the time allotted for formal quality control is constantly shrinking. To deal with this pressure, companies are turning to Agile development methodologies for rapid iterative development cycles and the promise of improved efficiency and faster time to market.

Agile: Not A Panacea

The popular Agile development methodology, based on the Agile Manifesto1 introduced in 2001, provides a way to achieve iterative and

incremental development where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. However, Agile development is not a panacea. While it’s designed to increase efficiency, it can also introduce risk as testing cycles get condensed and serious bugs may be overlooked. As the testing cycles are squeezed, more of the burden for code quality assurance is getting pushed into development. With the extra pressure on developers, they can’t afford the time and effort required for manual testing. They need an automated approach for assuring the quality and security of their code.

Code Assurance through Development Testing

Development testing enables developers to assure the quality, security and safety of their code, during development, by using techniques for scalable and automated defect detection. As the code is compiled, it is analyzed for defects. Developers can then quickly address high sever-ity issues without sacrificing time to market. Waiting for QA or Secursever-ity teams to find defects later in the lifecycle can result in rework and expensive project delays. Defects in code that are detected during development are significantly faster and cheaper to fix than those found in QA and worse when found by the customers. For a development testing solution to be effective, it should provide developers with relevant, accurate and actionable information. For developers to adopt development testing it must seamlessly integrate into the existing software development process and be integrated into the IDE on their desktop and their continuous integration server, such as Jenkins.

The Coverity Development Testing Platform

Coverity is the market leader in development testing with over 1,100 customers and five billion lines of code tested. Coverity has served as the quality gate to the shipment of billions of products across a wide range of industries. Coverity enables organizations to establish quality, security and development efficiency thresholds in Coverity® Integrity Control, test against those policies with the Coverity analysis engines,

and provide organizations with visibility into the areas of risk in their project, team or even software supply chain. Coverity Integrity Control is specifically designed to help managers and executives increase their visibility and control over projects by viewing the perfor-mance against the established policies.

(3)

3

Visibility and Control

Through Coverity Integrity Control, managers and executives get visibility into the overall quality of internally developed code and third-party code across development sprints. Deciding when a project is ready for a release is a key principle in Agile. In Scrum, one of the most common frameworks for project management used in Agile software development, teams hold daily meetings to report progress and make decisions. Coverity Integrity Control provides rich data and metrics about the quality of each sprint. This information is critical when trying to balance the need for rapid time to market with the need for acceptable quality levels.

(4)

Integrated Into the Software Development Lifecycle

With so many extra pressures on developers today, they need solutions that will tie into their existing software development tools and processes. The Coverity Development Testing Platform integrates seamlessly with common development practices and market leading tools.

Desktop Analysis

Coverity enables developers to analyze their code in minutes, depending on the code size and complexity, and remediate any defects found from within the Eclipse or Visual Studio IDE on their desktop. Developers can view the defects, understand their severity and impact and link to the Common Weakness Enumeration, an industry-standard knowledge base, for additional information. Once the code has been analyzed on the desktop, the developer can check it into the continuous integration server or central build system where the analysis engine can evaluate the cumulative changes of the entire development team. To save time, developers can also choose to utilize incremental analysis which only analyzes the files which have been changed or those affected by the change instead of the entire code stream. By scanning the code from the desktop, developers are able to address security and quality issues immediately.

(5)

5

Continuous Integration

One of the most common practices in Agile development is continuous integration (CI). It’s been embraced by the majority of the Agile community because it enables a faster, automated central build process. By increasing the frequency of integration that CI provides, delivery teams improve their visibility of the overall quality of the software. Integration issues, build problems and code conflicts are surfaced more quickly allowing faster remediation. In order for a development testing solution to work in an agile environment, it is essential that the analysis is done as frequently as the source integration happens. The analysis needs to be automated, fast and scalable especially when the development team is large. Coverity® Static Analysis is integrated with Jensen, which enables an automated continuous

process for code assurance.

(6)

Each time a central build is generated, Coverity can automatically test the code for high severity defects. Users have the flexibility to adjust the testing to conduct the most complete analysis or only identify the highest risk defects. Once defects are identified, they are published to a defect database for tracking and management. Developers can receive automatic notification so they can quickly begin the triage or inspection process and fix new defects. In addition, Coverity offers an extensible platform which enables it to easily be integrated to other continuous integration servers.

Continuous Integration

Regularly generates build.

Developer

Finds and fixes defects withing their IDE on desktop. Checks in code to CI server.

Coverity Static Analysis

Automatically tests code each time the build is generated.

Coverity Integrity Manager

Visibility into new defects, severity, potential impact and where they occur.

The Nightly Build

Coverity’s parallel processing capabilities allows development teams to take advantage of the multi-core architectures that speed up the nightly build process. A major advantage of this capability is that organizations can analyze even the largest code bases as part of their nightly build process. During the nightly build, Coverity’s testing platform analyzes the code for errors which may result from the integration or conflicts in the integrated code streams. Project administrators can review the overall code quality of the project, triage and assign defects which need resolution to the appropriate developer.

(7)

Summary

Companies have adopted Agile development methods to meet the demand for delivering more innovation faster to the market. Regardless of the development method, the cost of finding and fixing defects increases exponentially as software moves through the development cycle, from design and coding to release. Developers are acutely feeling the pressure and can no longer afford to wait until the end of a formal QA cycle or security audit to be informed of defects which need to be addressed. They need an automated solution for assuring the quality, safety and security of their software that keeps up with the rapid iterative development process. The Coverity Development Testing Platform enables developers to test early and often so they can assure code quality at each development sprint. By finding and addressing the most critical issues early, defects are cheaper and faster to fix. In addition, seamless integration with existing Agile development methodologies and tools helps maximize development productivity.

For more information

Find out how Coverity can help your organization improve the integrity of your software and enhance your Agile development initiatives. To learn more, contact your Coverity representative or visit us at www.coverity.com

For More Information:

www.coverity.com

Email: [email protected]

Coverity Inc. Headquarters

185 Berry Street, Suite 1600 San Francisco, CA 94107 USA

© 2011 Coverity, Inc. All rights reserved. Coverity and the Coverity logo are trademarks or registered trademarks of Coverity, Inc. in the U.S. and other countries. All other company and product names are the property of their respective owners.

U.S. Sales: (800) 873-8193

International Sales: +1 (415) 321-5237 Email: [email protected]

References

Related documents

States, the basic financial statements of the Board of Trustees of the Classical Academy Charter School of Clifton (the “Charter School”) in the County of Passaic, State of New

• multiply and divide integers using one of two methods: the table method or the like/unlike method.. Integers – Multiplying and

Cumulative toxicity scores by type of toxicity per week of proton therapy (PT) for patients with chordoma or chondrosarcoma of the skull base..

• Hendri Kroukamp: Public Administration Education and Training in a developing South Africa: The Impact and Responses to Global Competitiveness.. • Koos Bekker:

Reflection By pre-populating discussion forums with threads according to the types of discussions anticipated in the course, educators were able to create more

The data flow diagram below (figures 1-3) consists of the resources (which are not others than the physician and the patient that will play a definitive role in

Challenges and Our Goal. Based on the obser- vations mentioned above, we aim to address the fol- lowing challenges in this paper: 1) Can we design a generic and practical

The proposed methodology is based on customer satisfaction surveys carried out at two European urban interchanges where both short- and long-distance trips are interconnected –