Documente Academic
Documente Profesional
Documente Cultură
(QAI)
Effective Methods of Software
Testing
A Perspective
Seattle Area Software Quality Assurance Group
10/14/08
The Quality Assurance
Institute
An international association of 1000
organizations banded together to share
best practices, benchmark data and
experiences
Software quality focus
Certification Programs
◆ Certified Quality Analyst
10/14/08
Effective Methods of Software
Testing
There are really only two issues
in software testing:
Requirements
Organizational Culture
10/14/08
QAI Test Materials Organization
Test Strategy
Test Plan
Supporting Materials
◆ Metrics
Requirements Design
10/14/08
Testing Relationship Definitions
-
Testing Lifecycle Concept
Operational or Acceptance
Business Need Test
Define System
Requirements Test
Design Integration
System Test
Build Unit
System Test
Testing Relationship Definitions
-
Continuous Life Cycle Testing
Verify Validate
Operational or Acceptance
Business Need Test
Verify Validate
Define System
Requirements Test
Verify Validate
Design Integration
System Test
Verify Validate
Build Unit
System Test
Testing Relationship Definitions
-
Test Support Activities
TEST OBJECTIVES
Verify Validate
Operational or Acceptance
Business Need Test
Design Integration
System Test
TEST EXECUTION Verify Validate
(STATIC)
Build Unit
System Test
QAI Definitions -
“Test Workbench” Concept
Problems
Products Test
Test Validated
for Quality
Processes Test
Test Control
Results
Test Test
Toolbox Measures
The QAI Test Process
1. Set Test Objectives
2. Develop Test Plan
3. Execute Tests
4. Summarize and Report Results
Step 1 - Set Test
Objectives
Task 1 - Organize Test Team
Task 2 - Perform Risk Assessment
Task 3 - Set Test Objectives
Task 4 - Quality Control
Set Test Objectives
Task 1 - Organize Test Team
Define Test Responsibilities / Tasks
Determine People to Perform Tasks
Worksheets 4,5
Set Test Objectives
2. Perform Risk Assessment
Dimensions of Risk
◆ Criticality / Mission Impact Impact of Failure
◆ System Size, Scale and Complexity
Likelihood
◆ System Environment and Stability
of
◆ Reliability and Integrity Failure
◆ Technology Integration
…lots of checklists!
Develop Test Plan
1. Define Business Processes
2. Define Structural Attributes
3. Define Tests
4. Create Test / Function Matrix
5. Define Admin Requirements
6. Formulate System Test Plan
7. QC System Test Plan
8. Develop Unit Test Plan
9. QC Unit Test Plan
Develop Test Plan
1. Define Business Functions
Describe what the system should do
◆ …stands alone as an activity
◆ …is controllable
◆ …can be a transition
Worksheet 8
Develop Test Plan
2. Define Structural Attributes
Reliability Testability
Efficiency Flexibility
Integrity Portability
Usability Reusability
Maintainability Interoperability
Worksheet 9
Structural Attribute Matrix
Define Tests
◆ Associate test factors, techniques and test types
◆ Regression ◆ Execution
◆ Control ◆ Security
◆ Parallel
Test Data Sources
Test Data / Test Desks
Production Data
Simulation / Prototyping
Review / Confirmation
Instrumentation / Tracing
Test Script
Test Definition
Each Test is defined in terms of:
◆ Controls
◆ Inputs
◆ Outputs
◆ Procedures
25 17,30
Function #1
Function #2 5,7 45
Develop Test Plan
5. Define Admin Test
Requirements
Schedule
Budget
Resources
Testing Materials
Test Training
Tests to be Conducted
Defect Estimation
Worksheets 13,14
Develop Test Plan
6. Formalize Test Plan
Section I - General Information
Section 2 - Plan
Section 3 - Specifications and Evaluation
Section 4 - Test Description
Develop
◆ Test Plan Administration
Worksheets 20,21,22
Develop Test Plan
9. Unit Test Plan Quality Control
Checklists
Step 3 - Execute Tests
Task 1 - Select Test Tools
Task 2 - Develop Test Cases
Task 3 - Execute Tests
Task 4 - Quality Control
QAI Tool Definition
What’s a Test Tool?
◆ …any vehicle which assists
in performing a test.
◆ Examples-
Decision Tables
Automated capture / playback
Checklists
Program Analyzer
Execute Tests
Step 1 - Select Test Tools
Using:
◆ System Test Plan
Worksheet 23
Execute Tests
Step 3 - Execute Tests
Test Activities Log
Regression Testing
◆ Full
◆ Partial
Worksheet 24
Step 4 - Summarize and
Report
Test Results
Task 1 - Record Defects
Task 2 - Perform Data Reduction
Task 3 - Develop Findings and Recommendations
Task 4 - Finalize Test Report
Task 5 - Test Report Quality Control
◆ Test Defect Report
Worksheets 25,26,27,28
Supporting Material
Metrics
Toolbox Techniques
Test Condition Analysis
Test Design Analysis
10/14/08
Test Metrics
Method -
1 Involvement in Testing
4 Extent of Testing
3 Resources Consumed in Testing
20 Effectiveness of Testing
2 Assessment of Testing
The QAI Test Toolbox
Data Modeling Compliance Checkers
Boundary Value Analysis Control Flow Analysis
Capture/Playback Correctness Proofs
Cause-Effect Graphing Coverage Based Analysis
Change Control Trackers Data Dictionary
Checklists Decision Tables
Checkpoint Review Defect Trackers
Code Comparison Desk Checking
Compiler-based Analysis Equivalence Partitioning
Complexity-based Analysis Error Guessing
The QAI Test Toolbox
File Comparison Performance / Timing Analyzers
Flowcharts Population Analysis
Help Desk Trackers Risk Matrix
Inspections Scoring
Instrumentation Snapshots
Integrated Test Facility Symbolic Execution
Mapping System Logs
Model Animation Test Case Generator
Model Balancing Test Data Generator
Network Analyzers Test Scripts
The QAI Test Toolbox
Test Stubs and Harnesses
Test Suite Managers
Tracing
Walkthroughs
The QAI Test Toolbox
Boundary Analysis X X
Population Analysis X
Checklists X X
Test Condition Analysis
Sources -
◆ 1. Specification Decomposition
◆ 2. Population Analysis
◆ 4. Structural Analysis
◆ 5. Test Transactions
◆ Screens
◆ Field/Data Element
Worksheet 4
Identify Test Conditions
3. Test Transaction Types
Field Match / Merge
Record Stress
File Control
Relationships Attributes
Error States
Use (Outputs) Procedures
Search Control Flow
5. Structural Analysis
◆ …decision points...
◆ Equivalence Partitioning
◆ Decision Tables
◆ Code Coverage
Statement Coverage
Condition Coverage
Actor/Scene Dialog
Script Reuse
Expand Test Conditions
QAI Summary - Ten Key Test
Concepts
Use strategic test questions to set direction
Develop Test Objectives
Use a cross-functional “test team”
Prepare a test plan, then execute it
Utilize both verification and validation methods
Collect and analyze defects
Prepare test management reports
QAI Summary - Ten Key Test
Concepts
Make test efforts reusable
Feed the continuous improvement process with
information from testing
Continuously improve the process
Incorporating the Process
Models within Models
…Make them your own
10/14/08
Questio
ns?