Comprehensive Review of Software Testing Techniques
170 likes | 255 Vues
Explore test processes, error types, FSM modeling, combinatorial designs, and test tools for continuous quality improvement in software testing. Covering test plan metrics, defect management, and more.
Comprehensive Review of Software Testing Techniques
E N D
Presentation Transcript
CS 49000-ST0 Software TestingSpring 2011Review Aditya P. Mathur Purdue University Last updated: April 26, 2011
Learning Objectives • Various test processes and continuous quality improvement • Types of errors and fault models • Methods of test generation from requirements • Behavior modeling using UML: Finite state machines (FSM) • Test generation from FSM models
Learning Objectives (contd) • Input space modeling using combinatorial designs • Combinatorial test generation • Test adequacy assessment using: control flow, data flow, and program mutations • The use of various test tools • Application of software testing techniques in commercial environments
Test processes and continuous quality improvement Test plan: Chapter 1.5 Test metrics: Chapter 1.6 Defect management: Chapter 1.9 Walkthroughs and inspection: Chapter 1.12 Test process models: Chapter 1.18.5
Types of errors and fault models Chapter 1.1
Methods of test generation from requirements Equivalence partitioning: Chapter 2.3 Boundary value analysis: Chapter 2.4
Behavior modeling using UML: Finite state machines (FSM) FSM basics: Chapter 3.2 Microsoft project AEC project: parsing
Test generation from FSM models Spec Explorer W-method: Chapter 3.6 State, transition, and switch covers: Chapter 3.9
Input space modeling using combinatorial designs Test configurations and modeling the input space: Chapter 4.1 Fault model: Chapter 4.3
Combinatorial test generation MOLS: 4.8 Covering arrays: 4.9, 4.10, 4.11
Test adequacy assessment using: control flow, data flow, and program mutations Basics: 6.1 Criteria based on control flow: 6.2 (excluded 6.2.7) Criteria based on data flow: 6.3, 6.4.1, 6.4.2, 6.4.3
The use of various test tools Unit testing: Achoo,JUnit, Pex/Moles, PyUnit Concurrency: ConTest Test automation: TestComplete Load and performance testing: JMeter GUI testing: Abbot, Guitar Combinatorial testing: AETG, FireEye Model based testing testing: Spec Explorer Coverage analysis: Corbertura Defect management: Bugzilla
Application of software testing techniques in commercial environments Some Spec Explorer Statistics [MS]: Team Size test cases 600 798 158 8178 100 100 60 164 40 40 30 900 20 629 18 3000 13 1900 10 150 10 60 8 28 AEC project Microsoft project Some Spec Explorer Statistics [Customers]: Team Size test cases 20 1282 12 250
What did we not cover [1]? Regression testing (Chapter 5) Mutation testing (for test adequacy and enhancement; Chapter 7) Test generation from statecharts Test generation from timed-automata for real-time systems Test generation from formal specification (e.g.; Z) Testing concurrent programs
What did we not cover [2]? Test process Test automation Error types and classification method
Final Examination Tuesday May 3. 8-10am. Smith 208 Part A: Multiple choice, comprehensive [Closed book/notes] Part B: Few questions (3 or 4) [Open book/notes] FSM-based test generation, Combinatorial designs, Test adequacy
Good luck! Best wishes!