Company type | Privately held company |
---|---|
Industry | Software testing |
Founded | 1975 |
Headquarters | |
Key people | Professor Michael Hennell, CEO |
Products | LDRA tool suite, TBrun, TBvision, & others |
Website | http://www.ldra.com |
LDRA, previously known as the Liverpool Data Research Associates, is a privately held company producing software analysis, testing, and requirements traceability tools for the public and private sectors. It is involved static and dynamic software analysis. [1]
Liverpool Data Research Associates was founded in 1975 by Professor Michael Hennell to commercialize a software test-bed created to perform quality assessments on the mathematical libraries on which his nuclear physics research at the University of Liverpool depended. [2] [3] This research included the invention of the Linear Code Sequence and Jump (LCSAJ) software analysis method. [4]
Initial release | 1975 |
---|---|
Stable release | v10.2.1 / 27 November 2023 |
Operating system | Windows, Linux, macOS |
Type | Static code analysis, Unit testing, Requirements traceability |
License | Proprietary |
Website | ldra |
LDRA tool suite is a proprietary software analysis tool providing static code analysis, and also provides code coverage analysis, code, quality, and design reviews. It is a commercial implementation of the software test-bed created by Hennell as part of his university research.[ citation needed ]
It is used primarily where software is required to be reliable, rugged, and as error free as possible, such as in safety critical aerospace electronics (or Avionics). [5] It has also been used in the detection and removal of security vulnerabilities. [6]
LDRA tool suite is an integrated suite of software tools from LDRA, including:[ citation needed ]
LDRA Testbed was[ citation needed ] a set of core static and dynamic analysis engines for both host and embedded software. LDRA Testbed is made by Liverpool Data Research Associates (LDRA). [10] LDRA Testbed provides the means to enforce compliance with coding standards such as MISRA, JSF++ AV, CERT C, CWE and provides visibility of software flaws that might typically pass through the standard build and test process to become latent problems. In addition, test effectiveness feedback is provided through structural coverage analysis reporting facilities, which support the requirements of the DO-178B standard up to and including Level A.[ citation needed ]
LDRA Testbed automatically checks adherence to programming standards with static analysis. LDRA Testbed reports violations of the chosen set of standards in both textual reports and as annotations to graphical displays. It includes a dynamic coverage analysis module. LDRA Testbed has a software quality metrics breakdown (e.g. Halstead complexity, cyclomatic complexity, Knots metric) from static analysis.[ citation needed ]
Some companies using LDRA products include MathWorks, which has integrated its Simulink tools, [11] as well as IBM Rational Rose [12] and Wind River [13] .
In March 2012, LDRA announced a fully compliant FAA/EASA certification solution [14] to provide support and guide certification applicants through a wide range of standards including:
Following the 1994 San Marino Grand Prix, a Formula One race, the Fédération Internationale de l'Automobile (FIA) hired LDRA [15] to investigate allegations of cheating. These involved driving aids that had been prohibited at the start of the year, such as traction control and launch control. The top three cars of Michael Schumacher (Benetton), Nicola Larini (Ferrari) and Mika Häkkinen (McLaren) were investigated and their teams were asked to surrender their systems' source code to the company. Ferrari complied but Benetton and McLaren refused, citing copyright reasons. After being fined $100,000 by the FIA, both teams complied eight days after the race. LDRA found that McLaren were running a program that permitted automatic gearshifts but the car was declared legal. [16]
The winning Benetton-Ford car was found to have launch control software in its engine management computer, designed to regulate engine speed and prevent wheel spin. Benetton admitted its presence but asserted that it wasn’t used during the race, asserting it was added for testing and left there due to workload pressures. LDRA concluded that the software likely wasn't used during the Grand Prix, leading the FIA to take no action against Benetton or Schumacher. [17] The incident underscored concerns about prohibited software in Formula 1 and the challenges of enforcing regulations in the evolving landscape of engine management technology.[ citation needed ]
LDRA is a contributor to several industry standards, including DO-178C, [18] MISRA C [19] and MISRA C++. [20] Additionally, LDRA is an Industry Partner [21] for the CERT C Secure Coding Standard [22] produced by the Computer Emergency Response Team at Carnegie Mellon's Software Engineering Institute.[ citation needed ]
In September 2012, the United States arm of LDRA joined The Open Group's Future Airborne Capability Environment (FACE) Consortium as a Verification Authority. [23]
In software engineering, code coverage, also called test coverage, is a percentage measure of the degree to which the source code of a program is executed when a particular test suite is run. A program with high code coverage has more of its source code executed during testing, which suggests it has a lower chance of containing undetected software bugs compared to a program with low code coverage. Many different metrics can be used to calculate test coverage. Some of the most basic are the percentage of program subroutines and the percentage of program statements called during execution of the test suite.
Avionics software is embedded software with legally mandated safety and reliability concerns used in avionics. The main difference between avionic software and conventional embedded software is that the development process is required by law and is optimized for safety. It is claimed that the process described below is only slightly slower and more costly than the normal ad hoc processes used for commercial software. Since most software fails because of mistakes, eliminating the mistakes at the earliest possible step is also a relatively inexpensive and reliable way to produce software. In some projects however, mistakes in the specifications may not be detected until deployment. At that point, they can be very expensive to fix.
In the context of software engineering, software quality refers to two related but distinct notions:
In computer programming, unreachable code is part of the source code of a program which can never be executed because there exists no control flow path to the code from the rest of the program.
DO-178B, Software Considerations in Airborne Systems and Equipment Certification is a guideline dealing with the safety of safety-critical software used in certain airborne systems. It was jointly developed by the safety-critical working group RTCA SC-167 of the Radio Technical Commission for Aeronautics (RTCA) and WG-12 of the European Organisation for Civil Aviation Equipment (EUROCAE). RTCA published the document as RTCA/DO-178B, while EUROCAE published the document as ED-12B. Although technically a guideline, it was a de facto standard for developing avionics software systems until it was replaced in 2012 by DO-178C.
RTCA DO-254 / EUROCAE ED-80, Design Assurance Guidance for Airborne Electronic Hardware is a document providing guidance for the development of airborne electronic hardware, published by RTCA, Incorporated and EUROCAE. The DO-254/ED-80 standard was formally recognized by the FAA in 2005 via AC 20-152 as a means of compliance for the design assurance of electronic hardware in airborne systems. The guidance in this document is applicable, but not limited, to such electronic hardware items as
IEC 61508 is an international standard published by the International Electrotechnical Commission (IEC) consisting of methods on how to apply, design, deploy and maintain automatic protection systems called safety-related systems. It is titled Functional Safety of Electrical/Electronic/Programmable Electronic Safety-related Systems.
Software safety is an engineering discipline that aims to ensure that software, which is used in safety-related systems, does not contribute to any hazards such a system might pose. There are numerous standards that govern the way how safety-related software should be developed and assured in various domains. Most of them classify software according to their criticality and propose techniques and measures that should be employed during the development and assurance:
MISRA C is a set of software development guidelines for the C programming language developed by The MISRA Consortium. Its aims are to facilitate code safety, security, portability and reliability in the context of embedded systems, specifically those systems programmed in ISO C / C90 / C99.
Linear code sequence and jump (LCSAJ), in the broad sense, is a software analysis method used to identify structural units in code under test. Its primary use is with dynamic software analysis to help answer the question "How much testing is enough?". Dynamic software analysis is used to measure the quality and efficacy of software test data, where the quantification is performed in terms of structural units of the code under test. When used to quantify the structural units exercised by a given set of test data, dynamic analysis is also referred to as structural coverage analysis.
Professor Michael A. Hennell is a British computer scientist who has made leading contributions in the field of software testing.
DO-178C, Software Considerations in Airborne Systems and Equipment Certification is the primary document by which the certification authorities such as FAA, EASA and Transport Canada approve all commercial software-based aerospace systems. The document is published by RTCA, Incorporated, in a joint effort with EUROC and replaces DO-178B. The new document is called DO-178C/ED-12C and was completed in November 2011 and approved by the RTCA in December 2011. It became available for sale and use in January 2012.
Parasoft C/C++test is an integrated set of tools for testing C and C++ source code that software developers use to analyze, test, find defects, and measure the quality and security of their applications. It supports software development practices that are part of development testing, including static code analysis, dynamic code analysis, unit test case generation and execution, code coverage analysis, regression testing, runtime error detection, requirements traceability, and code review. It's a commercial tool that supports operation on Linux, Windows, and Solaris platforms as well as support for on-target embedded testing and cross compilers.
Development testing is a software development process that involves synchronized application of a broad spectrum of defect prevention and detection strategies in order to reduce software development risks, time, and costs.
AbsInt is a software-development tools vendor based in Saarbrücken, Germany. The company was founded in 1998 as a technology spin-off from the Department of Programming Languages and Compiler Construction of Prof. Reinhard Wilhelm at Saarland University. AbsInt specializes in software-verification tools based on abstract interpretation. Its tools are used worldwide by Fortune 500 companies, educational institutions, government agencies and startups.
ECLAIR is a commercial static code analysis tool developed by BUGSENG, LLC for automatic analysis, verification, testing and transformation of C and C++ programs.
Cantata++, commonly referred to as Cantata in newer versions, is a commercial computer program designed for dynamic testing, with a focus on unit testing and integration testing, as well as run time code coverage analysis for C and C++ programs. It is developed and marketed by QA Systems, a multinational company with headquarters in Waiblingen, Germany.
The Advisory Circular AC 20-115( ), Airborne Software Development Assurance Using EUROCAE ED-12( ) and RTCA DO-178( ), recognizes the RTCA published standard DO-178 as defining a suitable means for demonstrating compliance for the use of software within aircraft systems. The present revision D of the circular identifies ED-12/DO-178 Revision C as the active revision of that standard and particularly acknowledges the synchronization of ED-12 and DO-178 at that revision.
CodeSonar is a static code analysis tool from CodeSecure, Inc. CodeSonar is used to find and fix bugs and security vulnerabilities in source and binary code. It performs whole-program, inter-procedural analysis with abstract interpretation on C, C++, C#, Java, as well as x86 and ARM binary executables and libraries. CodeSonar is typically used by teams developing or assessing software to track their quality or security weaknesses. CodeSonar supports Linux, BSD, FreeBSD, NetBSD, MacOS and Windows hosts and embedded operating systems and compilers.