Software Testing Standard Iso Iec Ieee 29119
ISO/IEC/IEEE 29119 Software Testing är, och kommer bli, en serie standarder som ska slå samman standarder som behandlar mjukvarutest.
Introduktion
Det finns som bekant en rad standarder som är intressanta när man pratar mjukvarutest. En av de mest kända är IEEE 829, som handlar om testdokumentation. Andra handlar om granskning (se till exempel Metod För Formell Granskning). Det finns även standarder för vokabulär (men även ISTQB tillhandahåller till exempel ordlistor, se sstb.se: [1]).
ISO/IEC/IEEE 29119 Software Testing är, och kommer bli, en serie standarder som ska slå samman de tidigare - vilket får mig att tänka på XKCD #927 Standards (se [2]) där man med lite humor bara ersätter en massa konkurrerande standarder med ännu fler konkurrerande standarder. Så är nog inte fallet nu - lyckligtvis så samarbetar ISO, IEC och IEEE om en gemensam standard.
De delar som är mer eller mindre klara är:
- Concepts & Definitions (Sep 2013)
- Test Processes (Sep 2013)
- Test Documentation (Sep 2013)
- Test Techniques (2014?)
- Keyword Driven Testing (2015?)
En introduktionsvideo av Stuart Reid finns på Youtube: [3]
Part 1 - Concepts & Definitions
De koncept och definitioner som tas upp i del 1 är bra för att få en samling begrepp inför de kommande delarna. Som ordlista är den ok, men dyr. Vill man bara ha en samling glosor tror jag man ska kolla in materialet från ISQTB istället.
Det som även är bra är att den tar upp olika ämnen - som till exempel Riskbaserad Testning. Men här måste jag väl påstå att man inte direkt kan använda standarden som mall i sitt dagliga arbete, snarare en kompass till vad man bör undersöka mer. Ämnen som behandlas är:
- Introduction to Software Testing
- Software Testing in an Organizational and Project Context
- Generic Testing Processes in the Software Life cycle
- Risk-based Testing
- Test Sub-process
- Test Practices
- Automation in Testing
- Defect Management
- Annex A:The Role of Testing in Verification and Validation
- Annex B: Metrics and Measures
- Appex C: Testing in Different Life Cycle Models
- Agile Development and Testing
- Sequential Development and Testing
- Evolutionary Development and Testing
Se även en sammanfattning på softwaretestingstandard.org: [4]
Part 2 - Test Processes
Den andra delen i standarden behandlar testprocesser (och gör ett bättre jobb än mina tankar om Agil Testprocess).
En grundtanke är att man kan se testprocesser som tre lager av processer som har underprocesser:
- Organizational Test Specifications (e.g. Organizational Test Policy, Organizational Test Strategy)
- Test Management
- Test Planning
- Test Monitoring & Control
- Test Completion
- Dynamic Testing
- Test Design & Implementation
- Test Environment setup & Maintenance
- Test Execution
- Test Incident Reporting
Se även en sammanfattning på softwaretestingstandard.org: [5]
Part 3 - Test Documentation
Här kommer IEEE 829 i en lite upphottad tappning. För många kanske IEEE 829 är extremt tung och de kan 29119-3 också vara, men man kan skräddarsy hur man använder den och bara använda vissa delar.
Den innehåller även extremt pedagogiska exempel i ett gäng Appendix, med exempel på hur dokumentationen kan se ut i en agilt organisation respektive mer traditionell. Det finns även färdiga mallar i slutet som beskriver vad som ska (eller bör) ingå i de olika dokumenten.
De policys, dokument och rapporter som beskrivs är:
- Organizational Test Process Documentation:
- Test Policy
- Organizational Test Strategy
- Test Management Process Documentation:
- Test Plan (including a Test Strategy)
- Test Status Report
- Test Completion Report
- Dynamic Test Process Documentation:
- Test Design Specification
- Test Case Specification
- Test Procedure Specification (försättsblad någon?)
- Test Data Requirements
- Test Data Readiness Report
- Test Environment Requirements
- Test Environment Readiness Report
- Actual Results
- Test Result
- Test Execution Log
- Test Incident Report
Jag gjorde ett tappert försök att visualisera hur de olika dokumenten händer ihop (en liknande bild finns i standarden):
Själva strategidokumentet innehåller delar som är gemensamma för alla subprocesser man använder för test (till exempel en generisk riskanalys), men kan innehålla delar för varje subprocess:
Se även en sammanfattning på softwaretestingstandard.org: [6]
Test Plan och Rapport
Jag gjorde nyligen en testplan och rapport som försökte följa 29119-3. Min kapitelindelning matchar inte helt den i standarden utan blev:
Test Plan
- Overview and Introduction
- Scope
- Context
- Projects and sub-projects
- Stakeholders
- Test Items
- Test Scope
- Assumptions and Constraints
- Testing Communication
- Risk Register
- Product Risks
- Project Risks
- Test Strategy
- Test Subprocesses
- Test Deliverables
- Test Design Techniques
- Test Completion Criteria
- Metrics to be Collected
- Test Data Requirements
- Test Environment Requirements
- Retesting and Regression Testing
- Suspension and resumption criteria
- Deviations from Test Strategy
- Testing Activities and Estimates
- Staffing
- Schedule
- References
- Glossary
- Change Log
- In the footer
- Prepared by
- Reviewed by
- Approved by
- Issued by
- Unique Document ID
- Document revision
Test Completion Report
- Overview and Introduction
- Scope
- Testing Performed
- Summary of Testing Performed
- Deviations from Planned Testing
- Test Completion Evaluation
- Factors that blocked Progress
- Test Measures
- Residual Risks
- Test Deliverables
- Reusable Test Assets
- Lessons Learned
- References
- Glossary
- Change Log
- Appendix A: Requirements Traceability
- Appendix B: Possible Future Extensions
- In the footer
- Prepared by
- Reviewed by
- Approved by
- Issued by
- Unique Document ID
- Document revision
Part 4 - Test Techniques
På sin hemsida listar 29119-gänget vilka testdesigntekniker som del 4 innehåller (se [7]). Listan är gedigen.
Test Design Techniques
- Specification-Based Techniques
- Equivalence Partitioning
- Classification Tree Method
- Boundary Value Analysis
- Syntax Testing
- Combinatorial Test Techniques
- All Combinations Testing
- Pair-Wise Testing
- Each Choice Testing
- Base Choice Testing
- Decision Table Testing
- Cause-Effect Graphing
- State Transition Testing
- Scenario Testing
- Use Case Testing
- Random Testing
- Structure-Based Techniques
- Statement Testing
- Branch Testing
- Decision Testing
- Branch Condition Testing
- Modified Condition Decision Coverage Testing
- Data Flow Testing
- All-Definitions Testing
- All-C-Uses Testing
- All-P-Uses Testing
- All-Uses Testing
- All-DU-Paths Testing
- Experience-Based Techniques
- Error Guessing
Se även softwaretestingstandard.org: [8]
Bilden från XKCD är ritad av Randall Munroe och kopierad enligt Creative Commons Attribution-NonCommercial 2.5 License - se detaljer på xkcd.com [9].
Denna sida tillhör Kategori Test