So what is object code verification? The relevant section of the DO-178B standard (6.4.4.2 Structural Coverage Analysis) describes the requirement as follows:
In a nutshell, object code verification is concerned with how much the control flow structure of the compiler generated object code differs from that of the application source code from which it was derived.
Such differences may occur for a number of reasons, e.g. compiler interpretation, optimisation, etc. Given, however, that traditional structural coverage techniques are applied at the source code level whereas it is actually the object code that executes on the processor, differences in control flow structure between the two can make for significant gaps in the testing process.
The demands of DO-178B are such that developers of applications that are subject to the standard are required to implement object code verification facilities for those elements of the application that have a Level-A (safety-critical) classification. While this is often a sub-set of the application as a whole, it can nevertheless represent a significant amount of testing effort and hence require considerable resources in terms of time and money. As such, opportunities to implement automated, compiler-independent processes can help to reduce overall development costs by considerable margins.
LDRA has recognised and responded to the increasing requirement for object code verification solutions from differing industry sectors and can provide a complete structural coverage analysis solution for both source and object code from unit to system and integration levels.
The solution utilises the combination of both high and object level (assembler) source code variants of the LDRA tool suite with the object level tool variant being determined by the target processor that the application is required to run on. A typical example might see C/C++ and TMS320C25x Assembler copies of the LDRA tool suite teamed together. However, this and many other high level/assembler language combinations are supported to provide the following coverage metrics:
– Branch Decision Condition
– Branch Condition Combination
– Modified Condition/Decision (DO-178B)*
(*Language dependent)
In providing an automated unit level solution for object code verification with TBrun, LDRA has taken tool support for this type of analysis a significant step further than other tool vendors.
In brief the ‘Object-box Mode’, as the LDRA unit test object code verification facility is known, enables users to create test cases for structural coverage of high-level source and apply these exact same test cases to the structural coverage of the corresponding object code.
Key to this facility is the sophisticated driver program that is automatically created by TBrun. This driver encapsulates the entire test environment, defining, running and monitoring the test cases through initial test verification and then subsequent regression analysis. In ‘Object-box Mode’ this driver may be linked with either the high-level source unit or the associated object code. In so doing users can ensure that a uniform test process may be applied and compared in order to determine any discrepancies / deficiencies.
If structural coverage discrepancies / deficiencies are identified at the object level users are then presented with an opportunity to define additional test cases to close any gaps in the test process. The obvious advantage of being able to identify and apply corrective action at such an early development stage is that it is much easier and cheaper. It also significantly increases the quality of the code and the overall test process with the latter reaping benefits at the later stages of integration and system testing and then onward in the form of reduced failure rates/maintenance costs when the application is in the field.
While the code is still under development, together with satisfying the necessary object code verification requirements in a highly automated and cost-effective manner, developers can also benefit from the considerable additional test feedback that is provided by the LDRA tool suite in the form of sophisticated Code Review and Design Review elements. The results of these analysis facilities can be fed back to the development team with the possibility that further code and design deficiencies may be identified and rectified, further enhancing the quality of the application as a whole.
There is no doubt that object code verification presents a significant challenge to those software development projects that are required to undertake it.
With the right tools and facilities, however, the scope of these challenges may be greatly reduced thus enabling developers to realise the full potential and benefits that such analysis may bring in terms of increased code quality and reliability.
The object code verification facilities provided by LDRA represent the most sophisticated, cost-effective solution in the marketplace today.
The LDRA solution for object code verification is available for:
For more information concerning support for your specific language dialect please complete the LDRA Information Request Form or email This e-mail address is being protected from spambots. You need JavaScript enabled to view it .
| Email: | info@ldra.com |
| Tel EMEA: | + 44 (0) 151 649 9300 |
| Tel USA: | (650) 583 8880 |
| Tel India: | +91 80 4080 8707 |