Skip to content

Commit

Permalink
Merge pull request #71 from Trilha-de-Qualidade/26-fundamentos-de-qa-…
Browse files Browse the repository at this point in the history
…teste-de-aceitação

Página de Teste de Aceitação
  • Loading branch information
wederson authored Jun 8, 2024
2 parents 9ff6379 + a952f65 commit 31848c7
Showing 1 changed file with 106 additions and 1 deletion.
107 changes: 106 additions & 1 deletion docs/1 - Fundamentos de QA/Pirâmide de Testes/aceitacao.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,109 @@ sidebar_position: 5

# Aceitação

em construção
Os testes de aceitação verificam se o sistema atende aos requisitos e expectativas dos usuários finais. São geralmente realizados a partir da perspectiva do usuário e focam em validar que as funcionalidades do software cumprem com os critérios de aceitação previamente definidos. Esses testes são cruciais para garantir que o produto entregue atenda às necessidades dos stakeholders.

---

## Importância dos testes de aceitação

Os testes de aceitação são importantes por várias razões:

- **Validação de requisitos:** Asseguram que todos os requisitos funcionais e não funcionais sejam atendidos.
- **Confiança dos stakeholders:** Fornecem confiança aos stakeholders de que o sistema se comporta conforme o esperado.
- **Redução de riscos:** Identificam defeitos que poderiam impactar diretamente a experiência do usuário final.
- **Facilitam a entrega contínua:** Ajudam a garantir que o software esteja sempre em um estado de prontidão para ser liberado.

---

## Características dos testes de aceitação

Os testes de aceitação possuem algumas características específicas:

- **Baseados em requisitos:** Testam o sistema contra os critérios de aceitação definidos.
- **Orientados ao usuário:** Focam em cenários de uso reais e na experiência do usuário.
- **Automatizados:** Idealmente, devem ser automatizados para permitir testes repetidos e eficientes.

---

## Ferramentas e frameworks

Para testes de aceitação em JavaScript, algumas ferramentas e frameworks populares incluem:

- **[Cypress](https://www.cypress.io/):** Um framework poderoso e fácil de usar para testes end-to-end, que também é muito adequado para testes de aceitação devido à sua capacidade de simular interações do usuário de forma precisa.
- **[Playwright](https://playwright.dev/):** Um framework para automação de navegador que permite escrever testes confiáveis e abrangentes.
- **[Selenium](https://www.selenium.dev/):** Um framework amplamente utilizado para automação de navegadores, suportando múltiplas linguagens de programação e navegadores.

---

## Boas práticas

Para garantir a eficácia dos testes de aceitação, é importante seguir algumas boas práticas:

- **Defina critérios de aceitação claros:** Cada teste deve estar associado a critérios de aceitação específicos e bem definidos.
- **Automatize testes sempre que possível:** Automatize testes de aceitação para garantir repetibilidade e eficiência.
- **Use dados realistas:** Utilize dados que representem cenários reais para aumentar a relevância dos testes.
- **Teste cenários críticos:** Priorize cenários que sejam críticos para a funcionalidade e experiência do usuário.
- **Mantenha testes atualizados:** Revise e atualize os testes regularmente para refletir mudanças nos requisitos ou no sistema.

---

## Exemplo de teste de aceitação com Cypress

Aqui está um exemplo simples de um teste de aceitação em JavaScript usando Cypress:

```javascript
// Teste de aceitação para verificar o fluxo de login
describe('Teste de aceitação - Fluxo de login', () => {
it('Deve permitir que um usuário faça login com credenciais válidas', () => {
// Visita a página de login
cy.visit('https://example.com/login');

// Insere o nome de usuário
cy.get('input[name="username"]').type('usuario_teste');

// Insere a senha
cy.get('input[name="password"]').type('senha_secreta');

// Clica no botão de login
cy.get('button[type="submit"]').click();

// Verifica se o usuário foi redirecionado para a página inicial
cy.url().should('include', '/home');

// Verifica se uma mensagem de boas-vindas é exibida
cy.contains('Bem-vindo, usuario_teste').should('be.visible');
});
});
```

## Exemplo de teste de aceitação com Playwright

Aqui está um exemplo simples de um teste de aceitação em JavaScript usando Playwright:

```javascript
const { test, expect } = require('@playwright/test');

// Teste de aceitação para verificar o fluxo de login
test('Deve permitir que um usuário faça login com credenciais válidas', async ({ page }) => {
// Visita a página de login
await page.goto('https://example.com/login');

// Insere o nome de usuário
await page.fill('input[name="username"]', 'usuario_teste');

// Insere a senha
await page.fill('input[name="password"]', 'senha_secreta');

// Clica no botão de login
await page.click('button[type="submit"]');

// Verifica se o usuário foi redirecionado para a página inicial
await expect(page).toHaveURL(/.*\/home/);

// Verifica se uma mensagem de boas-vindas é exibida
await expect(page.locator('text=Bem-vindo, usuario_teste')).toBeVisible();
});
```

Os testes de aceitação são fundamentais para garantir que o software entregue atenda aos requisitos e expectativas dos usuários finais. Implementar e manter uma boa suíte de testes de aceitação contribui significativamente para a satisfação dos stakeholders e para a qualidade geral do produto.

0 comments on commit 31848c7

Please sign in to comment.