What are the overheads of code coverage? Using "Doom" as an example

One question that we are frequently asked is what instrumentation overhead RapiCover introduces. Achieving low overhead instrumentation is recognized by our customers as a key strength of RapiCover. To measure structural code coverage of embedded software, or for that matter any software, code coverage tools like RapiCover use instrumentation (additional code that records what code has been executed).
Read More

CAST-10 "Literal" Interpretation of Decision Coverage Increases Rigor of Testing Requirements

The Certification Authorities Software Team (CAST) issue guidance on various issues regarding the interpretation of DO-178B and DO-178C. In the CAST-10 position paper [1], they discuss the interpretation of a "decision". In CAST-10, three possible interpretations are made for a decision:
Read More

Function pointers and their impact on stack analysis

Function pointers present a real problem for static code analysis, including when calculating stack usage. Understanding software stack requirements is an activity that is required for several standards/guidelines including DO-178B and DO-178C. Nevertheless function pointers are supported and therefore prevalent in most system-level languages (C and Ada both have them, whilst they are used all the time with C++).
Read More

Philippa explains: "What is MC/DC?"

Philippa explains to Lucy:
Read More

Optimising for code size might not do what you expect - a GCC and PowerPC example

Getting tracing libraries to run on a new system is hard, but it's something that we regularly have to do here at Rapita as part of our support for timing analysis on diverse platforms. In the past few weeks I've been experimenting with creating a tracing library for Freescale's P4080DS development board, which comes fully loaded with an 8 core P4080 SoC and plenty of trace options, including Aurora based NEXUS tracing, multiple ethernet links and lots of DRAM.
Read More