SlideShare a Scribd company logo
Eric Perlade
Verification Solutions
Technical Account Manager
C/C++ C#/Java Ada
Robustness
Achieved
Developer	Responsibility
Tool
Responsibility
Language	Responsibility
Assembly
Software that matters
Leverage the increase in tool responsibility offered by
Ada and SPARK
Find software bugs and vulnerabilities earlier in the
development process
Ideally we’d like the developers to do this as part of
their every day workflow
Verification can be made easy Ada
Verification
Assure that software fully satisfies all the expected requirements
Non-Functional	
Requirements
Functional	
Requirements
Functional Requirements
A refinement from
System Requirements -> Software Requirements
”The software shall…”
High Level and Low Level – DO-178
Require verification
Functional	
Requirements
Non-Functional Requirements
Can be from outside the SRD refinement path
Coding Standards
Complexity Requirements
Coverage Requirements
Target resource usage Requirements
Non-Functional	
Requirements
Software
Requirements
Specification
Software
Architecture
Software
Detailed
Design
Code
Unit
Test
Integration
Test
System
Test
GNATmetric
GNATcheck
SPARK	Pro
CodePeer
GNATtest
GNATemulator
GNATcoverage
GNATstack
GNATcoverage
(Target	Trace)
Know Your Code
• Embrace Programming by Contract
• Continuous Unit Testing
• Measure your software
• Keep your subprograms at a sensible length and level of
complexity
• Ensure your software is readable and understandable by all the
developers
Static Verification
GNATmetric
Variety of different metrics are available
• Complexity
• Syntax Elements
• Line Metrics
• Coupling Metrics
Output into an XML file which can be post-processed
GNAT Front End
Objective is to leverage the increased formality of the
language to allow tools to be more responsible.
Compiler switches for the GNAT front end can do a great job of
catching coding problems early in the development process
Many customers turn on ALL warnings and ensure warnings
are treated as ERRORS which will halt compilation
Produces better developers ??
Style Checking
The key word here is consistency
Developers can unintentionally introduce code constructs that
are considered un-helpful in reducing defects
General guidelines for good Ada can accompany company
coding standards
GNATcheck and the GNAT front end itself are available to help
GNATcheck
A set of implemented rules from which a subset can be selected
as a coding standard
Specified in a file read by GNATcheck and the output can be
written to a textual report file or an XML file for post-processing
GNAT Programming Studio has a fantastic GUI helper for rule
selection
Static Stack Analysis
Generation of the basic stack consumption and call-graph
information.
Performed during compilation
-fcallgraph-info=su,da
Generates a .ci file per object file
Analysis and report generation
Pitfalls
Cycles, unbounded frames, external calls, dynamic variables or indirect
calls
Use “-Wa” and “-v” to get additional information
Encourage developers to run GNATstack and try to rework the code to
enable full stack analysis
Build your own tools !
libadalang
Dynamic Verification
Software
Requirements
Specification
Software
Architecture
Software
Detailed
Design
Code
GNATtest
GNATemulator
GNATcoverage
System	Test
Integration Test
Desktop Dynamic Verification
TARGET	EMULATIONGNATemulator COVERAGE	ANALYSISGNATcoverage
UNIT	TEST	GENERATIONGNATtest
HARNESS
TEST	CASES
UUT
package Simple is
procedure SubP(
Loop_Count : in Integer;
Even_Count : out Integer;
Odd_Count : out Integer
) with
Pre => (Loop_Count > 0),
Post => ((Even_Count >= 0) and (Odd_Count >= 0));
end Simple;
GNATtest
Unit Test Harness Generation
Included in GNAT Pro
Based on the Open Source AUnit Framework
Available for Native and Cross Compilers
Code Generation = Lower Costs
GNATtest Work Flow
gnattest -v --RTS=ravenscar-full-prep -Pex4.gpr
Generates Test Case Skeletons and a Harness
Very Flexible and allows for CM of generated code
Aware of User Defined Test Case Code
Clearly identifies what will NOT survive a re-generation
GNATtest –Test Case Generation
package Simple.Test_Data is
-- begin read only
type Test is new AUnit.Test_Fixtures.Test_Fixture
-- end read only
with null record;
procedure Set_Up (Gnattest_T : in out Test);
procedure Tear_Down (Gnattest_T : in out Test);
end Simple.Test_Data;
-- This package has been generated automatically by GNATtest.
-- Do not edit any part of it, see GNATtest documentation for more details.
-- begin read only
with Gnattest_Generated;
package Simple.Test_Data.Tests is
type Test is new GNATtest_Generated.GNATtest_Standard.Simple.Test_Data.Test
with null record;
procedure Test_SubP_75ecda (Gnattest_T : in out Test);
-- simple.ads:3:4:SubP
end Simple.Test_Data.Tests;
-- end read only
GNATtest –Test Case Generation
-- This package is intended to set up and tear down the test environment.
-- Once created by GNATtest, this package will never be overwritten
-- automatically. Contents of this package can be modified in any way
-- except for sections surrounded by a 'read only' marker.
package body Simple.Test_Data is
X : constant Integer := 20;
procedure Set_Up (Gnattest_T : in out Test) is
pragma Unreferenced (Gnattest_T);
begin
null;
end Set_Up;
procedure Tear_Down (Gnattest_T : in out Test) is
pragma Unreferenced (Gnattest_T);
begin
null;
end Tear_Down;
end Simple.Test_Data;
-- This package has been generated automatically by GNATtest.
-- You are allowed to add your code to the bodies of test routines.
-- Such changes will be kept during further regeneration of this file.
-- All code placed outside of test routine bodies will be lost. The
-- code intended to set up and tear down the test environment should be
-- placed into Simple.Test_Data.
with AUnit.Assertions; use AUnit.Assertions;
package body Simple.Test_Data.Tests is
-- begin read only
procedure Test_SubP (Gnattest_T : in out Test);
procedure Test_SubP_75ecda (Gnattest_T : in out Test) renames Test_SubP;
-- id:2.2/75ecda11d3241da6/SubP/1/0/
procedure Test_SubP (Gnattest_T : in out Test) is
-- simple.ads:3:4:SubP
-- end read only
pragma Unreferenced (Gnattest_T);
begin
AUnit.Assertions.Assert
(Gnattest_Generated.Default_Assert_Value,
"Test not implemented.");
-- begin read only
end Test_SubP;
-- end read only
end Simple.Test_Data.Tests;
Even_Count, Odd_Count : Integer;
begin
Simple.SubP(
Loop_Count => 21,
Even_Count => Even_Count,
Odd_Count => Odd_Count
);
Assert(((Even_Count = 10) and (Odd_Count = 10)),"Loop_Count => 21");
-- White box analysis identified that no odd numbers above 20 will be counted
Simple.SubP(
Loop_Count => 22,
Even_Count => Even_Count,
Odd_Count => Odd_Count
);
Assert(((Even_Count = 11) and (Odd_Count = 10)),"Loop_Count => 22");
GNATtest – Coverage Analysis
GNATemulator
QEMU Open Source Processor Emulator
Not a Simulator
I/O Connections
No Instrumentation
Actual Target Object Code
No expensive native re-host
PowerPC/ARM/SPARC
Executable Image
PowerPC/ARM/SPARC -> x86 Translation
x86 Host Platform
GNATemulator Platform Support
VxWorks 6
VxWorks 653
PowerPC ELF Bare Metal
LEON ELF Bare Metal
ARM ELF Bare Metal
GNATemulator Debugging
Puts a verification environment on the developers desk
Rapid re-test
No target hardware
Actual object code EXE
GNATemulator
GDB
SERVER
TCP
GPS/GDB
GNATcoverage
• Coverage Analysis - Multiple Modes of Operation
• Run and Capture Execution Trace Data
• Conversion of IEEE-ISTO 5001-2003 (Nexus) Trace Data
• Coverage Analysis of Execution Trace Data
• Source Code Level
• Object Code Level
Native Intel
PowerPC
LEON 2 and LEON 3
ARM
(Target Trace Port)
GNATcoverage Platform Support
Build Considerations
-g
Debug data
-fpreserve-control-flow
Control Optimizers for precise SLOC info
-fdump-scos
Source Coverage Obligation in *.ali files
Build Considerations
Support for Optimizations (up to -O1)
Inlining Allowed (-gnatn)
No External Libraries Needed
All can be achieved using GNAT Project file scenario variables.
GNATcoverage Analysis Levels
Source Level
gnatcov coverage --level=stmt
gnatcov coverage --level=stmt+decision
gnatcov coverage --level=stmt+mcdc
Object Level
gnatcov coverage --level=insn
gnatcov coverage --level=branch
GNATcoverage Analysis Formats
xcov - Annotated Sources in Text Format
report - Textual Summary
HTML - Colours, Sortable Columns and Per-project indexes
Conclusion
AdaCore has verification tools that are applicable to the
different phases in the classic V-model.
Developers can leverage the increase in tool responsibility to
continuously verify and catch defects early.
Easy to integrate into the developers work environment
through the GPS IDE but also command line driven for non-
interactive use cases.
Advance through these
slides for more instruction
Getting Started
This template has been setup with a
variety of slide layouts to give you a solid
foundation that you can build on and
adapt as necessary. Get started by
clicking the Insert tab and selecting the
New Slide dropdown to choose from a
variety of slide designs. Each design is
available in Dark, Blue, and Light
background themes.
Resources
A repository of AdaCore acquired Stock Photography, product
screenshots, logos, and other assets can be found at dropbox
at the following link : http://bit.ly/1SMRRXT
Please note that any stock photography may be used for the purposes of
company PowerPoint presentations. For any other use case, please get in
touch with us first at design@adacore.com
The following icons have been useful for illustrating various
industries. Visit http://www.thenounproject.com for a good
resource beyond what’s available here.
Rail Naval Drone Medical Financial
Security Auto Space Air ATM Submarine
Grid
The following icons have been useful for illustrating various
industries. Visit http://www.thenounproject.com for a good
resource beyond what’s available here.
Rail Naval Drone Medical Financial
Security Auto Space Air ATM Submarine
Grid

More Related Content

What's hot

PgTAP Best Practices
PgTAP Best PracticesPgTAP Best Practices
PgTAP Best Practices
David Wheeler
 
Unit Test Your Database
Unit Test Your DatabaseUnit Test Your Database
Unit Test Your Database
David Wheeler
 
RPG Program for Unit Testing RPG
RPG Program for Unit Testing RPG RPG Program for Unit Testing RPG
RPG Program for Unit Testing RPG
Greg.Helton
 
Phpunit
PhpunitPhpunit
Phpunit
japan_works
 
System Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancementsSystem Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancements
Subash John
 
Automated Regression Testing for Embedded Systems in Action
Automated Regression Testing for Embedded Systems in ActionAutomated Regression Testing for Embedded Systems in Action
Automated Regression Testing for Embedded Systems in Action
AANDTech
 
Session 6 sv_randomization
Session 6 sv_randomizationSession 6 sv_randomization
Session 6 sv_randomization
Nirav Desai
 
Introduction to System verilog
Introduction to System verilog Introduction to System verilog
Introduction to System verilog
Pushpa Yakkala
 
Unit testing on embedded target with C++Test
Unit testing on embedded  target with C++TestUnit testing on embedded  target with C++Test
Unit testing on embedded target with C++Test
Engineering Software Lab
 
Verification challenges and methodologies - SoC and ASICs
Verification challenges and methodologies - SoC and ASICsVerification challenges and methodologies - SoC and ASICs
Verification challenges and methodologies - SoC and ASICs
Dr. Shivananda Koteshwar
 
Quickly Testing Qt Desktop Applications
Quickly Testing Qt Desktop ApplicationsQuickly Testing Qt Desktop Applications
Quickly Testing Qt Desktop Applications
Clare Macrae
 
Unit testing (eng)
Unit testing (eng)Unit testing (eng)
Unit testing (eng)
Anatoliy Okhotnikov
 
Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++
Hong Le Van
 
Cursus phpunit
Cursus phpunitCursus phpunit
Cursus phpunit
Nick Belhomme
 
What is UFT? HP's unified functional testing.
What is UFT? HP's unified functional testing.What is UFT? HP's unified functional testing.
What is UFT? HP's unified functional testing.
Confiz
 
Python Testing Fundamentals
Python Testing FundamentalsPython Testing Fundamentals
Python Testing Fundamentals
cbcunc
 
Unit Testing RPG with JUnit
Unit Testing RPG with JUnitUnit Testing RPG with JUnit
Unit Testing RPG with JUnit
Greg.Helton
 
QTP Slides Presentation.
QTP Slides Presentation.QTP Slides Presentation.
QTP Slides Presentation.
tjdhans
 
Session 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfacesSession 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfaces
Nirav Desai
 
Uvm cookbook-systemverilog-guidelines-verification-academy
Uvm cookbook-systemverilog-guidelines-verification-academyUvm cookbook-systemverilog-guidelines-verification-academy
Uvm cookbook-systemverilog-guidelines-verification-academy
Raghavendra Kamath
 

What's hot (20)

PgTAP Best Practices
PgTAP Best PracticesPgTAP Best Practices
PgTAP Best Practices
 
Unit Test Your Database
Unit Test Your DatabaseUnit Test Your Database
Unit Test Your Database
 
RPG Program for Unit Testing RPG
RPG Program for Unit Testing RPG RPG Program for Unit Testing RPG
RPG Program for Unit Testing RPG
 
Phpunit
PhpunitPhpunit
Phpunit
 
System Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancementsSystem Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancements
 
Automated Regression Testing for Embedded Systems in Action
Automated Regression Testing for Embedded Systems in ActionAutomated Regression Testing for Embedded Systems in Action
Automated Regression Testing for Embedded Systems in Action
 
Session 6 sv_randomization
Session 6 sv_randomizationSession 6 sv_randomization
Session 6 sv_randomization
 
Introduction to System verilog
Introduction to System verilog Introduction to System verilog
Introduction to System verilog
 
Unit testing on embedded target with C++Test
Unit testing on embedded  target with C++TestUnit testing on embedded  target with C++Test
Unit testing on embedded target with C++Test
 
Verification challenges and methodologies - SoC and ASICs
Verification challenges and methodologies - SoC and ASICsVerification challenges and methodologies - SoC and ASICs
Verification challenges and methodologies - SoC and ASICs
 
Quickly Testing Qt Desktop Applications
Quickly Testing Qt Desktop ApplicationsQuickly Testing Qt Desktop Applications
Quickly Testing Qt Desktop Applications
 
Unit testing (eng)
Unit testing (eng)Unit testing (eng)
Unit testing (eng)
 
Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++
 
Cursus phpunit
Cursus phpunitCursus phpunit
Cursus phpunit
 
What is UFT? HP's unified functional testing.
What is UFT? HP's unified functional testing.What is UFT? HP's unified functional testing.
What is UFT? HP's unified functional testing.
 
Python Testing Fundamentals
Python Testing FundamentalsPython Testing Fundamentals
Python Testing Fundamentals
 
Unit Testing RPG with JUnit
Unit Testing RPG with JUnitUnit Testing RPG with JUnit
Unit Testing RPG with JUnit
 
QTP Slides Presentation.
QTP Slides Presentation.QTP Slides Presentation.
QTP Slides Presentation.
 
Session 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfacesSession 8 assertion_based_verification_and_interfaces
Session 8 assertion_based_verification_and_interfaces
 
Uvm cookbook-systemverilog-guidelines-verification-academy
Uvm cookbook-systemverilog-guidelines-verification-academyUvm cookbook-systemverilog-guidelines-verification-academy
Uvm cookbook-systemverilog-guidelines-verification-academy
 

Similar to AdaCore Paris Tech Day 2016: Eric Perlade - Verification Solutions

Tech Days 2015: Dynamic Analysis
Tech Days 2015: Dynamic AnalysisTech Days 2015: Dynamic Analysis
Tech Days 2015: Dynamic Analysis
AdaCore
 
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Ukraine
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Engineering Software Lab
 
Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)
Babul Mirdha
 
Quality Assurance
Quality AssuranceQuality Assurance
Quality Assurance
Kiran Kumar
 
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsxABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx
Ivan Femia
 
Android develop guideline
Android develop guidelineAndroid develop guideline
Android develop guideline
Kan-Han (John) Lu
 
Unit test
Unit testUnit test
Unit test
Tran Duc
 
1414_lecturueueueueuueueeueueueuusuee_7.ppt
1414_lecturueueueueuueueeueueueuusuee_7.ppt1414_lecturueueueueuueueeueueueuusuee_7.ppt
1414_lecturueueueueuueueeueueueuusuee_7.ppt
abdulbasetalselwi
 
QTP Tutorial Slides Presentation.
QTP Tutorial Slides Presentation.QTP Tutorial Slides Presentation.
QTP Tutorial Slides Presentation.
Jaya Priya
 
Dhanasekaran 2008-2009 Quick Test Pro Presentation
Dhanasekaran 2008-2009 Quick Test Pro PresentationDhanasekaran 2008-2009 Quick Test Pro Presentation
Dhanasekaran 2008-2009 Quick Test Pro Presentation
Dhanasekaran Nagarajan
 
Autotools adaptation for integrating autotmatic unit tests and covering for K...
Autotools adaptation for integrating autotmatic unit tests and covering for K...Autotools adaptation for integrating autotmatic unit tests and covering for K...
Autotools adaptation for integrating autotmatic unit tests and covering for K...
Thierry Gayet
 
Unit Testing in Flutter - From Workflow Essentials to Complex Scenarios
Unit Testing in Flutter - From Workflow Essentials to Complex ScenariosUnit Testing in Flutter - From Workflow Essentials to Complex Scenarios
Unit Testing in Flutter - From Workflow Essentials to Complex Scenarios
Flutter Agency
 
PVS-Studio and static code analysis technique
PVS-Studio and static code analysis techniquePVS-Studio and static code analysis technique
PVS-Studio and static code analysis technique
Andrey Karpov
 
Gallio Crafting A Toolchain
Gallio Crafting A ToolchainGallio Crafting A Toolchain
Gallio Crafting A Toolchain
ConSanFrancisco123
 
SoftTest Ireland: Model Based Testing - January 27th 2011
SoftTest Ireland: Model Based Testing - January 27th 2011SoftTest Ireland: Model Based Testing - January 27th 2011
SoftTest Ireland: Model Based Testing - January 27th 2011
David O'Dowd
 
Testing
TestingTesting
Test Driven Development with Sql Server
Test Driven Development with Sql ServerTest Driven Development with Sql Server
Test Driven Development with Sql Server
David P. Moore
 
Unit testing of spark applications
Unit testing of spark applicationsUnit testing of spark applications
Unit testing of spark applications
Knoldus Inc.
 
Question IYou are going to use the semaphores for process sy.docx
Question IYou are going to use the semaphores for process sy.docxQuestion IYou are going to use the semaphores for process sy.docx
Question IYou are going to use the semaphores for process sy.docx
audeleypearl
 

Similar to AdaCore Paris Tech Day 2016: Eric Perlade - Verification Solutions (20)

Tech Days 2015: Dynamic Analysis
Tech Days 2015: Dynamic AnalysisTech Days 2015: Dynamic Analysis
Tech Days 2015: Dynamic Analysis
 
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
 
Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)Test Driven iOS Development (TDD)
Test Driven iOS Development (TDD)
 
Quality Assurance
Quality AssuranceQuality Assurance
Quality Assurance
 
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsxABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx
ABAP Test Cockpit in action with Doctor ZedGe and abap2xlsx
 
Android develop guideline
Android develop guidelineAndroid develop guideline
Android develop guideline
 
Unit test
Unit testUnit test
Unit test
 
1414_lecturueueueueuueueeueueueuusuee_7.ppt
1414_lecturueueueueuueueeueueueuusuee_7.ppt1414_lecturueueueueuueueeueueueuusuee_7.ppt
1414_lecturueueueueuueueeueueueuusuee_7.ppt
 
QTP Tutorial Slides Presentation.
QTP Tutorial Slides Presentation.QTP Tutorial Slides Presentation.
QTP Tutorial Slides Presentation.
 
Dhanasekaran 2008-2009 Quick Test Pro Presentation
Dhanasekaran 2008-2009 Quick Test Pro PresentationDhanasekaran 2008-2009 Quick Test Pro Presentation
Dhanasekaran 2008-2009 Quick Test Pro Presentation
 
Autotools adaptation for integrating autotmatic unit tests and covering for K...
Autotools adaptation for integrating autotmatic unit tests and covering for K...Autotools adaptation for integrating autotmatic unit tests and covering for K...
Autotools adaptation for integrating autotmatic unit tests and covering for K...
 
Unit Testing in Flutter - From Workflow Essentials to Complex Scenarios
Unit Testing in Flutter - From Workflow Essentials to Complex ScenariosUnit Testing in Flutter - From Workflow Essentials to Complex Scenarios
Unit Testing in Flutter - From Workflow Essentials to Complex Scenarios
 
PVS-Studio and static code analysis technique
PVS-Studio and static code analysis techniquePVS-Studio and static code analysis technique
PVS-Studio and static code analysis technique
 
Gallio Crafting A Toolchain
Gallio Crafting A ToolchainGallio Crafting A Toolchain
Gallio Crafting A Toolchain
 
SoftTest Ireland: Model Based Testing - January 27th 2011
SoftTest Ireland: Model Based Testing - January 27th 2011SoftTest Ireland: Model Based Testing - January 27th 2011
SoftTest Ireland: Model Based Testing - January 27th 2011
 
Testing
TestingTesting
Testing
 
Test Driven Development with Sql Server
Test Driven Development with Sql ServerTest Driven Development with Sql Server
Test Driven Development with Sql Server
 
Unit testing of spark applications
Unit testing of spark applicationsUnit testing of spark applications
Unit testing of spark applications
 
Question IYou are going to use the semaphores for process sy.docx
Question IYou are going to use the semaphores for process sy.docxQuestion IYou are going to use the semaphores for process sy.docx
Question IYou are going to use the semaphores for process sy.docx
 

More from jamieayre

HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
jamieayre
 
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
jamieayre
 
HIS 2017 Paul Sherwood- towards trustable software
HIS 2017 Paul Sherwood- towards trustable software HIS 2017 Paul Sherwood- towards trustable software
HIS 2017 Paul Sherwood- towards trustable software
jamieayre
 
HIS 2017 Robert Martin- assured software a journey and discussion-final
HIS 2017 Robert Martin- assured software  a journey and discussion-finalHIS 2017 Robert Martin- assured software  a journey and discussion-final
HIS 2017 Robert Martin- assured software a journey and discussion-final
jamieayre
 
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted DeviceHIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
jamieayre
 
HIS 2017 Jonathan Pallant- Delivering quality, time after time
HIS 2017 Jonathan Pallant-  Delivering quality, time after timeHIS 2017 Jonathan Pallant-  Delivering quality, time after time
HIS 2017 Jonathan Pallant- Delivering quality, time after time
jamieayre
 
HIS 2017 Peter Ladkin- Rigorous-Assurance Points in Software Development
HIS 2017 Peter Ladkin-  Rigorous-Assurance Points in Software DevelopmentHIS 2017 Peter Ladkin-  Rigorous-Assurance Points in Software Development
HIS 2017 Peter Ladkin- Rigorous-Assurance Points in Software Development
jamieayre
 
HIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
HIS 2017 Dewi Daniels- bridging the gap between manned and unmannedHIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
HIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
jamieayre
 
HIS 2017 Roderick chapman- Secure Updates for Embedded Systems
HIS 2017 Roderick chapman- Secure Updates for Embedded SystemsHIS 2017 Roderick chapman- Secure Updates for Embedded Systems
HIS 2017 Roderick chapman- Secure Updates for Embedded Systems
jamieayre
 
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech UpdateAdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
jamieayre
 
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
jamieayre
 
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
jamieayre
 
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
jamieayre
 
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking AheadAdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
jamieayre
 
AdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers Library
AdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers LibraryAdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers Library
AdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers Library
jamieayre
 
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro RoadmapAdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
jamieayre
 
AdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
AdaCore Paris Tech Day 2016: Jamie Ayre - Market PerspectiveAdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
AdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
jamieayre
 

More from jamieayre (17)

HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
 
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
 
HIS 2017 Paul Sherwood- towards trustable software
HIS 2017 Paul Sherwood- towards trustable software HIS 2017 Paul Sherwood- towards trustable software
HIS 2017 Paul Sherwood- towards trustable software
 
HIS 2017 Robert Martin- assured software a journey and discussion-final
HIS 2017 Robert Martin- assured software  a journey and discussion-finalHIS 2017 Robert Martin- assured software  a journey and discussion-final
HIS 2017 Robert Martin- assured software a journey and discussion-final
 
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted DeviceHIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
 
HIS 2017 Jonathan Pallant- Delivering quality, time after time
HIS 2017 Jonathan Pallant-  Delivering quality, time after timeHIS 2017 Jonathan Pallant-  Delivering quality, time after time
HIS 2017 Jonathan Pallant- Delivering quality, time after time
 
HIS 2017 Peter Ladkin- Rigorous-Assurance Points in Software Development
HIS 2017 Peter Ladkin-  Rigorous-Assurance Points in Software DevelopmentHIS 2017 Peter Ladkin-  Rigorous-Assurance Points in Software Development
HIS 2017 Peter Ladkin- Rigorous-Assurance Points in Software Development
 
HIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
HIS 2017 Dewi Daniels- bridging the gap between manned and unmannedHIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
HIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
 
HIS 2017 Roderick chapman- Secure Updates for Embedded Systems
HIS 2017 Roderick chapman- Secure Updates for Embedded SystemsHIS 2017 Roderick chapman- Secure Updates for Embedded Systems
HIS 2017 Roderick chapman- Secure Updates for Embedded Systems
 
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech UpdateAdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
 
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
 
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
 
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
 
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking AheadAdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
 
AdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers Library
AdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers LibraryAdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers Library
AdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers Library
 
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro RoadmapAdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
 
AdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
AdaCore Paris Tech Day 2016: Jamie Ayre - Market PerspectiveAdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
AdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
 

Recently uploaded

Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
SOFTTECHHUB
 
3 Simple Steps To Buy Verified Payoneer Account In 2024
3 Simple Steps To Buy Verified Payoneer Account In 20243 Simple Steps To Buy Verified Payoneer Account In 2024
3 Simple Steps To Buy Verified Payoneer Account In 2024
SEOSMMEARTH
 
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
my Pandit
 
Chapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .pptChapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .ppt
ssuser567e2d
 
Mastering B2B Payments Webinar from BlueSnap
Mastering B2B Payments Webinar from BlueSnapMastering B2B Payments Webinar from BlueSnap
Mastering B2B Payments Webinar from BlueSnap
Norma Mushkat Gaffin
 
Business storytelling: key ingredients to a story
Business storytelling: key ingredients to a storyBusiness storytelling: key ingredients to a story
Business storytelling: key ingredients to a story
Alexandra Fulford
 
LA HUG - Video Testimonials with Chynna Morgan - June 2024
LA HUG - Video Testimonials with Chynna Morgan - June 2024LA HUG - Video Testimonials with Chynna Morgan - June 2024
LA HUG - Video Testimonials with Chynna Morgan - June 2024
Lital Barkan
 
Authentically Social Presented by Corey Perlman
Authentically Social Presented by Corey PerlmanAuthentically Social Presented by Corey Perlman
Authentically Social Presented by Corey Perlman
Corey Perlman, Social Media Speaker and Consultant
 
Industrial Tech SW: Category Renewal and Creation
Industrial Tech SW:  Category Renewal and CreationIndustrial Tech SW:  Category Renewal and Creation
Industrial Tech SW: Category Renewal and Creation
Christian Dahlen
 
Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...
Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...
Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...
my Pandit
 
amptalk_RecruitingDeck_english_2024.06.05
amptalk_RecruitingDeck_english_2024.06.05amptalk_RecruitingDeck_english_2024.06.05
amptalk_RecruitingDeck_english_2024.06.05
marketing317746
 
Organizational Change Leadership Agile Tour Geneve 2024
Organizational Change Leadership Agile Tour Geneve 2024Organizational Change Leadership Agile Tour Geneve 2024
Organizational Change Leadership Agile Tour Geneve 2024
Kirill Klimov
 
-- June 2024 is National Volunteer Month --
-- June 2024 is National Volunteer Month ---- June 2024 is National Volunteer Month --
-- June 2024 is National Volunteer Month --
NZSG
 
Top mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptxTop mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptx
JeremyPeirce1
 
Lundin Gold Corporate Presentation - June 2024
Lundin Gold Corporate Presentation - June 2024Lundin Gold Corporate Presentation - June 2024
Lundin Gold Corporate Presentation - June 2024
Adnet Communications
 
Best Forex Brokers Comparison in INDIA 2024
Best Forex Brokers Comparison in INDIA 2024Best Forex Brokers Comparison in INDIA 2024
Best Forex Brokers Comparison in INDIA 2024
Top Forex Brokers Review
 
Understanding User Needs and Satisfying Them
Understanding User Needs and Satisfying ThemUnderstanding User Needs and Satisfying Them
Understanding User Needs and Satisfying Them
Aggregage
 
2024-6-01-IMPACTSilver-Corp-Presentation.pdf
2024-6-01-IMPACTSilver-Corp-Presentation.pdf2024-6-01-IMPACTSilver-Corp-Presentation.pdf
2024-6-01-IMPACTSilver-Corp-Presentation.pdf
hartfordclub1
 
The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...
Adam Smith
 
Observation Lab PowerPoint Assignment for TEM 431
Observation Lab PowerPoint Assignment for TEM 431Observation Lab PowerPoint Assignment for TEM 431
Observation Lab PowerPoint Assignment for TEM 431
ecamare2
 

Recently uploaded (20)

Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
 
3 Simple Steps To Buy Verified Payoneer Account In 2024
3 Simple Steps To Buy Verified Payoneer Account In 20243 Simple Steps To Buy Verified Payoneer Account In 2024
3 Simple Steps To Buy Verified Payoneer Account In 2024
 
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
Taurus Zodiac Sign: Unveiling the Traits, Dates, and Horoscope Insights of th...
 
Chapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .pptChapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .ppt
 
Mastering B2B Payments Webinar from BlueSnap
Mastering B2B Payments Webinar from BlueSnapMastering B2B Payments Webinar from BlueSnap
Mastering B2B Payments Webinar from BlueSnap
 
Business storytelling: key ingredients to a story
Business storytelling: key ingredients to a storyBusiness storytelling: key ingredients to a story
Business storytelling: key ingredients to a story
 
LA HUG - Video Testimonials with Chynna Morgan - June 2024
LA HUG - Video Testimonials with Chynna Morgan - June 2024LA HUG - Video Testimonials with Chynna Morgan - June 2024
LA HUG - Video Testimonials with Chynna Morgan - June 2024
 
Authentically Social Presented by Corey Perlman
Authentically Social Presented by Corey PerlmanAuthentically Social Presented by Corey Perlman
Authentically Social Presented by Corey Perlman
 
Industrial Tech SW: Category Renewal and Creation
Industrial Tech SW:  Category Renewal and CreationIndustrial Tech SW:  Category Renewal and Creation
Industrial Tech SW: Category Renewal and Creation
 
Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...
Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...
Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...
 
amptalk_RecruitingDeck_english_2024.06.05
amptalk_RecruitingDeck_english_2024.06.05amptalk_RecruitingDeck_english_2024.06.05
amptalk_RecruitingDeck_english_2024.06.05
 
Organizational Change Leadership Agile Tour Geneve 2024
Organizational Change Leadership Agile Tour Geneve 2024Organizational Change Leadership Agile Tour Geneve 2024
Organizational Change Leadership Agile Tour Geneve 2024
 
-- June 2024 is National Volunteer Month --
-- June 2024 is National Volunteer Month ---- June 2024 is National Volunteer Month --
-- June 2024 is National Volunteer Month --
 
Top mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptxTop mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptx
 
Lundin Gold Corporate Presentation - June 2024
Lundin Gold Corporate Presentation - June 2024Lundin Gold Corporate Presentation - June 2024
Lundin Gold Corporate Presentation - June 2024
 
Best Forex Brokers Comparison in INDIA 2024
Best Forex Brokers Comparison in INDIA 2024Best Forex Brokers Comparison in INDIA 2024
Best Forex Brokers Comparison in INDIA 2024
 
Understanding User Needs and Satisfying Them
Understanding User Needs and Satisfying ThemUnderstanding User Needs and Satisfying Them
Understanding User Needs and Satisfying Them
 
2024-6-01-IMPACTSilver-Corp-Presentation.pdf
2024-6-01-IMPACTSilver-Corp-Presentation.pdf2024-6-01-IMPACTSilver-Corp-Presentation.pdf
2024-6-01-IMPACTSilver-Corp-Presentation.pdf
 
The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...
 
Observation Lab PowerPoint Assignment for TEM 431
Observation Lab PowerPoint Assignment for TEM 431Observation Lab PowerPoint Assignment for TEM 431
Observation Lab PowerPoint Assignment for TEM 431
 

AdaCore Paris Tech Day 2016: Eric Perlade - Verification Solutions

  • 3. Software that matters Leverage the increase in tool responsibility offered by Ada and SPARK Find software bugs and vulnerabilities earlier in the development process Ideally we’d like the developers to do this as part of their every day workflow Verification can be made easy Ada
  • 4. Verification Assure that software fully satisfies all the expected requirements Non-Functional Requirements Functional Requirements
  • 5. Functional Requirements A refinement from System Requirements -> Software Requirements ”The software shall…” High Level and Low Level – DO-178 Require verification Functional Requirements
  • 6. Non-Functional Requirements Can be from outside the SRD refinement path Coding Standards Complexity Requirements Coverage Requirements Target resource usage Requirements Non-Functional Requirements
  • 8. Know Your Code • Embrace Programming by Contract • Continuous Unit Testing • Measure your software • Keep your subprograms at a sensible length and level of complexity • Ensure your software is readable and understandable by all the developers
  • 10. GNATmetric Variety of different metrics are available • Complexity • Syntax Elements • Line Metrics • Coupling Metrics Output into an XML file which can be post-processed
  • 11.
  • 12.
  • 13. GNAT Front End Objective is to leverage the increased formality of the language to allow tools to be more responsible. Compiler switches for the GNAT front end can do a great job of catching coding problems early in the development process Many customers turn on ALL warnings and ensure warnings are treated as ERRORS which will halt compilation Produces better developers ??
  • 14.
  • 15. Style Checking The key word here is consistency Developers can unintentionally introduce code constructs that are considered un-helpful in reducing defects General guidelines for good Ada can accompany company coding standards GNATcheck and the GNAT front end itself are available to help
  • 16.
  • 17. GNATcheck A set of implemented rules from which a subset can be selected as a coding standard Specified in a file read by GNATcheck and the output can be written to a textual report file or an XML file for post-processing GNAT Programming Studio has a fantastic GUI helper for rule selection
  • 18.
  • 19.
  • 20.
  • 21. Static Stack Analysis Generation of the basic stack consumption and call-graph information. Performed during compilation -fcallgraph-info=su,da Generates a .ci file per object file Analysis and report generation
  • 22.
  • 23.
  • 24. Pitfalls Cycles, unbounded frames, external calls, dynamic variables or indirect calls Use “-Wa” and “-v” to get additional information Encourage developers to run GNATstack and try to rework the code to enable full stack analysis
  • 25. Build your own tools ! libadalang
  • 28. Desktop Dynamic Verification TARGET EMULATIONGNATemulator COVERAGE ANALYSISGNATcoverage UNIT TEST GENERATIONGNATtest
  • 29. HARNESS TEST CASES UUT package Simple is procedure SubP( Loop_Count : in Integer; Even_Count : out Integer; Odd_Count : out Integer ) with Pre => (Loop_Count > 0), Post => ((Even_Count >= 0) and (Odd_Count >= 0)); end Simple;
  • 30. GNATtest Unit Test Harness Generation Included in GNAT Pro Based on the Open Source AUnit Framework Available for Native and Cross Compilers Code Generation = Lower Costs
  • 31. GNATtest Work Flow gnattest -v --RTS=ravenscar-full-prep -Pex4.gpr Generates Test Case Skeletons and a Harness Very Flexible and allows for CM of generated code Aware of User Defined Test Case Code Clearly identifies what will NOT survive a re-generation
  • 32. GNATtest –Test Case Generation package Simple.Test_Data is -- begin read only type Test is new AUnit.Test_Fixtures.Test_Fixture -- end read only with null record; procedure Set_Up (Gnattest_T : in out Test); procedure Tear_Down (Gnattest_T : in out Test); end Simple.Test_Data; -- This package has been generated automatically by GNATtest. -- Do not edit any part of it, see GNATtest documentation for more details. -- begin read only with Gnattest_Generated; package Simple.Test_Data.Tests is type Test is new GNATtest_Generated.GNATtest_Standard.Simple.Test_Data.Test with null record; procedure Test_SubP_75ecda (Gnattest_T : in out Test); -- simple.ads:3:4:SubP end Simple.Test_Data.Tests; -- end read only
  • 33. GNATtest –Test Case Generation -- This package is intended to set up and tear down the test environment. -- Once created by GNATtest, this package will never be overwritten -- automatically. Contents of this package can be modified in any way -- except for sections surrounded by a 'read only' marker. package body Simple.Test_Data is X : constant Integer := 20; procedure Set_Up (Gnattest_T : in out Test) is pragma Unreferenced (Gnattest_T); begin null; end Set_Up; procedure Tear_Down (Gnattest_T : in out Test) is pragma Unreferenced (Gnattest_T); begin null; end Tear_Down; end Simple.Test_Data;
  • 34. -- This package has been generated automatically by GNATtest. -- You are allowed to add your code to the bodies of test routines. -- Such changes will be kept during further regeneration of this file. -- All code placed outside of test routine bodies will be lost. The -- code intended to set up and tear down the test environment should be -- placed into Simple.Test_Data. with AUnit.Assertions; use AUnit.Assertions; package body Simple.Test_Data.Tests is -- begin read only procedure Test_SubP (Gnattest_T : in out Test); procedure Test_SubP_75ecda (Gnattest_T : in out Test) renames Test_SubP; -- id:2.2/75ecda11d3241da6/SubP/1/0/ procedure Test_SubP (Gnattest_T : in out Test) is -- simple.ads:3:4:SubP -- end read only pragma Unreferenced (Gnattest_T); begin AUnit.Assertions.Assert (Gnattest_Generated.Default_Assert_Value, "Test not implemented."); -- begin read only end Test_SubP; -- end read only end Simple.Test_Data.Tests;
  • 35. Even_Count, Odd_Count : Integer; begin Simple.SubP( Loop_Count => 21, Even_Count => Even_Count, Odd_Count => Odd_Count ); Assert(((Even_Count = 10) and (Odd_Count = 10)),"Loop_Count => 21"); -- White box analysis identified that no odd numbers above 20 will be counted Simple.SubP( Loop_Count => 22, Even_Count => Even_Count, Odd_Count => Odd_Count ); Assert(((Even_Count = 11) and (Odd_Count = 10)),"Loop_Count => 22");
  • 37.
  • 38.
  • 39. GNATemulator QEMU Open Source Processor Emulator Not a Simulator I/O Connections No Instrumentation Actual Target Object Code No expensive native re-host PowerPC/ARM/SPARC Executable Image PowerPC/ARM/SPARC -> x86 Translation x86 Host Platform
  • 40. GNATemulator Platform Support VxWorks 6 VxWorks 653 PowerPC ELF Bare Metal LEON ELF Bare Metal ARM ELF Bare Metal
  • 41. GNATemulator Debugging Puts a verification environment on the developers desk Rapid re-test No target hardware Actual object code EXE GNATemulator GDB SERVER TCP GPS/GDB
  • 42. GNATcoverage • Coverage Analysis - Multiple Modes of Operation • Run and Capture Execution Trace Data • Conversion of IEEE-ISTO 5001-2003 (Nexus) Trace Data • Coverage Analysis of Execution Trace Data • Source Code Level • Object Code Level
  • 43. Native Intel PowerPC LEON 2 and LEON 3 ARM (Target Trace Port) GNATcoverage Platform Support
  • 44. Build Considerations -g Debug data -fpreserve-control-flow Control Optimizers for precise SLOC info -fdump-scos Source Coverage Obligation in *.ali files
  • 45. Build Considerations Support for Optimizations (up to -O1) Inlining Allowed (-gnatn) No External Libraries Needed All can be achieved using GNAT Project file scenario variables.
  • 46. GNATcoverage Analysis Levels Source Level gnatcov coverage --level=stmt gnatcov coverage --level=stmt+decision gnatcov coverage --level=stmt+mcdc Object Level gnatcov coverage --level=insn gnatcov coverage --level=branch
  • 47. GNATcoverage Analysis Formats xcov - Annotated Sources in Text Format report - Textual Summary HTML - Colours, Sortable Columns and Per-project indexes
  • 48. Conclusion AdaCore has verification tools that are applicable to the different phases in the classic V-model. Developers can leverage the increase in tool responsibility to continuously verify and catch defects early. Easy to integrate into the developers work environment through the GPS IDE but also command line driven for non- interactive use cases.
  • 49. Advance through these slides for more instruction
  • 50. Getting Started This template has been setup with a variety of slide layouts to give you a solid foundation that you can build on and adapt as necessary. Get started by clicking the Insert tab and selecting the New Slide dropdown to choose from a variety of slide designs. Each design is available in Dark, Blue, and Light background themes.
  • 51. Resources A repository of AdaCore acquired Stock Photography, product screenshots, logos, and other assets can be found at dropbox at the following link : http://bit.ly/1SMRRXT Please note that any stock photography may be used for the purposes of company PowerPoint presentations. For any other use case, please get in touch with us first at design@adacore.com
  • 52. The following icons have been useful for illustrating various industries. Visit http://www.thenounproject.com for a good resource beyond what’s available here. Rail Naval Drone Medical Financial Security Auto Space Air ATM Submarine Grid
  • 53. The following icons have been useful for illustrating various industries. Visit http://www.thenounproject.com for a good resource beyond what’s available here. Rail Naval Drone Medical Financial Security Auto Space Air ATM Submarine Grid