# Habilidades de um testador de software

Entendidas quais são as visões desejáveis para quem quer trabalhar com teste de software quanto aos objetivos e como devemos encarar a definição de sucesso ao testar um sistema, podemos nos focar nas **habilidades desejáveis para um testador de software**. Lembre-se que muitas das habilidades aqui são adquiridas apenas com tempo e experiência nessa função.

**Desenvolvimento de software** e **teste de software** andam de mãos dadas. Ambos visam atender aos requisitos e objetivos predefinidos para um projeto. Aos testadores de software são exigidas habilidades técnicas semelhantes às de seus colegas de desenvolvimento, mas os testadores de software também precisam adquirir outras habilidades, tais como:

### Alta capacidade de observação

Uma alta capacidade de observação é a qualidade primordial que qualquer testador de software deve possuir. Nem sempre todos os bugs são explícitos em um software, e ao observar atentamente os detalhes do software o testador pode identificar ou detectar facilmente muitos bugs críticos.&#x20;

### Criatividade destrutiva

O Testador precisa desenvolver habilidades destrutivas, ou seja, habilidades para perturbar e travar o fluxo de trabalho do software e suas funcionalidades. Em outras palavras, o testador "**não deve hesitar em quebrar o software**" temendo comprá-lo ou sendo empático com os desenvolvedores. No teste de software, **os limites devem ser ultrapassados e não obedecidos**. Uma abordagem criativa, mas destrutiva, é necessária durante o teste de um software para fazer com que ele evolua de forma mais robusta e confiável.

Lembre-se que **o cliente provavelmente não irá respeitar os limites do software**.

![](https://941843085-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MG9pqmHRgmED9jPXlCo%2F-MHglu6LddD8sIu2GG8k%2F-MHgrm5MV_YMU2tpIBoy%2FDeveloper%2C%20Tester%2C%20and%20Client%20-%20Imgur.gif?alt=media\&token=51f4f10f-983e-41dd-aebc-95053b1c37f1)

### Compreensão do produto como integração de suas partes

O **software como produto** é o resultado de milhares (ou milhões) de linhas de código interagindo com os dados por meio da **interface do usuário** e do **banco de dados**. É uma integração de um grupo separado de código interagindo com outros grupos reunidos para **funcionar como um produto completo**.

Não é surpresa que o desenvolvedor às vezes nem conheça o fluxo de trabalho completo do produto e talvez nem seja necessário mesmo. Já no caso de um testador, sendo o condutor do software em teste, deve compreender as especificações completas (**requisitos operacionais** e de **fluxo de trabalho**) do produto.

O testador pode não ser o melhor especialista em algum dos módulos do software, mas definitivamente ele deve ganhar **experiência na operação geral do produto**. De fato, o testador deve possuir uma visão ampla do produto, porque eles são as únicas pessoas a ver e testar a funcionalidade completa dos módulos interdependentes e a compatibilidade entre as especificações de software e hardware estabelecidas pelo cliente antes que elas sejam enviadas para o ambiente de produção.

### Perspectiva orientada para o cliente

Os testadores precisam possuir uma **perspectiva orientada para o cliente**. Como o número de usuários de computadores e smartphones cresce a cada dia, estes podem **não se sentir confortáveis** e **nem tolerar quaisquer bugs, explicações ou atualizações frequentes para corrigir os bugs**, uma vez que eles não necessariamente são experientes quanto engenheiros de software ou testadores.

Como qualquer cliente provavelmente está interessado apenas em consumir o produto (software), o testador de software deve adotar uma **perspectiva orientada para o cliente** ao testar o produto de software. Portanto, o testador deve desenvolver suas habilidades para se portando no lugar do cliente, **testando o produto como um mero usuário final**.

### Atitude objetiva e neutra

Testadores às vezes são vistos como "**mensageiros das más notícias"** em uma equipe de projeto de software. Porém, ele deve ser capaz de lidar com a situação em que ele/ela é "culpado" por fazer seu trabalho (detectar bugs) muito bem, atrasando uma ou mais entregas do software.

{% embed url="<https://twitter.com/gerardsans/status/1413932910424608770>" %}
Time de Desenvolvimento vs. Time de Qualidade
{% endembed %}

Os trabalhos do testador devem ser apreciados e os bugs devem ser bem-vindos pela equipe de desenvolvimento porque cada bug potencial encontrado pelo testador significaria uma **redução de um bug que potencialmente poderia ter sido encontrado pelo cliente**.

### Referências

The Psychology of Testing! - <https://www.codeproject.com/Articles/17649/The-Psychology-of-Testing>
