quarta-feira, 23 de outubro de 2013

Testes de Usabilidade

E aí galera, tudo tranquilo?
Fiquei um bom tempo sem publicar nada, só escrevendo posts pela metade. Mas, agora, juro! Prometo finalizar todos! Aguardem que vem coisa boa por aí.

Então, decidi pesquisar e compartilhar com vocês alguma coisa sobre teste de usabilidade após constatar que apesar de sua importância, acredito que este é o tipo de teste mais deixado de lado, ao menos em empresas de pequeno e médio porte. Há custos sim, de fato exige em alguns tipos, contato com usuário, ambiente controlado e outras variáveis..... tudo isto igual a um custo.... mas...

Bom, vamos começar do começo! 

Interação Humano-Computador

Esta é uma área de pesquisa multidisciplinar,  a IHC  envolve áreas da ciência da computação, do design, da ergonomia, da linguística, da semiótica, da psicologia, da sociologia e antropologia. O principal objetivo da IHC é "fornecer aos pesquisadores e desenvolvedores de sistemas explicações e previsões para fenômenos de interação usuário-sistema e resultados práticos para o design da interface de usuário. [ACM SIGCHI, 1992]

Dentro deste contexto, temos como critérios de qualidade de uso questões de usabilidade, acessibilidade e comunicabilidade.   Portanto, a prioridade dos critérios de qualidade de uso deve ser definida com base no conhecimento sobre os usuários (limitações, necessidades, motivações, etc.), suas atividades e objetivos, e contextos de uso. [Barbosa & da Silva, 2010]. Entretanto, o que acontece dentro de grande parte dos projetos, o que de fato define os critérios de qualidade de uso é o orçamento.

 É com base nestes três critérios apresentados que vou sugerir alguns tipos de avaliações de interação, vou somente pincelar sobre o tema e no fim deixarei a disposição alguns materiais muito bons que encontrei. Vamos lá!


Usabilidade


A usabilidade  é relacionada com a facilidade de aprendizado e uso da interface, bem como a satisfação do usuário em decorrência desse uso. [Nielsen, 1993]. Usabilidade refere-se à capacidade de uma aplicação ser compreendida, aprendida, utilizada e atrativa para o usuário, em condições específicas de utilização. (ISO/IEC 9126).

Possui como fatores relacionados a questão da facilidade de aprendizado, a facilidade de uso ou de memorização/recordação, eficiência de uso e produtividade, a flexibilidade, a segurança no uso (recuperação de erros),  e é claro, a satisfação do usuário.

A norma internacional ISO 9241-11 define usabilidade como sendo um conceito que descreve até que ponto um sistema computacional pode ser usado pelos utilizadores de forma a atingir objetivos específicos como eficácia, eficiência e satisfação num dado contexto. A eficácia permite que o utilizador atinja os objetivos iniciais de interação, e é avaliada em termos de cumprimento de uma tarefa como também em termos de qualidade do resultado obtido. A eficiência refere-se à quantidade de esforço e recursos necessários para se chegar a um determinado objectivo. Os desvios que o utilizador faz durante a interação e a quantidade de erros cometidos podem servir para avaliar o nível de eficiência do sistema. A terceira medida de usabilidade, a satisfação, é a mais difícil de medir e quantificar pois está relacionada com fatores subjetivos. De uma maneira geral, satisfação refere-se ao nível de conforto que o utilizador sente ao utilizar a interface.  A usabilidade de um sistema é um conceito que se refere à qualidade da interação de sistemas com os usuários e depende de vários aspectos. Alguns destes fatores são:

  • facilidade de aprendizado do sistema: tempo e esforço necessários para que os usuários atinjam um determinado nível de desempenho;
  • facilidade de uso: avalia o esforço físico e cognitivo do usuário durante o processo de interação, medindo a velocidade de e o número de erros cometidos durante a execução de uma determinada tarefa;
  • satisfação do usuário: avalia se o usuário gosta e sente prazer em trabalhar com este sistema;
  • flexibilidade: avalia a possibilidade de o usuário acrescentar e modificar as funções e o ambiente iniciais do sistema. Assim, este fator mede também a capacidade do usuário utilizar o sistema de maneira inteligente e criativa, realizando novas tarefas que não estavam previstas pelos desenvolvedores;
  • produtividade: se o uso do sistema permite ao usuário ser mais produtivo do que seria se não o utilizasse.


Comunicabilidade

Diz respeito à capacidade da interface de comunicar ao usuário a lógica do design/as intenções do designer.
A lógica do design deve refletir as decisões sobre: [de Souza et al., 1999(b)]
  • A quem se destina o sistema?
  • Para que serve?
  • Qual é a vantagem de utilizá-lo?
  • Como funciona?
  • Quais são os princípios gerais de interação com o sistema?

É uma propriedade que bons sistemas interativos devem ter de comunicar com clareza sua lógica de design, ou seja, para que servem, como funcionam, quem são seus usuários visados, etc. Tem por objetivo avaliar a qualidade da (meta)comunicação* entre o designer e os usuários de um sistema computacional, apontando explicando as soluções que não deram certo, sugerindo e justificando soluções que podem dar mais certo.

Este critério acredito eu que seja o que mais exige empenho e estudo para poder aplicá-lo. Ele foge um pouco da minha área de domínio. Deixo ao final do post mais materiais sobre, é para os fortes!


Acessibilidade

Relacionado à remoção de barreiras que impedem mais usuários de serem capazes de acessar a interface do sistema e interagir com ele. [Barbosa & da Silva, 2010].

Ao projetar um sistema devemos ter em mente situações e características que o usuário pode apresentar, como:
  • Ser incapaz de ouvir ou se deslocar
  • Ter dificuldade em ler textos
  • Não ter teclado ou mouse, ou ser incapaz de utilizá-los
  • Possuir tela que apresenta apenas texto ou com dimensões reduzidas
  • Estar com olhos, mãos ou ouvidos ocupados (ambiente barulhento, a caminho do trabalho)
  • Possuir um navegador desatualizado

 As idéias de acessibilidade vão um pouco além das idéias de usabilidade, visto que elas se preocupam não apenas com uma boa interface e uma navegação intuitiva, mas também em prover os meios para que indivíduos portadores de algum tipo de necessidade especial (visual, auditiva, cognitiva, neurológica e física) possam usufruir os recursos da maneira mais natural possível. A partir da evolução computacional da web e da preocupação em torná-la mais acessível, surge o termo “acessibilidade digital”, que representa o processo de disponibilização de conteúdos da web para o maior grupo de pessoas possível, incluindo os portadores de necessidades especiais, em termos de interface entre o conteúdo e o usuário. [FREITAS]


Avaliação em IHC

É uma etapa essencial em qualquer processo de desenvolvimento que busque produzir um sistema interativo com alta qualidade de uso. Mas para isto, existem algumas questões que devemos ter em mente:
  • Para que avaliar?
  • O que avaliar?
  • Quem avalia o quê?
  • Quando avaliar o uso de um sistema?
  • Onde avaliar?
  • Como coletar dados?
  • O que coletar?
  • Como avaliar?
[Preece et al., 1994; Barbosa & da Silva, 2010]

Os objetivos de uma avaliação de IHC precisam ser detalhados em perguntas específicas para torná-los operacionais, perguntas que considerem o usuário-alvo, as atividades, o contexto de uso. Abaixo, é apresentado uma meio para determinar que tipo de avaliação em um projeto será necessária de ser aplicada.

DECIDE
Guia para planejamento de uma avaliação
  • Determinar as metas que a avaliação irá abordar.
  • Explorar as questões específicas a serem respondidas.
  • Escolher (Choose) o paradigma e as técnicas de 
  • avaliação que responderão as perguntas.
  • Identificar as questões práticas que devem ser 
  • tratadas (como a seleção dos participantes).
  • Decidir como lidar com questões éticas.
  • Avaliar (Evaluate), interpretar e apresentar os dados.
[Preece et al, 2002]

Após trabalhadas estas questões podemos escolher qual a avaliação ou avaliações mais adequadas e de fato, possíveis, de serem aplicadas em nosso projeto. Falarei a seguir de algumas das avaliações existentes:

  1. Avaliação por Inspeção

A avaliação por inspeção permite examinar (inspecionar) uma solução de IHC para tentar antever as possíveis consequências de certas decisões de design. Servindo para identificar problemas que os usuários possam vir a ter quando interagirem com o sistema, identificando quais formas de apoio o sistema oferece para ajudá-los a contornar esses problemas. [Mack & Nielsen, 1994].  Objetivo principal é gerar uma lista dos problemas de usabilidade da interface, sendo um método fundamentado em dados empíricos. A avaliação heurística é um exemplo de avaliação por inspeção.

1. 2. Avaliação heurística

A avaliação heurística é um método de avaliação de IHC criado para encontrar problemas de usabilidade durante um processo de design iterativo (Nielsen e Molich, 1990; Nielsen, 1993; Nielsen, 1994a). Esse método de avaliação orienta os avaliadores a inspecionar sistematicamente a interface em busca de problemas que prejudiquem a usabilidade. Por ser um método de inspeção, a avaliação heurística foi proposta como uma alternativa de avaliação rápida e de baixo custo, quando comparada a métodos empíricos (Barbosa e Silva, 2010). A avaliação heurística tem como base um conjunto de diretrizes de usabilidade, que descrevem características desejáveis da interação e da interface, chamadas por Nielsen de heurísticas. Essas heurísticas resultam da análise de mais de 240 problemas de usabilidade realizada ao longo de vários anos por experientes especialistas em IHC (Nielsen, 1994b). Nielsen (1993) descreve um conjunto inicial de dez regras heurísticas a serem utilizadas em seu método de avaliação heurística (p. 30):

1. Visibilidade do estado do sistema: o sistema deve sempre manter os usuários informados sobre o que está acontecendo através de feedback (resposta às ações do usuário) adequado e no tempo certo;

2. Correspondência entre o sistema e o mundo real: o sistema deve utilizar palavras, expressões e conceitos que são familiares aos usuários, em vez de utilizar termos orientados ao sistema ou jargão dos desenvolvedores. O designer deve seguir as convenções do mundo real, fazendo com que a informação apareça em uma ordem natural e lógica, conforme esperado pelos usuários;

3. Controle e liberdade do usuário: os usuários frequentemente realizam ações equivocadas no sistema e precisam de uma “saída de emergência” claramente marcada para sair do estado indesejado sem ter de percorrer um diálogo extenso. A interface deve permitir que o usuário desfaça e refaça suas ações;

4. Consistência e padronização: os usuários não devem ter de se perguntar se palavras, situações ou ações diferentes significam a mesma coisa. O designer deve seguir as convenções da plataforma ou do ambiente computacional;

5. Reconhecimento em vez de memorização: o designer deve tornar os objetos, as ações e opções visíveis. O usuário não deve ter de se lembrar para que serve um elemento de interface cujo símbolo não é reconhecido diretamente; nem deve ter de se lembrar de informação de uma parte da aplicação quando tiver passado para uma outra parte dela. As instruções de uso do sistema devem estar visíveis ou facilmente acessíveis sempre que necessário;

6. Flexibilidade e eficiência de uso: aceleradores - imperceptíveis aos usuários novatos - podem tornar a interação do usuário mais rápida e eficiente, permitindo que o sistema consiga servir igualmente bem os usuários experientes e inexperientes. Exemplos de aceleradores são botões de comando em barras de ferramentas ou teclas de atalho para acionar itens de menu ou botões de comando. Além disso, o designer pode oferecer mecanismos para os usuários customizarem ações frequentes;

7. Projeto estético e minimalista: a interface não deve conter informação que seja irrelevante ou raramente necessária. Cada unidade extra de informação em uma interface reduz sua visibilidade relativa, pois compete com as de- mais unidades de informação pela atenção do usuário;

8. Prevenção de erros: melhor do que uma boa mensagem de erro é um projeto cuidadoso que evite que um problema ocorra, caso isso seja possível;

9. Ajude os usuários a reconhecerem, diagnosticarem e se recuperarem de erros: as mensagens de erro devem ser expressas em linguagem simples, indicar precisamente o problema e sugerir uma solução de forma construtiva;

10. Ajuda e documentação: embora seja melhor que um sistema possa ser utilizado sem documentação, é necessário oferecer ajuda e documentação de alta qualidade. Tais informações devem ser facilmente encontradas e focadas na tarefa do usuário.

Aqui vocês encontram passo a passo, bem explicadinho em como aplicar esta avaliação: http://homepages.dcc.ufmg.br/~rprates/ihc/aula8_aval_InspUsab.pdf


2. Avaliação de Acessibilidade

Uma das técnicas para um teste de acessibilidade, pode ser realizada pela navegação pelo teclado, verificando a acessibilidade da aplicação quando utilizamos apenas o teclado para navegar e utilizar os recursos operacionais da aplicação a ser testada. 

Para verificarmos a acessibilidade do sistema para usuários com problemas visuais podemos fazer uso de leitores de tela. Desta forma, podemos avaliar e mensurar o grau de facilidade de utilização do sistema desenvolvido para este público específico. Alguns leitores de tela: Narrator, DosVox, Virtual Vision e Jaws. Para isto, é claro, que o sistema deve ter sido desenvolvido sob ao menos, algumas recomendações do W3School, como : fornecer alternativas equivalentes ao conteúdo sonoro e visual; não recorrer apenas à cor; indicar claramente qual o idioma utilizado; rojetar páginas considerando a independência de dispositivos e assegurar a clareza e a simplicidade dos documentos.

O uso de high contrast, pode ser uma opção para verificação de um sistema que facilite a utilização de usuários com dificuldades visuais, já que fora este desenhado para pessoas com problemas de visão. Esquemas de alto contraste podem fazer com que a tela se torne mais simples de ser lida para alguns usuários oferecendo alternativas de combinações de cores. Alguns desses esquemas mudam também o tamanho da fonte. 

Um bom material sobre este tipo de avaliação: http://www.acessibilidadelegal.com/13-validacao.php

3. Avaliação no ambiente do usuário

Os estudos de campo utilizam métodos de pesquisa adaptados da antropologia e de ciências sociais [RAC12]. São úteis por ajudarem pesquisadores a coletar dados mais naturalistas sobre o que os usuários realmente fazem em seu próprio ambiente de trabalho [WIX02].Os usuários finais são observados em seu próprio ambiente de uso enquanto desempenham suas atividades [BAR10]. E tem por objetivo:
  • entender o comportamento natural do usuário final no contexto do seu próprio ambiente de atuação;
  • determinar requisitos de projeto;
  • descobrir como uma tecnologia é de fato usada;
  • identificar novas funcionalidades e produtos;
  • identificar uma falta de correspondência entre a forma como o usuário trabalha e pensa e a forma como as ferramentas e os procedimentos lhes obrigam a trabalhar;
Podemos usar técnicas como:
  • Observação: o avaliador pode atuar como um participante a fim de aprender o que os usuários fazem e porque o fazem.
  • Questionários: semelhantes às entrevistas mas menos flexíveis. Atinge um grande número de pessoas de forma rápida e fácil.
  • Entrevistas Individuais: usadas para estudar como os usuários usam um sistema e quais as características que eles gostam ou desgostam.
  • Entrevistas em Grupo: traz a possibilidade de observar vários sujeitos ao mesmo tempo e observar as interações entre o grupo.
Sempre é bom ter em mente  que para que os usuários não se comportem de forma diferente é importante que [BAR10]:
  • o avaliador peça aos participantes que o considerem como um aprendiz e lhe ensinem sobre o seu trabalho, sem omitir etapas;
  • se realize o estudo durante um longo período de tempo, para que os participantes se acostumem com a presença do observador e voltem a se comportar normalmente.

4. Thinking Aloud

Protocolo Thinking Aloud, é um  Protocolo verbal que consiste em observar o usuário utilizar uma interface enquanto “pensa em voz alta” (falando o que está pensando a cada momento). O foco é no problema do usuário e permite que o observador correlacione ações e comentários do participante, portanto é útil quando do surgimento de um problema específico. O método não é exclusivo de IHC. Pode ser realizado de forma informal e existem diversos meio de gravar a execução deste protocolo. Tem como vantagem a rapidez de aplicação, o feedback de qualidade, informações de diferentes ordens (ação e intenção) e a interação direta observador-usuário permitindo ajustes. 

Aplicada em cenários distintos:
  • Observador define tarefas específicas ao usuário: permite maior concentração na realização da tarefa
  • Open-ended, sem tarefa específica – usuário livre para escolher sua tarefa: permite que o observador se concentre em problemas que ocorrem naturalmente.
Sempre em que se aplicar este protocolo, ao início da realização deste deve-se esclarecer que:

• A interface que está sendo testada, não o usuário
• O usuário deve comentar livremente todas as suas ações, intenções, ideias e impressões
• O usuário está por conta própria. Isso envolve esclarecer que o experimentador não poderá ajudar
• Quaisquer ajuda ao usuário deve ser planejada, pensada e registrada como parte do experimento

A tarefa principal do observador é anotar o que acontece, este momento também deve ser gravado. As anotações podem ser feitas através de formulários estruturados que incluemcategorização e prompts, sendo isto útil  para criar material de análise posterior. Abaixo, seguem alguns exemplos de questões:
  • O que você está pensando?
  • Porque você fez isso?
  • O que você vai fazer agora?
  • O que você faria se eu não estivesse aqui?



5. Teste de Usabilidade

 Testes de Usabilidade envolvem a coleta de dados utilizando uma combinação de métodos em um ambiente controlado (Rogers, 2013). O teste de usabilidade é um processo no qual participantes representativos avaliam o grau que um produto se encontra em relação a critérios específicos de usabilidade (RUB, 1994).
Serve para medir o desempenho (Rubin,1994), pode-se contabilizar: [Métricas]:
  • O tempo para completar cada tarefa;[tempo de execução]
  • O número e o percentual de tarefas completadas corretamente; [número de erros e acertos]
  • O tempo gasto para ler determinada seção; [taxa de finalização da tarefa]
  • Os ícones selecionados incorretos,  
  • As visitas ao índice, à tabela de conteúdos;
  • Os “comentários negativos ”[satisfação subjetiva]
O principal objetivo dos testes de usabilidade é verificar se uma interface é usável pelos usuários alvos para realizar as tarefas que foi projetada recebendo feedback sobre o design,avaliando a situação e comparandocom a concorrência. Os testes de usabilidade devem ser feitos ao longo do processo de desenvolvimento, mesmo durantea fase de concepção da interface. [Rubin,1994]. Para realização deste tipo de teste pode-se utilizar os seguintes recursos:
  •  Gravações em vídeo;
  •  Registros de Logs das interações com o software;
  •  Questionários de satisfação do usuário.
  •  Entrevistas para obter opiniões
  •  Observação Local para coleta de evidências de como esta sendo utilizado o produto, etc...
Uma possível estrutura para o teste se usabilidade poderia ser: 

• Exploração livre : Utilização aberta, sem rotina pré-estabelecida
• Orientado a tarefas: Utilização do sistema guiado por uma sequência de passos (tarefas)
• Investigativo : Define-se um objetivo mensurável para inferir algo sobre esse
• Codescoberta:  Realizado em dupla/grupo


Considerações

Tentei dar uma pincelada nos conceitos mais básicos e iniciar um pouquinho de tudo o que pude para despertar a curiosidade sobre este tema em vocês. Existem outros diversos meios de inspeção, verificação e testes nesta área, como por exemplo: inspeção semiótica, prototipação em papel, percurso cognitivo, ergolist e muitos outros e, é claro, que existem profissionais extremamente qualificados para a aplicação destas técnicas, como nossos amigos UX (users experience specialists, designers de interfaces). Entretanto, nós profissionais da área de qualidade e testes de software devemos sim, estar por dentro de tudo aquilo que venha a nos tornar mais aptos, que nos provenha uma perspectiva maior e mais criteriosa para o desempenho de nossa função.  Espero que tenha sido proveitoso. 

Até a próxima!

Outros Materiais:

Comunicabilidade:
Não é propaganda, mas já fiz cursos da Qualister e gostei muito!  http://www.qualister.com.br/avaliacao-teste-usabilidade-teste-de-software

Acessibilidade:

Usabilidade
Visualizar perfil de Laís Berlatto no LinkedIn