Artigo do tipo Teórico
Recursos especiais neste artigo:
Artigo no estilo Mentoring.
Autores: Arthur Macedo, Daniel Almeida, Eliseu Torres, Nicolli Rios e Rodrigo Oliveira Spínola
Cenário
Ao projetar os testes de software, devemos definir entradas e saídas esperadas (casos de teste) e a ordem que elas devem ser utilizadas para exercitar o software (procedimentos de teste) em busca de falhas. Este artigo aborda a realização destas duas tarefas de forma prática. Para isso, será utilizada uma especificação de caso de uso para o cenário de um cadastro básico de pessoas jurídicas que considera operações de consulta, inclusão, alteração e edição.


Em que situação o tema é útil
A definição de casos e procedimentos de teste é essencial para todos aqueles que trabalham com testes de software. Ambos fazem parte da etapa de projeto dos testes e saber defini-los a partir de um caso de uso é pré-requisito para os profissionais que tenham interesse em atuar como analistas de teste.

A atividade de teste é o processo de executar um programa com a intenção de descobrir um erro. Assim, um bom caso de teste é aquele que tem uma elevada probabilidade de revelar um erro ainda não descoberto. Para ser eficaz, o teste deve ser cuidadosamente projetado. Testes irreproduzíveis ou improvisados devem ser evitados.

Ao executar os testes, o objetivo central deve ser o de maximizar a cobertura dos testes. Isso permitirá detectar a maior quantidade de erros possível, provenientes de defeitos que não foram identificados pelas revisões, dentro de determinados limites de custos e prazos. É importante também considerar que desenvolvedores não são as pessoas mais indicadas para testar seu próprio produto, testadores independentes são importantes.

A atividade de teste não pode mostrar a ausência de defeitos. Ao invés disso, ela só permite mostrar se defeitos de software estão presentes. Assim, ela busca refutar a assertiva de que o produto está correto. Para isso, ao realizarmos testes, buscamos determinar entradas que façam as saídas obtidas diferirem das saídas esperadas de acordo com a especificação. Isso torna o processo destrutivo, sob o ponto de vista psicológico, contrariamente às demais fases da engenharia de software, onde se constrói um produto.

Os testes envolvem, tipicamente, as seguintes atividades:

● Execução do software com entradas representativas para as futuras condições de operação;

● Comparação entre saídas produzidas e esperadas;

● Comparação entre estados resultantes e esperados;

● Mensuração de características de execução (memória e tempo consumidos, etc.).

Embora aparentemente simples, os testes são uma das atividades mais onerosas do desenvolvimento de software. Ela é reconhecidamente o último recurso para avaliação do produto antes de sua entrega ao usuário final. Além disso, ela é essencial para ascensão ao nível 3 do CMMI e Nível D do MPS e é considerada relevante para avaliação de produtos de software (ISO 9126, ISO 14598-5).

...
Quer ler esse conteúdo completo? Tenha acesso completo