Lecture 15 Test Process

advertisement
Lecture 15
Test Process
Outline
• Test Process
• Testing within Stages of Software Development
1
July 24, 2016
Test Process
• Many organizations postpone testing until end of development
• Waiting until the “last minute” compresses testing efforts
• Produces unreliable software
• Testers don’t have adequate resources
• Testing should be integrated from the beginning
2
July 24, 2016
Testing as Part of Development Process
• Incorporate test plans / procedures into development process
• Testing put into each phase of development
• Process agnostic
•
•
•
•
Agile
Waterfall
Spiral
...
• Testing should NOT be isolated into separate stages
3
July 24, 2016
Outline
• Test Process
• Testing within Stages of Software Development
4
July 24, 2016
Typical Stages of Development
•
•
•
•
•
•
•
•
Requirements analysis
System design
Intermediate design
Detailed design
Implementation
Integration
Deployment
Operation and Maintenance
5
July 24, 2016
Three Categories of Test Activies
• Test Action – testing the artifacts created at this stage
• Test Design – using elements to prepare final test set
• Test Influence – using test results to influence future stages
6
July 24, 2016
Requirements Analysis
• Complete description of external SW behavior
• Defines content / boundaries of SW system
Test Action
• Evaluate requirements
• Ensure requirements are correct, testable, and complete
• (Use requirements inspection and prototyping)
7
July 24, 2016
Requirements Analysis
Test Design
• Prepare for system testing and verification activities
• Write test requirements for software system
• Create a test plan for each stage (including scope / objective)
• Create a high-level plan
• Describe software support needed for each stage
8
July 24, 2016
Requirements Analysis
Test Influence
• Developing test scenarios may detect ambiguous requirements
• Provide feedback to help design testable code
9
July 24, 2016
System Design
• Partition requirements into hardware or software systems
• Build overall system overall architecture
Test Action
• Verify mapping between requirements and design
Test Design
• Prepare for acceptance and usability testing
• Create acceptance test plan / test requirements
10
July 24, 2016
System Design
Test Influence
• Influence design of user interface (usability tests)
• Usability tests on interface prototype should clarify customer’s
desires
11
July 24, 2016
Intermediate Design
• Software broken down into components and classes
• Design specifications written for each component / class
• (Many problem arise from mismatched interfaces)
Test Action
• Avoid mismatched interfaces
12
July 24, 2016
Intermediate Design
Test Design
• Write test plan for unit, integration, and system testing
• Refine unit / integration tests based on interfaces
• Test support tools for driver, stubs, measurements
Test Influence
• Influence detailed design
• CITO (class integration test order) should help determine this
13
July 24, 2016
Detailed Design
• Testers write subsystem specs and module pseudocode
Test Action
• Make sure all test materials are ready for testing when
modules are written
• Testers prepare for both unit and integration testing
• Refine test plans
• Generate test cases
• Write detailed test specs for integration testing
14
July 24, 2016
Detailed Design
Test Design
• Topic of course / book thus far!
Test Influence
• Influence the implementation and unit/integration testing
• (Level 4 testing?)
15
July 24, 2016
Implementation
• Starting writing / compiling classes and methods
Test Action
• Effective and efficient unit testing
• Testing based on test criterions used and test data generated
• Unit testing specified by unit test plan, criteria, tools, cases
Test Design
• Prepare for integration and system testing
16
July 24, 2016
Implementation
Test Influence
• Cheaper / easier to find bugs during unit testing
• Efficient unit testing ensures early integration
17
July 24, 2016
Integration
• CITO is a major challenge in software integration
Test Action
• Perform integration testing
• Start as soon as components pass unit tests
• Goal: find errors from unexpected component interactions
18
July 24, 2016
Deployment
• Software fully implemented!
Test Action
• system, acceptance, and usability testing
• System testing: based on previous criterions
• Acceptance tests: meets customer’s needs
• Usability tests: evaluate interface to software
19
July 24, 2016
Operation and Maintenance
• After release, users will find problems
• When software is changed, should be regression tested
20
July 24, 2016
Put Quality First
• Begin test activities EARLY!
• Manage test artifacts with version control
•
•
•
•
•
•
Test design documents
Test scripts
Test results
Inputs
Automated tools
Testing coverage and criteria
21
July 24, 2016
Download