ndia 8th annual systems engineering · overview sw reliability software reliability - probability...

22
NDIA 8 NDIA 8 th th Annual Systems Engineering Annual Systems Engineering Conference Conference Automated Software Testing Increases Test Automated Software Testing Increases Test Quality and Coverage Resulting in Improved Quality and Coverage Resulting in Improved Software Reliability. Software Reliability. October 25, 2005 October 25, 2005 Frank Salvatore High Performance Technologies, inc. 3159 Schrader Road Dover NJ, 07801 (973) 442-6436 ext 249 [email protected]

Upload: others

Post on 07-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

NDIA 8NDIA 8thth Annual Systems EngineeringAnnual Systems EngineeringConferenceConference

““Automated Software Testing Increases TestAutomated Software Testing Increases TestQuality and Coverage Resulting in ImprovedQuality and Coverage Resulting in Improved

Software Reliability.Software Reliability.””

October 25, 2005October 25, 2005

Frank SalvatoreHigh Performance Technologies, inc.3159 Schrader RoadDover NJ, 07801(973) 442-6436 ext [email protected]

Page 2: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

OutlineOutline

� Introduction� Background� Project Purpose & Goals

� Overview� SW Reliability� Statistical Testing� Model Based Specification and Testing

� Development Flow� Tool Set Architecture� Module Review� Auto Tester� Conventional vs Statistical Testing

Page 3: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

BackgroundBackground

� Phase I SBIR Completed in FY 2004 provingfeasibility.

� Phase II SBIR to Start in FY 2006� Sponsor: US ARMY ARDEC, Fire Control

Systems & Technology Division (FCSTD)� Contractors:

� Cognitive Concepts, LLC Prime� High Performance Technologies, Inc (HPTi)� Software Silver Bullets

Page 4: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

Project Purpose & GoalsProject Purpose & Goals

� Generate an integrated process which enables any SWDevelopment organization to apply Model basedSpecification and Testing (MST)

� Significantly advance the state of the practice forsystem level MST.� Create large models of complex system software behaviors

that closely represent expected operational behavior of aspecific system.

� Automatically generate test cases from the model.� Define and store test scripts associated with every stimulus in

the test population.� Generate executable test scripts.

� Implement the required tools that will enable bringingModel Based Specification and Testing technology tomarket.

� Reduce Software Life Cycle Maintenance Costs.

Page 5: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

Overview SW ReliabilityOverview SW Reliability

�Software Reliability - Probability of failure-freesoftware execution in a specified operatingenvironment.

�Software Reliability Engineering - Systemsengineering process activities ensuring reliablesoftware systems.� Assessment - software reliability can be assessed

(measured) only when the software is executing, either in atest lab or in the field.

� Prediction - prior to having executable software,assessment is done by inference via a forecast.

Page 6: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

SRE ChallengesSRE Challenges

�Verifying the system does what users want.� Integrating Requirements analysis and System

Software testing.�Determining what to measure and when to

measure it.�Limiting scope and breath of testing to stay on

schedule.

Page 7: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

SRE Fundamental PrincipalSRE Fundamental Principal

SRE involves:�Developing an operational, or usage,

profile of the software system under testand

�Exercising random test cases from theprofile to obtain a direct assessment of thereliability of a software system

Page 8: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

Statistical Testing in a NutshellStatistical Testing in a Nutshell

Statistical Testing� Specification represented in the form of usage models� System tests generated directly from usage models

Markov-chain usage models� Black box state-based models that cover every possible

state of usage for a software system� External behavioral representation of system� Composed of states (conditions) and arcs (stimuli)

Software tool generates random test cases

Page 9: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

Current State of System Software TestingCurrent State of System Software Testing

RequirementsDefinition

Test CaseDesign

Test ProcedureDevelopment Test Execution

Current Testing Practice Advanced MST ProcessSoftware

RequirementsAutomatic

Test Executer

AutomaticTest Generator

AutomaticTest Scripter

AutomaticModel Specifier

closely integrated

Industry practice for testing military applicationsuses a requirements-based approach.

� Test cases are defined for each requirement, or shall statement.� Test cases are designed manually or with a software tool that is

independent of the requirements tool.� Test cases are scripted manually or with a tool that is not

integrated with the test design tool.� Tests are executed manually or in some cases the tests are

automated utilizing a project specific test automation tool.

An innovative approach to requirements specification and testing

Page 10: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

MBT StructureMBT Structure

�MBT is a black box representation ofthe expected behavior of systemsoftware.

�A model-based specification is called ausage model specifying how thesystem is used, or behaves.

Idle Begin

Alpha

Beta

End

STATE M ACHINENodes are states-of-useArcs are possible stimuliProbabilities (p=1) define expected usageTest case is a path from initial to term inal state

Startp=1 A

A

A

B

B

B

Quit

Quit

p=.9

p=.1

p=.1

p=.1

p=.01

p=.05

p=.85

p=.89

Page 11: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

MST OverviewMST OverviewMST

� Provides a structured approach to requirements analysisand software test design.

� Ensures the system specification prescriptive andconsistent to enable automatic generation of systemsoftware test cases.

� Facilitates an objective assessment of system softwarereliability.

� Enhanced communication between developers andtesters.

� Eases the updating of test suites for changedrequirements.

� Shorter schedules, lower cost, and better quality.� A model of user behavior.� Early exposure of ambiguities in specification and design

Page 12: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

MBT Development FlowMBT Development Flow

documentation,mental models

unambiguousdescription of correct

system behavior

formal, suitableinput for test tool

Automatic generationand execution of tests

System interface access

(formal)specification

model

formaltest

modeltest tool system under

test (SUT)informal

specification

test environment

Page 13: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

ModelSpecification

Module

ModelSpecification

Module

ModelAnalyzer

TestGeneration

Module

TestGeneration

Module

Test CaseAnalyzer

TestTranslation

Module

TestTranslation

Module

TestExecution

Module

SoftwareRequirements

rulesof

behavior

autogenerate

UsageModel

AnalysisResults

manuallymodify

type andnumberof tests

TestCases

criteria

stimulus list

scriptinfo

SoftwareRequirementsSpecific Script

Library

TestScripts

Test setup-drivers-interfaces-commands-etc.

SystemUnder Test

simulator

emulator

Test scripts sent

Test results returned

autogenerate

Analysis results

importexport

= general purpose module

= project specific module

= part of Test Generation Module

Toolset ArchitectureToolset Architecture

Page 14: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

Model Specification ModuleModel Specification Module

Capability:� Tabular entry of system requirements.� Definition of the system boundary by itemizing all input

stimuli and responses� Specifying traceability via requirement tags.� Enumeration of input stimulus sequences� Automatic analysis of the completed enumeration to verify

coverage and to construct the usage model.� Define usage variables and associate a unique set with each

state in the model.� Assigning probabilities to each transition in the usage model.� XML schema for storing and managing the above data

Page 15: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

Test Generation and Analysis Module.Test Generation and Analysis Module.

Capability:� Provides Markov analysis of the usage model for

properties useful for model validation and test planning.� Enables test case generation via random walk, relative

probability, and graph coverage algorithm.� Enables test case management necessary for pass/fail

recording and format conversion.� Provides analysis of test results to compute coverage and

reliability metrics

Page 16: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

Test Translation ModuleTest Translation Module

Capability:� Accepts operator input to build script fragments for each

system stimulus and export the result to the script library.� Reads stimulus mapping information from the script fragment

library that maps the stimuli used in the model to codesreadable by the Test Execution Module.

� Determines proper code sequences to perform the test casescreated by the Test Case Generator.

� Generates test scripts for the Test Execution Module from thefusion of script fragments

Page 17: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

Test Execution ModuleTest Execution Module

Capability:� Executes target specific test scripts using hardware and

software elements designed to interface with the systemunder test.

� Provides the operator an interface to observe the test stepsbeing performed as well as enabling the operator to pause orrestart testing.

� Logs any results generated from the testing in formats forhuman interpretation and for input to the Test Case Analysisand Generation Module

Page 18: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

AutoAuto--TesterTester

Capability:� Perform end-to-end testing of System Software.� Record scripts from a PC keyboard and play them back to

the keyboard port of a PC.� Translate the serial communication between the Display

Unit (DU) and the AFCS Computer Unit (ACU).� In order to support the Enhanced Display System (EDS),

the connection to the Auto Tester would be insertedbetween FBCB2 and the ACU, not between the EDU andFBCB2

Page 19: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

Automated Test CapabilityAutomated Test Capability

Capability:� Supports Developmental, Integration, and Formal

Qualification Testing (FQT) of a Fire Control SoftwareSystem.

� Provides and demonstrates a means to capture testcases and procedures in a reusable form.

� Supports management of test artifacts, includingstorage, retrieval, editing, merging, and searching.

� Perform end-to-end testing of a Fire Control systemsoftware.

� Monitors and records the system’s responses tostimulus, and, as necessary, emulates the appropriateresponse via a system interface to complete a giventest case.

Page 20: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

Applying MST to Achieve Software SafetyApplying MST to Achieve Software Safety

� Traditional approaches include static analysis� MST provides a robust, dynamic approach

� Models cover all usage states, including rare ones.� Statistical testing ensures that potentially hazardous unknown

or unforeseen events are covered in the system test suite.Static analysis alone cannot predict the consequences ofhighly complex behaviors.

� MST is a supplement to, not a replacement for, methodssuch as Fault Tree Analysis and Hazard Analysis.

Page 21: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

SummarySummary

� Automated Software Testing Increases Test Quality andCoverage Resulting in Improved Software Reliability.

� Project starts FY06� Results will be provided in a final report and

demonstration.� Advance the state of the practice for system level MST.

� Create large models of complex system software behaviors thatclosely represent expected operational behavior of a specificsystem.

� Automatically generate test cases from the model.� Define and store test scripts associated with every stimulus in the

test population.� Generate executable test scripts.

� Integrated Suite of Tools.

Page 22: NDIA 8th Annual Systems Engineering · Overview SW Reliability Software Reliability - Probability of failure-free software execution in a specified operating environment. Software

Questions?Questions?