Effective Methods of Software Testing

70
06/06/22 Quality Assurance Institute’s (QAI) Effective Methods of Software Testing A Perspective Seattle Area Software Quality Assurance Group John Napier, CSQE, CSTE BEST Consulting

Transcript of Effective Methods of Software Testing

Page 1: Effective Methods of Software Testing

04/08/23

Quality Assurance Institute’s (QAI)Effective Methods of Software Testing

A PerspectiveSeattle Area Software Quality Assurance Group

John Napier, CSQE, CSTEBEST Consulting

Page 2: Effective Methods of Software Testing

Purpose Value of Professional Associations Value of Software Certification programs QAI’s “Effective Methods of Software Testing”

Page 3: Effective Methods of Software Testing

Disclaimers

The opinions expressed in this presentation are my own, and not those of:

BEST Consulting The Boeing Company Quality Assurance Institute SASQAG

Page 4: Effective Methods of Software Testing

What its like in the trenches... No common language “In my last job…” No individual professional context No organizational professional context Can’t see the forest...

Page 5: Effective Methods of Software Testing

What’s a person to do? Establish a personal professional context Get to know “the forest” Help create a common language Help bring best practices into your organization

Page 6: Effective Methods of Software Testing

04/08/23

The Quality Assurance Institute

What’s QAI?

Page 7: Effective Methods of Software Testing

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 Certified Software Quality Engineer

Page 8: Effective Methods of Software Testing

QAI Certified Software Test Engineer (CSTE)

Mandatory Skills Test Planning Use of Test Tools Test Performance Defect Management

Optional Skills Risk Analysis Measurement Test Case Design Establishing and Maintaining

a Test Environment

Page 9: Effective Methods of Software Testing

ASQC* Certified Quality Software Engineer (CQSE)

Experience Professional Association Software Engineering Body of Knowledge

Exam Many other ASQC Certification Programs

*American Society for Quality Control

Page 10: Effective Methods of Software Testing

04/08/23

Effective Methods of Software Testing

Carolyn Fairbanks

Q-Star Consultants

10-14 March 1997

Seattle

Page 11: Effective Methods of Software Testing

04/08/23

Effective Methods of Software TestingThere are really only two issues

in software testing:

Requirements Organizational Culture

Page 12: Effective Methods of Software Testing

QAI Test Materials Organization Test Strategy Test Plan

Supporting Materials Metrics Test Toolbox - Techniques Test Conditions - Techniques Test Case Design - Techniques

Page 13: Effective Methods of Software Testing

Test Strategy Definition 1. Type of Project 2. Type of Software 3. When Testing will Occur 4. Critical Success Factors 5. Who will Conduct the Testing 6. Tradeoffs

Page 14: Effective Methods of Software Testing

1. Types of Project Traditional Client/Server Prototyping Object Oriented Purchased / Contracted

Page 15: Effective Methods of Software Testing

2. Types of SoftwareBatchProcess ControlGraphic User InterfaceObject OrientedProcedure ControlExpert SystemMulti-MediaAdvanced Math Models

Diagnostic SoftwareSensor and SignalSimulationDB ManagementData PresentationDecision AnalysisPattern & ImageComputer OperationsSoftware Development Tools

Page 16: Effective Methods of Software Testing

3. When will Testing Occur? Requirements Phase Activities Design Phase Activities Build Phase Activities Test Phase Activities Installation Phase Activities Maintenance Phase Activities

Page 17: Effective Methods of Software Testing

4. Critical Success FactorsCorrectnessAuthorizationData IntegrityAudit TrailContinuity of ProcessingService LevelsAccess Control

MethodologyReliabilityEase of UseMaintainablePortableCouplingPerformanceEase of Operations

Page 18: Effective Methods of Software Testing

Testing Concerns Matrix

Critical SuccessFactors Life Cycle Stages

Correctness

Requirements

Complete, Clear, Correct,

Testable, Feasible

Design

Etc

Page 19: Effective Methods of Software Testing

7. Tradeoffs (What can be given up?) Schedule Cost / Resources Scope Technology Quality / Critical Success Factors

Page 20: Effective Methods of Software Testing

04/08/23

Some QAI Philosophy

Test Life Cycle, Test Workbench

Page 21: Effective Methods of Software Testing

Testing Relationship Definitions -Testing Lifecycle Concept

Operational orBusiness Need

DefineRequirements

DesignSystem

BuildSystem

UnitTest

IntegrationTest

SystemTest

AcceptanceTest

Page 22: Effective Methods of Software Testing

Testing Relationship Definitions -Continuous Life Cycle Testing

Operational orBusiness Need

DefineRequirements

DesignSystem

BuildSystem

UnitTest

IntegrationTest

SystemTest

AcceptanceTest

Verify

Verify

Verify

Verify Validate

Validate

Validate

Validate

Page 23: Effective Methods of Software Testing

Testing Relationship Definitions -Test Support Activities

Operational orBusiness Need

DefineRequirements

DesignSystem

BuildSystem

UnitTest

IntegrationTest

SystemTest

AcceptanceTest

Verify

Verify

Verify

Verify Validate

Validate

Validate

ValidateTEST OBJECTIVES

TEST PLANNING

TEST EXECUTION(STATIC)

TEST EXECUTION(DYNAMIC) &TEST REPORTING

Page 24: Effective Methods of Software Testing

TestQualityControl

QAI Definitions - “Test Workbench” Concept

TestProcesses

Test Toolbox

TestMeasures

ValidatedTestResults

Problems

ProductsforTest

Page 25: Effective Methods of Software Testing

The QAI Test Process

1. Set Test Objectives2. Develop Test Plan3. Execute Tests4. Summarize and Report Results

Page 26: Effective Methods of Software Testing

Step 1 - Set Test Objectives Task 1 - Organize Test Team Task 2 - Perform Risk Assessment Task 3 - Set Test Objectives Task 4 - Quality Control

Page 27: Effective Methods of Software Testing

Set Test ObjectivesTask 1 - Organize Test Team

Define Test Responsibilities / Tasks Determine People to Perform Tasks

Worksheets 4,5

Page 28: Effective Methods of Software Testing

Set Test Objectives 2. Perform Risk Assessment

Dimensions of Risk Criticality / Mission Impact System Size, Scale and Complexity System Environment and Stability Reliability and Integrity Technology Integration

Impact of Failure

Likelihoodof

Failure

Simple or Complex Scoring Approach

Page 29: Effective Methods of Software Testing

Set Test Objectives 3. Set Test Objectives

Using: System Objectives Test Strategy Risk Score Analysis Team Assignments

Set Objectives Brainstorming Relate Objectives to Function / Output Relate Objectives to Events / System Input

Prioritize Each- Low Medium High

Worksheet 6

Page 30: Effective Methods of Software Testing

Set Test Objectives Quality Control

Objectives QC Checklist Objectives Incident Report (Change Request)

…lots of checklists!

Page 31: Effective Methods of Software Testing

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

Page 32: Effective Methods of Software Testing

Develop Test Plan1. Define Business Functions

Describe what the system should do …stands alone as an activity …is controllable …can be a transition …can be described by a process

Page 33: Effective Methods of Software Testing

Business Function Matrix

Function Description Evaluation Criteria

Worksheet 8

Page 34: Effective Methods of Software Testing

Develop Test Plan2. Define Structural Attributes

Reliability Efficiency Integrity Usability Maintainability

Testability Flexibility Portability Reusability Interoperability

Worksheet 9

Page 35: Effective Methods of Software Testing

Structural Attribute Matrix

Attribute Priority Evaluation CriteriaDescription

Page 36: Effective Methods of Software Testing

Develop Test Plan3. Define Tests

Using Test Objectives Worksheet Business Functions Worksheet Structural Attributes Worksheet

Define Tests Associate test factors, techniques and test types Associate evaluation criteria with techniques and types of

tests Determine type of test which satisfies each objective

Page 37: Effective Methods of Software Testing

Type of Test Techniques Functional

Requirements Regression Error Handling Manual Support Intersystems Control Parallel

Structural Stress Execution Recovery Operations Compliance (to process) Security

Page 38: Effective Methods of Software Testing

Test Data Sources Test Data / Test Desks Production Data Simulation / Prototyping Review / Confirmation Instrumentation / Tracing Test Script

Page 39: Effective Methods of Software Testing

Test Definition Each Test is defined in terms of:

Controls Inputs Outputs Procedures

...At a high level

Page 40: Effective Methods of Software Testing

Develop Test Plan4. Create Function / Test Matrix

TestsFunction

Test 1 Test 2 Ect.

Function #1

Function #2

25 17,30

5,7 45

Page 41: Effective Methods of Software Testing

Develop Test Plan5. Define Admin Test Requirements

Schedule Budget Resources Testing Materials Test Training Tests to be Conducted Defect Estimation

Worksheets 13,14

Page 42: Effective Methods of Software Testing

Develop Test Plan6. Formalize Test Plan

Section I - General Information Section 2 - Plan Section 3 - Specifications and Evaluation Section 4 - Test Description

See Test Plan Example

Page 43: Effective Methods of Software Testing

Develop Test Plan7. Test Plan Quality Control

Quality Control Checklist Test Plan Incident Report (Change Request)

…even more checklists!

Page 44: Effective Methods of Software Testing

Develop Test Plan8. Develop Unit Test Plan

Using: System Test Plan Program Initiation Document Program Design / Specification Documents

Develop Test Plan Administration Subfunction / Test Matrix Interface / Test Matrix

Worksheets 20,21,22

Page 45: Effective Methods of Software Testing

Develop Test Plan9. Unit Test Plan Quality Control

Checklists

Page 46: Effective Methods of Software Testing

Step 3 - Execute Tests Task 1 - Select Test Tools Task 2 - Develop Test Cases Task 3 - Execute Tests Task 4 - Quality Control

Page 47: Effective Methods of Software Testing

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

Page 48: Effective Methods of Software Testing

Execute TestsStep 1 - Select Test Tools

Using: System Test Plan Unit Test Plan Tool Selection Methodology

Page 49: Effective Methods of Software Testing

Execute TestsStep 2 - Develop Test Cases

Worksheet 23

Expected ResultTest Condition Test Procedures

Page 50: Effective Methods of Software Testing

Execute TestsStep 3 - Execute Tests

Test Activities Log Regression Testing

Full Partial

Worksheet 24

Page 51: Effective Methods of Software Testing

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 Test Defect List Test Defect Log

Worksheets 25,26,27,28

Page 52: Effective Methods of Software Testing

04/08/23

Supporting Material Metrics Toolbox Techniques Test Condition Analysis Test Design Analysis

Page 53: Effective Methods of Software Testing

Test Metrics

Method -

Goal - Question - Metric

Page 54: Effective Methods of Software Testing

QAI Recommend Test Metrics Defect Reports Requirements Implemented Backlog of Defects (Not Corrected) Status of -

Project, Tests, Schedule, Budget Selected Test Metrics

Page 55: Effective Methods of Software Testing

QAI Test Metrics Selection

Types General Subject

1 Involvement in Testing4 Extent of Testing3 Resources Consumed in Testing20 Effectiveness of Testing2 Assessment of Testing

Page 56: Effective Methods of Software Testing

The QAI Test Toolbox Data Modeling Boundary Value Analysis Capture/Playback Cause-Effect Graphing Change Control Trackers Checklists Checkpoint Review Code Comparison Compiler-based Analysis Complexity-based Analysis

Compliance Checkers Control Flow Analysis Correctness Proofs Coverage Based Analysis Data Dictionary Decision Tables Defect Trackers Desk Checking Equivalence Partitioning Error Guessing

Page 57: Effective Methods of Software Testing

The QAI Test Toolbox File Comparison Flowcharts Help Desk Trackers Inspections Instrumentation Integrated Test Facility Mapping Model Animation Model Balancing Network Analyzers

Performance / Timing Analyzers Population Analysis Risk Matrix Scoring Snapshots Symbolic Execution System Logs Test Case Generator Test Data Generator Test Scripts

Page 58: Effective Methods of Software Testing

The QAI Test Toolbox Test Stubs and Harnesses Test Suite Managers Tracing Walkthroughs

Page 59: Effective Methods of Software Testing

The QAI Test Toolbox

Test Tools

Boundary Analysis

Types of Functional andStructural Tests

Population Analysis

Checklists

X

X

X

X X

Page 60: Effective Methods of Software Testing

Test Condition Analysis Sources -

1. Specification Decomposition 2. Population Analysis 3. Business Process Analysis 4. Structural Analysis 5. Test Transactions

Test Condition - Expected Result - Test Process

Page 61: Effective Methods of Software Testing

Identify Test Conditions 1. System Specifications or Production Environment 2. Population Analysis

Files and Tables Screens Field/Data Element

Worksheet 4

Test Condition - Expected Result - Test Process

Page 62: Effective Methods of Software Testing

Identify Test Conditions

Field Record File Relationships Error Use (Outputs) Search

Match / Merge Stress Control Attributes States Procedures Control Flow

3. Test Transaction Types

Test Condition - Expected Result - Test Process

Page 63: Effective Methods of Software Testing

Identify Test Conditions 4. Business Cases

…business scenarios… 5. Structural Analysis

…decision points...

Test Condition - Expected Result - Test Process

Page 64: Effective Methods of Software Testing

Design Test Cases Design Test Cases Develop Scripts / Sets

Expand Test Conditions

Page 65: Effective Methods of Software Testing

Design Test Cases Expand Conditions into Test Cases using -

Boundary Value Analysis Equivalence Partitioning Decision Tables Code Coverage

Statement Coverage Condition Coverage

Expand Test Conditions

Page 66: Effective Methods of Software Testing

Design Test Cases

Test Scripts

Actor/Scene Dialog

Detailed Test Script Descriptions

Script Reuse

…Sam scowlsat the report...

“Where did thiscome from?”

Expand Test Conditions

Page 67: Effective Methods of Software Testing

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

Page 68: Effective Methods of Software Testing

QAI Summary - Ten Key Test Concepts Make test efforts reusable Feed the continuous improvement process with

information from testing Continuously improve the process

Page 69: Effective Methods of Software Testing

04/08/23

Incorporating the Process

Models within Models

…Make them your own

Page 70: Effective Methods of Software Testing

Questions?