Carnegie Mellon University Notice This video and all related information and materials (“materials”) are owned by Carnegie Mellon University. These materials are provided on an “as-is” “as available” basis without any warranties and solely for your personal viewing and use. You agree that Carnegie Mellon is not liable with respect to any materials received by you as a result of viewing the video, or using referenced websites, and/or for any consequences or the use by you of such materials. By viewing, downloading, and/or using this video and related materials, you agree that you have read and agree to our terms of use (www.sei.cmu.edu/legal/). © 2015 Carnegie Mellon University. A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 1 Copyright 2015 Carnegie Mellon University This material is based upon work funded and supported by the Department of Defense under Contract No. FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the United States Department of Defense. NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN “AS-IS” BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. This material has been approved for public release and unlimited distribution except as restricted below. This material may be reproduced in its entirety, without modification, and freely distributed in written or electronic form without requesting formal permission. Permission is required for any other use. Requests for permission should be directed to the Software Engineering Institute at permission@sei.cmu.edu. Carnegie Mellon® is registered in the U.S. Patent and Trademark Office by Carnegie Mellon University. DM-0002727 A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 2 A Taxonomy of Testing Types Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Donald G. Firesmith © 2015 Carnegie Mellon University Topics Relevant Testing Challenges Goals of Presentation What is Testing? Presentation Scope Testing Types Conclusion A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 4 Relevant Testing Challenges A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 5 Relevant Testing Challenges Many testers are only aware of a minority of types of testing, let alone know how to perform them. Test managers and developers are aware of even fewer testing types. The test strategies, project test plans, and test sections of system/software development plans tend to identify only a very small number of types of testing (e.g., unit, integration, system, and acceptance testing). • Not planned → Not performed A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 6 Goals of the Presentation A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 7 Goals of the Presentation Make it clear that: • There are many different types of testing. • Testing is a complex discipline with its own technical jargon. • There is a lot of overlap between different classes of testing types. • Think multiple classification (object-oriented design) or multiple inheritance (object-oriented programming). Get you to take a look at your: • Test strategies and test plans and ask yourselves “Are they sufficiently complete?” • Testers and other testing stakeholders and ask yourselves “Do they need additional training in testing types. A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 8 Polling Question 1 How many different types of testing do you typically use on a project? O 1-5 O 6-10 O 11-15 O 16+ A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 9 What is Testing? A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 10 What is Testing? Testing The execution of an Object Under Test (OUT) under specific preconditions with specific stimuli so that its actual behavior can be compared with its expected or required behavior • Preconditions: pretest mode, states, stored data, or external conditions • Stimuli: - Calls, commands, and messages (control flows) - Data inputs (data flows) - Trigger events such as state changes and temporal events • Actual Behavior: - During Test: – Calls, commands, and messages (control flows) – Data outputs (data flows) - Postconditions: post-test mode, states, stored data, or external conditions A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 11 Presentation Scope A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 12 Presentation Scope Test In Scope Legend Verification and Validation (V&V) Methods Quality Control (QC) Static Evaluation Dynamic Other T&E Analysis Static Analysis Dynamic Analysis Demonstration Desk Checking “Inspection” Inspection Certification Review Peer Review Reuse Warantee WalkThrough Formal Review A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 13 The Taxonomy of Testing Types A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 14 Types of Testing A type of testing is: • A specific way to perform testing • A class or subclass of testing • Much narrower in scope than a testing paradigm There are relationships between the various types of testing. Most testers know: • A lot about a few types of testing • A little about some additional types of testing • Very little about a sizable number of testing types A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 15 Polling Question 2 Have you ever seen a taxonomy of testing types (i.e., a hierarchical categorization of different ways to test)? O Yes O No O Not Sure A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 16 Types of Testing What-Based Test Types (What Gets Tested) Object Under Test (OUT)-Based Test Types Domain-Based Test Types Temporal-Order-Based Test Types 16 Categories of Testing Types Answering the 5W+2H Questions: • What? • When? • Where? • Who? • Why? • How? • How Well? These supertypes are not disjoint (think multiple inheritance)! When-Based Test Types (When Testing Occurs) Lifecycle-Based Test Types Phase-Based Test Types Built-In-Test (BIT) Types Where-Based Test Types (Why Testing Occurs) Organization-Location-Based Test Types Physical-Location-Based Test Types Collaboration-Based Test Types Test Types Who-Based Test Types (Who Does Testing) Organization-Based Test Types Role-Based Test Types Why-Based Test Types (Why Testing Occurs) Driver-Based Test Types Reason-Based Test Types Automation-Based Test Types How-Based Test Types (How Testing is Performed Level-of-Scripting-Based Test Types Technique-Based Test Types How-Well-Based Test Types (Quality Verified) A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University Quality-Characteristic-Based Test Types 17 Types of Testing WHAT is Tested A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 18 What: by Object Under Test (OUT) Testing What-Based Testing OUT-Based Testing Model Testing Hardware Testing Software Testing System Testing Data Center Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University Tool/Environment Testing 19 What: by Object Under Test (OUT) – Model Testing Testing What-Based Testing OUT-Based Testing Model Testing Requirements Model Testing Architecture Model Testing Design Model Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 20 What: by Object Under Test (OUT) – Hardware Testing Testing What-Based Testing OUT-Based Testing Hardware Testing Continuity Testing Hardware Stress Testing Highly Accelerated Life Testing (HALT) HW Qualification Testing Power-off Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 21 What: by Object Under Test (OUT) – Software Testing Testing What-Based Testing OUT-Based Testing Software Testing SW Unit [Component] Testing SW Integration Testing SW Application Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 22 What: by Object Under Test (OUT) – System Testing Testing What-Based Testing OUT-Based Testing Hardware-in-the-Loop (HIL) Testing System Testing Subsystem Testing System Integration Testing System Testing SoS Integration Testing SoS Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University Human-in-the-Loop (HIL) Testing Processor-in-the-Loop (PIL) Testing Software-in-the-Loop (SIL) Testing 23 What: by Object Under Test (OUT) – Data Center Testing Testing What-Based Testing OUT-Based Testing Data Center Testing Configuration Testing Failover and Restore Testing Integrated System Testing (IST) Network Traffic Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 24 What: by Object Under Test (OUT) – Tool / Environment Testing Testing What-Based Testing OUT-Based Testing Tool/Environment Testing Development Tool Testing Development Environment Testing Test Tool Testing Test Environment Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 25 What: by Domain Testing What-Based Testing Domain-Based Testing Domain-Independent Testing Many Types of DomainIndependent Testing Domain-Specific Testing Crash Testing Exhaust Emissions Testing Flight Testing Live Fire Testing Sea Trials Wind Tunnel Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 26 Types of Testing WHEN Testing Occurs A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 27 When: by Temporal Order Testing When-Based Testing Order-Based Testing Order-By-Direction Testing Bottom-Up Testing Top-Down Testing Outside-In Testing Order-By-Component Testing FeatureBased Testing Layer-Based Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University SubsystemBased Testing 28 When: by Lifecycle Testing When-Based Testing Lifecycle-Based Testing Waterfall Testing At-The-End Testing Incremental Testing V-Model Testing Continuous Testing (CT) Agile Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University DevOps Testing 29 When: by Phase Testing When-Based Testing Phase-Based Testing Developmental Testing (DT) Acceptance Testing (AT) Many Types of Developmental Testing Business Acceptance Testing (BAT) Customer Acceptance Testing (CAT) Contract(ual) Acceptance Testing (CAT) Beware of Synonyms and Almost Synonyms! Operational Testing (OT) Operational Effectiveness Testing Initial Operational Testing (IOT) Operational Suitability Testing Follow-on Operational Testing (FOT) Data Center Testing Factory Acceptance Testing (FAT) Qualification Operational Testing (QOT) Operational Acceptance Testing (OAT) Production Acceptance Testing (PAT) Regulation Acceptance Testing (RAT) Site Acceptance Testing (SAT) User Acceptance Testing (UAT) A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 30 When: by BIT Execution Time Testing When-Based Testing Built-In Testing (BIT) Power-Up Built-In Testing (PupBIT) Interrupt-driven Built-In Testing (IBIT) Ongoing Built-In Testing (OBIT) Self-Testing via Assertion Checking User-initiated Built-In Testing (UBIT) Periodic Built-In Testing (PBIT) Self-Testing via Prognostics and Health Management (PHM) Subsystem Shutdown Built-In Testing (SBIT) Self-Testing via Heartbeat A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 31 Types of Testing WHY Testing is Being Performed A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 32 Why: by Driver Testing Why-Based Testing Driver-Based Testing RegulatoryCompliance Testing (tests compliance) Validates System Complies with Laws or Regulations NeedsDriven Testing (tests why) Verifies System Meets Stakeholder Needs Requirements-Driven Testing (tests what + how-well) ArchitectureDriven Testing (tests how) Verifies System Meets System Requirements Verifies System Conforms to Architecture A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University Design-Driven Testing (tests how) Verifies System Conforms to Design 33 Why: by Reason Testing Why-Based Testing Reason-Based Testing Smoke Testing Reuse Testing Initial Testing COTS Testing Open Source Testing Legacy Testing Retesting Regression Testing Partial Regression Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University Error Seeding Complete Regression Testing 34 Types of Testing WHO Performs Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 35 Who: by Collaboration Testing Who-Based Testing Collaboration-Based Testing Individual Testing Group Testing Buddy Testing Flash Mob Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University Pair Testing 36 Who: by Organization Testing Who-Based Testing Organization-Based Testing Development Organization Testing Prime Contractor Testing Subcontractor Testing Acquisition Organization Testing COTS Vendor Testing Independent Test Organization Testing Operations Organization Testing DT Organization Testing OT Organization Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University User Organization Testing 37 Polling Question 3 Who performs testing on your projects? Check all that apply. □ Project-internal Testers □ Independent Testers □ Developers □ Specialty Engineers (e.g., performance, reliability, safety, security, human factors) □ Quality Engineers □ Others A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 38 Who: by Role Testing Who-Based Testing Role-Based Testing Operator Testing Tester Testing Developer Testing Requirements Engineer Testing Alpha Tester Testing Architect Testing Embeded Tester Testing Programmer Testing Human Factors Engineer Testing Independent Tester Testing Buddy Testing Pair Testing Database Admin Testing Network Admin Testing Sys Admin Testing Safety Engineer Testing User Testing Beta Tester Testing User as Tester Testing Closed Beta Testing Open Beta Testing Security Engineer Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 39 Types of Testing WHERE Testing is Performed A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 40 Where: by Organizational Location Testing Where-Based Testing Organizational-Location-Based Testing Insourced Testing Outsourced Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 41 Where: by Physical Location Testing Where-Based Testing Physical-Location-Based Testing Cloud Testing Distributed Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University Local Testing 42 Types of Testing HOW Testing is Performed A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 43 How: by Level of Automation Testing How-Based Testing Level-of-Automation-Based Testing Manual Testing Automated Testing - Test Script Generation - Test Data Generation - Test Script Execution - Test Report Generation Record-Playback Testing Script-Based Testing Data-Driven Testing Action-Keyword Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University Model-Based Testing 44 How: by Level of Scripting Testing How-Based Testing Level-of-Scripting-Based Testing Scripted Testing Unscripted Testing Exploratory Testing Monkey Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 45 How: by Technique Testing How-Based Testing Test-Technique-Based Testing Blackbox Testing Graybox Testing Whitebox Testing PatternsBased Testing ExperienceBased Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University Random Testing (Cat on the Keyboard) 46 How: by Technique - Blackbox Testing Testing How-Based Testing Test-Technique-Based Testing Blackbox Testing Cause and Effect Testing Classification Tree Testing Combinatorial Testing Decision Table Testing End-to-End Testing Manual Procedure Testing Requirements Testing Scenario Testing Syntax Testing Risk-Based Testing State-Based Testing User Interface Navigation Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 47 How: by Technique - Graybox Testing Testing How-Based Testing Test-Technique-Based Testing Graybox Testing Boundary Value Testing Equivalence Class Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 48 How: by Technique - Whitebox Testing Testing How-Based Testing Test-Technique-Based Testing Whitebox Testing Data Flow Testing All Definitions Testing Control Flow Testing All Uses Testing Branch Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University Condition Testing Statement Testing 49 How: by Technique Testing - ExperienceBased Testing How-Based Testing Test-Technique-Based Testing Experience-Based Testing Bug Hunt Testing Error Guessing Testing Exploratory Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University Galumphing 50 How: by Technique - Random Testing Testing How-Based Testing Test-Technique-Based Testing Random Testing (Cat on the Keyboard) Fuzz Testing Monkey Testing Shoe Testing Stuck Key Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 51 Types of Testing HOW WELL Object Under Test Functions A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 52 How Well: by Quality Characteristic Testing How-Well-Based Testing Quality-Characteristic-Based Testing by Quality Characteristic Capacity Testing Based on the associated quality characteristic and its associated quality attributes: • Uncover related defects • Determine level of quality Compatibility Testing Backwards Compatibility Testing Configuration Testing Infrastructure Compatibility Testing Consistency Testing Mobile Testing Correctness Testing Data Migration Testing Flexibility Testing Internationalization Testing Functionality Testing PersonalizationTesting Interoperability Testing Performance Testing Reliability Testing Robustness Testing Safety Testing Scalability Testing Security Testing Usability Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 53 How Well: by Quality – Capacity Testing Testing How-Well-Based Testing Quality-Characteristic-Based Testing Capacity Testing Load Testing Stress Testing Volume Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 54 How Well: by Quality – Reliability Testing Testing How-Well-Based Testing Quality-Characteristic-Based Testing Reliability Testing Endurance (Stability) Testing Reliability Enhancement Testing Reliability Growth Testing Reliability Mechanism Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 55 How Well: by Quality – Robustness Testing Testing How-Well-Based Testing Communication Error Testing Quality-Characteristic-Based Testing Hardware Error Testing Human Error Testing Robustness Testing Software Error Testing Error Tolerance Testing System Error Testing Fault Tolerance Testing Fault Injection Testing Failure Tolerance Testing Failover and Recovery Testing Environmental Tolerance Testing Acceleration Tolerance Testing Acoustic Tolerance Testing Electromagnetic Compatibility (EMC) Tolerance Testing Pressure/Leakage Tolerance Testing Pressure Cycling Tolerance Testing Radiation Tolerance Testing Shock/Drop Tolerance Testing Temperature Tolerance Testing Temperature Cycling Tolerance Testing Vacuum Tolerance Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 56 How Well: by Quality – Security Testing Testing How-Well-Based Testing Quality-Characteristic-Based Testing Security Testing Access Control Testing Anti-Spoofing Testing Anti-Tamper Testing EMSEC Testing Encryption Testing Infrastructure Testing Penetration Testing Blue Team Testing Red Team Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 57 How Well: by Quality – Usability Testing Testing How-Well-Based Testing Quality-Characteristic-Based Testing Usability Testing A/B Testing Accessibility Testing Alpha Testing Beta Testing Content Usage Testing Closed Beta Testing Open Beta Testing (Flash) Mob Testing A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 58 Conclusion A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 59 Conclusion Most systems require quite a few different types of testing. Most testers are not aware of the majority of the different types of testing. • If you are not aware that it exists, then you don’t know whether you need it. These types of testing can be organized into a taxonomy by the 5W + 2H questions. This taxonomy has several uses: • Ensure the test strategy is sufficiently complete with no important type of testing overlooked. • Organize testing types to make them and their relationships more understandable. • Augment test training materials. • Help categorize and understand limitations of testing tools. A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 60 A Taxonomy of Testing Types SEI Webinar © 2015 Carnegie Mellon University 61