Um Modelo para Elaboração de Cenários e Casos de Teste

A especificação de cenários e casos de teste é uma das atividades mais abrangentes entre os analistas de teste.

Existem dezenas de técnicas de especificar casos de teste e cenários de teste, algumas baseadas em casos de uso (como essa), outras baseadas em engenharia reversa, outras em componentes visuais (tela) e assim por diante.

A pedido de um leitor do meu blog, o Heiber, da cidade de Bogotá na Colômbia, que faz um esforço para entender meus textos “mediamente” elaborados em português e um esforço possivelmente maior para conversar comigo em espanhol, vou disponibilizar um rascunho de uma das técnicas que uso para modelar cenários e casos de teste (ou casos de prueblas em espanhol).

Para isso vamos imaginar um típico caso de uso, bem simples. Digamos que ele possui algumas regras, um fluxo principal, alguns alternativos, outros de exceção e pontos de extensão. A primeira coisa a fazer, supondo que o caso de uso já tenha sido aprovado em revisões e outros procedimentos para garantir que esteja preparado para ser implementado, é ler atenciosamente o caso de uso, tentando entender bem o contexto e seus objetivos. Em seguida, criar um desenho dos fluxos que esse caso de uso possui, bem abrangente, se possível com todos os fluxos desenhados no mesmo lugar, como um mapa mundi do caso de uso. Para isso é recomendável usar um diagrama de atividades disponível em qualquer ferramenta case open source na internet, mas em qualquer situação, pode ser feito no “papel de pão mesmo”.
Nesse momento temos algo mais ou menos como a figura abaixo:

Esse “esqueleto” nos da uma idéia um pouco próxima do que precisamos para mapear os casos de teste, mas ainda é insuficiente para dizer o que temos de cobertura com as regras de negócio vinculadas ao caso de uso.

Existe uma prática muito comum que é criar um caso de teste para cada regra do caso de uso, que inclusive é a mais recomendada em casos de sistemas críticos onde temos muitas horas para especificar e testar, mas, muitas vezes temos de usar uma técnicas chamada “pair wise” para especificar nossos casos de teste. Nesse exemplo, os cenários de teste permitem que os dois modelos sejam aplicados, comum caso de teste por regra ou tendo em um único fluxo, várias regras:

*Supondo que a regra R06 foi cancelada

O diagrama acima nos mostra os vários caminhos possíveis para o mesmo caso de uso. É importante que nenhuma regra possa modificar o fluxo do caso de uso. Regras com condições como “Se . . . então . . .  senão. . .” podem ser muito prejudiciais aos casos de uso, escondendo a complexidade e induzindo a modelagens incorretas.

Agora vamos dar um nome para cada um dos cenários, baseando em seu significado no caso de uso:

Com o desenho acima podemos entender melhor cada cenário e seu fluxo. Ainda podemos ver que cenários podem ser combinados resultando em novos cenários, como por exemplo, o FA02 que pode continuar no FA03 ou pode voltar para o FP.

Por ultimo, consolidamos as duas visões e “voilà“,  temos boa parte do que precisamos para escrever bons casos de teste.

A partir do desenho acima já podemos especificar vários casos de teste, com entradas diferentes e saídas diferentes, com validações para cada uma das regras ou para múltiplas regras. A configuração daqui para frente, depende muito do nível de detalhamento que será usado, mas a rastreabilidade continua sendo a mesma:

{N Procedimentos**, Entradas e Saídas} ∈ {1 Caso de Teste}
{N Casos de Teste} ∈ {1 Cenário de Teste}
{N Cenários de Teste} ∈ {1 Caso de Uso}
*∈ = Pertence

**O conceito de procedimentos de teste é um dos mais confusos. No dia a dia eu uso ele para chamar o passo a passo dos casos de teste.

O desenho acima foi feito com caráter ilustrativo e para isso foi usado o MS Power Point, mas eu recomendo a utilização de ferramentas apropriadas como o IBM – Rational Software Architect ou o Enterprise Architecture.

Desenhar os cenários e casos de teste é uma coisa que fazemos mesmo que mentalmente quando especificamos, mas é muito importante ter um esboço físico dessa atividade, para perceber falhas, minimizar riscos e compreender melhor o que será testado.

Espero que esse post possa ajudar pessoas com a mesma dúvida do nosso amigo da Colombia. O modelo acima é um dos mais usados e é muito eficiente, mas é um modelo de muitos disponíveis no maravilhoso mundo da engenharia de software.

Fico aberto a comentários, críticas e sugestões.

Bons testes :)

Creative Commons License

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

Camilo Ribeiro

Test Engineer at Klarna
Desenvolvedor, testador e agilista desde 2005, atualmente trabalhando na Suécia.

9 thoughts on “Um Modelo para Elaboração de Cenários e Casos de Teste

  1. Parabéns, só achei que deveria explicar melhor a parte “{N Procedimentos**, Entradas e Saídas} ∈ {1 Caso de Teste}
    {N Casos de Teste} ∈ {1 Cenário de Teste}
    {N Cenários de Teste} ∈ {1 Caso de Uso}
    *∈ = Pertence”

  2. Adorei o artigo.
    Fiquei interessada em conhecer uma técnica de elaboração de caso de teste baseada em COMPONENTES VISUAIS (tela). Será que vc poderia me repassar algo?

  3. Ótimo explicação. “Regra do caso de uso” é a mesma coisa que “regra de negócio”?

  4. Olá, Muito boa a iniciativa de postar algo sobre como elaborar cenários e casos de testes. Parabéns! Como pedido acima, acho que seria realmente interessante um post exemplificando como elaborar cenários e casos de teste utilizando como insumos telas.

  5. Boa Tarde, excelente post, me diga uma coisa quando estamos diante de um projeto que negocios complexos que tem legislação e bases de calculo, o testador deve possuir conhecimento no negocio ou a documentação de analise que dev ser a ferramenta de apoio? como funciona hoje isso no meio cooporativo ?

Leave a Reply