Ideia principal: O teste de classe de equivalência (ECT) pode ser categorizado em vários tipos, cada um adaptado a diferentes necessidades de teste e suposições sobre falhas do sistema, aumentando a flexibilidade e a profundidade das estratégias de teste.

**Conteúdo

  • Testes normais (somente positivos) vs. testes robustos (positivos e negativos)

    • Testes normais: concentram-se apenas em classes de entrada válidas que devem produzir o comportamento correto, garantindo que o sistema funcione como pretendido em condições normais.
    • Teste robusto: Amplia o teste para incluir classes de entrada inválidas, testando como o sistema lida com entradas inesperadas ou errôneas. Essa abordagem é fundamental para verificar a resiliência do sistema e o tratamento de erros.
  • Suposição de falha única (SFA) vs. modelo sem falha única:

    • Modelo de suposição de falha única: Opera sob a premissa de que uma única falha será responsável por qualquer falha, o que leva a casos de teste mais simples e em menor número, com foco em cenários de falhas prováveis.
    • Modelo sem falha única: Não pressupõe que as falhas ocorram isoladamente. Esse modelo defende o teste de combinações de entradas que podem interagir para causar falhas, resultando em testes mais complexos e abrangentes.
  • Testes normais fracos e normais fortes

    • Teste normal fraco: Utiliza um conjunto mínimo de casos de teste, geralmente selecionando um representante de cada classe de equivalência. Esse método é eficiente, mas pode perder interações entre as classes.
    • Teste normal forte: Testa todas as combinações de representantes de todas as classes de equivalência válidas, garantindo cobertura completa e testes de interação, embora com custo e complexidade mais altos.
  • Testes de robustez fraca e robustez forte

    • Teste de robustez fraca: Inclui testes para um representante de cada classe válida e pelo menos uma classe inválida, testando o tratamento básico de erros sem a exploração extensiva de combinações de entrada inválidas.
    • Teste de robustez forte: Envolve testes exaustivos de todas as combinações de entradas válidas e inválidas, com o objetivo de descobrir condições de falha complexas e garantir que o sistema possa lidar com todas as formas de entrada errônea de forma robusta.

Atomic Note: Types of Equivalence Class Testing (ECT)

Title: Overview of Types of Equivalence Class Testing

Main Idea: Equivalence Class Testing (ECT) can be categorized into several types, each tailored to different testing needs and assumptions about system faults, enhancing the flexibility and depth of testing strategies.

Content:

  • Normal (Positive Only) vs. Robust (Positive and Negative) Testing:

    • Normal Testing: Focuses solely on valid input classes expected to produce correct behavior, ensuring the system operates as intended under normal conditions.
    • Robust Testing: Extends testing to include invalid input classes, testing how the system handles unexpected or erroneous inputs. This approach is crucial for verifying system resilience and error handling.
  • Single Fault Assumption (SFA) vs. No Single Fault Model:

    • Single Fault Assumption Model: Operates under the premise that a single fault will be responsible for any failure, leading to simpler and fewer test cases focused on likely fault scenarios.
    • No Single Fault Model: Does not assume that faults occur in isolation. This model advocates for testing combinations of inputs that might interact to cause failures, resulting in more complex and comprehensive testing.
  • Weak Normal and Strong Normal Testing:

    • Weak Normal Testing: Utilizes a minimal set of test cases, typically selecting one representative from each equivalence class. This method is efficient but may miss interactions between classes.
    • Strong Normal Testing: Tests all combinations of representatives from all valid equivalence classes, ensuring thorough coverage and interaction testing, albeit at a higher cost and complexity.
  • Weak Robust and Strong Robust Testing:

    • Weak Robust Testing: Includes tests for one representative from each valid class and at least one invalid class, testing basic error handling without extensive exploration of invalid input combinations.
    • Strong Robust Testing: Involves exhaustive testing of all combinations of both valid and invalid inputs, aiming to uncover complex fault conditions and ensure the system can handle all forms of erroneous input robustly.

Context & Linkage:

  • This note is informed by the detailed classification provided in the “Types of Equivalence Class Testing” section from the slides used in the second class on Software Testing and Quality, alongside theoretical foundations from “Introduction to Software Testing” by Ammann and Offutt.
  • Related Notes: Can be linked to specific methodologies for designing test cases within each testing type, practical examples illustrating the application of each type in industry, and discussions on choosing the appropriate testing type based on project requirements and risk assessment.

This atomic note describes the various types of Equivalence Class Testing, highlighting how each type caters to different aspects of system functionality and fault tolerance, thereby providing a structured approach to improving software reliability and robustness through targeted testing strategies.