DANSE Software Quality
Assurance
Tom Swain
Tom Swain
Software Quality Research Laboratory
Software Quality Research Laboratory University of Tennessee
University of Tennessee
Department of Computer Science
DANSE Objectives
DANSE Objectives
Extensible open source framework
Extensible open source framework
Modular interoperability
Modular interoperability
Reusable distributed components
Reusable distributed components
Legacy code migration path
Legacy code migration path
Broad scientific applicability
Broad scientific applicability
HPC compatibility
HPC compatibility
Broad user expertise range
Quality Challenges
Quality Challenges
Large, distributed development team
Large, distributed development team
Wide range of software engineering
Wide range of software engineering
experience
experience
Long term maintenance by SNS
Long term maintenance by SNS
Straightforward extensibility for power
Straightforward extensibility for power
users
users
Reliable, intuitive operation for novice
Reliable, intuitive operation for novice
users
SQRL Tasks
SQRL Tasks
Software Quality Engineering Workshops
Software Quality Engineering Workshops
for Each Science Subgroup
for Each Science Subgroup
Documentation of SNS Interface Documentation of SNS Interface Requirements Requirements SNS Integration Plan SNS Integration Plan
Integration Test Planning
Essential Process Elements
Essential Process Elements
1)
1) Requirements CaptureRequirements Capture
2)
2) Architecture SpecificationArchitecture Specification
3)
3) Behavior SpecificationBehavior Specification
4)
4) Code GenerationCode Generation
5)
5) CertificationCertification
6)
6) User Guide PublicationUser Guide Publication
7)
7) Configuration ManagementConfiguration Management
8)
Primary Work Product
Primary Work Product
Relationships
Software Production is
Software Production is
Incremental
Incremental
? ? ?An efficient, repeatable process is necessary for expanding, changing requirements.
Incremental Development Strategy
Incremental Development Strategy
Organize requirements into small
Organize requirements into small
functional increments
functional increments
For each increment
For each increment
–
– Elaborate requirements to expand behavior Elaborate requirements to expand behavior and architecture specifications
and architecture specifications
–
– Code and integrate new functionalityCode and integrate new functionality –
– Certify newly integrated system conformance Certify newly integrated system conformance with the cumulative specification
with the cumulative specification
–
– Update User Guide if increment will be Update User Guide if increment will be released for beta or general use
released for beta or general use
–
Requirements
Requirements
Use cases tagged for
Use cases tagged for
traceability
traceability
.
.
Initial requirements assumed to be
Initial requirements assumed to be
incomplete, inconsistent, and possibly
incomplete, inconsistent, and possibly
incorrect
DANSE Architecture Specifications
DANSE Architecture Specifications
Framework
Framework –– interfaces, services, and interfaces, services, and rules for well
rules for well--behaved componentsbehaved components Each Component
Each Component –– class diagrams and class diagrams and API design
API design
Each Application
Each Application –– target environment, target environment, participating components, and their
participating components, and their
relationships
Behavior Specification: The General Case
Behavior Specification: The General Case
1)
1) Establish Establish system boundarysystem boundary..
2)
2) Define human/software/hardware Define human/software/hardware
interfaces
interfaces..
3)
3) Itemize Itemize stimulistimuli..
4)
4) Itemize Itemize responsesresponses..
5)
5) Map Map every stimulus sequenceevery stimulus sequence to a to a response.
response.
The discovery and documentation of derived requirements is
The discovery and documentation of derived requirements is
a natural and desirable part of the specification process.
Map Code Specified in Behavior
Map Code Specified in Behavior
Specification to Architecture
Specification to Architecture
Stimulus Gathering Response Generation State Variable Implementation State Machine ImplementationCertification:
Certification:
Operational Definition
Operational Definition
Evidence that
Evidence that approved software approved software engineering practices
engineering practices were used to were used to produce the software
produce the software
Results of inspection and tests
Results of inspection and tests provide provide confidence that the as
confidence that the as--built software will built software will perform its intended function
DANSE Testing Strategy
DANSE Testing Strategy
Dedicated Test Leaders for Framework
Dedicated Test Leaders for Framework
and Each Science Team
and Each Science Team
Statistical Testing to Certify Each
Statistical Testing to Certify Each
Increment
Increment
Increment Release Based on Quantitative
Increment Release Based on Quantitative
Assessment of Test Results
Work Products Supporting Certification
Work Products Supporting Certification
Peer Review Findings and Resolution
Peer Review Findings and Resolution
–
– SpecificationsSpecifications –
– CodeCode –
– Test PlanTest Plan
Test Results and Resolution of Failures
Test Results and Resolution of Failures
Release Decision Meeting Minutes
User Guide
User Guide
Content
Content
–
– How to install and/or configure the systemHow to install and/or configure the system –
– How to initiate and control all functionsHow to initiate and control all functions –
– How to interpret outputHow to interpret output
Format
Format
–
Configuration/Release Control
Configuration/Release Control
Key Practices
Key Practices
Document/Source control tool
Document/Source control tool
(Subversion)
(Subversion)
Centrally managed release tagging
Centrally managed release tagging
Repeatable automated build procedure
Repeatable automated build procedure
Formal release procedure
Formal release procedure
Change tracking (Trac)
Change tracking (Trac)
Audit trail
Configuration Items
Configuration Items
Software Behavior Specification Software Behavior Specification
Software Architecture Specification Software Architecture Specification
Source Code Source Code
Software Test Plan Software Test Plan
Test Record Test Record
User Guide User Guide
Software Configuration
Software Configuration
Management
Change Request Processing
Change Request Processing
Open Resolved Suspended Close Developer Action Successful Verification Verification Failed TL/CM Decision TL/CM Decision
Tickets Drive Defect Correction Tickets Pace Feature Additions
Move Tags for Defect Corrections
Roles of Trac and Subversion in the
Roles of Trac and Subversion in the
Increment Development Sequence
Increment Development Sequence
Move Tags for In-scope Features and Fixes
Subversion Time Line
Trac Time Line
Verification Triage Begin Cert Test Increment Complete Feature Tickets Resolved/Closed Request Resolved Ticket Verification Milestone Tickets Closed/Deferred Verification Triage Defect Tickets Resolved/Closed Request Resolved Ticket Verification Milestone Tickets Closed/Deferred
Process Summary
Process Summary
Rigorous specification of code derived
Rigorous specification of code derived
from informal requirements
from informal requirements
– – ArchitectureArchitecture – – BehaviorBehavior Certification Certification –
– Independent Work Product ReviewIndependent Work Product Review –
– Quantitative TestingQuantitative Testing
Configuration management
Configuration management
–
– Centralized build/release controlCentralized build/release control –