Fundamentos, estrategias, organización y estrategia general de pruebas de software

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