Automatização de testes de software

Off Topic

16/09/2015

Recentemente fui contratada para integrar uma equipa que está a desenvolver uma aplicação web para fazer testes manuais em que testo a aplicação como se fosse um utilizador.

Pediram-me para pensar em estratégias para automatizar esses mesmos testes, mas eu estou a ter dificuldade a encontrar informação sobre este assunto já que não conheço bem os conceitos e tipos de testes que existem e podem sem implementados na aplicação.

A equipa de desenvolvimento faz testes unitários quer no backend quer no frontend.

Eu posso automatizar os meus testes? De que forma? Que ferramentas posso utilizar?

Obrigada
Carina

Carina

Curtidas 0

Respostas

Eduardo Pessoa

Eduardo Pessoa

16/09/2015

Boa noite Carina, Testes é uma que tenho interesse, mas sempre é dificil de achar algo na prática, bom, sem mais bla bla, espero que ajude.

[url]http://www.qualister.com.br/blog/melhores-praticas-e-desafios-na-automacao-de-testes[/url]

[url]https://www.devmedia.com.br/artigo-engenharia-de-software-5-melhores-praticas-na-automacao-de-testes/10249[/url]
GOSTEI 0
Eduardo Pessoa

Eduardo Pessoa

16/09/2015

Carina, os links ajudaram?
GOSTEI 0
Carina

Carina

16/09/2015

Obrigada Eduardo Pessoa pelas respostas e interesse demosntrados.

Estive a ler com atenção e os textos dão boas dicas para a implementação de testes automáticos, estratégia, etc, ou seja a parte teórica.
No entanto não respondem a algumas das minhas questões:

1. Como se denominam os testes que devem ser implementados pela equipa de desenvolvimento? Ou que tipo de testes devem ser feitos por eles?

2. Como se denominam os testes que devem ser implementados por mim que estou a fazer testes do ponto de vista do utilizador? Ou que tipo de testes posso eu fazer?

Saber ao certo como se denominam estes teste talvez me ajudasse a procurar informação sobre eles. Sei que existem testes unitários e percebo o conceito, mas já ouvi falar em testes funcionais, end-to-end, de aceitação, de integração, etc e não consigo entender bem as diferenças entre eles. Existe tanta informação que me deixa perdida...
GOSTEI 0
Jothaz

Jothaz

16/09/2015

O assunto é complexo e abrangente por demais para ser esgotado em um post de fórum.

Aconselho uma consulta ao pai Google e muita leitura, somente assim você poderá conseguir uma visão critica do assunto.

Para automatizar os testes de usabilidade, unidade, integração e funcionais aconselho buscar por uma ferramenta pronta, pois para desenvolver do zero é custoso, trabalhoso e requer um grande conhecimento na área de testes e de desenvolvimento. Já trabalhei em projetos que usavam QARUN (acho que é isto se não me engano) é pago, mas vale cada centavo. Dependendo da tecnologia usada alguns destes testes já estão disponíveis de forma nativa, vide o .net MVC.

Segue um resumo dos principais testes, que talvez seja capaz de nortear sua pesquisa.

-Teste de configuração
--Testa se o software funciona no hardware que ele será instalado.

-Teste de instalação
--Testa se o software instala como planejado em diferentes hardwares e sob diferentes condições como pouco espaço de memória, interrupções de rede, interrupções na instalação, etc.

-Teste de integridade
--Testa a resistência do software à falhas.

-Teste de Segurança
--Testa se o sistema e os dados são acessados de maneira segura apenas pelo autor das ações.

-Teste funcional
--Testa os requisitos funcionais, as funções e os casos de uso. A aplicação faz o que deveria fazer?

-Teste de unidade
--Testa um componente isolado ou classe do sistema.

-Teste de integração
--Testa se um ou mais componentes combinados funcionam de maneira satisfatória. Há quem diga que o teste de integração é composto por vários testes de unidade.

-Teste de volume
--Testa o comportamento do sistema operando com o volume "normal" de dados e transações envolvendo o banco de dados durante um longo período de tempo.

-Teste de performance
--O teste de performance se divide em 3 tipos:
---Teste de carga
----Testa o software sob as condições normais de uso. Ex.: tempo de resposta, número de transações por minuto, usuários simultâneos, etc.
---Teste de stress
----Testa o software sob condições extremas de uso. Grande volume de transações e usuários simultâneos. Picos excessivos de carga em curtos períodos de tempo.
---Teste de estabilidade
----Testa se o sistema se mantém funcionando de maneira satisfatória após um período de uso.

-Teste de usabilidade
--Teste focado na experiência do usuário, consistência da interface, layout, acesso às funcionalidades, etc.

--Testes de caixa branca e caixa preta
---Basicamente, teste de caixa branca envolve o código e o de caixa-preta, não.

-Teste de regressão
--Reteste de um sistema ou componente para verificar se alguma modificação recente causou algum efeito indesejado e para certificar que o sistema ainda atende aos requisitos.

--Teste de manutenção
---Testa se a mudança de ambiente não interferiu no funcionamento do sistema.

Infelizmente não tenho mais a fonte de onde retirei a informação acima, para dar os devidos créditos, mas foi em pesquisas no google.

Bom espero que minha humilde contribuição possa ajudar!
GOSTEI 0
Herivelton Pires

Herivelton Pires

16/09/2015

Olá!

Teste acessar este Link para visualizar ferramentas OpenSource para automação dos testes de software.

http://www.testesdesoftware.com/2009/10/ferramentas-de-testes-de-software.html


A raiz deste site (http://www.testesdesoftware.com) traz diversas outras fontes de informações úteis para análise/testes de software.

Espero que seja útil de alguma forma...
GOSTEI 0
Eduardo Pessoa

Eduardo Pessoa

16/09/2015

É muito assunto dentro dessa área de testes, teoria, pratica e ferramentas! Deveriam existir mais cursos destinado a ela.
GOSTEI 0
Daniel Garcia

Daniel Garcia

16/09/2015

Sim Carina, você pode automatizar testes. Existem ferramentas no mercado que te ajudarão nessa tarefa. Não é uma tarefa muito dificil de fazer, precisa de conhecimento básico de programação e tem bastante conteúdo na internet para auxilio.

Sua primeira missão é escolher a ferramenta a ser usada, estude uma gratuita e depois veja as pagas(são caras, mas excelentes e antes de comprar pega um trial pra verificar se tem aderência com o sistema que vc vai automatizar), e outra dica é saber selecionar corretamente os cenários a serem automatizados, nem todos valem a pena. (geralmente escolhemos cenários de TRG)


Ferramenta free:
Seleniun - ferramenta boa http://www.seleniumhq.org/

Ferramentas pagas:
Quick Test Pro (HP) - Ferramenta excelente - https://saas.hpe.com/pt-br/software/uft
Functional Teste (IBM) - Ferramenta excelente - http://www-03.ibm.com/software/products/pt/functional

Blog que ajuda a entender o assunto:
http://www.qualister.com.br/blog/melhores-praticas-e-desafios-na-automacao-de-testes
GOSTEI 0
André Gomes

André Gomes

16/09/2015

Bom dia Carina,

Não sou experiente no assunto, mas pelo que você falou, te aconselho a pesquisar sobre a ferramenta Selenium IDE, que é de facil aprendizado e que testa as entradas e saídas do sistemas pela interface do usuário.
GOSTEI 0
POSTAR