SlideShare uma empresa Scribd logo
DevQA: UI Testing , como fazer? - por Kamilla Queiróz
Os testes de interfaces são uma das atividades mais trabalhosas e difíceis de serem
executadas, pois além do aspecto subjetivo da pessoa que está testando e a complexidade
das técnicas envolvidas, ainda existe a questão de saber se efetivamente aquela interface
será funcional para o usuário que irá usar o sistema.
Como fazer testes de interfaces ? Será que só existe a forma manual ? Porque são tão difíceis
de fazer e manter ? Esse artigo tenta mostrar o que pode ser testado e quais as dificuldades
no que não pode ser testado efetivamente.
Se tentarmos focar no que podemos avaliar nos testes de interface, poderíamos resumir em:
1 - Testar se a informação está correta;................................................................
2 - Testar se as mudanças na tela esperadas foram causadas pela ação correta;.............
3 - Testar as capacidades de acessibilidade;..............................................................
4 - Verificar a usabilidade da aplicação.
1 - Testar se a informação está correta
Para saber se as informações estão corretas, de início, podemos começar com uma técnica
simples de verificação ortográfica, onde as palavras são verificadas baseadas em um
dicionário, usando a ferramenta Apache Lucene.
Verificar se os nomes dos campos estão corretos ou se eles fazem sentido pro usuário, já faz
parte da questão subjetiva de cada usuário e conhecimento prévio do nicho de negócio que a
aplicação está atendendo.
Por exemplo, um campo Valor do Lançamento de Crédito para um contador experiente pode
ser muito simples, mas para um estagiário de contábeis do primeiro semestre que está
iniciando sua carreira, ao contrário, pode ser um fator que eleve a complexidade do
entendimento.
Algumas técnicas como interfaces heurísticas, falam de psicologia para tratar a informação de
forma efetiva para o usuário, então fica fora do espoco de teste e sim fazendo parte do
espoco do projetista da interface reconhecer esse melhor padrão. O que podemos fazer, é
rastrear se a interface está chegando no objetivo pretendido, ou seja, se um dado usuário
está conseguindo fazer o que ele quer, onde falaremos mais a frente.
Para aplicações web, podemos testar também quanto a informação, se os links, se o CSS e o
HTML estão dentro dos padrões. Isso mitiga problemas de interfaces em diferentes browsers e
diferentes dispositivos.
Ferramentas como a W3C Tools podem verificar isso de forma manual ou de forma automática
usando uma API
2 - Testar se as mudanças na tela esperadas foram causadas pela ação correta.
Verificar se o usuário clicar no botão "Tipos de pagamentos" e a aplicação mostrar os tipos de
pagamento possíveis dado um certo produto é uma das ações que podemos testar quanto à
interface. Isso é levantado facilmente pelos cenários de teste especificados.
Contudo, se fizermos um mapeamento de todos os fluxos possíveis dos cenários que foi
especificado, teremos uma explosão de possibilidades, assim, o foco é criar scripts de teste
que consigam uma boa cobertura do código, ou seja, aqui temos que fazer os scripts
pensando em chegar em todas as possibilidades do código e não dos fluxos alternativos dos
cenários. É importante perceber essa distinção.
Nesse ponto, já esperamos que a qualidade de cobertura dos cenários para o negócio que
estamos criando já esteja em um nível aceitável. Caso não, e, possivelmente acontecerá, os
fluxos alternativos mostraram 'furos' nos cenários, e assim mais cenários para cobrir todas as
possibilidades devem ser feitos e logo mais código deves ser criados para atender essas
funcionalidades. No final, iremos verificar a cobertura do código e não dos fluxos..
3 - Testar as capacidades de acessibilidade
Acessibilidade trata da questão que pessoas que não tem tanta habilidades ou que tenham
alguma deficiência ou restrição, possam usar a aplicação, ou seja, significa que as pessoas
com menos habilidade ainda possam perceber, entender, navegar e interagir como o sistema.
A W3C, também tem vários guias que descrevem inúmeros itens de acessibilidade que
podemos ter na nossa aplicação e lista várias ferramentas que podemos usar para avaliação
do nosso sistema.
- Lista de Itens de Acessibilidade...........................................................................
- Wave - Ferramenta de Medição de Acessibilidade
Por exemplo, um dos testes dentro da ferramenta é o teste de contraste, que verifica se as
cores se diferem em um nível possível, para que uma pessoa que tenha alguma deficiência
visual possa reconhecer. Ele também é um bom indicador para mostrar onde você quer
gostaria de atrair uma maior atenção de usuários comuns, ou seja, um botão de concluir uma
ação como uma compra ou pagamento.
Você pode fazer isso utilizando plugins como por exemplo para o Chrome: Accessibility
Developer Tools.
4 - Verificar a usabilidade da aplicação
Como mencionado mais acima, não podemos avaliar ainda com certeza a efetividade de uma
interface para um dado usuário antes de que a aplicação esteja em uso, mas podemos
verificar se ele está conseguindo fazer o que realmente ele quer.
Ferramentas como fluxo de comportamento, usando mecanismos como Clickstream ou
Heatmap, avaliam os caminhos que o usuários usaram para conseguir fazer o que ele
realmente desejavam, ou seja, se o usuário ficou procurando em cada menu a opção que ele
queria ou se ele entrou em várias telas e clicou no cancelar. Mostrando assim um padrão de
comportamento, e dessa forma pode sugerir que a interface não está adequada ao perfil de
usuário pretendido.
Nesse sentido já há algumas ferramentas sendo usadas, por exemplo a Loop11, mas ainda
existe outras.
Automatizando Testes de Interface
Sabemos então que Teste de Interface se difere dos testes de classe por exemplo, por como
dito, trabalhamos com elementos e interações de usuários, mas que tem tanto valor agregado
quanto os testes realizados em server-side.
E automatizando os testes de interface, ganharíamos na identificação dos problemas
encontrados. Mas alguns pontos devem ser motivadores quanto a automação desses testes:
- Em inclusões de novas funcionalidades em uma dada página, com o reaproveitamento,
modificação ou sobrescrita de algum Javascript por exemplo, se já automatizado esses testes,
é possível verificar onde os testes pararam e fazer a análise do erro;
- Atualização de biblioteca, caso os testes de interfaces estejam automatizados, a equipe de
testes e qualidade não gastaria tempo demasiado na validação dessa atualização;
- Scripts costumam ser mais simples, assim todos os integrantes da equipe são capazes de
realizar manutenção e atualização;
Garantia de evolução
Outra questão para aumentar o esforço nos testes de interfaces, é a questão da manutenção.
Se eu construir vários scripts que testam minha interface, qualquer modificação que pode ser
simples na perspectiva de código, pode ser um terror para a perspectiva dos testes de
interface.
Assim, é importante componentizar usando padrões de projeto para testes, como podemos vê
em Page Objects e Builder. Da mesma forma que temos reuso e a componentização na
implementação, scripts de testes também são códigos, e precisam de um bom nível de reuso
e modificabilidade.
Dependendo do nível de estabilidade do sistema, podemos querer somente garantir que a
interface não mude, por exemplo durante um refactoring de código, ou alguma
reestruturação interna necessária para para evolução do sistema ou infraestrutura.
Assim, podemos investir em Testes de Regressão Visual, onde é feito o armazenamento em
formato de imagens ou screenshots da aplicação, para posterior verificação de forma
automática.
Assim podemos investir tempo na execução dos Testes de Interface abordando:
Quanto à acessibilidade
- Testes de Contrates.........................................................................................
- Verificador de Links.........................................................................................
- Verificador de CSS...........................................................................................
- Verificador de HTML.........................................................................................
- Verificador de JavaScript
Quanto à usabilidade
-Rastreio de Ações.............................................................................................
-Heatmap......................................................................................................
-Clickstream Analysis
Links Relacionados:
- Best Web Analytics 2.0 Tools: Quantitative, Qualitative, Life Saving!..............................
- Testing the user interface: Automated and exploratory testing....................................
- Uso de Headless Browsers em Testes Automatizados................................................
- Um pouco sobre as palestras no TDC 2015 Florianópolis.........................................
- Introdução à Interfaces Eurísticas........................................................................
- Ferramentas de Teste de Usabilidade...................................................................
- Applitools.....................................................................................................
- Validaor de API...............................................................................................
- W3C Tools.....................................................................................................
- Phantomjs.org................................................................................................
Publicado originalmente em O Tapioca: http://www.otapioca.com.br/?p=2910

Mais conteúdo relacionado

PPTX
SoapUI & Jmeter Basics Web service testing
PPTX
Testes webservice tdc
PPS
Conceitos de Usabilidade
PDF
DevQA: Como medir qualidade de código ?
PDF
Testes para dispositivos móveis
PDF
Teste performance carga stress jmeter
DOCX
Trabalho qualidade de software sistemas de informação
PPT
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
SoapUI & Jmeter Basics Web service testing
Testes webservice tdc
Conceitos de Usabilidade
DevQA: Como medir qualidade de código ?
Testes para dispositivos móveis
Teste performance carga stress jmeter
Trabalho qualidade de software sistemas de informação
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...

Mais procurados (20)

PDF
Caipira agil automacao front end selenium
PPTX
Papéis em teste e qualidade de software
PPTX
Selenium WebDriver com Docker
PPT
Automação Mobile com BDD
PPTX
BDD (Behavior-Driven Development) - Setembro/2015
PDF
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
PPT
Como testar aplicativos ios e android
PDF
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014
PDF
Automacao de testes com keyword driven
PPTX
Automação de Teste Funcionais - Selenium
PPTX
Agile testing
PDF
InterCon - Automatizando Visual Regression Testing
PPT
Análise Heuristica
PPT
Ihc Aula8 M I Avaliacao Heuristica
PPT
Testlink apresentacao
PPTX
Como empoderar a qualidade rumo a transformacao digital
PDF
Selenium
PPTX
Engenharia de Software II - Teste de segurança de software
PPT
Prototipação
PPS
Automação de testes para equipes agile
Caipira agil automacao front end selenium
Papéis em teste e qualidade de software
Selenium WebDriver com Docker
Automação Mobile com BDD
BDD (Behavior-Driven Development) - Setembro/2015
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
Como testar aplicativos ios e android
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014
Automacao de testes com keyword driven
Automação de Teste Funcionais - Selenium
Agile testing
InterCon - Automatizando Visual Regression Testing
Análise Heuristica
Ihc Aula8 M I Avaliacao Heuristica
Testlink apresentacao
Como empoderar a qualidade rumo a transformacao digital
Selenium
Engenharia de Software II - Teste de segurança de software
Prototipação
Automação de testes para equipes agile
Anúncio

Semelhante a DevQA: UI Testing , como fazer? (20)

PPTX
[GUTS-RS] Testar Interfaces com UX
PPT
127290035 12-usabilidade-mai-2007
PDF
[ATC2021] Distribuição de Testes em Diferentes Camadas
PPTX
ALM - Testes Exploratórios
PPTX
PDF
Testes de Usabilidade
PPT
Usabilidade Curso Digital
PDF
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
PPT
PPSX
USABILIDADE
PPT
Oficina "Projetando Interações com Base Heurística" por Renato Rosa
PDF
Panorama geral sobre testes e qualidade de software
PDF
Test day 2012
PDF
Curso Avaliação de Interfaces
PDF
ISA11 - Walter Cybis: Monitorando a Experiência do Usuário
PDF
My Report - Usability Tests
PPTX
Como não ferrar com a user experience - Campus Party 2012
PDF
Cultura de testes
PPTX
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
PPT
Simplicidade nos Testes de Usabilidade
[GUTS-RS] Testar Interfaces com UX
127290035 12-usabilidade-mai-2007
[ATC2021] Distribuição de Testes em Diferentes Camadas
ALM - Testes Exploratórios
Testes de Usabilidade
Usabilidade Curso Digital
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
USABILIDADE
Oficina "Projetando Interações com Base Heurística" por Renato Rosa
Panorama geral sobre testes e qualidade de software
Test day 2012
Curso Avaliação de Interfaces
ISA11 - Walter Cybis: Monitorando a Experiência do Usuário
My Report - Usability Tests
Como não ferrar com a user experience - Campus Party 2012
Cultura de testes
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Simplicidade nos Testes de Usabilidade
Anúncio

Mais de Kamilla Queiroz Xavier (20)

PDF
Poder & Força do 1:1 - V2
PPTX
PDA & Moving Motivators - Combine e Potencialize seus liderados.pptx
PDF
LIDERAR - Relatos e Paradigma de uma nova Líder
PPTX
PDA & Moving Motivators - Um reforço para o seu trabalho com PDI
PPTX
Poder & Força do 1:1
PPTX
Do caos às métricas de fluxo
PPTX
[ O mercado] desenvolvimento de software [ detalhes & curiosidades]
PPTX
Pizza Kanban Game
PDF
Vamos conversar sobre transição de carreira?
PDF
Agilidade, e agora?
PPTX
RETROSPEC - Agregando valor de uma forma lúdica e eficaz
PDF
Gerenciamento de Projetos - [NÃO] existe receita a seguir
PDF
DevOps é SIM uma questão de QA
PPTX
Quality Assurance - Novos Caminhos para o teste de software
PPSX
DevOps pela visão de QA
PPSX
DevOps pela visão de QA
PPSX
DevQA - Da zona de conforto ao comprometimento com a Qualidade
PPSX
DevQA - Da zona de conforto ao comprometimento com a Qualidade
PPSX
DevOps pela visão de QA
PPSX
DevQA - Da zona de conforto ao comprometimento com a Qualidade
Poder & Força do 1:1 - V2
PDA & Moving Motivators - Combine e Potencialize seus liderados.pptx
LIDERAR - Relatos e Paradigma de uma nova Líder
PDA & Moving Motivators - Um reforço para o seu trabalho com PDI
Poder & Força do 1:1
Do caos às métricas de fluxo
[ O mercado] desenvolvimento de software [ detalhes & curiosidades]
Pizza Kanban Game
Vamos conversar sobre transição de carreira?
Agilidade, e agora?
RETROSPEC - Agregando valor de uma forma lúdica e eficaz
Gerenciamento de Projetos - [NÃO] existe receita a seguir
DevOps é SIM uma questão de QA
Quality Assurance - Novos Caminhos para o teste de software
DevOps pela visão de QA
DevOps pela visão de QA
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevOps pela visão de QA
DevQA - Da zona de conforto ao comprometimento com a Qualidade

Último (7)

PPTX
Mapeamento de Objeto para Tabela Relacional
PPTX
Curso de Windows 11 resumido na prática.pptx
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
PDF
Dos requisitos ao código: como criar código rastreável em PHP
PDF
Evolução em código: algoritmos genéticos com PHP
PDF
apresentacao introducao computacao ead.pdf
Mapeamento de Objeto para Tabela Relacional
Curso de Windows 11 resumido na prática.pptx
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
Dos requisitos ao código: como criar código rastreável em PHP
Evolução em código: algoritmos genéticos com PHP
apresentacao introducao computacao ead.pdf

DevQA: UI Testing , como fazer?

  • 1. DevQA: UI Testing , como fazer? - por Kamilla Queiróz Os testes de interfaces são uma das atividades mais trabalhosas e difíceis de serem executadas, pois além do aspecto subjetivo da pessoa que está testando e a complexidade das técnicas envolvidas, ainda existe a questão de saber se efetivamente aquela interface será funcional para o usuário que irá usar o sistema. Como fazer testes de interfaces ? Será que só existe a forma manual ? Porque são tão difíceis de fazer e manter ? Esse artigo tenta mostrar o que pode ser testado e quais as dificuldades no que não pode ser testado efetivamente. Se tentarmos focar no que podemos avaliar nos testes de interface, poderíamos resumir em: 1 - Testar se a informação está correta;................................................................ 2 - Testar se as mudanças na tela esperadas foram causadas pela ação correta;............. 3 - Testar as capacidades de acessibilidade;.............................................................. 4 - Verificar a usabilidade da aplicação. 1 - Testar se a informação está correta Para saber se as informações estão corretas, de início, podemos começar com uma técnica simples de verificação ortográfica, onde as palavras são verificadas baseadas em um dicionário, usando a ferramenta Apache Lucene. Verificar se os nomes dos campos estão corretos ou se eles fazem sentido pro usuário, já faz parte da questão subjetiva de cada usuário e conhecimento prévio do nicho de negócio que a aplicação está atendendo. Por exemplo, um campo Valor do Lançamento de Crédito para um contador experiente pode ser muito simples, mas para um estagiário de contábeis do primeiro semestre que está iniciando sua carreira, ao contrário, pode ser um fator que eleve a complexidade do entendimento. Algumas técnicas como interfaces heurísticas, falam de psicologia para tratar a informação de forma efetiva para o usuário, então fica fora do espoco de teste e sim fazendo parte do espoco do projetista da interface reconhecer esse melhor padrão. O que podemos fazer, é rastrear se a interface está chegando no objetivo pretendido, ou seja, se um dado usuário está conseguindo fazer o que ele quer, onde falaremos mais a frente. Para aplicações web, podemos testar também quanto a informação, se os links, se o CSS e o HTML estão dentro dos padrões. Isso mitiga problemas de interfaces em diferentes browsers e diferentes dispositivos. Ferramentas como a W3C Tools podem verificar isso de forma manual ou de forma automática usando uma API 2 - Testar se as mudanças na tela esperadas foram causadas pela ação correta. Verificar se o usuário clicar no botão "Tipos de pagamentos" e a aplicação mostrar os tipos de pagamento possíveis dado um certo produto é uma das ações que podemos testar quanto à interface. Isso é levantado facilmente pelos cenários de teste especificados. Contudo, se fizermos um mapeamento de todos os fluxos possíveis dos cenários que foi especificado, teremos uma explosão de possibilidades, assim, o foco é criar scripts de teste que consigam uma boa cobertura do código, ou seja, aqui temos que fazer os scripts
  • 2. pensando em chegar em todas as possibilidades do código e não dos fluxos alternativos dos cenários. É importante perceber essa distinção. Nesse ponto, já esperamos que a qualidade de cobertura dos cenários para o negócio que estamos criando já esteja em um nível aceitável. Caso não, e, possivelmente acontecerá, os fluxos alternativos mostraram 'furos' nos cenários, e assim mais cenários para cobrir todas as possibilidades devem ser feitos e logo mais código deves ser criados para atender essas funcionalidades. No final, iremos verificar a cobertura do código e não dos fluxos.. 3 - Testar as capacidades de acessibilidade Acessibilidade trata da questão que pessoas que não tem tanta habilidades ou que tenham alguma deficiência ou restrição, possam usar a aplicação, ou seja, significa que as pessoas com menos habilidade ainda possam perceber, entender, navegar e interagir como o sistema. A W3C, também tem vários guias que descrevem inúmeros itens de acessibilidade que podemos ter na nossa aplicação e lista várias ferramentas que podemos usar para avaliação do nosso sistema. - Lista de Itens de Acessibilidade........................................................................... - Wave - Ferramenta de Medição de Acessibilidade Por exemplo, um dos testes dentro da ferramenta é o teste de contraste, que verifica se as cores se diferem em um nível possível, para que uma pessoa que tenha alguma deficiência visual possa reconhecer. Ele também é um bom indicador para mostrar onde você quer gostaria de atrair uma maior atenção de usuários comuns, ou seja, um botão de concluir uma ação como uma compra ou pagamento. Você pode fazer isso utilizando plugins como por exemplo para o Chrome: Accessibility Developer Tools. 4 - Verificar a usabilidade da aplicação Como mencionado mais acima, não podemos avaliar ainda com certeza a efetividade de uma interface para um dado usuário antes de que a aplicação esteja em uso, mas podemos verificar se ele está conseguindo fazer o que realmente ele quer. Ferramentas como fluxo de comportamento, usando mecanismos como Clickstream ou Heatmap, avaliam os caminhos que o usuários usaram para conseguir fazer o que ele realmente desejavam, ou seja, se o usuário ficou procurando em cada menu a opção que ele queria ou se ele entrou em várias telas e clicou no cancelar. Mostrando assim um padrão de comportamento, e dessa forma pode sugerir que a interface não está adequada ao perfil de usuário pretendido. Nesse sentido já há algumas ferramentas sendo usadas, por exemplo a Loop11, mas ainda existe outras. Automatizando Testes de Interface Sabemos então que Teste de Interface se difere dos testes de classe por exemplo, por como dito, trabalhamos com elementos e interações de usuários, mas que tem tanto valor agregado quanto os testes realizados em server-side. E automatizando os testes de interface, ganharíamos na identificação dos problemas encontrados. Mas alguns pontos devem ser motivadores quanto a automação desses testes:
  • 3. - Em inclusões de novas funcionalidades em uma dada página, com o reaproveitamento, modificação ou sobrescrita de algum Javascript por exemplo, se já automatizado esses testes, é possível verificar onde os testes pararam e fazer a análise do erro; - Atualização de biblioteca, caso os testes de interfaces estejam automatizados, a equipe de testes e qualidade não gastaria tempo demasiado na validação dessa atualização; - Scripts costumam ser mais simples, assim todos os integrantes da equipe são capazes de realizar manutenção e atualização; Garantia de evolução Outra questão para aumentar o esforço nos testes de interfaces, é a questão da manutenção. Se eu construir vários scripts que testam minha interface, qualquer modificação que pode ser simples na perspectiva de código, pode ser um terror para a perspectiva dos testes de interface. Assim, é importante componentizar usando padrões de projeto para testes, como podemos vê em Page Objects e Builder. Da mesma forma que temos reuso e a componentização na implementação, scripts de testes também são códigos, e precisam de um bom nível de reuso e modificabilidade. Dependendo do nível de estabilidade do sistema, podemos querer somente garantir que a interface não mude, por exemplo durante um refactoring de código, ou alguma reestruturação interna necessária para para evolução do sistema ou infraestrutura. Assim, podemos investir em Testes de Regressão Visual, onde é feito o armazenamento em formato de imagens ou screenshots da aplicação, para posterior verificação de forma automática. Assim podemos investir tempo na execução dos Testes de Interface abordando: Quanto à acessibilidade - Testes de Contrates......................................................................................... - Verificador de Links......................................................................................... - Verificador de CSS........................................................................................... - Verificador de HTML......................................................................................... - Verificador de JavaScript Quanto à usabilidade -Rastreio de Ações............................................................................................. -Heatmap...................................................................................................... -Clickstream Analysis Links Relacionados: - Best Web Analytics 2.0 Tools: Quantitative, Qualitative, Life Saving!.............................. - Testing the user interface: Automated and exploratory testing.................................... - Uso de Headless Browsers em Testes Automatizados................................................ - Um pouco sobre as palestras no TDC 2015 Florianópolis......................................... - Introdução à Interfaces Eurísticas........................................................................ - Ferramentas de Teste de Usabilidade................................................................... - Applitools..................................................................................................... - Validaor de API............................................................................................... - W3C Tools.....................................................................................................