Fundamentos, estrategias, organización y estrategia general de pruebas de software
Introduction to Software Testing Strategies
Overview of Software Testing
- The lesson introduces software testing strategies, focusing on definitions and general approaches.
- Software testing is defined as a process involving all activities in the software lifecycle, both static and dynamic, aimed at ensuring products meet specified requirements.
Key Concepts in Software Testing
- Errors: Mistakes made by individuals that lead to incorrect results during development stages.
- Defects: Issues arising from errors that cause software to malfunction; these are identified as failures during usage.
- Test Cases: A set of input values, preconditions, execution steps, expected results, and postconditions designed for specific objectives or requirements.
Types of Testing
Functional vs. Non-functional Testing
- Functional Testing: Focuses on identifying discrepancies between actual functionality and defined requirements.
- Non-functional Testing: Verifies non-functional requirements such as performance, usability, reliability, and portability.
Levels of Testing
- Unit Tests: Aim to detect errors within individual components or algorithms.
- Integration Tests: Identify issues in interfaces and interactions between components.
- System Tests: Validate that the software meets client-defined requirements.
- Acceptance Tests: Conducted often by clients to assess system implementation and user acceptance.
Verification vs. Validation
Distinction Between Verification and Validation
- Verification: Ensures quality through activities confirming if the product is built correctly (i.e., does it meet specifications?).
- Validation: Confirms whether the right product has been built (i.e., does it fulfill user needs?).
Testing Strategy Development
Components of a Test Strategy
- A test strategy outlines levels of testing for projects including necessary resources and timelines.
Roles in the Testing Process
- Developer/Programmer: Implements requirements into code based on documentation received.
- Test Analyst: Translates requirements into test cases and prepares data sets for execution.
- Tester: Executes test cases while generating reports on incidents encountered.
- Test Lead: Defines overall testing strategy while providing necessary resources for effective execution.
General Strategy Context
Spiral Model Approach
- Unit tests begin at the core of the spiral focusing on individual units before progressing outward towards integration tests which focus on architecture design.
- As one moves outward through iterations, validation tests ensure established requirements align with constructed software leading finally to system-wide evaluations.
Model B Framework