Podemos incentivar nossa equipe de teste a colaborar com os desenvolvedores na automatização de testes?

5

Eu sou um desenvolvedor C# e minha equipe e eu estamos tentando iniciar automated functional tests . (Note que não queremos fazer Unit Tests ; esperamos desenvolver testes que testem um ponto de função por teste)

Nosso software tem vários módulos, mas eles têm algo em comum: uma entrada (pode ser File, string ou linha de banco de dados) e algumas saídas (um arquivo, uma linha de banco de dados ou ambos em alguns casos).

Um problema é que a configuração é armazenada no banco de dados e há MUITA configuração para permitir que o software seja executado corretamente, e alguém poderia alterá-lo e afetar os testes.

Na minha opinião, temos uma incrível equipe de testes, e estou pensando em encontrar uma maneira de os desenvolvedores desenvolverem os testes, mas a equipe de teste às vezes ajudaria a desenvolvê-los também.

  • A equipe de teste desenvolve os testes automatizados com base nos casos de teste - essa é uma boa abordagem?
  • Eu sei que, se a criação dos cenários de teste for difícil de fazer, a equipe de teste não verá nenhuma recompensa. Então, qual é uma boa abordagem (em C# ) para desenvolver testes automatizados onde ambas as equipes (desenvolvimento e teste) poderiam ajudar a melhorá-las?
por Only a Curious Mind 08.03.2016 / 20:10
fonte

4 respostas

2

Como desenvolvedor, suponho que os desenvolvedores possam certamente ajudar os testadores a implementar a automação de seus testes.

No entanto, acredito que é melhor deixar o escopo dos testadores, planejar , e projetar o ambiente de teste e casos de teste por si, sem viés de desenvolvedor.

Separação de preocupações. Segregação de responsabilidade.

'HTH,

    
por 09.03.2016 / 06:20
fonte
2

Eu recomendaria ver Pepino com Pepino . Baseia-se na ideia de que testadores ou especialistas em negócios podem escrever testes legíveis, semi-formatados e, em seguida, os desenvolvedores criam ligações entre esses testes e o aplicativo. Em situação ideal, as ligações serão genéricas o suficiente, que os casos de teste podem ser escritos ou alterados sem envolvimento do desenvolvedor.

    
por 09.03.2016 / 08:09
fonte
1

Há muita configuração - bem, você precisa simplificar isso para resultados reproduzíveis. Isso significa configurar pacotes (ou perfis) pré-configurados de configurações que podem ser reaplicadas a qualquer momento.

Depois, você pode desenvolver um conjunto de configurações consistente para sua equipe de testes e permitir que elas redefinam as coisas para uma linha de base conhecida.

Quanto à sua pergunta - eles não são o que a equipe de teste faz, afinal? Você pediu que colaborassem com você para ajudá-lo a se tornar um melhor testador?

    
por 09.03.2016 / 10:14
fonte
1

Você pode adotar uma biblioteca que divide o teste em duas partes: a lógica de teste de alto nível e a implementação de baixo nível.

Por exemplo, a estrutura do robô permite que você especifique casos de teste usando palavras-chave de alto nível. Trabalhei com sucesso em uma equipe onde os desenvolvedores implementam as palavras-chave (em python, embora o robô suporte .net, java e outras linguagens), e os testadores usam essas palavras-chave para criar seus testes.

Além de ser uma boa maneira de aproveitar as habilidades de testadores e desenvolvedores, ela oferece aos testadores uma oportunidade de crescimento na carreira, pois eles podem aprender a usar uma linguagem de programação para escrever suas próprias palavras-chave.

Existem outras estruturas que funcionam de maneira semelhante. Três que vêm à mente são pepino , specflow (essencialmente, pepino para .net) e fitnesse .

    
por 09.03.2016 / 17:17
fonte