Dr. Dobb's Journal - November 2008 - (Page 47) ADVERTISING SECTION DR. DOBB’S BEST PRACTICES TESTING Optimize Testing and Refactoring Efforts with Software Readiness Management Ben Chelf, Coverity CTO Software has reached an inflection point: a disproportionate amount of overall development budgets are spent on finding and fixing defects, as high as $22 million annually for many organizations according to the recent IDC report ‘Improving Software Quality to Drive Business Agility.’ This problem is compounded by the increasing complexity of software itself—with outsourced, legacy, and open source code in so many applications, development leads are more exposed to risk in their code bases than ever before. Additionally, the extensive reuse of code in SOA environments and the need to develop multi-threaded applications for multicore hardware push development teams to develop new coding skills on the fly, often without the benefit of formal training. Whether you use agile or waterfall methodologies, development managers must navigate a balance between functionality, timetables, and quality before advancing software from development to QA and finally field release. While tools provide managers with a wealth of information regarding the progress of code, data and metrics from those assorted tools are uncorrelated, preventing objective comparisons of the component parts of a software system such as code branches, code blocks or methods that are necessary to evaluate the quality and risk of failure of the application under development. Coverity, Inc. 185 Berry St. Suite 2400, San Francisco, CA 94107 USA General: (415) 321-5200 | U.S. Sales: (800) 873-8193 International Sales: +1 (415) 321-5237 oriented to prove a system meets functional requirements, leaving quality and security testing to QA teams downstream in the software development life cycle, who lack familiarity with the complex inter-dependencies of large code bases. The idea of simply widening test coverage can help managers understand more about their code base, but it quickly becomes impractical. For example, on a 64-bit machine, assuming a nanosecond per test case, exhaustively testing the square root function would take 584 years! (Note that this only tests one single-threaded function independent of its context or of its state during the function call). data types. In doing so, managers can drill down to the appropriate level of specificity in a given software system to evaluate code based on the metrics identified above. Moreover, analysis from multiple perspectives can provide valuable information regarding defects or vulnerabilities that may cascade through a code base. Software Readiness Management Today, new technology is bringing the discipline of analytics to software with the intent to improve development processes. At Coverity, we call this Software Readiness Management, because it allows teams to objectively assess release readiness by leveraging analytics that automatically incorporate, normalize, and correlate data from multiple tools. Importantly, Software Readiness Management provides visibility into code at both the physical and logical levels, allowing managers to pinpoint high-risk code with actionable, prioritized recommendations for testing and refactoring efforts early in the development life cycle. By improving the accuracy of testing and debugging, release managers and QA leads can improve the predictability and efficiency of their development processes while delivering higher quality code. The Need for Multiple Levels of Visibility Into Code Software systems can be analyzed at varying levels of detail. These levels can be grouped as physical (directories and files) and logical (code bases, packages, classes, and methods). Some data is available only at certain levels, for example, source code analysis typically is done at the physical file level. Meanwhile, some data is only meaningful at specific levels, such as cohesion and coupling at the class and project levels. Software readiness management takes these factors into account, as well as the variety and disparate nature of the Exhaustive Testing Is Impractical to Assess Release Readiness Testing software is a complex process that can be pursued with a variety of tools and means. Too often, testing is
Table of Contents Feed for the Digital Edition of Dr. Dobb's Journal - November 2008 Dr. Dobb's Journal - November 2008 Contents Friday Night Fish Fry Alia Vox Developer Diaries Developer's Notebook Saving Open Source Conversations iPhone Building Your Own Web Server Green Telnet What's New In Boost Threads? Testing Service Oriented Architectures Test Case Generation, UML, and Eclipse Unit Testing Web Services C3 Programming The Agile Edge Swaine's Flames Effective Concurrency Dr. Dobb's Journal - November 2008 Dr. Dobb's Journal - November 2008 - (Page BB1) Dr. Dobb's Journal - November 2008 - (Page BB2) Dr. Dobb's Journal - November 2008 - Dr. Dobb's Journal - November 2008 (Page Cover1) Dr. Dobb's Journal - November 2008 - Dr. Dobb's Journal - November 2008 (Page Cover2) Dr. Dobb's Journal - November 2008 - Dr. Dobb's Journal - November 2008 (Page 1) Dr. Dobb's Journal - November 2008 - Dr. Dobb's Journal - November 2008 (Page 2) Dr. Dobb's Journal - November 2008 - Dr. Dobb's Journal - November 2008 (Page 3) Dr. Dobb's Journal - November 2008 - Contents (Page 4) Dr. Dobb's Journal - November 2008 - Contents (Page 5) Dr. Dobb's Journal - November 2008 - Friday Night Fish Fry (Page 6) Dr. Dobb's Journal - November 2008 - Friday Night Fish Fry (Page 7) Dr. Dobb's Journal - November 2008 - Friday Night Fish Fry (Page 8) Dr. Dobb's Journal - November 2008 - Friday Night Fish Fry (Page 9) Dr. Dobb's Journal - November 2008 - Alia Vox (Page 10) Dr. Dobb's Journal - November 2008 - Alia Vox (Page 11) Dr. Dobb's Journal - November 2008 - Developer Diaries (Page 12) Dr. Dobb's Journal - November 2008 - Developer Diaries (Page 13) Dr. Dobb's Journal - November 2008 - Developer's Notebook (Page 14) Dr. Dobb's Journal - November 2008 - Developer's Notebook (Page 15) Dr. Dobb's Journal - November 2008 - Saving Open Source (Page 16) Dr. Dobb's Journal - November 2008 - Saving Open Source (Page 17) Dr. Dobb's Journal - November 2008 - Saving Open Source (Page 18) Dr. Dobb's Journal - November 2008 - Saving Open Source (Page 19) Dr. Dobb's Journal - November 2008 - Conversations (Page 20) Dr. Dobb's Journal - November 2008 - Conversations (Page 21) Dr. Dobb's Journal - November 2008 - iPhone (Page 22) Dr. Dobb's Journal - November 2008 - iPhone (Page 23) Dr. Dobb's Journal - November 2008 - iPhone (Page 24) Dr. Dobb's Journal - November 2008 - iPhone (Page 25) Dr. Dobb's Journal - November 2008 - iPhone (Page 26) Dr. Dobb's Journal - November 2008 - iPhone (Page 27) Dr. Dobb's Journal - November 2008 - Building Your Own Web Server (Page 28) Dr. Dobb's Journal - November 2008 - Building Your Own Web Server (Page 29) Dr. Dobb's Journal - November 2008 - Building Your Own Web Server (Page 30) Dr. Dobb's Journal - November 2008 - Building Your Own Web Server (Page 31) Dr. Dobb's Journal - November 2008 - Building Your Own Web Server (Page 32) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 33) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 34) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 35) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 36) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 37) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 38) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 39) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 40) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 41) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 42) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 43) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 44) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 45) Dr. Dobb's Journal - November 2008 - Testing Service Oriented Architectures (Page 46) Dr. Dobb's Journal - November 2008 - Testing Service Oriented Architectures (Page 47) Dr. Dobb's Journal - November 2008 - Testing Service Oriented Architectures (Page 48) Dr. Dobb's Journal - November 2008 - Test Case Generation, UML, and Eclipse (Page 49) Dr. Dobb's Journal - November 2008 - Test Case Generation, UML, and Eclipse (Page 50) Dr. Dobb's Journal - November 2008 - Test Case Generation, UML, and Eclipse (Page 51) Dr. Dobb's Journal - November 2008 - Test Case Generation, UML, and Eclipse (Page 52) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 53) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 54) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 55) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 56) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 57) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 58) Dr. Dobb's Journal - November 2008 - C3 Programming (Page 59) Dr. Dobb's Journal - November 2008 - C3 Programming (Page 60) Dr. Dobb's Journal - November 2008 - C3 Programming (Page 61) Dr. Dobb's Journal - November 2008 - C3 Programming (Page 62) Dr. Dobb's Journal - November 2008 - C3 Programming (Page 63) Dr. Dobb's Journal - November 2008 - The Agile Edge (Page 64) Dr. Dobb's Journal - November 2008 - The Agile Edge (Page 65) Dr. Dobb's Journal - November 2008 - The Agile Edge (Page 66) Dr. Dobb's Journal - November 2008 - The Agile Edge (Page 67) Dr. Dobb's Journal - November 2008 - Effective Concurrency (Page 68) Dr. Dobb's Journal - November 2008 - Effective Concurrency (Page 69) Dr. Dobb's Journal - November 2008 - Effective Concurrency (Page 70) Dr. Dobb's Journal - November 2008 - Effective Concurrency (Page 71) Dr. Dobb's Journal - November 2008 - Swaine's Flames (Page 72) Dr. Dobb's Journal - November 2008 - Swaine's Flames (Page Cover3) Dr. Dobb's Journal - November 2008 - Swaine's Flames (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.