BOSTON--(LDRA, the leading provider of automated software verification, source code analysis and test tools, has released LDRAcover™, a stand-alone code coverage tool that verifies the source code of an application has been fully structurally tested. This offering responds to the needs of companies that wish to improve overall quality of code by ensuring complete testing, as well as those companies that must meet the most stringent levels of code verification in markets such as avionics, defense, industrial controls, automotive and medical devices.)--
“Studies confirm that, without the use of code coverage analysis, testing typically exercises only 50% of the code. Given typical bug rates, that means 100K lines of code in a program will ship with 2500 to 5000 bugs. These bugs lead to many systems failures.”
Because software represents such a large portion of today’s safety- and security-critical systems, many applications now contain hundreds of thousands of lines of code. Without a tool that confirms all possible lines, decisions and test paths have been fully executed during testing, software providers cannot know that an untested component will not inadvertently be called once a system is in the field, leading to the potential for critical system failure or even loss of life.
Jack Ganssle, industry software guru and chief consultant for The Ganssle Group, underlines the criticality of complete code coverage: “Studies confirm that, without the use of code coverage analysis, testing typically exercises only 50% of the code. Given typical bug rates, that means 100K lines of code in a program will ship with 2500 to 5000 bugs. These bugs lead to many systems failures.”
“LDRAcover addresses this challenge, analyzing the code and highlighting the sections that have not been executed by tests in an easy-to-see graphical interface,” confirmed Ian Hennell, LDRA Operations Director. “Thanks to tools like this, developers can quickly identify and correct application shortcomings whether they are caused by incomplete or erroneous test cases, imprecise or inadequate requirements or unexecutable dead code. In practical terms, code coverage cannot be performed manually. LDRAcover ensures companies can verify their applications with a focused, easy-to-use tool without having to invest in a complete tool chain.”
Code coverage encompasses several levels of precision that ranges from simply showing whether a line of source code has been executed at least once by the set of test cases to the stringent requirements of modified condition/decision coverage (MC/DC), where a component is placed under exhaustive testing. MC/DC analysis is reserved for the most stringent levels of testing in DO-178B/C and ISO 26262, where failure of the software can result in loss of life.
LDRAcover analysis provides multiple levels of coverage, allowing the developer to select for:
- Statement—identifies missing test cases, dead code and lines of source code executed
- Branch/decision—checks control-flow branches and loops
- Procedure/Function Call—verifies that procedure/function calls and call returns executed
- Branch Condition—checks that Boolean operands in a condition executed both TRUE and FALSE
- Branch Condition Combination—checks that all unique combinations of Boolean condition operands executed both TRUE and FALSE
- Modified Condition/Decision Coverage (MC/DC)—confirms that every point of entry and exit was invoked at least once, every condition in a decision has been taken on all possible outcomes at least once, and each condition has been shown to independently affect the overall decision outcome.
Easily configured to match the risk levels of software components, LDRAcover significantly increases the quality of code and improves the overall testing process—vital not only for immediate application debugging, but also in reducing failure rates, integration testing and maintenance costs once the application is in service.
LDRA Automated Tools Easy to Use
Customer testimony confirms that LDRA has optimized its tools for ease of use:
Frédéric Rabouin, embedded software developer at Esprit
“When evaluating our code, we found that it was easier to use the LDRA’s graphical interface than that of our IDE. LDRA displayed all of the subfunctions graphically. A thorough analysis only took five minutes, so it was easy for us to work iteratively with the tool.”
Company Quality Officer, Seaweed
“Once the scheme for instrumenting and capturing the coverage data had been designed, it was then quickly possible to automatically instrument all of the source code as part of the standard build process. Test execution histories were post-processed to yield coverage data for the entire Seaweed Systems source base in one test run.”
LDRAcover performs all levels of coverage analysis for the C, C++, Ada and Java languages. LDRAcover works on the host development platform as well as embedded target environments. Demonstrations of LDRAcover are available at DESIGN East in Boston on September 18 and 19 in Booth 415. Visitors to the booth can see how code coverage levels are selected for the various software components in an application and how the code is analyzed.
For more than 40 years, LDRA has developed and driven the market for software that automates code analysis and software testing for safety-, mission-, security- and business-critical markets. Working with clients to achieve early error identification and full compliance with industry standards, LDRA traces requirements through static and dynamic analysis to unit testing and verification for a wide variety of hardware and software platforms. Boasting a worldwide presence, LDRA is headquartered in the UK with subsidiaries in the United States and an extensive distributor network. For more information on the LDRA tool suite, please visit: www.ldra.com.
Please send reader enquiries to:
Graphics and Word copy of release:
You can tweet or share the release directly from the LDRA Press Center on HughesCom’s website. Graphics and additional background materials are also available for download.
Caption for graphic 1:
Screenshot 1: Code coverage results from within LDRAcover
Caption for graphic 2:
Screenshot 2: A coverage pass/fail callgraph from within LDRAcover