segunda-feira, 25 de abril de 2011

Test Case Lifecycle (Ciclo de Vida de um Caso de Teste)

Eu diria que, como tudo em desenvolvimento de software, o Caso de Teste também possui um Ciclo de Vida. Estas fases se dividem em (OK, não sou muito bom em criar nomes): Business Test Analysis, Macro Test Analysis, Test Case Analysis/Implementation, Test Execution, Test Refactoring e Test Maintenance.

Só para questões de entendimento, não extrai essas informações de nenhum livro, decidi detalhar o que entendo por criação de casos de teste. Os termos que eu costumo utilizar em todos os meus posts são do ISTQB, que, na minha opinião, é a certificação mais consolidada no mercado global (e nacional) de testes.

Diferente de antigamente, hoje as pessoas (ou a maior parte delas) já tem noção da importância dos testes e dos malefícios em abdicá-lo no seu processo de desenvolvimento de software (seja este qual for). E isso, é graças ao esforço praticado pela comunidade de testes no Brasil e no mundo.

Todavia, às vezes nem nós temos consciência do quão complexa pode ser uma "simples" atividade de criar casos de teste. Sendo assim, eu definiria seis fases primordiais:

Business Test Analysis: Visto de maneira mais simples, essa fase do projeto é a simples presença do responsável pelos Testes do projeto na reunião de requisitos, para uma explicação geral sobre o que é a proposta do sistema/componente a ser desenvolvido e como estes serão testados. De forma mais profunda, é nessa reunião que o Analista de Testes vai avaliar quais são requisitos do sistema que estão de acordo com as normas da ISO 9126. Por exemplo, mais obviamente, as funcionalidades do sistema, qual o nível de acurácia, se aderente às leis locais; questões de usabilidade, questões de desempenho, testabilidade (muito importante), portabilidade e outros.

Macro Test Analysis: Definidos os requisitos é o momento de decidir qual estratégia e planejamento que serão utilizados para os testes naquela release, se vão utilizar testes ágeis/exploratórios, se vão utilizar testes baseados em riscos, ou baseados em especificação. É a etapa de testes onde, eu diria, que vai definir a abordagem utilizada e detalhar os cenários de testes (utilizando Test Charters ou Test Conditions - de acordo com a definição do ISTQB).

Test Analysis/Implementation: Essa fase pode ser integrada à próxima fase (Test Execution) se for um projeto ágil. Mas de maneira geral, é a fase onde, com a definição macro dos testes no sistema, as técnicas serão utilizadas e as informações sobre o projeto serão refinadas (lembrando que, uma das atividades de testes é dar informações ao projeto). É nessa fase onde, num projeto iterativo, também serão definidos quais os cenários/casos de teste que serão utilizados nas próximas releases, quais serão selecionados para a fase de testes de regressão, e outros.

Test Execution: Essa fase continua sendo a fase de execução dos casos de teste, reporte de defeitos mas também é importante lembrar nessa fase, que os desvios nos casos de teste devem ser anotados, para, numa fase posterior, serem corrigidos.

Test Refactoring: Depois dos casos de teste executados e finalizados, é muito importante que, com intuito de garantir a longevidade do projeto, esses casos de teste sejam corrigidos e adaptados ao sistema da forma como ele é implementado de fato. Só assim os casos de teste vão espelhando a realidade do sistema a médio prazo, tornando também os Analistas de Teste mais especializados no sistema com o passar do tempo.

Test Maintenance: Eu diria que essa fase está presente em todo o ciclo de vida dos casos de teste. Na verdade eu deveria utilizar a expressão "artefatos de teste", sendo assim, mais generalista e adaptável para qualquer contexto. Bem como o sistema muda o tempo todo (independente da metodologia) os artefatos de teste também devem ser atualizados, garantindo assim a qualidade também dos artefatos de teste.

Só para deixar claro que eu não estou reinventando a roda. Sendo assim, provavelmente ideia do Testcase Lifecycle tenha ficado um pouco nebulosa. O objetivo é criar mais posts detalhando e exemplificando cada fase dos mesmos. Ficando assim, mais claro.

Um comentário:

  1. Por que você nunca mais postou nada?
    estou criando um blog sobre C e C++, depois quero algumas dicas, sei que vv esta eferrujado em nestas linguagens, mais mesmo enferrujado sei que vc tem boas idéias.
    não sei de onde vc tira mais sei que tem.

    ResponderExcluir