O GoConqr está de visual novo! Conte para nós o que você achou.

Notas

M6 #4 - Ferramentas de teste

Lucas Erikson Engenharia de Software Pós-Graduação Português 6 páginas

Conteúdo das notas (6)

Página 1

Ferramentas de teste

Objetivos de aprendizagem

Ao final deste texto, você deve apresentar os seguintes aprendizados:

 Identificar as ferramentas de software.

 Descrever as principais ferramentas de teste de software.

 Aplicar o teste de software com o uso do JUnit e testes com Java.

Introdução

As ferramentas de teste servem para automatizar as atividades de teste de

software, garantindo maior produtividade e mais rapidez na sua execução.

Existem muitas ferramentas que podem ser utilizadas em qualquer projeto

de desenvolvimento de software. Há opções com licenças pagas ou gratuitas,

mas nenhuma pode ser definida como a melhor. Cabe ao gestor do projeto

definir a ferramenta mais adequada, o que depende do artefato produzido.

Nesse sentido, é importante que você conheça as ferramentas mais

utilizadas pelos profissionais da área de qualidade de software. Neste capítulo,

você vai estudar as ferramentas de software, as principais ferramentas de teste

de software e ainda a aplicação do JUnit para os testes de software com Java.

Ferramentas de software

A realização dos testes, durante o desenvolvimento de um software, é a ativi-

dade que assegura a entrega de um produto de qualidade ao usuário fi nal. Isso

ocorre principalmente quando os testes são feitos ao longo de todo o ciclo de

vida do projeto, pois eles garantem o alinhamento aos requisitos do software.

O teste de software é um aspecto do projeto que exige planejamento, tempo,

conhecimento técnico, recursos, infraestrutura adequada e principalmente

comprometimento — tanto dos gestores do projeto quanto dos analistas que

trabalharão como testadores.

Como você pode imaginar, quanto mais tarde ocorre a correção de proble-

mas identificados nos testes, maior é o custo decorrente dessas correções, tanto

Financeiros quanto de imagem perante os usuários finais. Daí a importância

da realização dos testes desde o início do projeto de softwar

Existem muitas ferramentas que podem ser utilizadas em qualquer projeto

de desenvolvimento de software. Há opções com licenças pagas ou gratuitas,

mas nenhuma pode ser definida como a melhor. Cabe ao gestor do projeto

definir a ferramenta mais adequadas

Página 2

Existem basicamente três problemas que podem ser encontrados durante

a realização dos testes em um software, como você pode ver a seguir

 Erro: normalmente é causado por algo que o ser humano fez de errado.

Pode ser um trecho de código de programação incorreto, um design

inadequado em uma parte da interface, entre outros exemplos.

 Defeito: decorre de um erro, pois quando uma codificação ou um

design são elaborados de maneira incorreta, isso gera um problema de

documentação, codificação ou design de interface.

 Falha: decorre de um defeito, ou seja, quando um defeito ocorrer,

pela tentativa de execução de uma parte do código ou da interface

com problema, uma falha de sistema vai acontecer e o sistema não vai

funcionar corretamente, podendo até mesmo sofrer uma interrupção

na sua execução.

As ferramentas de software permitem maior cobertura de identificação

de problemas e diminuem o esforço dos testadores e de toda a equipe, tanto

no apontamento dos problemas quanto na sua correção. Essas ferramentas

podem ser divididas nas categorias listadas a seguir. Elas são utilizadas ao

longo do ciclo de vida de desenvolvimento do software, como você pode ver

na Figura 1 (CAETANO, 2007).

 Ferramentas para gestão de defeitos

 Ferramentas para gestão de testes

 Ferramentas para gestão de projetos

 Ferramentas para automação de testes funcionais e de aceitação

 Ferramentas para automação de testes de performance

 Ferramentas para controle de versões

 Ferramentas de apoio

Existem basicamente três problemas que podem ser encontrados durante a realização dos testes em um software, como você pode…

A utilização de ferramentas na realização das atividades de testes de

software proporciona alguns benefícios muito importante

 os testes podem ser repetidos em sua integralidade, de maneira exaustiva,

sem que isso torne a atividade incômoda e maçante para os testadores;

 os casos de teste podem ser armazenados e executados, e seus resultados

podem ser documentados de maneira facilitada, ficando disponíveis para

que os demais integrantes da equipe de projeto os utilizem em seu trabalho;

 os testes podem ser reproduzidos de maneira fiel, pois existe documen-

tação para cada atividade realizada no âmbito da ferramenta;

 são gerados arquivos de log apontando tudo o que foi feito no decorrer

das atividades de teste, com indicação dos problemas encontrados.

Página 3

Não existe uma ferramenta ideal para ser aplicada em todos os casos.

Contudo, uma ferramenta automatizada de teste de software precisa envolver

necessariamente os seguintes aspectos para ser considerada um instrumento

de auxílio na realização das atividades de test

 cada uma das menores partes do software que precisa ser testada deve

ser executada de maneira isolada e independente de todas as outras

unidades testadas;

 todos os erros, defeitos e falhas identificados devem ser documentados;

 a definição de cada unidade de teste, ou menor parte do software que

precisa ser testada, deve ser definida de maneira simples e não complexa.

TestLink https://goo.gl/1WBFFE

O TestLink é uma ferramenta automatizada de testes de software open source

escrita na linguagem de programação PHP. O principal objetivo dessa ferra-

menta é dar suporte às atividades realizadas para a gestão de testes. Como

padrão, o TestLink é instalado na língua inglesa, mas é possível alterar essa

configuração para o idioma português.

Por meio do TestLink, você pode elaborar planos de testes e gerar relató-

rios com diversas informações para acompanhar a realização das atividades

de testes. Essa ferramenta também possibilita registrar e organizar todos os

requisitos levantados junto ao usuário no início do projeto e, posteriormente,

associar cada caso de teste criado ao requisito correspondente.

principais funcionalidades :

 controle de acesso e níveis de permissão, dependendo do perfil do

usuário (por exemplo, testador ou gerente de projeto);

 organização dos casos de teste em pacotes hierárquicos que podem ser

organizados por prioridade;

 classificação dos casos de teste por palavras-chave, a fim de facilitar a

pesquisa e organizar ainda mais a disposição dos casos de teste;

 criação ilimitada de projetos e de casos de teste dentro de cada projeto,

ou seja, não há limite de quantidade para nenhum deles;

 atribuição dos planos e casos de teste a testadores específicos;

 geração de relatórios e gráficos com informações sobre os testes que

podem ser exportadas para diversas extensões, como CSV, PDF, Mi-

crosoft Excel e Microsoft Word;

 possibilidade de integração com outras ferramentas automatizadas de

gestão de testes e de defeitos, como o Mantis.

Página 4

Selenium https://goo.gl/52Qs4M

A ferramenta de testes de software chamada Selenium surgiu nos anos 2000,

evoluiu ao longo dos anos e atualmente é uma das mais conhecidas ferramentas

de automação de teste open source para aplicativos web

O Selenium é multiplataforma, ou seja, funciona em diversos sistemas

operacionais, como Windows, Mac e Linux, e ainda em diversos navegadores

web, como Chrome, Internet Explorer e Firefox. Além disso, os seus scripts

de teste podem ser escritos em diversas linguagens de programação, como

Python, Ruby, Perl e Java.

Apesar de o Selenium poder ser utilizado em diversos ambientes de pro-

gramação diferentes, além de suportar casos de teste complexos que atendem

a altos níveis de complexidade de sistemas, é necessário ter muito conheci-

mento técnico para trabalhar com ele. É preciso ter habilidades avançadas

de programação. Além disso, é requerido bastante esforço para a criação de

estruturas automatizadas e bibliotecas que atendam às necessidades de teste,

por mais simples que sejam.

IBM Rational Functional Tester https://goo.gl/oEAWD1

A ferramenta de teste chamada IBM Rational Functional Tester é paga e serve

para a realização de testes funcionais e testes de regressão. Os scripts dos

casos de teste são escritos em Visual Basic, .NET e Java (CAETANO, 2007).

O IBM Rational possui um recurso inédito entre as ferramentas de teste: o

teste do storyboard. Nele, as ações dos usuários e testadores são registradas

e podem ser visualizadas posteriormente no formato de storyboard, feito por

meio de capturas da tela da ferramenta

Página 5

TestComplete https://goo.gl/UBu3QL

O TestComplete é uma ferramenta de testes paga considerada muito poderosa

para a realização de testes em aplicações web, dispositivos móveis e desktops.

Essa ferramenta suporta a elaboração de scripts de casos de teste em JavaScript,

VBScript, C++ e Python (CAETANO, 2007).

A ferramenta TestComplete possibilita que os testadores realizem testes

orientados por palavras-chave e dados. Além disso, oferece um recurso que

permite a gravação dos testes realizados e a sua reprodução, de maneira

simples e fácil de usar.

Teste de software com JUnit e testes com JAVA https://junit.org

Na área da engenharia de software, uma das atividades mais importantes é

o teste de software. Ele precisa ser feito ao longo de todo o ciclo de vida do

projeto de desenvolvimento do software. Isso se torna mais evidente quando

a equipe de projeto trabalha com extreme programming, que tem uma visão

voltada principalmente para os teste

Quando o produto de software precisa ser desenvolvido na linguagem

de programação Java, os testes de software podem ser implementados por

meio do JUnit. Atualmente, ele é um dos frameworks mais conhecidos para

a realização de testes em Java.

O JUnit é um framework que pertence a uma família de ferramentas de testes

de software chamada xUnit. Essas ferramentas são aplicadas em produtos de

software desenvolvidos em C++, SmallTalk, Java e outras linguagens de progra-

mação. Apesar de o JUnit ser bem simples de se utilizar, ele traz um ambiente

completo para a realização dos testes unitários e dos testes de regressão em

códigos escritos na linguagem Java, facilitando o trabalho do desenvolvedor.

Os testes unitários, que são aqueles realizados por meio do JUnit, asseguram

que cada método projetado trabalhe da maneira como se espera, averiguando

as menores partes do código desenvolvido, que, no caso da metodologia ágil,

são os métodos.

Para entender melhor o que significam essas menores partes do código, basta você

imaginar um sistema de uma escola em que existe uma classe chamada Aluno, com os

métodos calcularMedia() e calcularMensalidade(). Para averiguar se existe algum erro

que envolva esses métodos, é necessário testar cada um deles a fim de entender de

onde o problema está vindo. Para a realização desses testes unitários, uma boa saída

são os testes automatizados, que aumentam a produtividade do desenvolvedor pois

diminuem o tempo gasto com testes.

Essa ferramenta é dividida em duas partes: uma com métodos e anotações

que servem para a elaboração dos casos de teste; e outra que serve para realizar

a execução dos casos de teste criados pela primeira parte (CAETANO, 2007).

A execução dos testes, por meio do JUnit, é feita de forma totalmente

automatizada e sem que seja necessária a intervenção humana. Além disso,

a apresentação do resultado dos testes realizados pelos testadores é feita por

meio de algo semelhante a um semáforo: a cor verde significa que o teste foi

executado da maneira como estava escrito no caso de teste; a cor azul significa

que o teste apresentou algum erro de validação; e a cor vermelha significa que

houve algum erro de exceção na escrita do código em Java.

Para trabalhar com o JUnit, você deve tomar algumas precauções durante o

planejamento dos teste

 definir um pacote em que fiquem armazenadas todos os casos de teste;

 levar em consideração que cada caso de teste é responsável pelos testes

de uma classe do sistema;

 criar vários procedimentos de teste, de modo que cada um deles realize

pequenos testes.

Página 6

Na versão atual, o JUnit se divide em sete classes e interfaces, que são

Assert, TestResult, Test, TestListener, TestCase, TestSuite e BaseTestRunner.

As principais são a TestCase, a TestSuite e a BaseTestRunner.

Para testar o código, o JUnit oferece o método assert, que é muito fácil de

entender. Um método de asserção, ou assert, recebe o valor que é o esperado

como resultado para o teste, ou seja, o valor correto, e um outro que é o resul-

tado obtido pelo teste. A comparação entre eles é realizada e o teste falha se

os valores forem diferentes, mas é realizado com sucesso se eles forem iguais.

Conhecendo esse conceito de assert, é possível realizar o teste em todo o

código desenvolvido. É preciso apenas conhecer os requisitos do sistema (a

ponto de saber quais valores devem ser retornados em cada teste) e os resultados

obtidos com os testes (para tecer as comparações).

Uma boa maneira de escrever um teste unitário eficiente é colocar asser-

ções para os valores realmente críticos ou relevantes para o sistema. Ou seja,

talvez não seja necessário testar valores intermediários das classes, apenas

resultados finais. Porém, outras vezes talvez os resultados intermediários

interfiram diretamente no resultado final e seja interessante inserir asserções

para eles também.

Ao adicionar casos de teste no JUnit, você deve ter em mente que um valor

pode corresponder a qualquer objeto Java. Por isso, é fundamental implementar o equals e o hashcode dos objetos de resposta que precisarão ser testados com

o JUnit (BITTENCOURT; TESSMANN; SCHIRMER, 2019).

Como exemplo de implementação de método de teste no JUnit, considere

o seguinte:

Na versão atual, o JUnit se divide em sete classes e interfaces, que são Assert, TestResult, Test, TestListener, TestCase…

Como o método criado é um void, ele não vai receber nenhum argumento, ou

seja, será uma classe de teste mesmo. A partir disso, é preciso inserir asserções

para que se possa compreender o funcionamento do método:

Nesse código, o primeiro argumento é a mensagem que vai aparecer caso

o teste falhe. Para visualizar a mensagem de erro, basta alterar o último ar-

gumento para que traga um resultado incorreto. Essa é a maneira mais fácil e

básica de entender como os testes são realizados por meio do JUnit.

Caso o teste precise envolver elementos mais complexos, o script do caso

de teste pode se parecer com o que é mostrado na Figura 2, a seguir.

É importante você observar que a string é inicializada e recebe valor null

por três vezes, porque existem três métodos de teste. Os métodos @Before

são executados antes dos métodos de teste, e o @After é executado depois

deles. As anotações @Before e @After, da maneira como foram utilizadas,

permitem criar cenários de teste sempre zerados e corretamente inicializados

a cada ciclo de teste (BITTENCOURT; TESSMANN; SCHIRMER, 2019).

Informações

Descrição
Pós-Graduação Engenharia de Software Notas sobre M6 #4 - Ferramentas de teste , criado por Lucas Erikson em 24-10-2022.
Criado por
Lucas Erikson · out 2022
Atualizado
25 out 2022
Visualizações
0
Avaliação

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?