http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 1/18
Artefatos > Conjunto de Artefatos de Teste > {Mais Artefatos de Teste} > Definio do Teste > Caso de Teste > Diretrizes > Caso de Teste Diretrizes: Caso de Teste Caso de Teste Um Caso de teste um conjunto de entradas de teste, condies de execuo e resultados esperados desenvolvidos para um objetivo especfico como, por exemplo, testar o caminho de determinado programa ou verificar o cumprimento de um requisito especfico. Tpicos Explicao Obteno de Casos de Teste a partir de Casos de Uso Obteno de Casos de Teste a partir de Especificaes Suplementares Obteno de Casos de Teste para Testes de Desempenho Obteno de Casos de Teste para Testes de Acesso/Segurana Obteno de Casos de Teste para Testes de Configurao Obteno de Casos de Teste para Testes de Instalao Obteno de Casos de Teste para Outros Testes No Funcionais Obteno de Casos de Teste para Testes Unitrios Testes caixa branca Testes caixa preta Obteno de Casos de Teste para o Teste de Aceitao do Produto Criao de Casos de Teste Para o Teste de Regresso Explicao Nada proporciona satisfao maior ao usurio final, com relao ao software, do que uma viso clara de suas expectativas, para que sejam verificadas e validadas. Os casos de teste refletem os requisitos que devem ser verificados. Entretanto, a verificao desses requisitos pode ser feita de forma diferente e por testadores distintos. Por exemplo, a execuo do software para verificar sua funo e desempenho pode ser feita por um testador usando tcnicas de teste automatizadas, a seqncia de desligamento de um sistema de computadores pode ser realizada por teste manual e observao, ao passo que a participao no mercado e as vendas (tambm requisitos do produto) sero realizadas atravs da avaliao do produto e das vendas competitivas. Como talvez voc no consiga verificar todos os requisitos, nem seja responsvel por isso, essencial para o sucesso do projeto selecionar os requisitos mais apropriados e importantes para o teste. Os requisitos escolhidos para verificao representaro um equilbrio entre o custo, o risco e a necessidade de verific-los. A identificao dos casos de teste importante por vrios motivos. Os casos de teste constituem a base do design e do desenvolvimento dos Scripts de Teste. A "profundidade" do teste proporcional ao nmero de casos de teste. O aumento do nmero de casos de teste gera uma maior confiana na qualidade do produto e no 16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 2/18 processo de teste, j que cada caso de teste reflete um cenrio, uma condio ou um fluxo diferente atravs do produto. A principal avaliao da abrangncia do teste a cobertura baseada em requisitos, de acordo com o nmero de casos de teste identificados, implementados e/ou executados. Uma sentena como "Executamos e verificamos 95% dos casos de teste crticos" mais significativa do que a sentena "J executamos 95% do total de testes". A escala do esforo de teste proporcional ao nmero de casos de teste. Com uma anlise abrangente dos casos de teste, possvel estimar com mais preciso a durao dos estgios subseqentes do ciclo de teste. Os tipos de design e desenvolvimento de testes e os recursos necessrios so amplamente controlados pelos casos de teste. Geralmente, os casos de teste so categorizados ou classificados pelo tipo ou requisito de teste ao qual esto associados e variam de acordo com isso. A melhor prtica consiste em desenvolver pelo menos dois casos de teste para cada requisito de teste: um caso de teste para demonstrar que o requisito foi atendido, geralmente conhecido como um caso de teste positivo, outro caso de teste, conhecido como negativo, refletindo uma condio ou dados inaceitveis, anormais ou inesperados para demonstrar que o requisito s pode ser atendido sob a condio desejada. Obteno de Casos de Teste a partir de Casos de Uso Os casos de teste para o teste funcional so derivados de casos de uso do objetivo do teste (consulte Artefato: Caso de Uso). necessrio desenvolver casos de teste para cada cenrio de caso de uso. Os cenrios de caso de uso so identificados atravs da descrio dos caminhos que percorrer o fluxo bsico e os fluxos alternativos, do incio ao fim, atravs do caso de uso. No diagrama a seguir, por exemplo, os vrios caminhos atravs de um caso de uso, que refletem o fluxo bsico e os fluxos alternativos, so representados com as setas. O fluxo bsico, representado pela linha preta e reta o caminho mais simples atravs do caso de uso. Cada fluxo alternativo comea no fluxo bsico e, depois, de acordo com uma condio especfica, executado. Os fluxos alternativos podem retornar ao fluxo bsico (fluxos alternativos 1 e 3), podem originar-se de outro fluxo alternativo (fluxo alternativo 2), ou podem terminar o caso de uso sem retornar a um fluxo (fluxos alternativos 2 e 4). 16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 3/18
Exemplos de Fluxos de Eventos em um caso de uso Aps cada caminho possvel atravs do caso de uso mostrado no diagrama acima, possvel identificar os diversos cenrios de caso de uso. Comeando pelo fluxo bsico e depois combinando esse fluxo com os fluxos alternativos, possvel identificar os seguintes cenrios de caso de uso: Cenrio 1 Fluxo Bsico Cenrio 2 Fluxo Bsico Fluxo Alternativo 1
OBSERVAO: Por praticidade, os Cenrios 5, 6 e 8 apenas descrevem uma nica execuo do loop indicado pelo Fluxo Alternativo 3. possvel obter os casos de teste para cada cenrio atravs da identificao da condio especfica que causar a execuo desse cenrio de caso de uso especfico. Por exemplo, suponha que o caso de uso descrito no diagrama acima indicou o seguinte para o 16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 4/18 Fluxo Alternativo 3: "Ocorrer esse fluxo de eventos se o valor digitado no Passo 2 acima, "Digitar o Valor da Retirada" for maior que o saldo atual da conta. O sistema exibir uma mensagem de aviso e, depois, retornar ao Passo 2 do fluxo bsico "Digitar o Valor da Retirada" acima, onde o cliente do banco poder digitar um novo valor de retirada." Com essas informaes, voc pode comear a identificar os casos de teste necessrios para a execuo do fluxo alternativo 3:
ID de Caso de Teste Cenrio Condio Resultado Esperado TC x Cenrio 4 Passo 2 - Valor da Retirada > Saldo da Conta Retorna ao Passo 2 do fluxo bsico TC y Cenrio 4 Passo 2 - Valor da Retirada < Saldo da Conta No executa o Fluxo Alternativo 3, segue o fluxo bsico TC z Cenrio 4 Passo 2 - Valor da Retirada = Saldo da Conta No executa o Fluxo Alternativo 3, segue o fluxo bsico OBSERVAO: os casos de teste mostrados acima so muito simples, j que nenhuma outra informao foi fornecida. Os casos de teste raramente so to simples. Veja a seguir um exemplo mais realista de obteno de casos de teste a partir de casos de uso.
Exemplo:
16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 5/18 Atores e casos de uso em um caixa eletrnico. A tabela a seguir contm o fluxo bsico e alguns fluxos alternativos para o caso de uso Retirada em Dinheiro no diagrama acima: Fluxo Bsico Esse Caso de Uso comea com o caixa eletrnico no Estado Pronto. 1. Iniciar Retirada - O cliente insere o carto bancrio no leitor de cartes do caixa eletrnico 2. Verificar o Carto Bancrio - O caixa eletrnico l o cdigo da conta a partir da tarja magntica do carto bancrio e verifica se ele um carto aceitvel. 3. Digitar a senha - O caixa eletrnico pede a senha do cliente (4 dgitos) 4. Verificar o cdigo da conta e a senha - O cdigo da conta e a senha so verificados para determinar se a conta vlida e se a senha digitada est correta. Para esse fluxo, a conta vlida e a senha est corretamente associada a essa conta. 5. Opes do caixa eletrnico - O caixa eletrnico exibe as diversas alternativas disponveis. Nesse fluxo, o cliente do banco sempre seleciona "Retirada em Dinheiro." 6. Digitar o Valor - O caixa eletrnico solicita o valor a ser retirado. Para esse fluxo o cliente seleciona um valor predefinido (R$ 10, R$ 20, R$ 50 ou R$ 100). 7. Autorizao - O caixa eletrnico inicia o processo de verificao com o Sistema Bancrio, enviando o ID do Carto, a Senha, o Valor e as Informaes de conta como uma transao. Para esse fluxo, o Sistema Bancrio est on-line e responde com uma autorizao para concluir a retirada em dinheiro, atualizando o saldo da conta de forma apropriada. 8. Fornecimento - O Dinheiro fornecido. 9. Devoluo do Carto - o Carto do Banco devolvido. 10. Recibo - O recibo impresso e fornecido. O caixa eletrnico tambm atualiza o log interno de forma apropriada. O Caso de Uso termina com o caixa eletrnico no Estado Pronto. Fluxo Alternativo 1 - Carto No Passo 2 do Fluxo Bsico - Verificar o Carto Bancrio, se o carto no for vlido, ser ejetado com uma mensagem apropriada. 16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 6/18 Invlido. Fluxo Alternativo 2 - Caixa Eletrnico sem Dinheiro No Passo 5 do Fluxo Bsico - Opes do Caixa Eletrnico, se o caixa eletrnico estiver sem dinheiro, a opo "Retirada em Dinheiro" no estar disponvel. Fluxo Alternativo 3 - Fundos insuficientes no caixa eletrnico No Passo 6 do Fluxo Bsico - Digitar o Valor, se o caixa eletrnico no contiver fundos suficientes para fornecer o valor solicitado, o sistema exibir uma mensagem apropriada e retornar ao Passo 6 do fluxo bsico - Digitar o Valor. Fluxo Alternativo 4 - Senha Incorreta No Passo 4 do Fluxo Bsico - Verificar a Conta e a Senha, o cliente tem trs chances de digitar a senha correta. Se for digitada uma senha incorreta, o caixa eletrnico exibir a mensagem apropriada, e se houver novas tentativas, esse fluxo retornar ao Passo 3 do Fluxo Bsico - Digitar a Senha. Se na ltima tentativa o nmero PIN digitado estiver incorreto, o carto ser retido, o caixa eletrnico retornar ao Estado Pronto, e esse caso de uso ser encerrado. Fluxo Alternativo 5 - Nenhuma Conta No Passo 4 do Fluxo Bsico - Verificar a Conta e a Senha, se o Sistema bancrio retornar um cdigo indicando que a conta no foi encontrada ou que ela no permite retiradas, o caixa eletrnico exibir a mensagem apropriada e retornar ao Passo 9 do Fluxo Bsico - Devolver o Carto. Fluxo Alternativo 6 - Fundos Insuficientes na Conta No Passo 7 do Fluxo Bsico - Autorizao, o Sistema bancrio exibe um cdigo indicando que o saldo da conta inferior ao valor digitado no Passo 6 do Fluxo Bsico - Digitar o Valor; o caixa eletrnico exibe a mensagem apropriada e retorna ao Passo 6 do Fluxo Bsico - Digitar o Valor. Fluxo Alternativo 7 - Atingido o valor mximo dirio para retirada No Passo 6 do Fluxo Bsico - Autorizao, o Sistema bancrio exibe um cdigo indicando que, com essa solicitao de retirada, o cliente ter excedido o valor mximo permitido em um perodo de 24 horas; o caixa eletrnico exibe a mensagem apropriada e retorna ao Passo 6 do Fluxo Bsico - Digitar o Valor. Fluxo Alternativo x - Erro de Log Se no Passo 10 do Fluxo Bsico - Recibo, no for possvel atualizar o log, o caixa eletrnico entrar no "modo de segurana" em que todas as funes sero suspensas. Um alarme apropriado ser enviado ao Sistema Bancrio para indicar que o caixa eletrnico suspendeu a operao. Fluxo Alternativo y - Encerramento O cliente pode, a qualquer momento, decidir terminar a transao (encerrar). A transao interrompida e o carto ejetado. Fluxo Alternativo z - "Paralisao" O caixa eletrnico contm vrios sensores que monitoram funes distintas, como alimentao, presso exercida nas vrias portas e passagens, e detectores de movimento. Se a qualquer momento um sensor for ativado, um sinal de alarme ser enviado Polcia, e o caixa eletrnico entrar no "modo de segurana" em que todas as funes sero suspensas at que sejam executadas as aes de reincio/reinicializao apropriadas. Na primeira iterao, de acordo com o plano de iterao, necessrio verificar se o caso de uso Retirada em Dinheiro foi implementado corretamente. O caso de uso no foi totalmente implementado. Apenas os seguintes fluxos foram implementados: 16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 7/18 Fluxo Bsico - Retirada de um valor predefinido (R$ 10, R$ 20, R$ 50, R$ 100) Fluxo Alternativo 2 - Caixa Eletrnico sem Dinheiro Fluxo Alternativo 3 - Fundos insuficientes no caixa eletrnico Fluxo Alternativo 4 - Senha Incorreta Fluxo Alternativo 5 - Nenhuma Conta/Tipo de Conta Incorreto Fluxo Alternativo 6 - Fundos Insuficientes na Conta
possvel obter os cenrios a seguir a partir desse caso de uso Cenrio 1 - Retirada em dinheiro bem-sucedida Fluxo Bsico Cenrio 2 - Caixa eletrnico sem dinheiro Fluxo Bsico Fluxo Alternativo 2 Cenrio 3 - Fundos Insuficientes no Caixa Eletrnico Fluxo Bsico Fluxo Alternativo 3 Cenrio 4 - Senha Incorreta (novas tentativas) Fluxo Bsico Fluxo Alternativo 4 Cenrio 5 - Senha incorreta (sem nova tentativa) Fluxo Bsico Fluxo Alternativo 4 Cenrio 6 - Nenhuma Conta/tipo de conta incorreto Fluxo Bsico Fluxo Alternativo 5 Cenrio 7 - Saldo Insuficiente em Conta Fluxo Bsico Fluxo Alternativo 6 OBSERVAO: Por praticidade, os loops nos Fluxos alternativos 3 e 6 (Cenrios 3 e 7) e as combinaes de loops no foram includos na tabela acima. Para cada um desses sete cenrios, necessrio identificar casos de teste. possvel identificar e gerenciar os casos de teste usando matrizes ou tabelas de deciso. Veja a seguir um formato comum, em que cada linha representa um caso de teste individual, e as colunas identificam informaes de caso de teste. Nesse exemplo, para cada caso de teste, h um ID, uma Condio (ou descrio) e todos os elementos que participam do caso de teste (como entrada ou j no banco de dados) e o resultado esperado. Para desenvolver a matriz, primeiro identifique quais elementos de dados so necessrios para a execuo dos cenrios de caso de uso. Em seguida, para cada cenrio, identifique pelo menos um caso de teste que contenha a condio apropriada para executar o cenrio. Por exemplo, na matriz a seguir, V (vlido) usado para indicar que essa condio deve ser VLIDA para que o fluxo seja executado, e I (invlido) usado para indicar a condio que disparar o fluxo alternativo desejado. Na tabela a seguir, "n/a" indica que essa condio no aplicvel ao caso de teste. ID do TC Cenrio/Condio Senha No da Conta Valor Digitado Valor na Valor no Caixa Resultado Esperado 16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 8/18 (ou escolhido)
Conta
Eletrnico
CW1. Cenrio 1 - Retirada em Dinheiro Bem- sucedida V V V V V Retirada em dinheiro bem- sucedida. CW2. Cenrio 2 - Caixa Eletrnico sem Dinheiro V V V V I Opo Retirada em Dinheiro indisponvel, fim do caso de uso CW3. Cenrio 3 - Fundos insuficientes no caixa eletrnico V V V V I Mensagem de aviso, retorno ao Passo 6 do Fluxo Bsico - Digitar o Valor CW4. Cenrio 4 - Senha Incorreta (> 1 nova tentativa) I
V n/a V V Mensagem de aviso, retorno ao Passo 4 do Fluxo Bsico, Digitar a Senha CW5. Cenrio 4 - Senha Incorreta (= 1 nova tentativa) I
V n/a V V Mensagem de aviso, retorno ao Passo 4 do Fluxo Bsico, Digitar a Senha CW6. Cenrio 4 - Senha Incorreta (= sem novas tentativas) I
V n/a V V Mensagem de aviso, carto retido, fim do caso de uso Na matriz acima, os seis casos de teste executam os quatro cenrios. Para o Fluxo Bsico, o caso de teste CW1 acima denominado caso de teste positivo. Ele executa, sem desvios, o caminho do Fluxo Bsico atravs do caso de uso. O teste abrangente do Fluxo Bsico deve incluir casos de teste negativos para garantir que esse fluxo s seja utilizado quando as condies estiverem corretas. Os casos de teste negativos so representados pelos casos de 16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 9/18 teste CW2 a 6 (a clula sombreada indica a condio necessria para executar os fluxos alternativos). Embora esses casos de teste sejam negativos para o Fluxo Bsico, so positivos para os Fluxos alternativos 2 a 4, e existe pelo menos um caso de teste negativo em cada um desses Fluxos Alternativos (CW1 - o Fluxo Bsico). O Cenrio 4 um exemplo em que no suficiente haver apenas um caso de teste positivo e um negativo por cenrio. Para testar completamente o Cenrio de teste 4 - Senha Incorreta, so necessrios pelo menos trs casos de teste positivos (para disparar o Cenrio 4): a senha incorreta digitada, h novas tentativas, e esse Fluxo Alternativo retorna ao Passo 3 do Fluxo Bsico - Digitar a Senha) A senha incorreta digitada, no h novas tentativas, esse Fluxo Alternativo retm o carto e termina o caso de uso. a senha CORRETA digitada quando no h mais novas tentativas. Esse Fluxo Alternativo retorna ao Passo 5 do Fluxo Bsico - Digitar o Valor. Observe que, na matriz acima, nenhum valor real foi digitado para as condies (dados). A vantagem de criar a matriz do caso de teste dessa maneira a facilidade de ver as condies que esto sendo testadas. Tambm muito fcil determinar se casos de teste suficientes foram identificados, j que voc precisa apenas observar os Vs e Is (ou como feito aqui - as clulas sombreadas). Na tabela acima, h diversas condies para as quais no h clulas sombreadas. Portanto, esto faltando casos de teste como, por exemplo, para o Cenrio 6 - Nenhuma Conta ou Tipo de Conta Incorreto e para o Cenrio 7 - Saldo Insuficiente em Conta. Depois que todos os casos de teste forem identificados, ser necessrio revis-los e valid-los para garantir a exatido e adequao, bem como para eliminar casos de teste redundantes ou equivalentes. Consulte Pontos de Verificao: Caso de Teste para obter mais detalhes. Aps a aprovao dos casos de teste, ser possvel identificar os valores reais dos dados (na matriz de implementao do caso de teste) e criar os dados de teste (consulte Diretrizes: Dados de Teste para obter mais informaes sobre os dados de teste). ID do TC Cenrio/Condio Senha
No da Conta
Valor Digitado (ou escolhido)
Valor na Conta
Valor no Caixa Eletrnico
Resultado Esperado CW1. Cenrio 1 - Retirada em Dinheiro Bem- sucedida 4987 809 - 498 50.00 500.00 2,000 Retirada em dinheiro bem- sucedida. Saldo da conta atualizado para 450,00 CW2. Cenrio 2 - Caixa Eletrnico sem Dinheiro 4987 809 - 498 100,00 500,00 0,00 Opo Retirada em Dinheiro indisponvel, fim do caso de uso CW3. Cenrio 3 - 4987 809 - 100,00 500,00 70,00 Mensagem 16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 10/18 Fundos insuficientes no caixa eletrnico 498 de aviso, retorno ao Passo 6 do Fluxo Bsico - Digitar o Valor CW4. Cenrio 4 - Senha Incorreta (> 1 nova tentativa) 4978
809 - 498 n/a 500,00 2.000 Mensagem de aviso, retorno ao Passo 4 do Fluxo Bsico, Digitar a Senha CW5. Cenrio 4 - Senha Incorreta (= 1 nova tentativa) 4978
809 - 498 n/a 500,00 2.000 Mensagem de aviso, retorno ao Passo 4 do Fluxo Bsico, Digitar a Senha CW6. Cenrio 4 - Senha Incorreta (= sem novas tentativas) 4978
809 - 498 n/a 500,00 2.000 Mensagem de aviso, carto retido, fim do caso de uso
Os casos de teste acima so apenas alguns dos necessrios para verificar o Caso de Uso de Retirada em Dinheiro, referente a essa iterao. Outros casos de teste necessrios contm: Cenrio 6 - Nenhuma Conta ou Tipo de Conta Incorreto: Conta no encontrada ou no disponvel Cenrio 6 - Nenhuma Conta ou Tipo de Conta Incorreto: A conta no permite retiradas Cenrio 7 - Saldo em Conta Insuficiente: Valor solicitado maior que o valor contido na conta. Em futuras iteraes, quando outros fluxos forem implementados, os casos de teste sero necessrios para: Cartes invlidos (informa-se que o carto foi perdido, roubado, no de um banco aceito, tem uma tarja danificada etc.) Incapacidade de ler um carto (o leitor de cartes est obstrudo, fora de linha ou com defeito) A conta est fechada, paralizada ou de outra maneira indisponvel O valor no caixa eletrnico insuficiente ou incapaz de compor o valor solicitado (diferente do CW3, visto que uma denominao est fora, mas no todas) Incapaz de entrar em contato com o sistema bancrio para aprovao 16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 11/18 A rede do banco est fora de linha ou h uma falha de energia durante a transao Ao identificar os casos de teste funcionais, verifique se: foram identificados casos de teste suficientes, positivos e negativos, para cada cenrio de caso de uso os casos de teste abordam qualquer regra de negcio implementada pelos casos de uso, garantindo que haja casos de teste, dentro, fora e na condio ou no valor de fronteira da regra de negcio os casos de teste abordam quaisquer seqncias de eventos ou aes, como aquelas identificadas nos diagramas de seqncia do modelo de design, ou estados ou as condies de objetos de interface do usurio. os casos de teste abordam qualquer requisito especial definido para o caso de uso, como o desempenho mnimo/mximo, s vezes combinado com as cargas ou os volumes de dados mnimos/mximos durante a execuo dos casos de uso.
Consulte tambm Diretrizes: Dados de Teste para obter informaes adicionais sobre os dados de teste. Obteno de Casos de Teste a partir de Especificaes Suplementares Nem todos os requisitos de um objetivo de teste sero refletidos em casos de uso. Requisitos no-funcionais, como desempenho, segurana e acesso, e requisitos de configurao especificam comportamentos ou caractersticas adicionais do objetivo do teste. A Especificao Suplementar a principal fonte de obteno de casos de teste para esses comportamentos adicionais. Veja a seguir as diretrizes para obteno desses casos de teste adicionais: Obteno de Casos de Teste para Testes de Desempenho Obteno de Casos de Teste para Testes de Segurana/Acesso Obteno de Casos de Teste para Testes de Configurao Obteno de Casos de Teste para Testes de Instalao Obteno de Casos de Teste para outros testes no-funcionais Obteno de Casos de Teste para o Teste de Desempenho A principal entrada para os casos de teste de desempenho so as Especificaes Suplementares que contm os requisitos no-funcionais (consulte Artefato: Especificaes Suplementares). Use as seguintes diretrizes ao obter casos de teste para o teste de desempenho: verifique se h pelo menos um caso de teste identificado para cada sentena na especificao suplementar, que indica um critrio de desempenho. Geralmente, os critrios de desempenho so expressos como tempo por transao, nmero de transaes/usurios ou percentis. verifique se h pelo menos um caso de teste identificado para cada caso de uso crtico. Os casos de uso crticos so aqueles identificados nas sentenas acima e/ou no documento de anlise de carga de trabalho (consulte Artefato: Documento de Anlise de Carga de Trabalho), que deve ser avaliado atravs de medidas de desempenho. 16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 12/18 Como nos casos de teste para testes funcionais, normalmente haver mais de um caso de teste por caso de uso/requisito. mais comum haver um caso de teste que esteja abaixo do valor limite de desempenho, outro no valor limite e um terceiro acima desse valor. Alm dos critrios de desempenho acima, verifique se voc conseguiu identificar as condies especficas que afetam os tempos de resposta, inclusive: Tamanho do banco de dados - quantos registros existem? Carga de trabalho - nmero e tipo de usurios finais simultneos, nmero e tipo de transaes simultneas em execuo Caractersticas do ambiente (configurao de hardware, netware e software) Capture casos de teste para o teste de desempenho em matrizes semelhantes s usadas para o teste funcional. Consulte tambm Diretrizes: Dados de Teste para obter informaes adicionais sobre os dados de teste. Veja a seguir alguns exemplos dos diferentes tipos de Testes de Desempenho: Para o Teste de Carga: ID do TC Carga de Trabalho Condio
Resultado Esperado PCW1. 1 (Caixa eletrnico nico) Transao de Retirada Concluda A transao concluda (andamento independente do ator) ocorre em < de 20 segundos PCW2. 2 (1.000 caixas eletrnicos simultneos) Transao de Retirada Concluda A transao de retirada concluda (andamento independente de ator) ocorre em < de 30 segundos PCW3. 3 (10.000 caixas eletrnicos simultneos) Transao de Retirada Concluda A transao concluda (andamento independente de ator) ocorre em < de 50 segundos Para o Teste de Esforo: ID do TC Carga de Trabalho Condio
Resultado Esperado SCW1. 2 (1.000 caixas eletrnicos simultneos) Bloqueio do banco de dados - 2 caixas eletrnicos solicitando a mesma conta Solicitaes do caixa eletrnico em fila SCW2. 2 A comunicao com o Sistema A transao est em fila ou seu tempo est 16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 13/18 (1.000 caixas eletrnicos simultneos) Bancrio no est disponvel esgotado SCW3. 2 (1.000 caixas eletrnicos simultneos) A comunicao com o Sistema Bancrio termina durante a transao Uma mensagem de aviso exibida Obteno de Casos de Teste para Segurana/Testes de Acesso Os atores e os casos de uso descrevem a interao entre os usurios externos do sistema e as aes executadas pelo sistema a fim de gerar um valor para determinado ator. Os sistemas complexos contm vrios atores, e essencial desenvolvermos casos de teste para garantir que apenas esses atores especificados executem os casos de uso. Isso ocorrer especialmente se houver diferenas no fluxo de eventos do caso de uso com base no tipo de ator. Por exemplo, nos casos de uso de caixas eletrnicos, ser possvel executar diversos fluxos de eventos de caso de uso para o ator "Cliente de Banco" se seu carto e sua conta forem do banco que possui o caixa eletrnico versus o "Cliente de Banco" que usa um carto (e conta) de um banco concorrente, ou tenta usar um carto bancrio no participante. Siga as mesmas diretrizes listadas acima para os casos de teste funcionais. Consulte tambm Diretrizes: Dados de Teste para obter informaes adicionais sobre os dados de teste. Exemplo de casos de teste para Segurana e Acesso: ID do TC Condio Carto (V indica carto vlido) Leitor de Cartes (V indica que o leitor est funcionando corretamente) Rede do Banco Resultado Esperado ACW1. Na Rede Bancria V V V Todos os Casos de Uso disponveis ACW2. Fora da rede bancria V V I Apenas caso de uso de retirada em dinheiro ACW3. No possvel ler o carto I V V Mensagem de Aviso, Carto ejetado ACW4. Carto indicado como roubado I V V Mensagem de Aviso, carto retido ACW5. Carto expirado I V V Mensagem de aviso, carto 16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 14/18 retido Obteno de Casos de Teste para Testes de Configurao Em sistemas distribudos comuns, pode haver vrias combinaes de hardware e software permitidas que sero suportadas. O teste deve ser executado para verificar se o objetivo do teste funciona ou executado de forma aceitvel em configuraes distintas, como em diversos sistemas operacionais, navegadores ou velocidades de CPU. Alm disso, o teste tambm precisa abranger combinaes de componentes para detectar defeitos provenientes de interaes dos diversos componentes, por exemplo, garantir que a verso das DLLs instaladas por um aplicativo no entre em conflito com as verses das mesmas DLLs esperadas por outro aplicativo. Para obter casos de teste para testes de configurao, use as seguintes diretrizes: Verifique se h pelo menos um caso de teste identificando cada configurao crtica. Para isso, basta identificar as configuraes de hardware e software necessrias para o ambiente de objetivo do teste e priorizar as configuraes, garantindo que as mais comuns sejam testadas primeiro, inclusive: Suporte a impressoras Conexes de rede - redes locais e de longa distncia Configuraes de servidor - drivers e hardware de servidor Outros softwares instalados na rea de trabalho e/ou servidores Verses de software para todos os softwares instalados Verifique se h pelo menos um caso de teste para cada configurao suscetvel a problemas. Essas configuraes podem conter: Hardware com o pior desempenho. Software co-residente com um histrico de problemas de compatibilidade. Clientes que acessam o servidor atravs da conexo LAN/WAN mais lenta possvel. Recursos insuficientes (CPU lenta, memria ou resoluo mnima, espao em disco etc.) Obteno de Casos de Teste para Testes de Instalao O teste de instalao precisa verificar se possvel instalar o objetivo do teste em todos os possveis cenrios de instalao. Os cenrios de instalao podem incluir a instalao do objetivo do teste pela primeira vez ou a instalao de uma nova verso ou build desse objetivo de teste (em uma mquina com a verso anterior). O teste de instalao tambm deve garantir que o objetivo do teste seja executado de forma aceitvel quando ocorrerem condies anormais, como espao em disco insuficiente. Os casos de teste devem abranger os cenrios de instalao do software, inclusive: Mdia de distribuio, por exemplo, disquetes, CD-ROM ou servidor de arquivos. Nova instalao. Instalao completa. Instalaes personalizadas. Instalaes de atualizao. Os programas de instalao para software cliente-servidor tm um conjunto especializado de casos de teste. Diferente dos sistemas baseados em host, o programa de instalao geralmente dividido entre o servidor e o cliente. Desse modo, importante que o teste de instalao 16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 15/18 execute a instalao de todos os componentes do objetivo do teste, inclusive o cliente, as camadas intermedirias e os servidores. Obteno de Casos de Teste para outros Testes No Funcionais O ideal que voc encontre todos os recursos necessrios para obter os casos de teste nos artefatos Modelo de Casos de Uso, Modelo de Design e Especificao Suplementar. Contudo, no incomum que, nesse ponto, voc precise complementar o que for encontrado. Estes so alguns exemplos: Casos de teste para Testes Operacionais (para verificar se o software funciona quando em uso por "muito tempo" entre falhas). Casos de teste que investigam gargalos de desempenho, recursos de volume do sistema ou foram uma falha no objetivo do teste. Na maioria dos casos, voc pode encontrar esses casos de teste criando variveis ou agregados dos casos de teste que voc obteve a partir daqueles identificados anteriormente. Obteno de Casos de Teste para o Teste Unitrio O teste unitrio exige a avaliao da estrutura interna da unidade e de suas caractersticas comportamentais. O teste da estrutura interna exige conhecimento de como a unidade foi implementada. Os testes baseados nesse conhecimento so denominados testes caixa branca. O teste das caractersticas comportamentais de uma unidade concentram-se nos comportamentos da unidade que podem ser observados externamente, sem conhecimento nem preocupao com sua implementao. Os testes baseados nesse mtodo so conhecidos como testes caixa preta. A obteno de casos de teste com base nos dois mtodos descrita a seguir. Testes Caixa Branca Teoricamente, voc deve testar todo caminho possvel atravs do cdigo. Atingir essa meta nas unidades, embora sejam muito simples, impraticvel ou quase impossvel. Na pior das hipteses, voc deve testar todos os caminhos deciso-a-deciso (caminho DD) pelo menos uma vez, o que resulta na execuo de todas as instrues. Em geral, uma deciso uma instruo if, e um caminho DD aquele que une duas decises. Para atingir esse nvel de cobertura de teste, recomenda-se escolher dados de teste que permitam avaliar cada deciso de todas as maneiras possveis. Com essa finalidade, os casos de teste devem garantir que: Toda Boolean expression produza como resultado true e false. Por exemplo, a expresso (a<3) OR (b>4) produz como resultado quatro combinaes de true/false Todo loop infinito testado uma ou mais vezes, ou ento no testado. Use as ferramentas de cobertura de cdigo para identificar o cdigo no experimentado pelo teste caixa branca. O teste de confiabilidade deve ser realizado simultaneamente com o teste caixa branca. Exemplo: Suponha que voc execute um teste de estrutura em uma funo que seja membro da classe Conjunto de Inteiros. O teste - com a ajuda de uma pesquisa binria - 16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 16/18 verifica se o conjunto contm determinado inteiro. A funo-membro e seu fluxograma correspondente. As setas pontilhadas ilustram como voc pode usar dois casos de teste para executar todas as instrues pelo menos uma vez. Teoricamente, para que uma operao seja totalmente testada, o caso de teste deve percorrer todas as combinaes de rotas contidas no cdigo. No membro, h trs rotas alternativas dentro do while-loop. O caso de teste pode percorrer o loop vrias vezes ou nenhuma. Se o caso de teste no percorrer o loop, haver apenas uma rota atravs do cdigo. Se ele percorrer o loop uma vez, haver trs rotas. Se percorrer duas vezes, haver seis rotas e assim por diante. Portanto, o nmero total de rotas ser 1+3+6+12+24+48+..., o que, na prtica, um nmero no gerencivel de combinaes de rota. Esse o motivo pelo qual voc deve escolher um subconjunto de todas as rotas. Neste exemplo, voc pode usar dois casos de teste para executar todas as instrues. Em um caso de teste, voc pode escolher Conjunto de Inteiros = {1,5,7,8,11} e t = 3 como os dados de teste. No outro caso de teste, voc pode escolher Conjunto de Inteiros = {1,5,7,8,11} e t = 8. Consulte Diretrizes: Teste Unitrio para obter informaes adicionais Testes Caixa Preta A finalidade de um teste caixa preta verificar o comportamento especificado da unidade, sem observar como a unidade implementa esse comportamento. Os testes caixa preta se concentram e se baseiam na entrada e sada da unidade. Particionamento de equivalncia uma tcnica destinada a reduzir o nmero de testes necessrio. Para cada operao, voc deve identificar as classes de equivalncia dos argumentos e os estados dos objetos. Uma classe de equivalncia um conjunto de valores de acordo com o qual o objeto deve se comportar. Por exemplo, um Conjunto contm trs classes de equivalncia: vazio, algum elemento e cheio. Use as ferramentas de cobertura de cdigo para identificar o cdigo no experimentado pelo teste caixa branca. O teste de confiabilidade deve ser realizado simultaneamente com o teste caixa preta. As duas subsees a seguir descrevem como identificar os casos de teste atravs da seleo dos dados deteste para argumentos especficos. Casos de Teste baseados em Argumentos de Entrada Um argumento de entrada aquele usado por uma operao. Voc deve criar casos de teste 16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 17/18 usando argumentos de entrada para cada operao, em cada uma das seguintes condies de entrada: Valores normais de cada classe de equivalncia. Valores na fronteira de cada classe de equivalncia. Valores fora das classes de equivalncia. Valores invlidos. Lembre-se de tratar o estado do objeto como um argumento de entrada. Se, por exemplo, voc testar uma operao de adio em um Conjunto de objetos, dever testar a adio com valores de todas as classes de equivalncia do Conjunto, ou seja, com um Conjunto completo, com algum elemento no Conjunto e com um Conjunto vazio. Casos de Teste baseados em Argumentos de Sada Um argumento de sada aquele alterado por uma operao. Um argumento pode ser de entrada ou de sada. Selecione a entrada para que a sada esteja de acordo com o seguinte: Valores normais de cada classe de equivalncia. Valores na fronteira para cada classe de equivalncia. Valores fora das classes de equivalncia. Valores invlidos. Lembre-se de tratar o estado do objeto como um argumento de sada. Se, por exemplo, voc testar uma operao de excluso em uma Lista, dever escolher valores de entrada de modo que a Lista fique cheia, contenha algum elemento ou fique vazia aps a execuo da operao (teste com valores de todas as respectivas classes de equivalncia). Se o objeto for controlado por estado (a reao varia de acordo com o estado do objeto), voc deve usar uma matriz de estado, conforme a mostrada na figura a seguir. Uma matriz de estado para teste. Voc pode testar todas as combinaes de estado e de estmulos na base da matriz. Consulte Diretrizes: Teste Unitrio para obter informaes adicionais Obteno de Casos de Teste para o Teste de Aceitao do Produto O teste de aceitao do produto o teste final antes da implantao do software. O objetivo desse teste verificar se o software est pronto e pode ser usado pelos usurios finais para executar as funes e as tarefas para as quais o software foi criado. Esse teste geralmente envolve mais do que a verificao da integridade do software. Tambm envolve todos os artefatos de produto fornecidos ao(s) cliente(s), como treinamento, documentao e pacotes. 16/10/2014 Diretrizes: Caso de Teste http://wthreex.com/rup/portugues/process/modguide/md_tstcs.htm#Deriving Test Cases from Use Cases 18/18 possvel obter casos de teste para o(s) artefato(s) de software de acordo com o descrito nas sees anteriores. Dependendo do grau e da formalidade do teste de aceitao do produto, os casos de teste sero iguais ou semelhantes aos identificados acima (formais) ou um subconjunto (informais). Independentemente da profundidade dos casos de teste, necessrio haver um acordo entre eles e o Plano de Aceitao do Produto antes que o teste do produto seja implementado e executado. A avaliao dos artefatos que no so de software varia principalmente de acordo com o artefato que est sendo avaliado. Consulte as Diretrizes e as Listas de Verificao de cada artefato especfico que no seja de software para obter informaes sobre a finalidade e a maneira de avali-lo. Criao de Casos de Teste para o Teste de Regresso O teste de regresso compara dois builds ou duas verses do mesmo objetivo de teste e identifica diferenas como possveis defeitos. Desse modo, ele pressupe que uma nova verso deve se comportar como uma verso anterior e verifica se defeitos no foram introduzidos como resultado das mudanas. O ideal que todos os casos de teste em uma iterao sejam usados como casos de teste nas iteraes posteriores. Use as diretrizes a seguir para identificar, criar e implementar os casos de teste que maximizam o valor do teste de regresso e da reutilizao, ao mesmo tempo que minimizam a manuteno: Garanta que o caso de teste identifique apenas os elementos de dados crticos (os necessrios para criar/suportar a condio que est sendo testada) Garanta que cada caso de teste descreva ou represente um conjunto exclusivo de entradas ou uma seqncia de eventos que resulte em um comportamento exclusivo do objetivo do teste. Elimine casos de teste redundantes ou equivalentes Agrupe os casos de teste cujo estado inicial do objetivo do teste e cujo estado dos dados de teste sejam os mesmos