Teste de regressão ágil com ferramentas de automação
1. Teste de regressão ágil
com integração de
ferramentas de testes
Cristian R. Silva
about.me/ocristian
2. relembrando ...
• Teste de Software
• processo de execução de um produto para
determinar se atingiu suas especificações e
funciona corretamente no ambiente para o qual
foi projetado
2
3. relembrando ...
• Objetivo do teste de software
Identificar suas falhas para que a
correção seja feita antes da entrega
do produto ao usuário final
3
4. teste de regressão
• ocorre sempre que o sistema recebe alguma
alteração. Seja na inclusão ou alteração de uma
funcionalidade.
4
5. teste de regressão
• Tipos
• re-teste total
• re-teste baseado em casos de uso de maior
risco
• re-teste por perfil
• re-teste dos segmentos modificados
• re-teste com firewall
5
6. teste de regressão ágil
• Objetivo
• diminuir custos
• agilidade na fase de testes
• entrega rápida do produto
6
9. teste de regressão ágil
gerenciar planos de teste
escrever casos de teste
organizar em suites/grupos de testes
cadastrar o resultado das execuções
9
gerar relatórios
10. teste de regressão ágil
automação de testes funcionais
10
rec-and-play
teste de aplicações web
criar scripts de teste
exportar scripts de teste em java,
ruby, c#, php, html e python
11. teste de regressão ágil
registro e controle dos defeitos
testador faz o registro de um defeito
programador recebe email com a
11
notificação de um defeito
visualizar lista defeitos
exportar os defeitos registrados .doc, .xls
14. teste de regressão ágil
• usuário salva resultado da execução no TestLink
• registra defeitos no mantis
• no TestLink estará disponível um link para acesso ao mantis
• usuário informa o id do defeito registrado
• o TestLink exibe os dados retirados do mantis
14
19. teste de regressão ágil
• os resultados da execução dos testes automatizados
no Selenium são registrados no TestLink
19
20. teste de regressão ágil
20
package selenium.integracao;
public interface ITestlink {
final String DEVKEY = “”; //chave de acesso ao testlink
final String URL = “http://.../testlink/lib/api/xmlrpc.php”;
final String testProject = “Test Project”;
final String testPlan = “Test Plan”;
final String buildName = “Build 1”;
final String testCase = “Test 1”;
}
21. teste de regressão ágil
public class TestCaseSelenium extends TestCase implements ITestlink {
Selenium selenium;
SeleniumServer server;
String serverHost = “localhost”;
int serverPort = 4444;
String browserStartCommand = “*firefox”;
String browserURL = “http://...testlink/login.php?note=expired/”;
21
public void setUp() throws Exception {
selenium = new DefaultSelenium(serverHost, serverPort, browserStartCommand, browserURL);
selenium.start();
}
. . .
22. teste de regressão ágil
22
public class TestCaseSelenium extends TestCase implements ITestlink {
. . .
@Test
public void testTestlinkLogin() throws Exception {
String result = null; String note = null;
try {
selenium.open(“/”);
selenium.open(“/login.php”);
selenium.click(“name=login_submit”);
selenium.waitForPageToLoad(“30000”);
assertTrue(selenium.isTextPresent(“Try again! Wrong login name or password!”));
result = TestLinkAPIResults.TEST_PASSED;
} catch (Exception e) {
result = TestLinkAPIResults.TEST_FAILED; note = e.getMessage(); e.printStackTrace();
} finally {
ResultadoExecucao.reportTestCaseResult(PROJETO, PLANO, CASO_TESTE1, BUILD, nota, resultado);
TestLinkAPIClient testlinkAPIClient = new TestLinkAPIClient(DEVKEY, URL);
testlinkAPIClient.reportTestCaseResult(testProject, testPlan, testCase, buildName, note, result);
}
}
public void tearDown() throws Exception{
23. teste de regressão ágil
Pontos positivos da automatização dos testes de regressão
• segurança da equipe quanto ao teste automatizado
• diminuição do débito técnico
• identificação dos defeitos e quais funcionalidades eram afetadas pelas
alterações
• métricas para melhoria da suíte de testes , por exemplo casos de testes
não associados ao mantis
• com a economia de tempo na execução dos testes de regressão, devido a
automatização, foi possível direcionar esforços nos testes de performance
e usabilidade
23
24. teste de regressão ágil
Dificuldades
• com a evolução da aplicação, os scripts de
testes precisam de atualização constante
• é preciso mais tempo e pessoas para a
atualização dos scripts
24