Baixe o app para aproveitar ainda mais
Prévia do material em texto
Projeto, Implementação e Teste de Software Aula de Hoje Prof.ª Esp. Janaína Freitas Aula de Hoje Plano de Estudo: • Técnicas de Testes de Software • Automação de Teste de Software Pré-requisitos: • Unidades: IV e V Projeto, Implementação e Teste de Software Teste de Software Prof.ª Esp. Janaína Freitas Técnicas de Teste de Software Existem diferentes formas de classificar testes: • Considerando estratégia ou técnicas do teste - Estruturais e funcionais • Considerando características do sistema - Comportamento e níveis Projeto, Implementação e Teste de Software Técnicas de Teste de Software Projeto, Implementação e Teste de Software Estrutural Funcional Assegura a cobertura de toda a estrutura implementada Assegura que os requisitos foram atendidos Testes Funcionais – Caixa Preta Projeto, Implementação e Teste de Software Testes funcionais garantem que os requisitos foram atendidos, ou seja, que os requisitos estão corretamente codificados. São conhecidos como testes de Caixa Preta. Entrada de Dados Resultados Gerados (Saída) Se o tipo de saída não ocorre, então houve uma situação de defeito. Fonte: Autora Testes Funcionais – Caixa Preta Projeto, Implementação e Teste de Software • Analisa funcionalidades de entrada e saída do sistema. • Não analisa código. Tipos de defeitos encontrados: • Falhas de interface. • Funções incorretas ou ausentes. • Acesso ao banco de dados. • Erros de desempenho. • Erros de inicialização e término. • Procura verificar se todas as funcionalidades previstas foram implementadas. Testes Estruturais – Caixa Branca Projeto, Implementação e Teste de Software Testes Estruturais garantem que os sistemas sejam estruturalmente sólidos e que funcionem no contexto técnico onde serão instalados. São conhecidos como testes de Caixa Branca. Entrada de Dados Resultados Gerados (Saída) Estruturas de condição/repetição Fonte: Autora Testes Estruturais – Caixa Branca Projeto, Implementação e Teste de Software Normalmente, os elementos de um sistema que podem ser testados são: • As linhas de comando; • As funções implementadas; • As variáveis definidas no sistema; • Os loops existentes no software como: • FOR, LOOP, WHILE, DO WHILE; • Todos os ramos de uma decisão como: • IF (aninhado), CASE; • Requisitos de Software. Testes Estruturais – Caixa Branca - Exemplo Projeto, Implementação e Teste de Software Programa que calcula o máximo divisor comum de dois inteiros. A estrutura de controle While possui dois caminhos possíveis, que sugerem dois possíveis casos de teste: • Um deles é para os valores de x=y e o outro é para valores de x≠y. • Primeiro caso: testa-se o programa para que o While não seja executado. Segundo caso: testa-se para que ele seja executado pelo menos uma vez. Fonte: Autora Testes Estruturais – Caixa Branca - Exemplo Projeto, Implementação e Teste de Software Continuação... No corpo do While temos uma estrutura de controle de seleção (if ... then ... else): Esta estrutura possibilita dois caminhos possíveis: • A expressão condicional desta estrutura sugere mais dois casos de teste para os dois caminhos. • É preciso escolher pelo menos um caso de teste no qual tenhamos x>y e outro no qual tenhamos x≤y. Fonte: Autora Testes Estruturais – Caixa Branca - Exemplo Projeto, Implementação e Teste de Software Continuação.... Combinando todas as possibilidades podemos definir quatro casos de teste: 1. x=y e x>y 2. x=y e x≤y 3. x≠y e x>y, que pode ser reduzido x>y 4. x≠y e x≤y, que pode ser reduzido x<y Testes Estruturais – Caixa Branca - Exemplo Projeto, Implementação e Teste de Software Continuação.... Que podem ser reduzidos a três casos: 1. x=y 2. x>y 3. x<y Com isto, cobrimos todos os caminhos possíveis. Técnicas de Testes de Software Projeto, Implementação e Teste de Software Fonte: Autora Níveis de Testes de Software Projeto, Implementação e Teste de Software Fonte: Autora • Teste de Unidade • Teste de Integração • Teste de Sistema • Teste de Aceitação • Teste de Regressão Os testes devem ser executados em diferentes níveis, visando avaliar o sistema em diferentes perspectivas. Os Níveis de Teste são: Testes de Desempenho X Carga X Stress Projeto, Implementação e Teste de Software Teste de Desempenho: testa e mede o desempenho do sistema em uma situação normal de uso, como: tempo de espera entre as ações e transações, com base no cenário em produção. Teste de Carga: testa e mede a alteração no desempenho do sistema sob um volume maior de carga, um horário de pico por exemplo (uma carga máxima esperada que possa acontecer algum dia em produção). Teste de Estresse: busca descobrir qual é o ponto em que o sistema já não suportaria mais. Tentar causar falhas propositais no sistema usando contextos de condições extremas. Exemplo: dobrar o número de usuários, usar um servidor de base de dados com muito menos memória ou um servidor com uma CPU mais fraca. Automação de Teste de Software Projeto, Implementação e Teste de Software Você confia na mensagem “A operação foi realizada com sucesso”? Automação de Teste de Software Projeto, Implementação e Teste de Software Você confia na mensagem “A operação foi realizada com sucesso”? • Infelizmente, bugs em software são coisas mais comum do que deveriam ser. • Bugs nos fazem perder a confiança do cliente e nos custam muito dinheiro. • Afinal, precisamos corrigir o bug e recuperar o tempo perdido do cliente, que ficou parado, enquanto o sistema não funcionava. Automação de Teste de Software Projeto, Implementação e Teste de Software Por que nossos sistemas apresentam tantos bugs assim? • Um dos motivos para isso e a falta de testes, ou seja, testamos muito pouco! • Equipes de software geralmente não gostam de fazer (ou não fazem) os devidos testes. As razões para isso são: • Prazo de entrega do software apertado. • Demora e o alto custo para testar o software como um todo. E faz todo o sentido: pedir para um ser humano testar todo o sistema é impossível: ele vai levar muito tempo para isso! Automação de Teste de Software Como resolver esse problema? Projeto, Implementação e Teste de Software Automação de Teste de Software Como resolver esse problema? Fazendo a máquina testar! Projeto, Implementação e Teste de Software Automação de Teste de Software Projeto, Implementação e Teste de Software Como resolver esse problema? Fazendo a máquina testar! • Escrevendo um programa que teste nosso programa de forma automática! • Uma máquina, com certeza, executaria o teste muito mais rápido do que uma pessoa! • Ela também não ficaria cansada ou cometeria erros! Automação de Teste de Software Projeto, Implementação e Teste de Software • Um teste automatizado é muito parecido com um teste manual. • Imagine que você esta testando manualmente uma funcionalidade de cadastro de produtos em uma aplicação web. Você executaria três passos diferentes: • Pensaria em um cenário para testar. • Após montar o cenário, executará a ação que quer testar. • Por fim, verificaria se o sistema se comportou da maneira que esperava. Automação de Teste de Software Projeto, Implementação e Teste de Software • Você sempre executa estes três passos: monta o cenário, executa a ação e valida a saída Automação de testes é testar um sistema com outro sistema? • São robôs ou scripts construídos para usar o sistema no lugar dos usuários. • São mais rápidos na execução dos testes Automação de Teste de Software Projeto,Implementação e Teste de Software Tipos de Testes que podem ser automatizados • Testes Unitários • Testes Funcionais • Teste de Carga e Desempenho • Teste de Segurança Outras validações e verificações: • Inspeção automática de código fonte Automação de Teste de Software Projeto, Implementação e Teste de Software Veja o código: Automação de Teste de Software Projeto, Implementação e Teste de Software • O código exibido é automatizado • A máquina monta o cenário, executa a ação e valida • Escrevemos o código, mas na hora de executar, é a máquina que executa! • Não gastamos tempo nenhum para executar esse teste Automação de Teste de Software Projeto, Implementação e Teste de Software • Exemplo de Script de teste: Automação de Teste de Software Projeto, Implementação e Teste de Software Automação de Teste de Software Projeto, Implementação e Teste de Software • Infelizmente testar todas as combinações é impossível • E se tentarmos fazer isso (e escrevermos muitos testes) dificultamos a manutenção da bateria de testes • O ideal é escrevermos apenas um único teste para cada possível cenário diferente De que forma isso é possível? • Aplicando as estratégias e técnicas de modelagem de teste de software • Utilizando ferramentas para a automação de testes de software Ferramentas de Teste de Software Projeto, Implementação e Teste de Software Website com diversas ferramentas de teste gratuitas: www.opensourcetesting.org Ferramentas de Teste de Software OpenSource – Gestão de Testes Projeto, Implementação e Teste de Software TestLink - http://www.teamst.org/ QaManager - http://qamanager.sourceforge.net/ rth - http://www.rth-is-quality.com TestMaster - http://testmaster.sourceforge.net/ Testitool - http://majordojo.com/testitool/ Test Case Web (TCW) - http://tcw.sourceforge.net/ Testopia - http://www.mozilla.org/projects/testopia/ Ferramentas de Teste de Software OpenSource – Gestão de Defeitos Projeto, Implementação e Teste de Software Mantis - http://www.mantisbt.org/ Bugzilla - http://www.bugzilla.org/ Scarab - http://scarab.tigris.org/ BugNET - http://www.bugnetproject.com/ TRAC - http://trac.edgewall.org/ Redmine – http://www.redmine.org Ferramentas de Teste de Software OpenSource – Testes Funcionais Projeto, Implementação e Teste de Software Selenium (WEB) - http://www.openqa.org/selenium/ actiWATE (WEB) - http://www.actiwate.com/ Marathon (Java Swing) - http://www.marathontesting.com/marathon/ Watir (WEB) - http://wtr.rubyforge.org/ Canoo WEBTest (WEB) - http://WEBtest.canoo.com/ Apodora (WEB) - http://www.apodora.org/ Abbot (Java Swing) - http://abbot.sourceforge.net SoapUI (WEBServices) - http://www.soapui.org/ SOAPSonar Personal Edition (WEBServices) - http://www.crosschecknet.com/ Squish for KDE (Linux) - http://www.froglogic.com SharpRobo (WinForm .NET) - http://confluence.public.thoughtworks.org/display/SHRO/Home FitNesse - http://fitnesse.org/ Ferramentas de Teste de Software OpenSource – Testes de Stress, Carga e Performance Projeto, Implementação e Teste de Software OpenSTA - http://www.opensta.org/ JMeter - http://jakarta.apache.org/jmeter/index.html Microsoft WEB Application Stress Tool - http://www.microsoft.com/downloads/details.aspx?FamilyID= e2c0585a-062a-439e-a67d-75a89aa36495&DisplayLang=en WEBLOAD - http://www.WEBload.org/ The Grinder - http://grinder.sourceforge.net/ Próxima aula: Unidade IV e V • Documentação de Teste de Software • Relatórios de Teste de Software Projeto, Implementação e Teste de Software
Compartilhar