Baixe o app para aproveitar ainda mais
Prévia do material em texto
Teste Exploratório Prof. André Takeshi Endo Teste Manual vs Teste Automatizado ● Teste automatizado – Realizado por uma ferramenta e configurada/programada pelo testador ● Teste manual – Projeto de casos de teste e execução executados manualmente pelo testador Teste Manual ● Teste manual – Scripted testing → teste “roteirizado” – Teste exploratório Teste Exploratório ● Cem Kaner define: ● “Exploratory software testing is a style of software testing that emphasizes the personal freedom and responsibility of the individual tester to continually optimize the value of her work by treating test-related learning, test design, test execution, and test result interpretation as mutually supportive activities that run in parallel throughout the project.” Teste Exploratório ● Pode ser aplicado em qualquer nível, mas há uma ênfase em teste de sistema ● Projetos com baixa documentação ● Interagir com o software como quiser ● Usar a informação obtida para reagir ● Explorar as funcionalidades sem restrição ● Casos de teste são produzidos ao longo da atividade ● Ferramentas para gravação/captura de tela Referência: [Whittaker09] Teste Exploratório ● Visto como um loop http://swtester.blogspot.com.br/2012/05/what-is-exploratory-testing.html Aprender Projetar o teste Executar o teste Analisar Teste Exploratório ● Casos de teste são produzidos ao longo da atividade http://swtester.blogspot.com.br/2012/05/what-is-exploratory-testing.html Teste Exploratório ● A maioria das pessoas já realizaram testes exploratórios ● Para ser efetivo, é necessário preparo! ● Caso contrário, é como vagar por uma cidade legal sem um guia! Teste Exploratório ● O teste é baseado em escolhas – É necessário saber como variar! ● É preciso entender [Whittaker09]: – Entradas de usuário – Estado – Caminhos no código – Dados do usuário – Ambiente Referência: Cap. 3 – Exploratory testing in the small [Whittaker09] Teste Exploratório ● Entradas de usuário ● Uma entrada é um estímulo do ambiente que faz o SUT reagir de alguma forma ● Selecionar um subconjunto de entradas ● Combinação e ordem das entradas ● Entradas válidas (legais) e inválidas (ilegais) Referência: Cap. 3 – Exploratory testing in the small [Whittaker09] Teste Exploratório ● Entradas de usuário ● Exemplo Teste Exploratório ● Entradas de usuário – Como desenvolvedores tratam erros? ● Filtros de entrada – Não produz mensagens de erro ● Como testar – Valores legais e ilegais foram corretamente filtrados? – Consigo “atravessar” o filtro? Referência: Cap. 3 – Exploratory testing in the small [Whittaker09] Teste Exploratório ● Entradas de usuário – Como desenvolvedores tratam erros? ● Checagem de entrada – Gera mensagens de erro (validação codificada) ● Como testar – Usar as mensagens de erro com dicas para possíveis testes Referência: Cap. 3 – Exploratory testing in the small [Whittaker09] Teste Exploratório ● Entradas de usuário – Como desenvolvedores tratam erros? ● Tratamento de exceção – Gera mensagens de erro (atravessa as checagem de entrada) ● Como testar – Achou uma mensagem geral (exception), continue testando essa funcionalidade ● Entradas ilegais → mensagem de erro ● Entradas válidas → resultados normais Referência: Cap. 3 – Exploratory testing in the small [Whittaker09] Teste Exploratório ● Entradas de usuário – Entradas normais ou especiais – Valores default – Usar as próprias saídas do SUT para guiar a seleção da entradas Referência: Cap. 3 – Exploratory testing in the small [Whittaker09] Teste Exploratório ● Estado ● Entradas podem ser “lembradas” pelo SUT ● O SUT armazena possui um estado – Infinitas possibilidades de estado ● Estado é temporário ou permanente? ● Exemplo: – Carrinho de compra – Pilha com tamanho limitado ● Máquinas de estados (mais adiante!!) Referência: Cap. 3 – Exploratory testing in the small [Whittaker09] Teste Exploratório ● Caminhos no código ● Os programas são baseados em desvios e loops (caminhos) ● As entradas do usuário podem determinar desvios e iterações no loop ● Testador usar esse conhecimento – Posso fazer o SUT ficar em loop infinito? Referência: Cap. 3 – Exploratory testing in the small [Whittaker09] Teste Exploratório ● Dados do usuário ● SUT possui um banco de dados ● Como testar? – Usar dados fake (gerados) – Usar um teste beta – “importar” dados existentes Referência: Cap. 3 – Exploratory testing in the small [Whittaker09] Teste Exploratório ● Ambiente ● O ambiente onde o SUT vai ser instalado é uma entrada! ● Versão do SO, hardware, rede, etc ● Como testar? – Identificar e testar possíveis ameaças – Coletar o máximo de informação do ambiente Referência: Cap. 3 – Exploratory testing in the small [Whittaker09] Exercício ● Teste exploratório da ferramenta TestLink ● Use o checklist fornecido como apoio ● Objetivos de teste 1.Como organizar um time? 2.Quais os tipos de usuários e suas permissões? 3.Como criar um projeto de teste? 4.Como adicionar/documentar um caso de teste? 5.Como registrar a execução de um caso de teste? 6.Como controlar diferentes versões do software? Bibliografia ● [Whittaker09] J. A. Whittaker, “Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design”, 2009. ● [Pfleeger07] S. L. Pfleeger, “Engenharia de Software: Teoria e Prática”, 2007. ● [Pressman11] R. S. Pressman, “Engenharia de Software: uma abordagem profissional”, 2011. ● [Sommerville03] I. Sommerville, “Engenharia de Software”, 2003. ● [IEEE90] “IEEE Standard Glossary of Software Engineering Terminology”, 1990. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=159342 ● [DMJ07] DELAMARO, Márcio Eduardo; MALDONADO, José Carlos; JINO, Mario. Introdução ao teste de software. Rio de Janeiro, RJ: Elsevier, 2007. 394 p. ISBN 9788535226348. ● [Pezze08] PEZZÈ, Mauro; YOUNG, Michal. Teste e análise de software: processo, princípios e técnicas. Porto Alegre, RS: Bookman, 2008. 512 p. ISBN 9780471455936. ● [Myers12] MYERS, Glenford J.; BADGETT, Tom; SANDLER, Corey. The art of software testing. 3rd ed. Hoboken, NJ.: John Wiley & Sons, c2012. xi, 240 p. ISBN 978118031964. Bibliografia ● [UUU] Materiais didáticos elaborados pelos grupos de engenharia de software do ICMC-USP, DC-UFSCAR e UTFPR-CP. ● Partes dessa apresentação foram adaptadas do material da profa. Ellen Francine e profa. Simone Souza. Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22
Compartilhar