Download - Todas as abordagens de testes dentro do ágil
![Page 1: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/1.jpg)
Todas as abordagens de teste dentro do ágil!
@eliasnogueira
![Page 2: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/2.jpg)
Elias NogueiraTester, professor
http://about.me/eliasnogueira@eliasnogueira
TDC - The Developers ConferenceTestDayJenkins User Conference – São Paulo
![Page 3: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/3.jpg)
Nós fizemos o deploy em produção esta manhã!
![Page 4: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/4.jpg)
Os testes irão levar 4 dias para executarem...Em 4 dias eu retorno com o resultado!
![Page 5: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/5.jpg)
Agile Testing
![Page 6: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/6.jpg)
Agile Testing
Agile Testing é uma prática de Teste de Software que segue os princípios do desenvolvimento ágil
![Page 7: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/7.jpg)
Agile Testing
Feedback contínuoEntrega de valor ao cliente
Comunicação face-to-face
Coragem
Simplicidade
Resposta a mudançasAuto-organização
Foco em pessoas
![Page 8: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/8.jpg)
![Page 9: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/9.jpg)
Como a maioria dos “Agile Testers” são hoje!
![Page 10: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/10.jpg)
Não sabem o que é Ágil
Não sabem programar
O desenvolvedor é seu maior inimigo
Programador frustrado ou querendo ser BA
Não querem “passar trabalho”
Testadores hoje
![Page 11: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/11.jpg)
![Page 12: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/12.jpg)
![Page 13: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/13.jpg)
Desenvolvedores ágeis são “test infected”
Agile Testers e Desenvolvedores colaboram
Agile Testers colaboram com o usuário
TODO O TIME é responsável por teste!
Todos devem entender do negócio
Separação clara dos papéis
AUTOMATIZAM!!!
![Page 14: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/14.jpg)
![Page 15: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/15.jpg)
http://www.shino.de/2012/07/30/the-testing-quadrants-we-got-it-wrong/
![Page 16: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/16.jpg)
![Page 17: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/17.jpg)
Pirâmide de Automação de Teste
![Page 18: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/18.jpg)
Inicio da entrada da qualidade no produto
Tem um suporte de refatoração
É a base de uma suíte de automação
TODO O TIME é responsável por teste!
Todos devem entender do negócio
![Page 19: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/19.jpg)
Build Tools• Judson/Jenkins
Unit Test Tools• xUnit• Mocking
![Page 20: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/20.jpg)
Testar os serviços da aplicação sem UI
Preenche o gap entre Unit x UI
Descrita de uma forma clara para o cliente
Tanto tester quanto dev podem criar
Podemos referencia-lo como “integração”• API Test• Integration Test• Component Test
![Page 21: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/21.jpg)
BDD Tools• Cucumber• Jbehave• SpecFlow
Unit Test Tools• xUnit
Fixture Tools• Fitnesse
![Page 22: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/22.jpg)
Teste da UI / E2E
Focar em smoke tests
Mais caro e mais frágil
Desenvolvido no final do ‘done; de teste
Usualmente fácil para testadores ágeis
![Page 23: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/23.jpg)
ATDD Tools• Selenium• Robot Framework
![Page 24: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/24.jpg)
![Page 25: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/25.jpg)
TDD – Test Driven Development
![Page 26: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/26.jpg)
Sou pago pra desenvolver, não testar
“Done” é quando eu dou checkin
Todos conhecem o código
O projeto é curto
Não há cliente
TDD – Test Driven DevelopmentPequeno mal entendido
![Page 27: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/27.jpg)
BDD – Behavior Driven Development
BDD pode ser visto como uma técnica de desenvolvimento ágil que encoraja colaboração entre os desenvolvedores, analistas, QA e o pessoal não técnico (stackeholders) para o sucesso de um projetoÉder Ignatowicz (@ederig)
![Page 28: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/28.jpg)
BDD – Behavior Driven Development
BDD pode ser visto como uma técnica de desenvolvimento ágil que encoraja colaboração entre os desenvolvedores, analistas, QA e o pessoal não técnico (stackeholders) para o sucesso de um projeto
![Page 29: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/29.jpg)
O suficiente é o suficiente
Entregar valor para os stackholders
Tudo é comportamento
BDD – Behavior Driven Development
![Page 30: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/30.jpg)
BDD – Behavior Driven Development
Feature: <description of the feature>
As a <user/actor>I want <goal to be achieved>so that <the reason you want to achieve the goal>
User Story
Funcionalidade: <descrição da funcionalidade>
Como um <usuário/ator>Eu quero <meta a ser alcançada>De modo que <a razão para alcançar a meta>
![Page 31: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/31.jpg)
BDD – Behavior Driven Development
Scenario: <description of the test>Given <a known state>When <an event occurs>Then <then this should happen>
Acceptance Criteria
Cenário: <descrição do teste>Dado <um estado conhecido>Quando <um determinado evento ocorre>Então <isso deve ocorrer>
![Page 32: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/32.jpg)
BDD – Behavior Driven DevelopmentFuncionalidade: Leitor de tipos de Triângulo
Para conhecer o tipo de um triânguloComo um aluno da matemáticaEu quero informar os tamanhos do lado de um triângulo e saber qual seu tipo
NARRATIVA
Um triângulo com todos os lados iguais é chamado EquiláteroUm triângulo com dois lados iguais é chamado IsóscelesUm triângulo com todos os lados diferentes é chamado Escaleno
FORA DE ESCOPO - Validar triângulos inválidos - Exibir o triangulo graficamente - Validação de entrada de dados do usuário
http://www.bugbang.com.br/entendendo-bdd-com-cucumber-parte-i/
![Page 33: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/33.jpg)
BDD – Behavior Driven Development
Cenário: Consultando um triangulo Escaleno
Dado que eu estou na página de consulta de triângulosQuando quando eu informo os lados do triangulo
| lado1 | lado 2 | lado 3 |
| 3 | 4 |5 |
Então o sistema informa que o triangulo é “Escaleno”
![Page 34: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/34.jpg)
ATDD é uma prática onde todo o time, colaborativamente, discute critérios de aceitação através de exemplos antes de começar o desenvolvimento. Também garante que todos tenham a mesma definição do done.
ATDD – Acceptance Test Drive Development
![Page 35: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/35.jpg)
ATDD – Acceptance Test Drive Development
![Page 36: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/36.jpg)
Os usuários agora precisam utilizar senhas seguras (string de, no mínimo, 6 caracteres com pelo menos uma letra, um número e um símbolo)
Exemplo
ATDD – Acceptance Test Drive Development
![Page 37: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/37.jpg)
ATDD – Acceptance Test Drive Development
Durante uma reunião de planejamento
O que acontece se o usuário inserir uma senha não segura?
E se o usuário colocar um espaço?
Como fica as contas já existentes?
Discutir o requisito
![Page 38: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/38.jpg)
ATDD – Acceptance Test Drive Development
Pensando em um formato para ferramenta
Destilar em um formato amigável
Ação ArgumentoO teste deve ser válido p@ssw0rd
O teste deve ser válido @@@000dd
O teste deve ser válido p@ss w0rd
O teste deve ser inválido password
O teste deve ser inválido p@ss3
O teste deve ser inválido passw0rd
O teste deve ser inválido @@@000
Teste: Validar senhas válidas e inválidas
![Page 39: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/39.jpg)
ATDD – Acceptance Test Drive Development
Implementação em qualquer formato
Desenvolver o código
public class ValidateLoginPage {WebDriver driver;
public String loginValidation(String username, String password) {
driver.findElement(By.id(“user”)).sendKeys(username);
driver.findElement(By.id(“passwd”).sendKeys(password);driver.findElement(By.id(“submit”).click();
String result = driver.findElement(By.cssSelector(“result”)).getText()
}}
![Page 40: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/40.jpg)
ATDD – Acceptance Test Drive Development
Implementação em qualquer formato
Desenvolver o código
public class TestLogin {WebDriver driver = new FirefoxDriver();
@Test (dataProvider = ”data")public String testAllScenarios (String username, String
password, String result) {ValidateLoginPage testLogin = new
ValidationLoginPage(driver);String result = testLogin.loginValidation(username,
password);Assert.assertEquals(expected, result);
}
@DataProvider(name = ”data”) public Object[][] createData() {
Object[][] obj ={{”fred","p@ssw0rd",”Valid Password"}, {{”jack","passw0rd",”Invalid
Password!”}}
}
![Page 41: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/41.jpg)
ATDD – Acceptance Test Drive Development
Execução do teste em ambiente controlado
Demostrar o teste
![Page 42: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/42.jpg)
Mas cadê o topo da
pirâmide?
![Page 43: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/43.jpg)
![Page 44: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/44.jpg)
Testes Exploratórios
Simultâneamente ....... aprender sobre o software... desenvolver mais testes... executar testes
Usando o feedback do último teste para executar o próximo!
![Page 45: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/45.jpg)
Todos os testes unitáriosPassaram com sucesso!A build está OK!
Essa user story de segurança passou nos
meus teste de aceitação!
Alguém já se deu conta que o usuário pode
colocar ele mesmo como administrador?
![Page 46: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/46.jpg)
SBT - Session Based Testing Charter
Explorar áreas/features [com recursos, condições , restrições] para descobrir informação
Explorar o site em diversos browsers e configurações para descobrir riscos relacionados a configurações não suportadas
![Page 47: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/47.jpg)
SBT - Session Based Testing Charter
Descrição e objetivoTempoÁrea de ConcentraçãoSetupObservaçõesBugs
![Page 48: Todas as abordagens de testes dentro do ágil](https://reader035.vdocuments.mx/reader035/viewer/2022062405/55666873d8b42aa21e8b519f/html5/thumbnails/48.jpg)