Multi-core Parallelization in Clojure - a Case Study
Ferramentas de Gestão de Testes
1. Ferramentas de Gestão de Testes
Luís Ramos
Teste e Qualidade de Software
Mestrado em Engenharia Informática
Teste e Qualidade de Software 1
2. Agenda
n Ferramentas de Gestão de Testes
n Bugzilla Test Runner
n Mercury Interactive Test Director
n Novo Módulo de Testes da GP do CICA/FEUP
• Demonstração
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 2/36
3. Quality Assurance
n diz respeito à verificação de que
• os produtos implementam os requisitos base
• os processos descritos no plano de desenvolvimento são seguidos
n muitas vezes confundida com Gestão de Configurações:
• controlo e registo de alterações dos itens de configuração
código, documentação, requisitos, problemas, design, etc.
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 3/36
4. Gestão de Testes
n Processo de testar contra requisitos (QA)
n Testar software envolve
• Processos
• Equipas de Teste
• Versões de software
• Releases
• Aplicações
• Grupos de scripts
• Etc.
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 4/36
5. Tipos de Abordagem aos Testes
n Manual
• Definição e entrada de dados manual, normalmente através de um cliente (GUI)
• Garantir que todas as combinações são testadas requer conhecimentos do software e muito
tempo
• Definição e execução manual
n Automação via Scripts
• Podem ser desenvolvidos scripts usando linguagens de programação standard
• Os scripts podem ser usados sistematicamente para variar os dados de entrada para cobertura
dos diferentes modos do programa
• Execução programática
n Capture/Playback
• Depende da interacção manual de pessoas para definir os casos de teste
• As ferramentas que captam a sequência de acções executadas e as reproduzem posteriormente
• Definição manual, execução automática
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 5/36
6. Tipos de Ferramentas de Testes
n Ferramentas de Gestão de Testes
• Controlo de versões, gestão de bugs, gestão de scripts de testes, artefactos de
planeamento de testes, execuções de testes e resultados dos testes
• Testes Manuais e Automáticos
n Ferramentas tipo Record/Playback
• Captura e reprodução/repetição dos processos gravados
n Ferramentas de Testes de Carga (Capacity Testing tools)
• Geração de carga e tráfego no sistema
n Etc…
Aumenta o custo, o tempo dispendido e a qualidade do software
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 6/36
7. Ferramentas de Gestão de Testes
n Ajudam a gerir durante todas as fases de um projecto de
desenvolvimento de software
• todo o processo de teste de software
• todas as fontes de informação relacionada com o esforço de teste
n Fases típicas do processo de teste:
Planeamento, desenho, implementação, execução, análise e gestão
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 7/36
8. Ferramentas de Gestão de Testes
Funcionalidade típicas
n Definir requisitos de testes (test requirements)
n Desenvolver planos de testes
n Planear execuções de testes
n Registar as execuções e os resultados obtidos
(diferenças entre resultados obtidos e esperados)
n Registar os defeitos encontrados durante a execução dos testes
n Prioritizar as execuções dos testes
n Associar documentos/templates aos testes
n Envio de avisos para responsáveis, testers, etc
n Análise da execução de planos de testes
• Test the Test – por exemplo, que testes nunca deram origem a bugs?
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 8/36
9. Ferramentas de Testes
Automáticos e Capture/Playback
n Ferramentas com testes automáticos podem funcionar como
Test Drivers.
n Um Test Driver:
• lê um ou mais casos de teste de um ficheiro de testes
• formata os dados dos casos de testes de acordo com as necessidades do
software a ser testado
• invoca o software a ser testado com os inputs configurados no ficheiro
de testes
• Regista o output num ficheiro de log
n Ferramentas Capture/Playback
• Teste de programas com interfaces interactivas
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 9/36
10. Plano de Testes – O que é?
n Documento que descreve os objectivos, o âmbito, a abordagem, e o enfoque
de um esforço de teste de uma aplicação
n Permite que pessoas dentro e fora do projecto compreendam o “porquê” e o
“como” da validação do produto
n Alguns items que um plano de testes deve conter:
• Título - Identificação do produto a testar (incluindo número da versão) - Overview do produto
• Organização geral do projecto - Documentação relevante (requisitos, arquitectura, outros planos de testes, etc)
• Objectivo do esforço de teste - Organização dos testes – Prioridades, âmbito e limitações do plano de testes
• Esboço dos testes (abordagem aos testes por tipos de testes, funcionalidade, sistema, modulo, etc.)
• Descrição e configuração do ambiente de testes (hardware, sistema operativo, outro software necessário,
configuração de dados, etc.)
• Análise da validade do ambiente de testes
- diferenças entre o ambiente de testes e o ambiente de produção e o seu impacto na validade dos testes
• Esboço dos processos de teste e ferramentas a usar para testes e reporte de bugs
• Automação dos Testes (justificação e overview) - Test script/test code maintenance processes and version
control
• Alocação de pessoal
• etc…
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 10/36
11. Casos de Teste – O que é?
n Um input, uma acção (ou evento) e uma resposta esperada
n Serve para determinar se uma dada funcionalidade de uma aplicação está a
funcionar correctamente
n Um caso de teste deve conter atributos como:
• Identificador, Nome, Objectivo, Pré-condições, Requisitos nos dados de entrada, Passos (ou
iterações), Resultados esperados
n Oferecem consistência e escalabilidade ao processo de teste
n Um bom caso de teste é um caso de teste que encontre problemas
n O processo de definição de casos de teste pode ajudar a encontrar
problemas nos requisitos ou na arquitectura de uma aplicação
n É útil desenhar os casos de teste o mais cedo possível no processo de
desenvolvimento
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 11/36
12. Ferramentas de Gestão de Testes
n Comerciais:
• Mercury Interactive TestDirector - Quality Center
• Compuware QA Director
• IBM Rational TestManager
n Open Source:
• Bugzilla Test Runner
• Software Testing Automation Framework (STAF)
• Outros: jWebUnit, Bugkilla (Functional testing), JMeter (Performance
testing), Bugzilla, Mantis e phpBugTracker (bug-tracking systems).
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 12/36
13. Bugzilla Test Runner
n É um sistema de gestão de casos de teste
• add-on over Bugzilla
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 13/36
14. Bugzilla
n Permite aos programadores a manutenção e gestão dos bugs de um produto
n Permite registar bugs e mudanças de código, comunicação entre elementos da
equipa, submissão e revisão de patches e gestão da QA
n Dados:
• É a ferramenta open source líder para gestão de bugs
• Um dos primeiros produtos “mozilla.org” em 1998, escrito em PERL
• Sempre em intenso desenvolvimento, é testado pela Mozilla Foundation
n 399 entidades registadas como utilizadores:
• Free Software Projects
- Mozilla, Linux Kernel, Gnome, KDE, Apache Project, Open Office, etc
• Linux Distributions
- Red Hat, Mandrake, Gentoo, TurboLinux, etc.
• Companies
- Ximian, NASA, Id Software IBM, etc (ImagineBroadband...)
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 14/36
15. Bugzilla Test Runner
n Bugzilla Test Runner ajuda a organizar o processo de QA
n Funcionalidades gerais:
• Definição de planos de teste: um plano de testes deve conter a visão para as
actividades de QA que guiam os testers
• Definição de Casos de Teste: instruções de como testar uma determinada
funcionalidade no sistema e os resultados esperados
• Agrupamento dos casos de teste em grupos funcionais
• Gestão de execuções de testes: que casos de teste foram executados em
determinada versão do produto, quem e quando executou e qual foi o resultado
• Ligação de execuções de casos de teste a bugs: identificação de casos de teste
que encontram problemas
• Outras: pesquisa de casos de teste, import/export testes para HTML
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 15/36
16. Bugzilla Test Runner - Conclusões
n Prós:
• Ferramenta com as funcionalidades básicas de gestão de testes
• Boa interligação com o bugzilla
n Contras:
• Péssima interface com o utilizador, dificuldades de navegação
• Pobre em termos de análise de testes executados
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 16/36
17. Bugzilla Test Runner
n Home Page:
• http://www.willowriver.net/products/testrunner.php
n Online demo:
• http://testrunner.citat.se/
- user: testrunner@willowriver.net
- pwd: testrunner
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 17/36
18. Mercury Interactive – Quality Center
n Mercury Interactive - Quality Center
• Test Director
• Quick Test Professional
• WinRunner
n É uma suite de aplicações para testes de software
n A ferramenta de gestão de testes é o TestDirector
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 18/36
19. Mercury Interactive Test Director
n É o líder de mercado das ferramentas de gestão de testes
n Permite gerir e automatizar todo o processo de QA
n Central de testes baseada na web
n Grande destaque para o processo de teste:
• Metodologia
• Estrutura
• Organização
• Documentação
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 19/36
20. Test Director – Test Management Process
1. Identificar e definir os Requisitos de Teste
• Identificação dos requisitos funcionais e de performance a testar
2. Desenvolver o Plano de Testes
• Definir e planear quais os testes a serem executados e como o serão
3. Execução dos Testes
• Organizar os grupos de testes, planear a sua execução, executar os testes e
analisar os resultados das execuções
4. Registar os defeitos encontrados e monitorar a sua correcção
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 20/36
21. Test Director - Requirements Management
n Definição de requisitos e respectivas propriedades
n Definir árvores de Requisitos
n Agrupamento de requisitos por grupos funcionais e tipos
n Estado dos Requisitos
n Alteração dos requisitos (com histórico de alterações)
n Anexação de documentos aos requisitos
n Envio de dados do requisito por email
n Três vista de gestão de requisitos:
• document view – lista de requisitos e propriedades
• coverage view - testes de cada requisito
• coverage/analysis view – execuções de testes de cada requisito
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 21/36
22. Test Director – Test Plan Development
n Definição de planos de teste e respectivas propriedades
• a partir de requisitos aprovados
1. Definição da árvore de casos de teste
2. Ligação dos casos de teste aos requisitos (ou o contrário)
3. Definição dos passos de cada caso de teste
4. Construção dos scripts de teste (para os testes automáticos)
n os planos de teste devem ser organizados segundo as unidades
funcionais da aplicação a testar
n relações hierárquicas e de dependência entre testes
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 22/36
23. Test Director – Test Plan Development
n Plano de Teste
• descrição geral (é a estratégia de teste para o módulo)
• anexação de documentos
n Caso de Teste
• tipo, nome, descrição, criador, criado em, estado, etc.
• os campos obrigatórios de um caso de teste são configuráveis
(Administrativamente)
• anexação de documentos
n Passos/iterações
• Nome, descrição, valores de input, acção, resultado esperado, etc.
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 23/36
24. Test Director – Test Plan Development
n Outras funcionalidades:
• um dos passos de um teste pode ser outro teste completo
• templates de testes - reutilização de testes
• permite inserir parâmetros que são configuráveis em cada uma destas chamadas
• transformar/associar um teste manual num teste automático
• edição do script de teste directamente na ferramenta
• definição visual do fluxo de execução de um grupo de testes
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 24/36
25. Test Director – Test Execution
n Definição de Test Sets
• conjuntos executáveis de testes de diferentes planos
• num test set podemos incluir um ou mais planos de teste ou apenas um ou mais casos de
teste de vários planos
• propriedades: versão do produto e do browser, notificação por email on fail, anexação de
documentos, watchers, etc.
n Planeamento de execuções automáticas de testes
• Execução directamente na aplicação
• Configuração de Reexecução em caso de falha
• Configuração de regras de limpeza após execução do teste
n Dependências e precedências de passagem
• se um dado teste falhar, pode continuar a execução ou não
n Registo e análise dos resultados dos testes executados
n Visualização e pesquisa de
• todas as execuções e resultados dos TestSets
• de cada caso de teste
• de cada passo dentro de cada teste
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 25/36
26. Test Director – Test Execution
n Gestão visual do fluxo de execução de testes
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 26/36
27. Test Director – Track Defects
n Registo de bugs
• Propriedades: reprodutível (Y/N), estado (new, open/reopen, fixed, closed/rejected)
• Lista de propriedades configurável pelo administrador
n Pesquisa e revisão de bugs
n Associação de bugs a testes (ou o contrário)
n Controlo de bugs ao longo do seu ciclo de vida
n Anexação de documentos
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 27/36
28. Test Director – Reports & Analysis
n Vimos até agora 4 módulos do TestDirector:
• Requirements Management
• Test Plan Development
• Test Execution
• Track Defects
n Cada um dos 4 módulos anteriores tem uma tab de análise:
• Filtragem e organização dos dados para reports e gráficos
• Geração de reports e gráficos
• Geração de documentação de projecto formatada
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 28/36
29. Test Director – Reports & Analysis
Funcionalidades
n Geração de reports configuráveis e filtráveis
• Várias templates configuráveis
• exemplo: lista de requisitos, lista de testes, traceability matrix
n Geração de Gráficos pré-configurados
• Gráficos com relações entre dados (configuráveis)
• Exemplo: requisitos por autor, definições de testes por autor, execuções de testes por autor,
testes por urgência, etc
n Exportação para HTML, MsWord, MsExcell (com gráficos e reports incluídos)
• Exemplo: report com a execução de um test plan
n Importação de dados do MsWord e do MsExcell
• mercury add-ins para word e excell (macros)
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 29/36
30. Test Director – Conclusões
n Prós:
• Líder do mercado!? (é a mercury que diz)
• A importância do processo de teste
• Muitas funcionalidades
• Muito configurável
• Funcionalidades de report extraordinárias
n Contras:
• Preço
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 30/36
31. Gestão de Projectos do CICA/FEUP
n Problema
• Testes em folhas MsExcell
- Nenhum planeamento
- Nenhuma definição/repetição de testes
n Solução
• Integração na Gestão de Projectos do CICA
- Gestão de Bugs (e parcialmente Controlo de Versões)
- Gestão de Requisitos
- Gestão de Testes
- Gestão de Configurações (para breve!!!)
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 31/36
32. Módulo de Testes da GP do CICA/FEUP
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 32/36
33. Módulo de Testes da GP do CICA/FEUP
Demo da Gestão de Projectos
Módulo de Testes
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 33/36
34. Referências
n opensourcetesting.org
n http://www.softwareqatest.com
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 34/36
35. Questões
?
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 35/36
36. Fim
Obrigado
Luís Ramos
Teste e Qualidade de Software
Mestrado em Engenharia Informática
MEI – TQS - Ferramentas de Gestão de Testes Luís Ramos 36/36