A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução a Testes Automatizados AgilCoop – Cursos de Verão 2010 Mariana Bravo IME/USP.

Apresentações semelhantes


Apresentação em tema: "Introdução a Testes Automatizados AgilCoop – Cursos de Verão 2010 Mariana Bravo IME/USP."— Transcrição da apresentação:

1 Introdução a Testes Automatizados AgilCoop – Cursos de Verão 2010 Mariana Bravo IME/USP

2 Copyleft AgilCoop 2010 Introdução ● Testes são uma forma de feedback: a funcionalidade que fizemos funciona? ● Testes como uma medida de qualidade: quantos bugs consigo encontrar testando esta funcionalidade pronta? – Manuais – Tardios

3 Copyleft AgilCoop 2010 Testes automatizados ● Testes executados por um computador, seguindo um roteiro e fazendo verificações especificadas pelo testador ● Exemplos: – Um gravador de interações com a interface gráfica de um programa – Um programinha que acessa e exercita pedaços do sistema, informando caso encontre algum erro

4 Copyleft AgilCoop 2010 “Inspecionar para prevenir defeitos é bom; inspecionar para encontrar defeitos é desperdício” – Shigeo Shingo

5 Copyleft AgilCoop 2010 Objetivos – Criar valor ● Melhorar a qualidade ● Entender o sistema em teste ● Diminuir (e não introduzir) risco

6 Copyleft AgilCoop 2010 Melhorar a qualidade Testes automatizados devem... ● Atuar como especificação das funcionalidades

7 Copyleft AgilCoop 2010 Melhorar a qualidade Testes automatizados devem... ● Atuar como repelente de bugs

8 Copyleft AgilCoop 2010 Melhorar a qualidade Testes automatizados devem... ● Ajudar a achar defeitos no sistema em teste

9 Copyleft AgilCoop 2010 Entender o sistema em teste Testes automatizados devem... ● Atuar como documentação executável

10 Copyleft AgilCoop 2010 Diminuir (e não introduzir) risco Testes automatizados devem... ● Atuar como rede de segurança para mudanças

11 Copyleft AgilCoop 2010 Diminuir (e não introduzir) risco Testes automatizados devem... ● Não fazer mal ao sistema em teste

12 Copyleft AgilCoop 2010 Objetivos – Criar valor Testes automatizados devem... ● Atuar como especificação das funcionalidades ● Atuar como repelente de bugs ● Ajudar a achar defeitos no sistema em teste ● Atuar como documentação executável ● Atuar como rede de segurança para mudanças ● Não fazer mal ao sistema em teste

13 Copyleft AgilCoop 2010 Conceitos e Exemplos ● O teste mais simples ● Caso de teste ● Verificação ● Preparar o ambiente ● Limpar o ambiente ● Exceções ● Resultados ● Relatórios

14 Copyleft AgilCoop 2010 Tipos de testes ● Unidade – Verificam comportamento de unidades do sistema separadamente

15 Copyleft AgilCoop 2010 Tipos de testes ● Unidade ● Integração, interface do usuário, aceitação – Verificam comportamento de partes do sistema, inclusive interação entre elas. – Os testes de aceitação verificam resultados da lógica de negócios do ponto de vista do cliente; não necessariamente interagem com a interface do usuário

16 Copyleft AgilCoop 2010 Tipos de testes ● Unidade ● Integração, interface do usuário, aceitação ● Mutação – Testes que verificam os próprios testes, fazendo pequenas mudanças no código para ver que ele é coberto pelos testes

17 Copyleft AgilCoop 2010 Tipos de testes ● Unidade ● Integração, interface do usuário, aceitação ● Mutação ● Desempenho, carga, estresse, segurança – Testes que verificam aspectos não-funcionais do programa, em geral através de ferramentas específicas

18 Copyleft AgilCoop 2010 Características desejáveis ● Fáceis de executar – Totalmente automatizados – Verificar o próprio resultado – Poder repetir – Serem independentes

19 Copyleft AgilCoop 2010 Características desejáveis ● Fáceis de executar ● Fáceis de escrever e manter – Simples – Expressivo – Separação de interesses

20 Copyleft AgilCoop 2010 Características desejáveis ● Fáceis de executar ● Fáceis de escrever e manter ● Precisar de pouca manutenção – Robustos

21 Copyleft AgilCoop 2010 Alguns princípios ● Escreva os testes primeiro

22 Copyleft AgilCoop 2010 Alguns princípios ● Escreva os testes primeiro ● Projete para testabilidade

23 Copyleft AgilCoop 2010 Alguns princípios ● Escreva os testes primeiro ● Projete para testabilidade ● Comunique a intenção

24 Copyleft AgilCoop 2010 Alguns princípios ● Escreva os testes primeiro ● Projete para testabilidade ● Comunique a intenção ● Não modifique o sistema em teste

25 Copyleft AgilCoop 2010 Alguns princípios ● Escreva os testes primeiro ● Projete para testabilidade ● Comunique a intenção ● Não modifique o sistema em teste ● Verifique uma condição por teste

26 Copyleft AgilCoop 2010 Alguns princípios ● Escreva os testes primeiro ● Projete para testabilidade ● Comunique a intenção ● Não modifique o sistema em teste ● Verifique uma condição por teste ● Promova equilibro entre testes e produção

27 Copyleft AgilCoop 2010 Perguntas? Mariana Bravo marivb@agilcoop.org.br

28 Copyleft AgilCoop 2010 Mais princípios ● Use primeiro a porta da frente ● Isole o sistema em teste ● Mantenha os testes independentes ● Minimize a sobreposição de testes ● Minimize código não-testável ● Mantenha a lógica de teste longe do código de produção ● Teste assuntos separadamente

29 Copyleft AgilCoop 2010 Referências – Livros ● Gerard Meszaros, “xUnit Test Patterns, Refatoring Test Code”, Addison-Wesley Professional, 2007 ● Robert V. Binder, “Testing Object-Oriented Systems”, Addison-Wesley Professional, 1999 ● L. Crispin, T. House, “Testing Extreme Programming”, Addison-Wesley Professional, 2005 ● R. Mulgridge, W. Cunningham, “Fit for Developing Software”, Prentice Hall, 2006 ● M. Delamaro, J. Maldonado, M. Jino, “Introdução ao Teste de Software”, Campus, 2007

30 Copyleft AgilCoop 2010 Referências – Ferramentas ● Testes de unidade – Java: ● JUnit em http://www.junit.orghttp://www.junit.org ● TestNG em http://testng.orghttp://testng.org – Ruby: RUnit em http://www.ruby- doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html http://www.ruby- doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html – Python: PyUnit em http://pyunit.sourceforge.net/http://pyunit.sourceforge.net/ – C++: CppUnit2 em https://launchpad.net/cppunit2https://launchpad.net/cppunit2 – C: CUnit em http://cunit.sourceforge.net/http://cunit.sourceforge.net/

31 Copyleft AgilCoop 2010 Referências – Ferramentas ● Testes de interface gráfica – Marathon em http://www.marathontesting.com/http://www.marathontesting.com/ – SWTBot em http://swtbot.sourceforge.net/http://swtbot.sourceforge.net/ ● Testes de interface web – Selenium em http://seleniumhq.org/http://seleniumhq.org/ – Webrat em http://wiki.github.com/brynary/webrat/ http://wiki.github.com/brynary/webrat/ ● Testes de aceitação – Fit em http://fit.c2.com/http://fit.c2.com/ – Cucumber em http://cukes.info/

32 Copyleft AgilCoop 2010 Referências – Ferramentas ● Testes de mutação: – Jester em http://jester.sourceforge.net/http://jester.sourceforge.net/ – Heckle em http://ruby.sadi.st/Heckle.htmlhttp://ruby.sadi.st/Heckle.html ● Testes de desempenho/estresse: – JMeter em http://jakarta.apache.org/jmeterhttp://jakarta.apache.org/jmeter

33 Copyleft AgilCoop 2010 Referências – Links úteis ● http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks ● http://www.opensourcetesting.org/ http://www.opensourcetesting.org/ ● http://xunitpatterns.com/ http://xunitpatterns.com/ ● http://mockobjects.com/ http://mockobjects.com/ ● http://java-source.net/open-source/testing-tools http://java-source.net/open-source/testing-tools


Carregar ppt "Introdução a Testes Automatizados AgilCoop – Cursos de Verão 2010 Mariana Bravo IME/USP."

Apresentações semelhantes


Anúncios Google