Os testadores devem automatizar seu trabalho?


9

Estamos tentando configurar nosso processo de teste. Perguntamos se nossos testadores devem desenvolver testes de regressão automatizados ou se os desenvolvedores devem fazer isso.

E quanto a outros tipos de testes automatizados? Os testadores devem desenvolvê-los?


Basta começar a chamá-los de "desenvolvedores em teste" e a ambiguidade é resolvida.
Edward Strange

@ Louco Mas não é mais caro ter 2 equipes de desenvolvedores?
Jader Dias

5
Mais caro do que o que? Vendendo um produto mal testado? Gargalhar o processo de desenvolvimento porque os desenvolvedores estão escrevendo testes em vez de produtos?
Edward Strange

Respostas:


12

Eu digo que os testadores devem desenvolver os testes automatizados - eles têm a abordagem do "par de olhos externos" do código e irão (ou deve ser apenas 'pode'?) Detectar bugs que você não pensou, muito menos lidar com .

Além disso, a compreensão dos requisitos funcionais pode ser de nível superior ao entendimento dos desenvolvedores - portanto, fica entre o conhecimento de baixo nível do programador, mas não tão alto quanto o do BA.


Mas eles não poderiam simplesmente pedir aos desenvolvedores que escrevessem esse caso de teste?
Jader Dias

11
Pelas razões mencionadas acima, os desenvolvedores saberiam muito mais sobre a implementação interna e abordariam o software de maneira diferente daquela vinda de fora.
James Love

Não vejo como uma implementação de caso de teste pode diferir de uma pessoa para outra.
Jader Dias

5
@Jader, você quer que pessoas diferentes escrevam os testes automatizados que escreveram o código original. Caso contrário, os testes serão tendenciosos para trabalhar com o código como ele foi escrito.
1027 Marcie

3
Nas últimas semanas, um desenvolvedor me ajudou a escrever acessórios para o código dele. Ele é um desenvolvedor muito bom, mas definitivamente sente falta de algumas nuances de cobertura para seu código, apenas porque não pensa na cobertura em profundidade regularmente. Se os desenvolvedores ajudarem no teste, peça a um testador que revise seu trabalho.
Ethel Evans

11

Se você pode automatizar, automatize-o.

Deixe os testadores livres para encontrar o que você não pode automatizar. E quando encontrarem um novo bug, se ele puder ser automatizado e adicionado aos testes automatizados, adicione-o.


Mas por que eles deveriam e não apenas os desenvolvedores?
Jader Dias

@JaderDias, como já foi mencionado, os testadores não devem ter preconceitos preconcebidos sobre o código que estão tentando testar.
CaffGeek

3

Na minha opinião, desenvolvedores e testadores são responsáveis ​​por diferentes tipos de testes.

O desenvolvedor, ao escrever a lógica, também deve escrever testes de unidade e integração. Isso permitirá que o desenvolvedor verifique se o que ele escreveu até agora funciona como pretendido. Além disso, esses testes ainda estarão disponíveis para o desenvolvedor executar quando fizerem alterações futuras. Depois que a lógica é concluída, o desenvolvedor pode ter certeza de que o que está escrito funciona conforme eles entendem as especificações e pode passar para o testador.

O testador a partir deste ponto deve ser responsável por escrever testes em todo o sistema que garantam que a lógica de negócios funcione conforme o planejado.

Dado que os desenvolvedores geralmente são muito apegados ao código, os testadores devem poder ajudar a limpar os testes do desenvolvedor, mas não vice-versa.


Curioso sobre sua última frase - você não acha que os desenvolvedores podem contribuir para testes funcionais? E se os testadores delinearem a estrutura de teste e identificarem casos de teste e os desenvolvedores apenas ajudarem na implementação?
22611 Miss Cellanie

11
Acho que estou imaginando testadores que são desenvolvedores por direito próprio e podem escrever seus próprios testes. O trabalho deles seria percorrer os requisitos e conversar com o usuário para identificar os casos de teste e depois escrevê-los. Isso deixa os desenvolvedores da lógica livres para estarem próximos da lógica enquanto a escrevem. Isso também deixa os testadores afastados o suficiente de "possuir" a lógica que eles podem tentar quebrá-la com objetividade e sem remorso.
Taylor Price

2

Na minha experiência, a maneira como um testador configura e executa um caso de teste automaticamente difere da maneira como um desenvolvedor o faz. Os testadores estarão pensando mais em como obter o máximo de informações do caso de teste, como executar testes rapidamente, como manter os testes em manutenção e assim por diante. Mais importante, os testadores verão nuances da cobertura de teste que os desenvolvedores sentirão falta.

Se os recursos de desenvolvimento de teste forem baixos, os desenvolvedores podem ajudar - mas o testador deve revisar seu trabalho com cuidado. Os desenvolvedores devem trabalhar em equipamentos e ferramentas de teste antes de escrever casos de teste reais, e os desenvolvedores nunca devem escrever casos de teste para seu próprio código. O fato de os desenvolvedores ajudarem nos testes tem vantagens - ele expõe os desenvolvedores a outras partes do produto, e os testes podem ajudá-los a se tornarem melhores desenvolvedores. No entanto, assim como o trabalho de um desenvolvedor júnior nunca ficaria sem uma revisão de código, o trabalho de QA de um desenvolvedor deve receber uma revisão de QA de alguém com mais experiência em testes.

Editado para adicionar: Sou um SDET com 5 anos de experiência. Eu trabalho com grandes desenvolvedores com mais de 10 anos de experiência cada um e ultimamente tenho trabalhado com eles para superar um gargalo de teste.


0

Uma coisa que eu realmente gostaria de ver é ferramentas sólidas de automação para testadores, que lhes permitem registrar efetivamente seu progresso através de um script de teste e, em seguida, permitir que esse script seja executado automaticamente no futuro. Especialmente se isso também facilitar a execução do mesmo script em diferentes versões do sistema operacional, sem que o testador precise executar todos eles manualmente.

Infelizmente, certamente para o produto em que trabalho, nenhuma das ferramentas do mercado funciona bem. Mas vale a pena ter isso em mente e analisar o que está disponível no mercado, caso haja algo que funcione para o que você está fazendo.


O Visual Studio 2010 (Premium ou Ultimate, não me lembro qual) possui algo que registra ações da tela para automatizar o teste da interface do usuário. Eu vi uma demonstração disso por Andrew Woodward MVP ao fazer um show do UI Testing SharePoint, incrivelmente coisas.
James Love

Gravar e tocar corretamente tem uma reputação bastante ruim. Tende a ser bastante frágil e difícil de manter. Sim, como uma rápida e suja "Eu tenho que executar isso em 4 datacenters diferentes, não quero guardá-lo para uso futuro", tudo bem, mas é horrível de manter porque você acaba com muitas repetições. Um pequeno elemento muda - e de repente você precisa atualizar 100 testes. Doloroso. Ele também não substitui o teste manual, que tende a ser projetado com a suposição de que um humano notará todas as outras coisas que você não verificou explicitamente.
Testerab

O que seria muito bom seria algo que poderia levar as coisas a um nível um pouco mais baixo do que mover o ponteiro e clicar com o mouse, para que você realmente grave o botão que foi clicado e não onde o clique ocorreu. Isso tornaria esse tipo de teste mais resistente e prático. Quando você precisa executar todos os scripts, por exemplo, nove versões diferentes do Windows, é um pesadelo ter que fazê-lo manualmente em todas elas.
glenatron

A identificação do botão por ID, em vez da localização, é perfeitamente possível com algumas ferramentas. Infelizmente, a gravação e reprodução de scripts feitos assim ainda são difíceis de manter - não resolve o problema da repetição. Acho que não há como fugir da necessidade de projetar sua automação de teste com cuidado, se você realmente deseja manter algum script por perto ou criar mais de uma dúzia deles. Você já pensou em usar algo orientado por palavras-chave, como o Robot Framework, juntamente com o Auto-It?
Testerab

0

Uma distinção crítica que é realmente importante aqui é a seguinte: seus testadores estão simplesmente verificando ou estão testando ?

Este post de Michael Bolton explica melhor, mas em essência: eles estão olhando apenas para confirmar o comportamento ou estão procurando problemas com o sistema?

Eu acho que também é útil considerar os Quadrantes do Agile Testing (Brian Marick os descreveu originalmente, mas os encontrei no livro "Agile Testing" de Lisa Crispin e Janet Gregory: mesmo que você não esteja seguindo uma metodologia de desenvolvimento Agile, acho que o a distinção entre testes que criticam o produto e testes que dão suporte à equipe é realmente útil quando se considera a automação e se tenta desenvolver um plano para quem faz o quê e por quê.

Por exemplo, as verificações de unidade escritas pelos desenvolvedores atuam como detectores de alterações, permitindo que você faça as regressões mais cedo quando elas são executadas regularmente - esses são testes que dão suporte à equipe. As verificações de regressão no nível do sistema, automatizadas para que possam ser executadas regularmente e rapidamente, também dão suporte à equipe, capturando as regressões mais cedo e complementam os testes de unidade realizados pelos desenvolvedores. Isso libera o tempo dos testadores para realizar testes que criticam o produto - testes exploratórios, por exemplo. Ou, possivelmente, aplicando algumas das verificações automatizadas para testar o produto com estresse.

A outra coisa de que realmente gosto na apresentação de Lisa Crispin que vinculei é que ela indica que a automação também pode ser usada para dar suporte ao teste manual - criando dados de teste, a automação usada para obter um cenário no ponto em que você deseja se concentrar hoje, por exemplo.

A consideração desses dois artigos ajudará você a analisar que tipo de teste você deseja fazer, facilitará a escolha do que pode ser adequado para automação e descobrirá quais bits de automação são mais adequados para serem testados e quais pelos desenvolvedores.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.