1
Something you didn’t know about … Rapita/Ada/Software
Ian Broster
ianb@rapitasystems.com
Something you didnt know about Rapita/Ada/Software Ian Broster - - PowerPoint PPT Presentation
Something you didnt know about Rapita/Ada/Software Ian Broster ianb@rapitasystems.com 1 What does Rapita do? Advanced technologies for reducing V&V costs Revolutionize your software verification 2 RVS: Software verification
1
Something you didn’t know about … Rapita/Ada/Software
Ian Broster
ianb@rapitasystems.com
2
What does Rapita do? Advanced technologies for reducing V&V costs Revolutionize your software verification
3
▪ Manage tes ests ts from system to unit level ▪ Apply and run tests on-target and on-host ▪ Significantly reduce testing times ▪ Calculate WC WCET and high water mark times ▪ Identify where to focus optimization mization ▪ Single & multi-core analysis ▪ Tes est si simu mulat lation ion mo mode dels ls and software code ▪ Provide evidence that code meets requirements ▪ Test on target ECU ▪ Measure code de cover erage age to MC/DC DC level ▪ Lowest on
arget t overheads on the market ▪ Merge coverage from multiple tests and builds ▪ Visualize system sc sched eduling ling graphically ▪ Highlight rare timing events e.g. race conditions ▪ Identify system capacity issues ▪ Trace 100+ million events per second for days ▪ Minimal inst strumen rumentat tation ion over erheads eads ▪ Target-independent tracing
RVS: Software verification tools and hardware
4
Talk to us about…
▪ Commercial projects (tools and services) ▪ Custom V&V tools ▪ Academic use ▪ Partnerships ▪ R&D projects ▪ Ada!
5
Supporting Ada & Aerospace – recent things
RapiTest
Multi-core timing analysis/WCET
Automatic test generation
6
Functional testing for critical software
7
Machines People
RapiTest Philosophy: Efficient People
Design good tests Work out how to implement tests Run tests Analyse Results Unit and system testing tool (Ada, C, C++) Designed for aerospace and Ada. No “User code” – tester should not have to write any code to test Ada In many DO-178C projects, testers cannot even “see” the source
8
After 3 years of development and test
▪ RapiTest version 1.4a
▪ C, Ad Ada, C++ ▪ DO DO-178C 178C Qu Qualifi ification ation ▪ Lots of really good feedback from first users
▪ Wou
ld yo you li u like to e to tr try it? y it?
▪ We e we welcome yo e your ur ide deas and d fee eedb dback.
What m t more re it co t coul uld d do do?
▪ Technology maturity:
▪ Successfully completed 3 V&V projects
▪ DO-178C DAL A – software accepted by OEM/DER
▪ In use on several DO-178C DAL A projects in US & UK ▪ Further pilots/eval ….
9
RVS-Core What’s inside? (What people don’t normally see)
10
Rapita Verification Suite
Unit and System Test Timing and WCET Scheduling/tracing Structural Code Coverage
11
RVS-Core is..
▪ A powerful set of language parsing libraries
▪ Ada 83-2012, C, C++
▪ Many Target/embedded integration libraries ▪ Reporting/GUI ▪ Witten in Ada (mostly)
▪ Except the bits in Java, Python, JavaScript, Perl, C and 3 DSLs
▪ Tested with RVS
12
RVS on RVS (Statement Coverage from System Tests)
13
RVS Core can…
▪ Do “anything“ to source code
▪ Code injection/modification ▪ Analysis ▪ Tracing ▪ Data/Control coupling verification ▪ Auto test-generation
▪ Q: How else can we use the core?
14
Technologies and dataflow inside RVS-Core
Software Parsing Rapita Code Injection Verification database Embedded target libraries Tracing and analysis Reporting XLS RTS RCI Domain specific languages
15
Domain Specific languages in RVS
XLS RTS RCI [Set of] spreadsheet-based languages for writing tests (including legacy combability converters) Rapita Test Script Text-language for writing tests (e.g. unit tests, system tests, etc) Rapita Code Injection Text-based language for source code manipulation XLS XLS XLS
16
RCI Example: dump function call arguments at run- time
▪ At run-time, create a “trace” of all subprogram calls and their parameters ▪ Simple Implementation is 28 lines
target tracing code.
17
RCI code injection at start and end of subprograms
18
Example: test context switching
▪ Do some robustness testing of context switches by forcing far more to happen than normal?
▪ RCI code injection to force a context switch every line
19
Example: RapiTest - Unit test using private types
Test Strategy (ideas)
20
Example: RapiTest Unit test using private types
That’s it. No hooks, probes, test points, user code RapiTest adds any code necessary to “see” private types
21
Multi-core Timing Analysis
Ian Broster, Christos Evripidou (Rapita) Francisco Cazorla, Enrico Mezetti, Suzana Milutinovic (BSC)
An industrial approach for multi-core airborne software timing verification using DO-178C/CAST
22
23
A fun demo & competition
24
RapiTetris
▪ Test your software testing skills ▪ Pri rize ze fo for r hi highe hest st st stru ructural ctural co code de co cove verage rage ▪ Try on our stand ▪ Download and play
▪ ww www.ra rapi pita tasy system tems. s.com com/T /TetrisC etrisComp