Texto alternativo: o guia definitivo

Esta publicação contém tudo o que você precisa saber sobre texto alternativo! Quando usá-los e como desenhá-los perfeitamente. Por mim, Daniel, um desenvolvedor web com deficiência visual que usa um leitor de tela no meu dia-a-dia.


Texto postado originalmente em https://axesslab.com/alt-texts/ escrito por Daniel Göransson, adaptado e traduzido por Bruno Pulis.

Minhas experiência com imagens na web

Eu uso uma combinação de ampliação e leitores de tela ao navegar na web.

Como princípio básico, uso ampliação em telas maiores e leitores de tela em dispositivos menores.

Eu, como qualquer um, encontro várias imagens surfando na web. Se eu estiver usando um leitor de tela e depender de obter uma descrição da imagem — o texto alternativo — mostra essa informação.

Muitas vezes o texto alternativo não ajuda, sendo um desperdício do meu tempo porque não transmite qualquer significado.

Deixe-me ilustrar isso na página inicial do The Verge. Isto é o que exibe para pessoas com visão:

Listagem de notícias com imagem e título do artigo.

Abaixo é o que eu vejo. Eu substituí as imagens com o que meu leitor de tela lê:

Nomes de arquivos estranhos em balões de fala em vez de imagens na lista de notícias.

Não ajuda muito, não é?

Aqui estão algumas falhas comuns de texto alternativo que encontro:

  • “cropped_img32_900px.png” ou “1521591232.jpg” — o nome dos arquivos, provavelmente porque a imagem não tem o atributo alt definido.
  • “ — em todas as imagens do artigo, provavelmente para melhorar o ranking de busca (SEO).
  • “Fotografa: Emma Lee” — provavelmente porque o editor da redação não sabe para que serve um texto alternativo

Os textos alternativos nem sempre são tão ruins, mas geralmente há muito a melhorar. Então, se você é um iniciante ou quer levar o seu “jogo” para o próximo nível, aqui está o nosso guia final para textos alternativos!

O que é um texto alternativo

Um texto alternativo é uma descrição de uma imagem mostrada para pessoas que por alguma razão não conseguem ver a imagem. Entre outros, textos alternativos auxiliam:

  • pessoas com baixa visão ou cegas;
  • pessoa que desabilitaram imagem para economizar dados;
  • motores de busca (ex: Google, Bing).

O primeiro grupo — pessoas com baixa visão ou cegas — é o grupo que mais se beneficia com os textos alternativos. Eles utilizam algo chamado leitores de tela para navegar na web. Um leitor de tela transforma uma informação visual em fala ou braile. Para fazer isso com precisão, as imagens do seu site precisam ter textos alternativos.

Textos alternativos são super importantes! Tão importantes que o WCAG tem textos alternativos como sua primeira guideline a ser seguida:

Todo o conteúdo não textual que é apresentado ao usuário tem um texto alternativo com o propósito de ser equivalente.

– WCAG guideline 1.1.1

Como eu adiciono um texto alternativo?

No HTML, um texto alternativo é um atributo em um elemento de imagem:

<img src="cachorro.png" alt="Cachorro brincando no prado." />

A maioria dos gerenciadores de conteúdo, como WordPress, permite a você criar um texto alternativo quando subir a imagem:

Campo de descricao alternativa do WordPress

Esse campo geralmente é chamado de Texto Alternativo mas em algumas interfaces é chamado de “descrição da imagem” ou algo similar.

6 passos para criar textos alternativos fabulosos

1. Descreva a imagem

Pode parecer óbvio, mas um texto alternativo deve descrever uma imagem. Por exemplo:

“Grupo de pessoas em uma estação de trem.”
“Bebê feliz brincando numa caixa de areia.”
“Cinco pessoas na fila do supermercado.”

As coisas que não pertencem a um texto alternativo são:

  • O nome do fotógrafo. Isso é bem comum, mas não faz sentido.
  • Palavras chave para SEO. Não preencha o texto alternativo com palavras irrelevantes que você espera classificar no page rank do Google. Não é para isso que os textos alternativos servem e só irá confundir seus usuários.

2. Conteúdo do texto alternativo depende do seu contexto

Como você descreve a imagem depende do seu contexto. Deixe-me dar-lhe um exemplo:

Homem de meia idade parecendo tenso na chuva. Fotografia em tons de cinza com fundo fora de foco.

Se essa imagem fosse exibida em um artigo sobre fotografia, o texto alternativo poderia ser algo ao longo das linhas de:

“Close, fotografia em tons cinza de homem em ambiente externo, rosto em foco, fundo desfocado”.

Se a imagem estiver em um site sobre uma série de TV, um texto alternativo apropriado pode ser completamente diferente:

“Estrela do show, Adam Lee, parecendo tenso, lá fora na chuva”.

Então, escreva um texto alternativo que seja o mais significativo possível para o usuário no contexto em que eles estão.

3. Mantenha-o conciso

Lendo a sessão anterior, você pode estar pensando consigo: “Eu como um usuário vidente, posso perceber vários detalhes das imagens, como quem é, como é fotografado, tipo de jaqueta, idade aproximada do cara e muito mais.

Por que não escrever um texto alternativo detalhado e longo para que um usuário com deficiência visual obtenha tanta informação quanto eu?

Fico contente por ter perguntado!

Francamente, você pode obter as informações necessárias da imagem num piscar de olhos, e é isso que estamos tentando conseguir, também, para usuários com leitores de tela.

Dê as informações necessárias no texto alternativo, mas torne-o o mais curto e conciso possível.

Uma das poucas vezes que você deve escrever textos alternativos longos é quando você está descrevendo uma imagem contendo texto importante. Idealmente, você não deve ter imagens de texto, mas às vezes você precisa. Como em algumas capturas de tela ou fotos.

Mas a regra geral é mantê-lo conciso e evitar uma experiência prolixa.

4. Não diga isso é uma imagem

Não inicie um texto alternativo com “Imagem de”, “Foto de” ou similar. O leitor de tela adiciona isso por padrão. Então se você escrever “Imagem de” no texto alternativo, o leitor de tela dirá “Imagem Imagem de…” e bom, isso não é muito agradável.

Uma coisa que você pode fazer é encerrar o texto alternativo afirmando se é um tipo especial de imagem, como uma ilustração.

“Cão pulando através de um aro. Ilustração.”

5. Finalize com a pontuação

Sempre termine um texto alternativo com pontuação .

Isso fará com que os leitores de tela, utilizem pausas após a última palavra no texto alternativo, o que cria uma experiência de leitura mais agradável para o usuário.

6. Não utilize o atributo title

Muitas interfaces têm um campo para adicionar textos no title a imagens próximas de onde você pode adicionar um texto alternativo.

Ignore o texto no atributo title! Ninguém os usa — eles não trabalham em telas sensíveis ao toque e no desktop eles exigem que o usuário passe o cursor sobre a imagem por algum tempo, o que ninguém faz.

Além disso, adicionar um atributo title faz com que alguns leitores de tela leiam o title e o texto alternativo, que se torna redundante. Então, não adicione um atributo title.

Quando não usar um texto alternativo

Na maioria dos casos você deve usar um texto alternativo para imagens, mas existem algumas execeções onde você deve deixar o atributo alt em branco.

Nota importante: nunca remova o atributo alt, pois irá quebra o padrão html.

Mas você pode defini-lo como uma string vazia, ou seja: alt=””. Faça isso nos seguinte casos.

Imagens repetidas em feeds

Imagine que você está percorrendo seu feed do Twitter. Toda vez que quiser ler um novo tweet, primeiro você deve ouvir “Foto de perfil do usuário <nome de usuário da pessoa que postou>”. Na minha opinião, isso seria super irritante!

Outros exemplos de feeds são:

  • Uma lista de links para artigos. Como o da página Artigos;
  • Chat ou feed de mensagens;
  • Feeds de comentários.

Portanto, para uma experiência de usuário ideal, deixe o texto alternativo em branco para imagens que são usadas repetidamente em feeds.

Ícones em labels

Você sempre deve ter labels ao lado de ícones. Supondo que você faça, o ícone não deve ter um texto alternativo. Deixe-me explicar o porquê!

Vamos dar um exemplo de mídia social como exemplo:

Ícones do Facebook e twitter com rótulos de texto.

Se você escrevesse um texto alternativo para o ícone do Facebook, um leitor de tela diria algo ao longo da linha: “Facebook Facebook”. Muito redundante!

OK, isso não é tecnicamente sobre textos alternativos, mas ainda é importante: certifique-se de que tanto o ícone quanto o texto do link estão no mesmo atributo de link, para obter uma experiência fluída. Como isso:

<a href="...">
  <img src="fb_icon.png" alt="" />
  Facebook
</a>

Outro erro comum está nos botões de menus:

Ícone do menu com e sem rótulo.

Se o botão de menu não tiver um label visual — o que, de maneira direta, é realmente ruim para a experiência do usuário, ele precisa de um texto alternativo (ou outra maneira de descrever sua função no código, como aria-label).

Explique a função do ícone, como “Menu”. Não escreva “Três linhas horizontais” ou “Hambúrguer principal”, que infelizmente são exemplos reais em que eu tropecei.

Se o ícone do menu tiver um label, você deve deixar o texto alternativo em branco. Muitas vezes eu encontro botões de menu que são lidos como “Menu Menu”. Uma vez, encontrei um “menu menu hambúrguer”. Um pouco confuso, não diria?

Imagens em links

Geralmente, uma imagem com um link é acompanhada com um texto. Como o exemplo abaixo:

Imagem acima de um link em um site de notícias.

Nesse caso, a imagem e o link devem estar na mesma tag de link no HTML. Você pode simplesmente deixar o texto alternativo em branco. O importante para o usuário é ouvir o texto do link.

Um texto alternativo da imagem só distrai, adicionando informações que o usuário não achará necessário. A imagem provavelmente é encontrada na página que está vinculada, e então você pode dar uma boa explicação sobre ela no atributo alt.

Se você realmente, precisar ter uma imagem em um link sem um texto de acompanhamento, então o texto alternativo deve descrever o destino do link, e não a imagem.

Imagens decorativas

De preferência, imagens decorativas que não transmitam nenhum significado ao usuário devem ser colocadas como imagens de fundo em CSS. Provavelmente nem é preciso dizer, mas isso significa que você não precisa de textos alternativos nelas.

Eu classificaria a maioria das imagens em que você coloca texto como decorativas. Você não precisa de um texto alternativo nelas. Um exemplo é a imagem de fundo na página inicial do Netflix:

Página inicial do Netflix com texto no topo de uma imagem de fundo mostrando capas de filmes.

Casos especiais

Logos no banner

Logos no banner quase sempre ligam para a página inicial do site. As opiniões variam um pouco sobre o tema de textos alternativos para logotipos.

Alguns dizem que deve incluir o nome da empresa, o fato de ser um logotipo e o destino do link. Como tal:

“Axess Lab, logotipo, ir para página inicial.”

Na minha opinião, isso é um pouco detalhado. Muito barulho! Como meu leitor de tela já me diz que é uma imagem e um link, só sinto que preciso ouvir o nome da empresa. Pelo fato de ser uma imagem, suponho que seja um logotipo e, pelo fato de ser um link, suponho que siga as convenções e os links para a página de início.

SVG

Gráficos vetoriais escaláveis (SVG) é um formato de imagem que está se tornando cada vez mais popular na web. E eu amo eles! Eles mantêm sua nitidez enquanto fazem zoom e ocupam menos espaço para que os sites carregem mais rápido.

Existem dois caminhos principais para adicionar um SVG a uma página HTML.

  1. Dentro de um elemento img.
    Nesse caso, basta adicionar um texto alternativo como de costume:
<img src="dog.svg" alt="Cachorro brincando na grama." />

2. Usando uma tag svg. Se você usar esse método, não pode adicionar um atributo alt porque não há suporte para isso.

No entanto, você pode contornar isso adicionando dois atributos WAI-ARIA: role=“img” e aria-label = “texto alternativo”.

Na verdade, para o segundo caso, você deve ser capaz de adicionar seu alt-text como um elemento de título no svg, mas não há suporte suficiente para isso em navegadores e tecnologias assistivas no momento.

O computador não pode fazer isso por mim?

Embora a Machine Learning e a inteligência artificial melhorem rapidamente e possam descrever algumas imagens com bastante precisão, elas não são suficientemente boas para entender o contexto relevante no momento.

Além disso, as máquinas não são suficientemente boas para decidir o que é “conciso”, e muitas vezes descreverão demais ou muito pouco da imagem.

Facebook e Instagram, atualmente incluíram uma feature que descreve imagens automaticamente. Mas eu percebo que as descrições são muito genéricas. Uma imagem no meu feed agora é descrita como: “Gatos dentro de casa”. A foto atual exibe um gato caçando um rato de brinquedo.

Então me desculpe, você ainda deve escrever textos alternativos!

Obrigado por criar uma web melhor!

Estou feliz por você ter lido até aqui! Isso quer dizer que você se importa em tornar a web um lugar melhor para todos os usuários. Compartilhe o conhecimento e continue sendo incrível!

Afinal, o quê significa A11y?

Talvez você já tenha visto pessoas utilizando o termo a11y ou até mesmo a hashtag #a11y e não compreendeu a correlação dele com acessibilidade. Este termo refere-se a palavra inglesa accessibility.

Os dois caracteres do meio são o número um, não ” L” s minúsculos . Diga como “A-um-um-Y” ou “A-onze-Y”. Pode ser pronunciado também como, ally ou aliado em português.

Qual o sentido e significado de A11y?

O termo, representa a ideia de ser aliado das pessoas com deficiência, afim de, reivindicar, promover e celebrar o direito ao acesso a informação.

Quando utilizamos, dizemos que somos aliados de uma causa tão nobre e em contrapartida, referenciando a acessibilidade digital em si.

Sigla A11y exemplificada

Existem outros termos que utilizam a mesma lógica, por exemplo:

  • A internacionalização é representado pela sigla i18n;
  • A localização é representada pela sigla i10n;
  • World Wide Web, pode ser representado por W3

Voce conhecia esse termo?

Comente abaixo e se esse artigo te ajudou considere me apoiar.

QA de acessibilidade: cotidiano e curiosidades

Testes de acessibilidade são parte integrante da disciplina de qualidade de software.

Entretanto, a forma de atuação e ferramentas são bem diferentes dos outros perfis de testes.

Neste artigo, irei mostrar os desafios, oportunidades e curiosidades que enfrentamos todos os dias.

Além disso, vou dar algumas dicas bônus, vamos lá?


Quais as diferenças de um QA de acessibilidade?

Nós QA’s de acessibilidade temos algumas diferenças em comparação com outros QA’s. Irei listar algumas importantes.

Base de conhecimento

Diferentemente de outros analistas de qualidade, nós devemos conhecer muito bem as Diretrizes de Acessibilidade para Conteúdos na Web, ou WCAG.

Podemos também ter conhecimentos da CTFL, entretanto, o conhecimento especifico é muito mais valioso nesse aspecto.

Tecnologias especificas

Outro ponto importante são as tecnologias que envolvem nosso trabalho. Devemos ter um bom conhecimento de tecnologias assistivas, como por exemplo, o leitor de telas.

Outras tecnologias assistivas são importantes, todavia, o leitor de telas é mais utilizado devido a sua abrangência.

Como é nossa rotina?

Geralmente um QA de acessibilidade atua de forma cross. Ele não fica fixo em um única squad, assim, ele pode contribuir em contextos diferentes, mas sempre focado em garantir o acesso a todas as pessoas.

Como validamos acessibilidade?

Foto de Athena

Para validarmos acessibilidade usamos a WCAG , um documento da W3C, que contém as diretrizes de acessibilidade. Nossos testes são baseados em:

  • testes exploratórios;
  • testes manuais;
  • testes semi automatizados;
  • testes automatizados.

Os testes manuais são realizados com o auxílio de leitores de telas. Usavamos três leitores distintos:

  • NVDA: para testar páginas web;
  • Talkback para dispositivos Android;
  • VoiceOver para dispositivos iOS.

Formas de validação

Cada leitor de tela disponibiliza uma série de alternativas de navegação. As mais comuns são:

  • navegação por palavras;
  • navegação por TAB e gestos;
  • navegação por setas e gestos;
  • navegação por teclas e gestos de atalhos.

Vale uma ressalva para os testes automatizados, eles contribuem em cerca de 57% para previnir possíveis inconsistências de acessibilidade. Esse número é resultado de uma pesquisa da Deque Systems.

Existem diversas possibilidades de automação em testes de acessibilidade. Este é um outro tema que prometo surgir por aqui.

Habilidades são necessárias

Como um QA de acessibilidade, alguns pontos valem a pena ser destacados como:

  • boa comunicação verbal e escrita;
  • ser preciso;
  • entender os conceitos de agilidade;
  • ter flexibilidade;
  • conhecer sobre tecnologias assistivas;
  • uma noção de tecnologias web (HTML, CSS e JS).

Curiosidades

Essas características nos auxiliam e deixam nosso trabalho mais tranquilo em relação ao time que trabalhamos.

Existem algumas curiosidades bem interessantes sobre nossa atuação e como lidamos com os problemas do cotidiano:

  • trabalhamos em dupla;
  • utilizamos a todo tempo, tecnologias assistivas (leitores de tela);
  • realizamos testes de contraste;
  • o reporte de bugs de acessibilidade é um pouco diferente;
  • validamos a estrutura do HTML.

Outro fato legal, a acessibilidade é considerada desde a concepção do design. Isso contribui consideravelmente para nosso trabalho.

Bônus: Testes automatizados

Conclusão

Ser um QA de acessibilidade é olhar de uma forma mais humana e contribuir com o acesso igualitário para todas as pessoas, independente de sua deficiência.

E sair de uma zona de conforto e se importar pelo outro, talvez seja por isso que a acessibilidade me encanta tanto.

5 livros de acessibilidade digital

Recentemente a acessibilidade digital ganhou os holofotes devido a pandemia. Entretanto, ainda é um assunto muito imaturo para profissionais do meio digital.

Boa parcela deles necessitam de treinamentos e materiais de consulta.

Dessa forma, nada melhor do que recorrer a bons livros não é mesmo?

Pensando nisso, separei os 5 melhores livros de acessibilidade digital. Assim, você pode se aprofundar e destacar em uma área que cada vez mais cresce.

Existem vários livros sobre o tema, porém, escolhi somente 5 para indicar.

Você pode conferir uma lista completa na categoria de livros no Awesome A11y.

Vamos as indicações!

Garoto comemorando na arquibancada de um time de futebol. Ele está vestido com uma blusa azul e boné. Gesticula com as mãos vibrando e dizendo "Sim, vamos lá"

Acessibilidade na web

Autor: Reinaldo Ferraz

A leitura é bem tranquila e prazerosa, Reinaldo consegue unir a teoria e prática.

Escrevi uma resenha sobre o livro onde conto todos os aspectos e minhas impressões.

Além disso, a obra traz diversas barreiras de acessos e as principais soluções para corrigí-las.


GAIA: Um Guia de Recomendações Sobre Design Digital Inclusivo para Pessoas com Autismo

Autor: Talita Pagani

GAIA é um guia de recomendações sobre design digital inclusivo para pessoas com autismo traz, ele contém diretrizes sobre como desenvolver websites e aplicativos mais acessíveis a pessoas com Transtorno do Espectro do Autismo.

A obra busca equalizar aspectos psicopedagógicos sobre o autismo, mais conhecidos por profissionais de educação e saúde, com requisitos tecnológicos para desenvolver soluções acessíveis, domínio dos profissionais de tecnologia.


Inclusive Design Patterns

Autor: Heydon Pickering

Podemos não perceber, mas, construímos sites inacessíveis o tempo todo. Porém, não é por falta de cuidado ou talento – é uma questão de fazer as coisas da maneira errada.

O livro explora como podemos criar interfaces acessíveis sem esforço extra – e quais padrões de design de front-end podemos usar para criar experiências inclusivas.


Agile Accessibility Handbook

Autor: Dylan Barrel

A proposta desse livro é como um guia de consulta rápida para: orientar, estimular e aconselhar profissionais que querem implementar acessibilidade dentro das organizações.

Barrel, traz uma abordagem clara e objetiva para alcançar esse pontos. Não encontrei dificuldade quanto a leitura.

Outro ponto importante é a junção de agilidade com a acessibilidade, no curso da leitura podemos identificar que são temas extremamente compatíveis e possíveis de viverem em harmonia.

O e-book é disponibilizado gratuitamente pela Deque System.


Accessibility for Everyone

Autor: Laura Kalbag

Você torna a web mais inclusiva para todos, em qualquer lugar, quando projeta tendo em mente a acessibilidade. Deixe Laura Kalbag guiá-lo através do panorama da acessibilidade: entenda os desafios da deficiência e deficiência; obter um controle sobre leis e diretrizes importantes; e aprender como planejar, avaliar e testar design acessível.

Aproveite as ferramentas e técnicas, como redação clara, IA bem estruturada, HTML significativo e design inteligente, para criar um conjunto sólido de melhores práticas. Quer você seja novo no campo ou um profissional experiente, certifique-se de seguir o caminho do design com acessibilidade.

Conclusão

Acredito que, esses livros irão te ajudar bastante no crescimento profissional de acessibilidade. Vale lembra que, acessibilidade é uma disciplina viva e evolui constantemente.

O maior inimigo do conhecimento não é a ignorância, é a ilusão do conhecimento
Stephen Hawking

Acessibilidade para iniciantes


Importante

Este artigo foi originalmente escrito por Karina Chow e traduzido e adaptado por mim. Houve a autorização da autora para realizar a tradução.


No mundo atual da computação ubíqua e no desejo de todo o setor de melhorar a diversidade e inclusão de empresas e produtos, não há mais uma desculpa para não investir em acessibilidade na web. Dito isso, começar a acessibilidade na web pode ser uma tarefa difícil. É difícil saber por onde começar e o que você pode fazer agora para melhorar seu produto!

Quando eu estava começando, estava muito confusa e sentia que estava constantemente pesquisando definições no Google. Felizmente para mim, eu tinha uma colega que era muito qualificado e respondeu implacavelmente a muitas das minhas perguntas. Agora, se você me permitir, gostaria de ser seu colega e apresentar uma introdução abrangente à acessibilidade na web.

Se você trabalha com produtos e gostaria de defender a acessibilidade na web, mas não sabe por onde começar, este é o guia para você!

Se você – ou a liderança da sua empresa – ainda precisa ser convencido de por que vale a pena gastar tempo ou dinheiro em acessibilidade, recomendo a leitura do guia sobre Como convencer a liderança da empresa a se preocupar com a acessibilidade.

O que é acessibilidade web?

Ser acessível significa que sites, ferramentas e tecnologias são projetados e desenvolvidos para que pessoas com deficiência possam usá-los. Dizemos que deve ser P.O.U.R .: Perceptível, Operável, Compreensível e Robusto. Voltaremos ao que tudo isso significa mais profundamente em um momento!

O que é a11y?

Existem onze letras entre o A e Y na palavra accessibility, então as pessoas começaram a abreviá-la como a11y. Tem a vantagem adicional de se parecer com a palavra aliado, por isso as pessoas às vezes a usam como tal. Na maioria das vezes, ouço as pessoas dizerem em voz alta como “a-eleven-y”, mas nesse ponto você também pode dizer “acessibilidade”!

A palavra a11y é o termo usado em inglës para 'accessibility'

Fonte: The A11y Project

Quem define o que é acessível ou não?

As Diretrizes de Acessibilidade de Conteúdo da Web (WCAG) são o norte quando se trata em medir quão acessível o seu produto digital é. Elas foram criadas pelo  World Wide Web Consortium (W3C), o mesmo grupo que define os padrões web para interatividade, internacionalização, segurança, computação mobile e muito mais. Estes são os padrões internacionais que todos os nossos navegadores seguem.

No contexto americano, se você receber uma ação judicial da ADA, muitas vezes será citada que seu site não está em conformidade com a WCAG como evidência objetiva de sua falta de acessibilidade.

No Brasil, temos a Lei Brasileira de Inclusão, ou LBI, que regulamenta as questões que envolvem acessibilidade no contexto digital.

Como as pessoas podem tentar interagir com meu site?

Assim como a conformidade com HIPAA é um padrão em constante mudança conforme o setor de saúde e a Internet se expandem, a conformidade com WCAG também está sempre evoluindo e não está confinada a uma pequena lista de TODOs do tipo definir e esquecer. Uma equipe não pode “resolver” a acessibilidade em uma empresa; em vez disso, eles devem se comprometer a lidar com isso continuamente.

O padrão WCAG mais recente (no momento da redação deste artigo em 2021) é WCAG 2.1. A WCAG é medida com três níveis de conformidade, de A (mais baixo), AA, a AAA (mais alto). Para medir a acessibilidade do seu site, você mede o quão compatível ele é com qualquer um desses níveis WCAG.

“Conformidade WCAG 2.1 AA” significa “Precisamos aderir ao padrão WCAG 2.1, com conformidade duplo A”

Por exemplo, para mídia baseada em tempo, aqui estão alguns exemplos das diferenças entre os níveis de conformidade:

  • A – “Conformidade mínima” – Legendas para vídeo/áudio pré-gravado, alternativas fornecidas para vídeo/áudio pré-gravado (por exemplo, transcrições);
  • AA – “Conformidade aceitável” – Tudo em A legendas para vídeo/áudio ao vivo, narrações adicionais fornecidas durante o vídeo pré-gravado;
  • AAA – “Optimal Compliance” – Tudo em AA e interpretação em linguagem de sinais para vídeo, narrações mais detalhadas fornecidas durante e em pausas para vídeo pré-gravado, transcrições ao vivo
    Ao estabelecer metas de acessibilidade, pode ser aconselhável definir o nível de conformidade que você gostaria de atender, para que todos que trabalham no projeto possam trabalhar para a mesma meta.

Se você não sabe qual nível de conformidade seguir, a conformidade WCAG 2.1 AA é considerada aceitável e cobrirá a grande maioria dos casos de uso.

Quais são os diferentes tipos de deficiência?

Ao projetar seu produto para a web, você provavelmente está sempre imaginando uma pessoa com um teclado e um mouse. No entanto, diferentes tipos de deficiência proíbem as pessoas de interagir com seu produto dessa maneira tradicional.

Com quais ferramentas as pessoas podem acessar a internet?

As deficiências mais comumente consideradas são as deficiências visuais, mas existem muitas outras categorias, todas as quais você deve considerar ao tornar seu produto acessível:

  • Visual – cegueira, daltonismo, baixa visão, glaucoma;
  • Audição – surdez, deficiência auditiva;
  • Motora – Controle de motor fino limitado;
  • Cognitiva – Focalização difícil, dificuldades de aprendizagem;
  • Convulsões.

Como devo considerá-los ao testar meu produto digital?

Diferentes tipos de deficiências ditam como você pode acessar e interagir com os sites. Uma lista com algumas alternativas populares:

  • Teclado
    Algumas pessoas não utilizam o mouse somente o teclado. Isso é comum entre pessoas com deficiências motoras que não conseguem operar os movimentos finos que um mouse exige.
  • Leitores de tela
    Tecnologia assistiva que lê o que está na tela, mais comumente usada por pessoas com cegueira ou baixa visão. Normalmente operado usando apenas um teclado.
  • Zoom do Browser (idealmente, suporte até 200%)
    Pessoas com deficiência visual podem usar o recurso de zoom em seus navegadores para compreender melhor o texto e ver as imagens.
  • Estilos customizados
    Pessoas com baixa visão ou daltonismo podem ter suas próprias folhas de estilo personalizadas para ajustar estilos como tamanho e cor da fonte

Como aprendo a usar um leitor de tela?

Muitas pessoas veem “acessibilidade” e imediatamente consideram isso “uso do leitor de tela”. O fato é que você não precisa aprender a usar um leitor de tela para tornar seu produto acessível. As diretrizes WCAG são detalhadas o suficiente para que você possa simplesmente segui-las e usar a navegação do teclado para testar a maioria das coisas. E, como aprendemos acima, há muitas maneiras de um usuário usar seu site, além de um leitor de tela.

Dito isso, pessoalmente acho útil aprender a usar um leitor de tela porque ele pode ajudar a desenvolver empatia em você pelo que os usuários que os usam passam e pode ajudar a identificar fluxos de produtos insatisfatórios. As diretrizes podem ensiná-lo a marcar seu HTML corretamente e dar bons conselhos sobre como projetar com acessibilidade em mente, mas nada ilustra verdadeiramente como seu produto pode ser confuso do que ouvir seu conteúdo lido em voz alta em uma ordem sem sentido. Para esse propósito, eu gosto de recomendar que as pessoas pelo menos tentem aprender o básico.

Existem muitas ferramentas interessantes online para ensinar a proficiência básica do leitor de tela. Eu recomendaria este guia Codecademy sobre como inicializar um leitor de tela pela primeira vez. Dependendo de qual leitor de tela você usa, também há guias para cada um individualmente. O VoiceOver do Mac OSX tem muita documentação e também há este glossário de comandos que é útil. O JAWS é muito popular para Windows e também tem uma boa lista de comandos.

Depois de aprender um pouco, você pode praticar suas coisas neste divertido guia prático.

Os sites devem ser P.O.U.R

Vamos circular todo o caminho de volta à nossa declaração inicial. De acordo com as WCAG, existem 4 Princípios da Acessibilidade que todo produto deveria aderir a:

  1. Perceptível — as informações precisam estar disponíveis para pelo menos um sentido (visão, audição, tato);
  2. Operável — um usuário deve ser capaz de realizar todas as ações da interface (ou seja, com um teclado);
  3. Compreensível — um usuário deve entender o idioma em uma página e como operá-lo;
  4. Robusto — diferentes agentes de usuário, incluindo tecnologias assistivas, o conteúdo deve ser capaz de acessar todo o conteúdo.

O principal objetivo dos entusiastas de acessibilidade é atingir todos os quatro itens para todos os tipos de deficiência e tipos de dispositivos de entrada. Conforme mencionado anteriormente, existem muitos tipos de deficiência e mais dispositivos de entrada estão sendo inventados o tempo todo, então é uma missão para toda a vida, em vez de um objetivo único.

Espero que você se sinta um pouco menos assustado com o mundo da acessibilidade na web. Gostaria de agradecer a Jenna Lee, aquela colega que me ensinou praticamente tudo o que sei.

Fique atento para artigos futuros sobre como incorporar o trabalho de acessibilidade em seus ciclos de vida de produto, bem como instruções mais acionáveis sobre o que fazer em suas bases de código. Desejo-lhe boa sorte e obrigado pelo seu interesse em ser um defensor da acessibilidade!

Recursos adicionais

Gostaria de aprender ainda mais? Aqui estão alguns ótimos recursos:

  • Google’s A11ycasts, uma série de vídeos ensinando o básico de acessibilidade pelo time de desenvolvimento da Google;
  • WCAG 2.1 Guidelines, versão atual das diretrizes de acessibilidade;
  • WebAIM, muita informação de acessibilidade e até mesmo treinamentos de certificação;
  • Awesome A11y, uma lista com recursos sobre acessibilidade;
  • ANDI, uma ferramenta de teste de acessibilidade automatizada para executar em suas páginas da web;
  • Lighthouse, uma ferramenta automatizada para SEO, acessibilidade e desempenho;
  • The A11y Project, educação sobre como fazer designs acessíveis;
  • Mozilla’s a11y documentation, documentação sobre a11y fácil de compreender.

Como construir um LinkedIn campeão


O LinkedIn talvez seja a maior rede social corporativa da atualidade. A plataforma cresce exponencialmente e agrega bons recursos.

Saber utilizar ela de forma estratégica pode render boas oportunidades de trabalho.

Nesse artigo, vou compartilhar 5 dicas que podem melhor seu posicionamento na rede.

Vamos lá?


O primeiro passo para criar um perfil campeão no LinkedIn é usar o Social Selling Index.

O que é o Social Selling Index?

Basicamente é uma ferramenta que auxilia o posicionamento do seu perfil na rede.

Através dela, conseguimos identificar oportunidades de melhorias, como por exemplo:

  • localizar pessoas certas;
  • interagir oferecendo ideias para uma boa discussão;
  • criar relacionamentos.

Os componentes da sua pontuação variam de acordo com seu perfil.

Cada usuário na rede tem uma pontuação, a partir dela, seu posicionamento é definido. Para auxiliar na pontuação perfeita, o LinkedIn conta com o Social Selling Index, que é um índice de posicionamento do seu perfil.

Usando o Social Selling Index

Para utilizá-lo basta selecionar o botão “Get your score free”, conforme a imagem abaixo:

Ferramenta do Linkedin que avalia suas estatísticas. Nela existe um botão com o rótulo "Get your score free"

O resultado do meu score, no momento da escrita desse artigo, foi:

Diversos gráficos relacionados ao Social Selling Index.- primeiro gráfico é meu posicionamento no setor de TI, estou em 6% dos principais perfis;
- segundo gráfico minha pontuação 62 em 100;
Gráficos do Social Selling Index

No meu caso , o Linkedin recomendou melhorar três aspectos:

  • localizar pessoas certas;
  • interagir oferecendo ideias para uma boa discussão;
  • criar relacionamentos.

A partiri disso, vou modificar meu perfil com as recomendações que achei mais relevante.

Identidade visual consistente

A máxima “uma imagem vale mais que mil palavras” nesse contexto vale muito. Ter uma identidade visual consistente é extremamente importante.

Sua identidade visual deve conter os seguintes pontos:

  • autenticidade;
  • profissionalismo;
  • responsabilidade.

Opte por fotos que focam seu rosto, com um fundo colorido ou que faça contraste com sua foto. Caso você não tenha noção sobre o tema existe um serviço bem interessante o Profile Picture Maker.

Ele gera diversos formatos para fotos de perfil, o resultado é como, por exemplo:

Percebo duas vantagens nesse serviço, Além de ser gratuito irá deixar sua foto na rede muito mais apresentável e profissional.


Resumo profissional

O resumo profissional é sua porta de entrada, então devemos caprichar nele. Uma das dicas mais interessantes é ser sucinto e conciso, vale também escrever algumas coisas para chamar atenção dos recrutadores. O meu resumo está assim:

Sou um desenvolvedor com foco em qualidade de software e acessibilidade digital. Adoro trabalhar em equipe com projetos desafiadores e criativos que mudam a vida das pessoas.

Como desenvolvedor, procuro sempre as melhores práticas para um código funcional e otimizado, gosto de experimentar novas tecnologias e processos que possam melhorar o desenvolvimento.

No meu tempo livre me dedico em compartilhar conhecimento com a comunidade através de palestras, podcasts, meetups, posts.

Além disso, utilizo algumas palavras-chaves como: desenvolvedor, qualidade de software, acessibilidade digital.

Seu resumo profissional, deve responder algumas perguntas, como:

  • cargo que gostaria de ocupar? (Desenvolvedor);
  • qual o seu foco/objetivo? (foco em qualidade de software);
  • sua dinâmica de trabalho? (trabalho em equipe e projetos desafiadores).

Experiências profissionais

A etapa de experiências profissionais é o fator mais importante, então devemos caprichar nelas. Eu uso uma fórmula que funciona muito bem.

Fórmula para experiências profissionais

  • Breve resumo da empresa
  • Descrição da sua função
  • O que você se envolveu na empresa?
  • Projeto mais importante que atuou
  • Tecnologias utilizadas.

Vamos analisar a minha experiência na Monetizze, por exemplo:

Escrevendo uma experiência profissional arrasadora

Suas experiências profissionais devem conter

Breve resumo da empresa
A Monetizze é uma plataforma para pagamento online que oferece segurança e ferramentas de métricas e marketing para comercializar produtos na Internet.

Descrição da função
Como Analista de Qualidade era responsável por garantir a qualidade do produto Membertizze, onde atuei por cerca de 1 ano e meio. Contribuindo de forma significativa para a agilidade do time.

O que você se envolveu na empresa?

  • Participação ativa nos comitês de Qualidade e Engenharia de Software, fomentando discussões e soluções para nossos problemas diários;
  • Auxilei o time de DevOps na construção de pipelines para integração contínua, seguindo a pirâmide de testes;
  • Escrevi testes automatizados utilizando Javascript para testar a camada de interface (UI) da aplicação com Cypress;
  • Escrevi testes automatizados para validar a acessibilidade da aplicação;
  • Testes com tecnologias assistivas, com o leitor de tela: NVDA;
  • Suporte ao desenvolvedores no processo de Code Review e práticas relacionadas a garantia da qualidade;
  • Contribuo com time também na resolução de alguns bugs codificando;
  • Ministrei diversos treinamentos internos sobre qualidade de software, desenvolvimento e soft skills;
  • Fomento sempre a cultura de qualidade em momentos oportunos.

Projeto mais importante que participou

Ganho de 80% na perfomance dos testes de serviços (API) na integração contínua, com essa
otimização reduzimos drasticamente o tempo de execução na pipeline.

Ferramentas utilizadas:

  • Docker;
  • Vue.js
  • Cypress;
  • CucumberJS;
  • Gherkin;
  • AccessMonitor;
  • NVDA;
  • AXE;
  • Jest;
  • PHPUnit;

Outras ferramentas:
GitlabCI, Jira, AWS, New Relic, Laravel.

As informações da sua experiência profissional devem ser relevantes, nada de texto pra encher linguiça.

Competências e recomendações

Essa sessão é muito importante, pois irá mostrar ao recrutador algumas habilidades técnicas.

Minha dica, analise as competências e recomendações que façam sentido para seu perfil. Caso existam competências repetidas mantenha a que tem maior pontuação, o mesmo se aplica para as recomendações.

Dica Bônus: Certificados e cursos

É muito comum no Linkedin, postarmos certificados e cursos, visto que, comprova novas competências e demonstrar novas competências. Porém, o Linkedin parece uma chuva de certificados, me lembrando desse meme.

A minha dica nesse sentido é: publique certificados que façam sentido e que chamem atenção, por exemplo:

  • certificação oficiais como (AWS, ISTQB);
  • cursos relevantes que tenham notoriedade.

Outros cursos e certificados, como participacao de um webinar, lives, meetups e eventos geralmente anexo na sessão de Certificados sem publicar na minha timeline.

Procuro deixar minha timeline bem limpa com conteúdo relevante.

Outra dica muito boa é compartilhar conteúdo, fiz uma publicação no Linkedin sobre “Os mitos da Qualidade de Software” que simplesmente viralizou, ele teve um alcance de 8.261 visualizações.

Conclusão

Quando obtive esses resultados, percebi como o LinkedIn é uma ferramenta poderosa. Ele já me rendeu diversas entrevistas, oportunidades e amizades.

E você está esperando o quê para se destacar profissionalmente?

Acessibilidade e critérios de aceite: o quê eles tem um comum?

Como QA, somos responsáveis por garantir a qualidade do software.

Uma das etapas mais importantes é a análise dos critérios de aceite.

Essa etapa consiste em analisar, validar e verificar os artefatos de cada estória.

Um dos aliados aos critérios de aceite é a acessibilidade. Neste artigo, vamos explorar a sua relação.

Recapitulando, o que é acessibilidade na web?

Antes de mais nada, devemos recapitular o que é acessibilidade na web.

Acessibilidade na web é a capacidade de pessoas com deficiência poderem consumir produtos e serviços na internet de forma autônoma, promovendo assim, liberdade de escolha e qualidade de vida.

Foi dada a largada de mais uma sprint, como um bom analista de qualidade você inicia os preparativos para manter seu trabalho de forma organizada, clara e documentada.

Assim, fazemos uma análise dos requisitos de cadas estória que será trabalhada durante a sprint. Percebemos que o produto não está conformidade as diretrizes de acessibilidade e, por consequencia, quebra um dos pilares da qualidade descritos na ISO 25010.

O que fazer nessa situação?

Conceito de Critério de Aceite

Os critérios de aceitação são as condições que um produto de software deve atender para ser aceito por um usuário, cliente ou outro sistema. Eles são exclusivos para cada história de usuário e definem o comportamento do recurso da perspectiva do usuário final. Critérios de aceitação bem escritos ajudam a evitar resultados inesperados no final de um estágio de desenvolvimento e garantem que todas as partes interessadas e usuários fiquem satisfeitos com o que obtêm[1].

Podemos utilizar os critérios de aceite das mais variadas formas, como, por exemplo:

  • Orientado a cenários (Gherkin);
  • Checklist;
  • Formatos personalizados.

Garantindo a acessibilidade nos critérios

Num ambiente ágil, ocorre a famosa reunião dos Three Amigos, onde PO, QA e líder técnico fazem o refinamento de funcionalidades que são candidatas para uma sprint.

O objetivo dessa reunião e ter uma visão do mesmo problema em aspectos diferentes. O negócio exige determinados aspectos, enquanto o líder técnico apresenta as possibilidades de desenvolvimento. Em contrapartida, nós analistas de qualidade visamos criticar o produto e levantar cenários de testes funcionais e não funcionais.

Neste momento, podemos elencar critérios de acessibilidade. Para exercitarmos, iremos pensar num componente de interface bem comum no cotidiano: uma janela modal.

Escrevendo a estória de usuário

Como descrição da atividade o PO levou para o refinamento os seguintes critérios:

Na aplicação da ACME Corportarion, no fluxo de Compras devemos exibir um botão onde o usuário poderá incluir seu endereço de entrega. Ao clicar nesse botão deve ser exibido uma modal para o preenchimento do seu endereço.

A estória de usuário foi definida, de acordo, com a especificação abaixo:

Como usuário gostaria quando selecionar "Add Delivery Address" seja exibido um formulário para preencher meu endereço.

Em um brainstorming, foi levantado o protótipo que tem o objetivo de concluir a jornada de cadastro de endereço.

Uma janela modal, nela existem informações sobre o endereço do usuário

Exemplo de modal

Pensando de forma analítica, costumo prestar atenção nos detalhes especificamente quando temos palavras mágicas como: alta retenção, jornada de compras. Sabendo da importância disso, comecei imaginar alguns critérios.

Definindo os critérios

Aparentemente é uma tela inocente de fácil implementação, porém, como diz o ditado “o diabo mora nos detalhes”. Ela servirá de um bom exercício para identificarmos critérios de aceite voltados para a acessibilidade especificamente.

Comportamentos

Devemos prever os comportamentos desse componente, por exemplo:

  • quais são as teclas que exibem e ocultam a modal?
  • quais teclas de atalho deverão ser mapeadas?
  • como será a apresentação desse componente na tela?
  • existirá algum elemento que receberá o foco quando ela for exibida?

Com esses questionamentos, poderiamos refinar os critérios conforme abaixo.

[ACME-123] Cadastro de Endereço de Entrega

Como usuário gostaria quando selecionar "Add Delivery Address" seja exibido um formulário para preencher meu endereço.

Critérios de Aceite

A modal deve ocupar 100% da tela, permitindo o conteúdo ser mais fácil de ler e ser exibido em telas pequenas;
Deve ser seguido o mapeamento das teclas de acordo com a tabela Suporte ao teclado
Deve ser exibida a modal através do clique no botão "Add Delivery Address";
Deve ser exibida a modal através do teclado no botão "Add Delivery Address":
deve ser aberta com a tecla ENTER;
deve ser aberta com a tecla SPACE.
A navegação deve ser somente na modal;
Não deve focar outros elementos que não estão no contexto da modal;
O foco inicial deve ser no primeiro input do formulário;
A janela modal não precisa de uma descrição extra (aria-describedy);
O botão de "Cancel" fecha a modal e retornar o foco para o botão "Add Delivery Address";
A tecla ESC deve fechar a modal e retornar o foco para o botão "Add Delivery Address";

Suporte do teclado

TeclaFuncionalidade
TabMove o foco para o próximo elemento focalizável dentro da modal.
Quando o foco está no último elemento focalizável da modal, move o foco para o primeiro elemento focalizável da modal.
Shift + TabMove o foco para o elemento focalizável anterior dentro da modal.
Quando o foco está no primeiro elemento focalizável da modal, move o foco para o último elemento focalizável na modal.
ESCFecha a modal.

Conclusão

Dessa forma, conseguimos prevenir possíveis inconsistências relacionadas a acessibilidade, garantindo assim, o cumprimento das diretrizes de acessibilidade.

Note que fizemos um bom apanhando de critérios e fomos, de certa forma, bem minuciosos. A dica é começar a exercitar isso aos poucos.

E você já conseguiu contribuir com algum critério de aceite, pensando em acessibilidade?

Referências

8 Princípios da Qualidade de Software

Construir um software envolve diversas áreas: comunicação, marketing, equipe de negócios, design, experiência do usuário, equipe técnica e tantos outros envolvidos.

Mas afinal, o que seria construir um software com qualidade?

Essa pergunta pode ter diversas respostas, entretanto, a ISO/IEC 25010 foi criada para ser um alicerce quando falamos em construção de software.

Com ela, podemos avaliar a qualidade de um sistema a partir de princípios que foram desenhados. Cada princípio analisa o software de um ponto de vista.

Nesse artigo, iremos navegar por cada princípio e suas subcaractéristicas e como eles podem nos auxiliar.

Vamos lá?

Adequação funcional

Mulher segurando uma prancheta e olhando em um quadro branco os requisitos do sistema.
Image by gpointstudio on Freepik

Todo sistema deve permitir os usuários realizarem tarefas específicas. Essa habilidade é chamada de adequação funcional.

Para isso acontecer devemos criar funcionalidades, que esperam alguma ação do usuário para respondê-lo, de acordo com seu pedido.

Eficiência de desempenho

Image by rawpixel.com on Freepik

Acredito que todo mundo detesta um software lento. Particularmente eu odeio, fico impaciente e dependendo da situação acabo desinstalando ou deixo de lado.

Esse princípio reflete justamente esse aspecto. O software deve ser capaz de responder em tempo hábil, sem deixar o usuário esperando.

Outros pontos importantes, como por exemplo: a utilização de recursos e sua capacidade.

Compatibilidade

Image by macrovector on Freepik

Na minha opinião todo software deveria ser compatível, mas sei que isso não é uma realidade. Principalmente em consoles de video-games, onde existe uma briga de mercado gigante nesse aspecto.

Uma das empresas que mais me irritava nesse sentido era a Microsoft. Bastava lançar uma nova versão do Excel, por exemplo, e a versão antiga já não era compatível com a nova.

Penso que, era uma estratégia de venda para atualizar os softwares, entretanto, nem sempre era viável realizá-la.

A interoperabilidade é a capacidade de executar o software independente da estrutura. Essa caractéristica é muito importante, pois, permite alçancar um número maior de pessoas.

Usabilidade

Usabilidade é a habilidade dos usuários aprenderem de forma simples com o minimo esforço.

Alguns itens necessitam de serem cumpridos para terem uma boa usabilidade.

Como por exemplo:

  • Reconhecimento de adequação;
  • Aprendizagem;
  • Operabilidade;
  • Proteção contra erros do usuário;
  • Estética da interface do usuário;
  • Acessibilidade.

Todas essas subcaracterísticas são importantes, entretanto, quero destacar a acessibilidade.

A acessibilidade é extremamente relevante para a usabilidade. Não temos um software usável sem acessibilidade, ou vice-versa.

Contudo, vale sempre lembrar:

Entregar um software com boa usabilidade e não pensar em acessibilidade é um grande erro.

Confiabilidade

Mão de uma pessoa avaliando o software com nota máxima, devido a sua confiabilidade
Image by DilokaStudio on Freepik

Confiabilidade diz a respeito do sucesso de seu software. Ninguém gosta de utilizar algo que não seja confiável.

Ainda mais, com os escandâlos de vazamento de dados recentes, se previnir e usar ferramentas adequadas é essencial.

Comecei a abandonar algumas redes sociais e outros serviços por causa desse princípio.

Quando falamos de confiabilidade, alguns itens são importantes de citar, como por exemplo:

  • Maturidade: mede a frequencia de defeitos apresentados;
  • Disponibilidade: mede o quanto o software encontra-se disponível para os usuários;
  • Tolerância a falhas: como o software reage em situação de falhas;
  • Recuperabilidade: capacidade de recuperar de um incidenten.

Segurança

Além da confiabilidade a segurança, no meu ponto de vista, é um dos pontos mais importantes. Afinal, ninguém quer utilizar algo inseguro, não é mesmo?

Sempre quando falamos de segurança, esse conceito vem acompanhado de outros poucos conhecidos, como:

  • Confidencialidade: somente sistemas/pessoas autorizadas acessam um recurso;
  • Integridade: não permite sistemas/pessoas não autorizadas acessam um recurso;
  • Rastreabilidade de uso: rastreia ações do usuário, a fim de, comprovar suas ações;
  • Autenticidade: identifica se você é quem alega ser.

Capacidade de Manutenção

Computador sendo atualizado na sua tela existe a frase: Software Update
Imagem de rawpixel.com no Freepik

Para qualquer sistema a manutenção é muito importante. Quem nunca sofreu com as atualizações do Windows, que atire a primeira pedra. 😂

Mesmo que isso seja incomôdo, é necessário para prevenir ataques maliciosos e permitir que o sistema mantenha-se “sadio”.

Quando a manutenção é realizada, podemos avaliar os seguintes pontos:

  • Modularidade;
  • Reutilização;
  • Analisabilidade;
  • Modificabilidade;
  • Testabilidade.

Portabilidade

Image by pch.vector on Freepik

Sempre quando ouço a palavra portabilidade, penso logo, em operadoras de telefonia.

Antigamente, quando precisavamos trocar de uma operadora para outra, era bem complicado. Não tinhamos a capacidade de se adaptar ao novo contexto.

Muitas vezes, essa migração era instável e a capacidade de substituição era praticamente impossível.

Mas tudo teve um final feliz, com o avanço da tecnologia hoje é possível realizar isso de forma quase instantânea.

Com a portabilidade, hoje temos a autonomia de poder decidir quando trocar para um serviço que nos atenda melhor.

  • Adaptabilidade;
  • Instalabilidade;
  • Capacidade de substituição.

Esses são os princípios que norteiam o trabalho e tipos de testes de um QA. Além disso, existem 21 qualidades que todo QA deve ter.

Bônus: indicação de livros

Para concluir gostaria de deixar algumas indicações de leitura. As três indicações são valiosas bases para o conhecimento em testes de software. Entretanto, não são as únicas gosto bastante delas.

Conclusão

Concluíndo, os princípios de qualidade de software levaram você ter uma visão muito mais ampla sobre qualidade.

E conseguirá te fato medir a qualidade baseada em itens sólidos.

5 motivos para não automatizar testes em linguagem diferente do time

Automatizar cenários de teste é uma parte integrante de nossa atuação como profissionais focados em qualidade. Em um contexto ágil é de extrema importância, pois, contribui para promover e permear a qualidade no projeto.

A ideia por trás dos testes automatizados e simples: otimizar nosso tempo. Naturalmente existe uma tendência em aumentar a cobertura de testes automatizados, para focarmos em cenários mais complexos e de alto risco.

Em contrapartida, existe uma grande decisão ha ser tomada: qual ferramenta escolher, o que automatizar e como o time pode colaborar.

Neste artigo irei elencar alguns pontos para uma escolha consciente de ferramentas para automatizar nossos testes.

Pontes ao invés de muros

Deixa eu contar uma história, quando estava fazendo o TSPI do Júlio de Lima, chegamos a uma etapa do treinamento onde ele aborda sobre a prática de testes automatizados.

Empolgado com a aula, decidi aplicar no time que atuo. Nós decidimos que nossa stack de desenvolvimento seria duas linguagens: PHP e Javascript e decidi automatizar em Ruby, pois estava estudando e gostando da linguagem.

Lembro de ter comentado com o Júlio, no princípio ficou contente pela minha conquista, mas me colocou uma pulga atrás da orelha com a seguinte pergunta:

“Pulis, porque não automatizar na linguagem que o time usa?”

Começamos a conversar e me explicou detalhadamente que tudo depende do contexto. Colocar uma tecnologia desconhecida ao time iria criar mais uma barreira do que promover pontes.

O que eu fiz? Abandonei o Ruby e iniciei alguns experimentos com algumas bibliotecas nas linguagens do time.

Stack de desenvolvimento

Uma das coisas mais importantes que devemos considerar e a stack que o time definiu, tratando-se em um contexto ágil a responsabilidade de testar a aplicação não é somente do QA, mas compartilhada com time.

Isto promove o empoderamento dos integrantes do time e aumenta a consciência sobre o aspecto da qualidade também, aumento o sentimento de “dono do produto”.

As autoras Janet Gregory e Lisa Crispin, dizem muito a respeito dessa responsabilidade do time em testar também. Essa citação exemplifica o conceito:

O coração do teste ágil envolve toda a equipe no teste e construção de qualidade em nosso produto.

Para conseguirmos alcançar esse objetivo devemos ter uma consciência de qualidade, onde todos contribuem e são donos produto.

Devemos atuar colaborativamente, ou seja, a linguagem de programação do projeto deve ser a mesma, pois assim, todos possam “conversar a mesma língua”.

Desenvolver testes automatizados em uma linguagem sem nenhum contexto, irá segregar os profissionais de qualidade e afastar eles do código da aplicação e gerar outros desdobramentos que iremos pontuar a seguir.

Separei cinco pontos nocivos, sobre automatizar cenários de teste em uma linguagem diferente ao que o time utiliza.

1 – Curva de aprendizado

Ao usarmos uma linguagem diferente, a curva de aprendizado pode ser muito maior para os profisisonais de qualidade. Cito alguns pontos que podem ser nocivos:

  • tempo de aprendizagem;
  • aprendizado do ecossistema em torno da linguagem;
  • falta de alguém como referencial no time;
  • falta de suporte;
  • segregação implícita dos QAs com o resto do time.

2 – Baixa produtividade

Outro ponto importantíssimo é a produtividade. Em um mundo onde tudo tem urgência, ter foco e produtividade é essencial para o sucesso dos produtos e/ou serviços que desenvolvemos.

Com uma nova linguagem em mãos a produtividade pode cair consideravelmente, pois, o profissional não teria domínio e nem expertise na mesma.

Outro ponto que deveríamos levar em consideração é que a etapa de testes não deveria ser um gargalho para finalizar uma versão do produto ou ser algo impeditivo.

Até o profissão de qualidade compreender a linguagem e pegar a “maldade” demanda tempo e em muitos cenários nosso tempo é bem escasso.

3 – Segregação dos testes

Ao usar essa abordagem a responsabilidade do teste fica inteiramente na mão do QA, reforçando uma má prática no contexto ágil. Essa má prática pode ocasionar em:

  • desconforto do time em relação a segregação;
  • antipatia entre devs e analistas de qualidade;
  • falta de engajamento do time;
  • separação por silos, indo contra os princípios da agilidade;
  • falta de colaboração do time nos testes;
  • base de conhecimento somente nas mãos de pessoas específicas.

4 – Maior esforço para manutenção

O esforço em manutenção iria aumentar consideravelmente. Numa squad com cinco desenvolvedores e um QA, todos poderiam dar manutenção e prover novas melhorias.

No cenário desenhado anteriorment a carga de manutenção dos scripts automatizados ficaria somente nas mãos do QA, podendo assim, trazer uma quantidade de trabalho muito grande e gerando gargalhos em suas atividades.

Outro ponto importante é a sensação de não ter tempo para melhorar os scripts, engana-se quem pensa que scripts de testes uma vez desenvolvidos nunca mais são tocados.

Assim como, um código de uma aplicação scripts automatizados são passíveis de refatoração e manutenção eles são parte integrante do código da aplicação.

5 – Pipelines isoladas

A etapa de integração e entrega contínua é uma das mais importantes para um time ágil. Geralmente são construídas pipelines para realizar essas atividades.

Quando automatizamos em uma linguagem que não é falada pelo o time, criamos uma série de possíveis problemas, tais como:

  • maior custo de infraestrutura;
  • arquitetura da pipeline pode ficar bastante complexa;
  • construção de uma nova estrutura de pipeline;
  • time desconhece a linguagem não podendo contribuir;
  • aumento de trabalho para os DevOps.

Considerações finais

Automatizar testes é uma etapa importante de um processo de qualidade, mas deve ser alinhado com o time e sempre procurar essa responsabilidade entre os membros.

Ao segregar os testes essa responsabilidade cai nas mãos de uma única pessoa, trazendo diversos problemas como os que foram citados anteriormente.

Devemos sempre tentar optar por linguagens falada por todos, pois, linguagens de programação também são uma forma de comunicação.

Acredito que a regra de ouro nesse assunto seria tudo depende do seu contexto.

Agora é com você:

Quais são os seus pensamentos sobre o assunto? Gostaria muito de saber sua opinião.

Referências

6 maiores erros de acessibilidade digital

Neste post, mergulharemos nos 6 maiores erros de acessibilidade digital que empresas e desenvolvedores cometem com frequência, sem sequer perceber. Através da conscientização e compreensão desses erros, podemos dar os primeiros passos rumo a uma web mais inclusiva, onde pessoas com deficiência ou necessidades específicas possam navegar e interagir de forma independente.

Ao explorar esses erros, examinaremos os desafios que eles representam e destacaremos soluções práticas para corrigi-los. Afinal, o objetivo final é capacitar todos os usuários a aproveitarem plenamente os benefícios do mundo digital, independentemente de suas limitações.

Então, vamos começar essa jornada para tornar a web mais inclusiva para todos.

Sumário

1. Texto com baixo contraste

hd wallpaper, colorful, painting-2468874.jpg

Diariamente sofro na pele com isso, para quem não me acompanha ou está chegando por agora no blog, eu possuo ceratocone, uma doença na córnea que aumenta o grau exponencialmente. Algumas combinações de cores e informações ficam bastante confusas para mim.

Para amenizar esse problema eu adotei algumas práticas:

  • dar zoom em textos com baixo contraste;
  • mudo as cores dos textos para uma com maior contraste via Inspetor de elementos do navegador;
  • usar tema escuro.

Guia sobre contraste

Para aplicarmos as correções de maneira efetiva, devemos consultar as recomendações da WCAG. Abaixo as regras que se aplicam ao contraste:

Ferramentas para verificação

Atualmente utilizo o Accessible Colors, é uma boa alternativa para realizar esse tipo de teste.

A grande vantagem dele é seu feedback claro e objetivo, como por exemplo:

Resultado de uma avalição das cores: #ccc para textos do tamanho de fonte 16px e background do site #fff.

Após realizar o teste, podemos abrir os bugs. Uma curiosidade a maioria desses erros conseguimos resolver com poucas linhas de CSS.

No Awesome A11y você pode encontrar diversas ferramentas para validar contraste.

2. Imagens sem texto alternativo

Campo de descricao alternativa do WordPress

Segundo uma pesquisa do Web AIM, em uma amostragem de 1 milhão de páginas iniciais dos sites mais populares do mundo. Foram encontradas 38,426,701 imagens, ou 38.4% por página inicial em média.

Cerca de 31.3% de todas as páginas iniciais (12 por página em média) não possuíam texto alternativo (sem contar o alt="") que é uma forma válida. Mais da metade das imagens sem texto alternativo.

Fundo degradê roxo com um homem negro vestindo um terno cinza e blusa salmão. Ele está colocando as mãos na cabeça se sentido surpreso. Escrito em branco ao centro "Oh, lord, Jesus. What!?"

Existe uma discussão ao redor do atributo <strong>alt</strong>, Reinaldo Ferraz escreveu um artigo, onde demonstra os benefícios do atributo. Além de contribuir para a acessibilidade ele também ajuda no SEO das páginas.

De forma prática a correção desse erro é uma das mais banais, basta preencher o atributo alt com a descrição correta da imagem.

Ex:

<img src="/imagens/duck.png" alt="Pato de borracha amarelo olhando fixamente" />

Traduzi um guia super completo de como escrever um texto alternativo.

3. Links vazios

Esse erro é bem comum, entretanto não deveria ser tão encontrado nas páginas web.

Frequentemente encontramos em ícones ou botões de ação sem nenhuma ação, não é mesmo? Para entendermos isso, vamos consultar a definição do propósito do elemento <strong><a></strong>:

O elemento <strong><em><a></em></strong> em HTML (ou elemento âncora), com o atributo href cria-se um hiperligação nas páginas web, arquivos, endereços de e-mails, ligações na mesma página ou endereços na URL. O conteúdo dentro de cada <a> precisa indicar o destino do link.

Usar sem definir o conteúdo textual descumpre a especificação do HTML e a recomendação 2.4.4 – Finalidade do link (em contexto) [A] – WCAG 2.0 (em inglês).

Exemplo prático

Temos um link que inclui um ícone de rede social, mas não possuí um texto para descrever a ação. Dessa forma, os leitores de tela irão ler: “Link”.

<a href="https://twitter.com/obrunopulis">
  <i class="fa fa-twitter"></i>
</a>

Qualquer validador de acessibilidade vai encontrar esse problema, pois o elemento <strong><em><a></em></strong> encontra-se sem nenhum conteúdo textual, descumprindo seu propósito.

Dessa forma, os leitores de tela não conseguem identificar o link em questão.

Uma possível solução, seria adicionar o texto visualmente ao lado dos ícones, pois eles nem sempre são tão claros para os usuários quanto pensamos.

No caso dos ícones sociais, acho que é bastante claro o que são e o padrão é usado com bastante frequência. Nesse caso, você pode adicionar conteúdo visualmente oculto.

Corrigindo

Queremos adicionar texto para ser lido por um leitor de tela e ter certeza de que o conteúdo adicionado via CSS não seja lido.

<a href="https://twitter.com/obrunopulis">
  <span class="fa fa-twitter" aria-hidden="true"></span>
  <span class="sr-only">Perfil de Bruno Pulis no twitter</span>
</a>

Com essa abordagem os validadores de acessibilidade não encontrarão nenhum problema, pois o link contém um texto oculto que informa o seu destino.

Observação importante

Nem sempre ter um conteúdo oculto é uma boa solução. É preciso haver uma compreensão visual de qual é o conteúdo e os links para usuários videntes, bem como para usuários de leitores de tela.

4. Labels de formulários ausentes

Dos 4,2 milhões de formulário identificados na pesquisa do WebAIM, 55% não estavam usando o elemento <strong><label></strong>, <strong><em>aria-label</em></strong> ou <strong><em>aria-labelledby</em></strong>.

Páginas com pelo menos um controle de formulário sem rótulo tiveram em média mais 43 erros detectáveis do que páginas sem nenhum erro de rótulo.

Com efeito, é preocupante o descuido pela escrita do HTML, a grande maioria dos problemas são originados de uma escrita descuidada.

A saber, formulários são um dos componentes mais importantes para web, podemos dizer que depois do elemento <a> esse componente é o mais importante.

Com essas violações também ferem a recomendação 3.3.2 – Rótulos e instruções [A] – WCAG 2.0 – (em inglês).

Uma das coisas que percebo muito com formulários é o uso inadequado do placeholder, a maioria dos designers e desenvolvedores utilizam o atributo placeholder com a função de um <label>.

Exemplo incorreto

<form>
  <input type="email" placeholder="insira o seu melhor e-mail" />
</form>

O atributo placeholder é uma string que fornece uma breve dica ao usuário quanto ao tipo de informação esperado no campo. Deve ser uma palavra ou frase curta que demonstre o tipo de dados esperado, ao invés de uma mensagem explicativa.

Nota: O atributo placeholder não é semanticamente útil como outras maneiras de explicar seu formulário e pode causar problemas técnicos inesperados com seu conteúdo.

Vale lembrar, para rotular um formulário o elemento correto para ser usado é o label

Exemplo correto

<form>
  <label for="email">E-mail</label>
  <input type="email" id="email" placeholder="insira o seu melhor e-mail" />
</form>

5. Botões vazios

Semelhantemente com os links vazios, os botões vazios querem dizer que o elemento não possuí uma informação textual definida. Quando navegamos no botão, um texto descritivo deve ser apresentado ao leitor de tela para indicar qual tipo de função que o botão possuí.

Além disso, essa violação fere duas recomendações da WCAG:

O exemplo a seguir, demonstra o problema de um botão sem informação textual.

<button type="submit">
  <svg id="search" viewBox="0 0 16 16.9">
    <path d="M16, 15.7L11.3,11C12.4,9.8,13, 8.2,13,6.5C13"></path>
  </svg>
</button>

Qualquer validador de acessibilidade notificará a inconsistência da violação das guidelines citadas acima, Para eles não existe um conteúdo textual definido, uma abordagem para correção seria inserir o elemento <title> no SVG, pois ele garante que SVGs sejam acessíveis. Scott O’Hara escreveu um artigo imagens acessíveis e SVGS (em inglês).

<button type="submit">
  <svg
    id="search"
    role="img"
    aria-describedby="searchIcon"
    viewBox="0 0 16 16.9"
  >
    <title id="searchIcon">Search</title>
    <path d="M16, 15.7L11.3,11C12.4,9.8,13, 8.2,13,6.5C13"></path>
  </svg>
</button>

6. HTML sem idioma definido

A linguagem no documento HTML na maioria das vezes é ignorada ou esquecida. Já fiz diversas avaliações em sites com conteúdos totalmente em português e a definição do idioma em inglês.

Usuários de leitores de tela, utilizam o sintetizador de voz embutido nos softwares para ler o conteúdo. Dessa forma, uma das primeiras coisas que o sintetizador de voz faz é identificar o idioma atribuído a página.

Além disso, é configurado a entonação, ritmo e sotaque da língua definida no documento. Em contrapartida, se não encontrar um idioma ele define o inglês como padrão.

Além dessa confusão, ele descumpre a recomendação 3.1.1 – Idioma da página [A]- WCAG 2.0 (em inglês)

Corrigindo

<!DOCTYPE html>
<html lang="pt-br">
  ...
</html>

Você também pode, explorar mais sobre o atributo lang em outro artigo que escrevi.

Conclusão

Percorremos todos os bugs, entretanto fica nítido que precisamos de conscientização para resolver esses problemas.

Além disso, os desenvolvedores devem aprender de maneira correta os padrões web e HTML semântico. Dessa forma, grande parte desses problemas vão desaparecer.

Em conclusão, reciclar nosso conhecimento é primordial

E para reflexão gostaria de deixar uma frase do Tim Berners-Lee:

O poder da Web está na sua universalidade. O acesso por todas as pessoas, não obstante a sua incapacidade, é um aspecto essencial.

Referências

Minas Test Conference 20

Introdução

Sábado dia 22 de agosto, aconteceu o Minas Test Conference um evento focado na área de qualidade de software.

Eu conhecia o evento há um tempo, porém, nunca tinha participado de nenhuma edição. Foi o segundo evento que participei, desde que, mudei da área de desenvolvimento para qualidade.

Inicialmente ele seria presencial, mas devido à pandemia global os organizadores decidiram fazer o MTC em casa. Uma aposta que deu super certo, nesse artigo irei analisar alguns pontos como:

  • plataforma escolhida;
  • análise de cada palestra;
  • considerações finais.

Plataforma escolhida

A organização escolheu o Hopin para transmitir o evento. Minha experiência com a plataforma foi super tranquila sem muitas complicações.

A impressão que tive foi de estar num evento presencial, se o intuito da Hopin foi promover esse tipo de experiência as pessoas conseguiram com maestria.

Porém, nem tudo são flores eu particularmente estava com grande expectativa para ver uma palestra em específico que não pode ser transmitida devido à falta de acessibilidade, também não encontrei um recurso para ativar legendas na transmissão.

Mesmo com esse contratempo, a organização se preocupou tornar o evento mais inclusivo, contratando assim, dois interpretes de libras que fizeram um trabalho com grande maestria, gostaria de parabenizá-los pelo trabalho.

Análise das palestras

Boas práticas para automação de testes

Essa palestra infelizmente eu não acompanhei desde o início, porém, do momento que comecei a acompanhar até o final me agradou bastante. Leonardo e Ramses com maestria tocaram em pontos importantíssimos sobre fundamentos da engenharia de software e como podemos aplicá-los no nosso cotidiano.

https://youtu.be/Ab5tEM3YG1c

O mindset de consultor – O que as empresas buscam nos profissionais de qualidade de software?

Marcelo, veio com uma abordagem mais holística sobre a carreia de consultor de qualidade, conseguiu explorar diversos pontos do nosso cotidiano que não são tocados com frequencia, tais como: mudança de uma mentalidade, compreensão dos fundamentos, certificações.

Abriu meus olhos para enxergar como alguém que contribui além do código ou de técnicas. Ficou claro, que podemos contribuir com a gestão de uma forma mais assertiva. A lição que tirei dessa palestra foi: saia fora da caixa.

https://youtu.be/UK2UDdcEhvM

Test Driven Development: uma ferramenta para controlar a ansiedade

Quando eu vi o título dessa palestra fiquei curios imaginando como o Estevão iria combinar TDD com ansiedade e para minha surpresa conseguiu. Com muita tranquilidade explicou o conceito teórico da metodologia TDD e sua aplicabilidade.

Mostrou as duas escolas sobre a metodologia e deixou ainda duas referências de livros interessantes:

Além disso, fez um hands-on em como aplicar o TDD em uma funcionalidade. Deixou bem claro em como a metodologia pode contribuir para termos maior controle e previsibilidade de funcionalidades que porventura iremos desenvolver.

https://youtu.be/F-smhcndyig

A importância da automação e como fazer isso utilizando o Testcafe

Taís de forma bem direta e prática mostrou uma ferramenta de automação que ainda desconhecia o TestCafe, me lembrou do meu amigo Cypress.

Ainda fez um hands-on e funcionou tudo de forma perfeita.

Queria dar meus parabéns para a organização e a todos que apoiaram a Tais num momento de nervosismo, o espirito de comunidade e empatia falou muito mais alto e isso e louvável, poucos eventos têm essa sutileza com os palestrantes.

https://youtu.be/R4I1L3SkDwg

Reduzindo o escopo da analise de resultados de testes de carga usando Machine Learning

Júlio, com seu vasto conhecimento e maestria dignos de um JEDI, exemplificou conceitos como machine learning, testes de carga com uma didática impecável, quem o acompanha sabe que estou falando.

A palestra se assemelhava a uma aula de faculdade daquelas que todos gostam. Além de explorar esses pontos, também deixou insights sobre novas possibilidades em categorizar inconsistências com aprendizado de máquina.

Um mundo de possibilidades foi aberto e diversas pessoas surtaram com novas possibilidades. E como sempre o Júlio, nos deixa reflexivos sobre estudar os fundamentos, aliar o fundamento teórico a prática.

https://youtu.be/xPI9RWIrSz4

Automação de testes utilizando braço robô

Saímos com o cérebro fritando da apresentação do Júlio, para vermos algo surreal: uma automação em um braço robô!

Luíz Lohn, trouxe uma abordagem de testes que nunca pensei que poderia ser feita. A ideia era demonstrar como essa abordagem poderia contribuir para automação de testes para o cenário que ele vivencia.

De forma clara e exemplificando os códigos do arduíno e Ruby, desmistificou a magia e vimos que como foi viável e não ser tão complicado essa automação.

Abriu a minha mente para novas abordagens de testes automatizados para Internet das coisas. Mais uma palestra que veio surpreendeu todo mundo.

Shit Happens e algoritmos mudam

Marina apesar de não ser uma pessoa desenvolvedora explicou diversos pontos relacionados a desenvolvimento de software. Desde a evolução das redes sociais até como os algoritmos e APIs influenciam nosso cotidiano.

Comentou também sobre o uso indevido de informações dos usuários nas redes sociais, como no caso da Cambriga Analytica’s, pontuou também, como podemos usar de modo seguro as redes sociais e como as empresas estão se preparando para entrar em conformidade com a Lei Geral de Proteção de Dados (LGPD).

Foi uma palestra diferente, com um olhar de um outro ângulo. O ensinamento que permeiou foi que podemos absorver muito com o marketing e o monitoramento de redes sociais para atuarmos de uma forma melhor.

https://youtu.be/z_sPUMSJv6E

Tabuleiro acessível: o diferencial da inclusão a partir de jogos analógicos

Essa palestra uniu duas coisas que gosto: acessibilidade e rpg. Paola e Rafael, mostraram como jogos analógicos podem promover a inclusão das pessoas com deficiência em algo que não tomamos como um direito: a diversao.

Demonstraram diversos jogos que podem ser inclusivos e como as pessoas interagem com eles. Gostei bastante do jogo de RPG.

A palestra traz uma mensagem muito importante, quais são nossos esforços para incluir pessoas com deficiência na diversão?

Será que as empresas pensam e veem eles como possíveis consumidores de jogos de entretenimento sejam eles analógicos ou digitais?

Sai dela pensativo em como podemos contribuir para o avanço de um projeto tão bonito como esse.

https://youtu.be/0s_ZrV5cV6g

AWS for Testers – Como se beneficiar dos serviços da AWS para analisar possíveis bugs

Isabel, veio com uma abordagem interessante: como nos que testamos aplicações podemos contribuir em arquiteturas AWS?

Demonstrou total conhecimento e clareza das informações explicando passo a passo do modelo da arquitetura proposta. Confesso que muita coisa desconhecia, apesar de trabalhar num aplicação que possui os recursos na AWS.

Trouxe exemplos onde o QA possuía acesso restrito em algumas partes da arquitetura e soluções de como garantir a qualidade nesse sentido.

Além da AWS, também demonstrou como realizar requisições de API usando o Postman.

Sai da apresentação, pensando que segunda-feira quero descobrir qual a arquitetura da AWS que usamos e como posso contribuir para a melhoria contínua do produto.

https://youtu.be/i_WHRK7I7Fs

From zero to hero implantando processos ágeis de qualidade

A apresentação do Alan foi cirúrgica e agregou muita informação ao meu contexto. Em um evento sobre qualidade esperava-se uma palestra como essa que focaria na qualidade do processo.

Pontou muito bem as diferenças entre os modelos cascata e ágil, o mais interessante foi o passo a passo que apresentou sobre a metodologia ágil.

Salientou que esse modelo pode ser adaptativo e variar de acordo com o contexto. O que ficou claro é que processos bem definidos contribuí para a empresa como um todo. E deixou uma frase que me marcou

Baixa produtividade é um problema de gestão.

https://youtu.be/INW8TkkC4pE

QA OPS: O QA colaborando em um time DevOps

A abordagem de Mayara foi super interessante, pois mostrou um caso de sucesso que ela vivenciou. Iniciou sua apresentação exemplificando os conceitos de Dev Ops e QA Ops e como pode contribuir para aumentar a qualidade em todo o ciclo do desenvolvimento.

O mais interessante para mim, foi a forma como foi abordado o tema. A explicação de cada etapa de uma pipeline e como ela conseguiu otimizar isso para o time.

Sanou diversas dúvidas que tinha sobre o assunto e segunda-feira também vou começar a vasculhar as pipelines para promover algumas melhorias.

https://youtu.be/PzlA9WfV24w

Considerações finais

Fiquei bastante satisfeito de modo geral, todo o conteúdo de alto nível e bem elaborado. A organização do evento e palestras curtas, porém, objetivas.

A curadoria de conteúdo, a divulgação tudo muito bem planejado, os sorteios com brindes bem interessantes como licenças do IntelliJ, Kindles e um computador.

Parabéns a todos os envolvidos que proporcionaram para nós um evento acolhedor, rico e bastante interativo. Aguarde 2021, pois com certeza o MTC vem pra arrebentar.

Vocabulário de um QA

Este artigo é uma tradução e adaptação livre do artigo “QA Testing Vocabulary” que pode ser acessado no blog. O autor foi notificado e houve permissão para realizar a tradução.

Se você trabalha em um time onde exista um QA, com certeza já se deparou com ele dizendo vários jargões técnicos, não é mesmo?

Pensando nisso, foi criado esse mini dicionário para entendermos cada jargão e dar sua devida importância.

Quando o time aumenta a compreensão desse vocabulário, fica mais fácil de entender cada etapa e alinhar as expectativas de cada parte. Então vamos lá?

Essa lista deve ajudá-lo a ter uma compreensão básica do vocabulário que um QA usa no seu cotidiano.

Tipos de teste

  • Teste manual:  significa testar o aplicativo ou site manualmente. Por exemplo, abrir um navegador e navegar manualmente para diferentes seções de um site, procurando por problemas de experiência do usuário ou bugs. (Para mais informações, consulte O que é teste manual?;
  • Teste automatizado significa usar uma linguagem de programação (como Java) para escrever scripts que irão navegar em um site ou aplicativo. Esses scripts podem gerar relatórios para problemas como links quebrados, texto ausente, etc. (para mais informações sobre as diferenças entre manual e automatizado, consulte Teste manual vs. automatizado;
  • Teste de API significa verificar a qualidade/precisão de uma API. As APIs enviam solicitações e respostas de/para servidores remotos.
  • O teste de desempenho:  envolve verificar o tempo de resposta de um aplicativo ou site em cenários de uso típicos;
  • O teste de carga: é muito semelhante ao teste de desempenho, mas com ainda mais foco em encontrar o ponto exato em que um aplicativo ou site travaria, ou cairia.

Métodos de teste

  • O Teste de Aceitação do Usuário (UAT): significa fazer com que usuários reais testem o beta de seu aplicativo ou site e forneçam feedback;
  • Teste de acessibilidade  significa verificar se o aplicativo ou site é amigável para todas as pessoas. Por exemplo, verificar se os vídeos possuem legendas para pessoas com deficiência auditiva ou se as imagens têm descrições para pessoas com deficiência visual;
  • Teste de unidade (unitários): significa criar scripts automatizados para testar partes individuais do aplicativo ou código do site. Embora seja uma forma de teste, o teste de unidade geralmente é feito por desenvolvedores. O objetivo dos testes de unidade é garantir que cada área do código esteja funcionando corretamente;
  • Teste Ad-hoc: significa testar um aplicativo ou site sem seguir nenhum caso de teste específico. Em vez disso, o QA vasculhará o aplicativo à vontade, identificando quaisquer problemas que detectar durante o processo;
  • Teste exploratório: significa testar com a experiência e conhecimento existentes do aplicativo móvel ou site. Esse insight dá ao QA a capacidade de ter um envolvimento focado sem seguir casos de teste formais.

Testes básicos

Smoke test: é uma das formas mais rápidas/básicas de testar. Envolve fazer um teste simples dos principais recursos, geralmente logo antes do lançamento. O objetivo é verificar se alguma coisa “pega fogo”, por assim dizer.

Ele é usado como um backup para ser extremamente cauteloso quando não há tempo suficiente para o nível ideal de teste.

O smoke test é uma das frases mais comuns no vocabulário de um QA. Saiba mais em nosso artigo: O que é teste de fumaça?

Testes detalhados

O teste de regressão é muito mais completo do que o smoke test. Uma regressão envolve a verificação de todos os aspectos possíveis das features pré-existentes do aplicativo após a implantação de uma nova feature ou correção de bug. Isso é para garantir que as atualizações de código não prejudiquem nenhuma outra área do software;

Cross browser/cross-device  significa que o teste está sendo feito, ou um bug está ocorrendo, em vários navegadores de internet (como Safari, Chrome, Firefox, Internet Explorer, etc) ou vários dispositivos (Androids, iPhones, tablets, desktops, etc).

O teste entre navegadores/dispositivos é importante, pois muitos bugs estarão em um navegador ou dispositivo, mas não em outro.

Planejamento

Casos de teste são requisitos com etapas para testar se uma determinada parte do aplicativo ou site está funcionando corretamente. Se isso soar vago ou confuso, não se preocupe – temos uma explicação completa (com exemplos!) Em nossa postagem O que são casos de teste de controle de qualidade?

Test Suite é um conjunto de casos de teste. Por exemplo, você pode ter casos de teste para a seção de registro, a página inicial, a reprodução de vídeo, etc. Um conjunto de testes é uma planilha que consiste em todos esses diferentes casos de teste.

Sprint é um determinado período de tempo em um processo de QA Agile. Um sprint inclui um determinado número de tarefas que a equipe espera concluir no prazo (geralmente uma a duas semanas).

Antes do início de um Sprint, a equipe se reúne para o Planejamento do Sprint. Durante esta sessão, gerentes de produto, desenvolvedores e QA’s decidirão quais correções de bug ou features podem ser incluídos de forma realista no Sprint. Para saber mais sobre o processo de priorização, consulte Como priorizar correções de bugs.

Processo

Agile é um processo de desenvolvimento de software que envolve lançamentos regulares. Também envolve a atualização de requisitos em tempo real. Ao trabalhar com um processo Agile, é comum que novos lançamentos / atualizações sejam lançados a cada poucas semanas. Para saber mais, consulte nosso artigo sobre o Processo de controle de qualidade do Agile.

Os critérios de aceitação  são um conjunto de condições que devem ser atendidas para que um recurso seja considerado pronto para liberação. Com um processo ágil, as condições exatas podem mudar instantaneamente. Afinal, as equipes Agile giram em torno de novas informações ou ideias. No entanto, para considerar o recurso concluído, o conjunto final de critérios de aceitação deve ser atendido.

Por exemplo, aqui estão os critérios de aceitação para um recurso de mensagens:

  • Os usuários premium devem ser capazes de enviar mensagens a qualquer usuário de sua lista de amigos;
  • Todos os usuários devem ser capazes de bloquear qualquer usuário;
  • Os usuários administradores devem ser capazes de excluir uma mensagem;
  • Todos os usuários devem ter seções “caixa de entrada” e “enviado”.

Especificações (abreviação de especificações) são documentações ou recursos que descrevem como um aplicativo ou site deve se parecer ou se comportar. Por exemplo, um testador pode pedir “especificações de design” para se certificar de que as imagens e o layout correspondem às expectativas.

Os requisitos são essencialmente os mesmos que as “especificações” – documentação que detalha todas as informações sobre um recurso. Isso permite que os desenvolvedores criem e testem os detalhes corretos.

O Desenvolvimento Orientado a Comportamento usa uma linguagem chamada Gherkin para documentar os requisitos. Esses requisitos se tornam a base para testes automatizados. Gherkin usa um formato de “Dado, Então, Quando” que ajuda os membros da equipe menos técnica a entender o recurso.

Por exemplo:

Dado um usuário quiser postar em Facebook
Quando se digita a mensagem e clique em “publicar”
Então seus amigos podem ver o post

Usuários (ou “usuários finais”) são as pessoas que usam seu aplicativo ou site. Por exemplo, seus clientes ou clientes.

Lançamentos

MVP significa Mínimo Produto Viável. Para uma versão de um aplicativo ou site ser “MVP”, ela precisa atender aos critérios que a equipe decidiu ser o mínimo necessário para o lançamento.

Por exemplo, o proprietário de uma empresa pode decidir que uma seção de GPS de um aplicativo é um “recurso MVP”, o que significa que deve ser incluída mesmo para um lançamento suave. Eles também podem decidir que um recurso de vídeo é “Pós-MVP”, o que significa que pode ser adicionado após o lançamento inicial.

Candidato a lançamento (release)  é uma versão que está pronta para ser lançada ao público, assumindo que nenhum bug importante seja encontrado durante o teste.

Por exemplo, digamos que você queira que a próxima versão de seu aplicativo iOS apresente novo conteúdo. Você também deseja incluir uma correção de bug na seção “favoritos”. Os desenvolvedores enviarão um novo build ao QA como um “candidato a lançamento” assim que concluírem a atualização do conteúdo e a correção do bug. Se o QA encontrar algum bug significativo, o build não é mais um candidato a lançamento. Por outro lado, se o QA não encontrar nenhum bug notável, ele está pronto para ser lançado.

Código completo significa que os desenvolvedores concluíram a implementação da correção do bug ou do novo recurso. Isso significa que ele está pronto para o controle de qualidade ou estará em breve, quando o código for implantado. “Código completo” não significa que a nova versão não terá bugs. Na verdade, provavelmente vai! O trabalho do QA é verificar a validade e a qualidade assim que a primeira passagem do desenvolvedor for concluída.

Qualidade

Por exemplo, um site que leva dois minutos inteiros para carregar seria um bug bastante simples. Mas se uma empresa deseja que a cor de fundo seja azul e apareça como verde, isso também seria um bug (mesmo que não pareça ruim para os usuários).

Relatórios de bugs são formas formais de documentar problemas com um aplicativo ou site. Os relatórios de bugs são geralmente arquivados como ‘tickets’ em um sistema de gerenciamento de projeto como o Jira.

Para saber mais sobre relatórios de bugs e ver exemplos, confira nossa postagem sobre Melhores práticas para relatar bugs.

Showstopper é um bug absolutamente crítico. Se o controle de qualidade encontrar qualquer obstáculo em uma nova versão de um build de teste, ele não deve ser lançado ao público. Showstoppers são considerados prioridade para os desenvolvedores corrigirem – especialmente se forem encontrados em uma versão ao vivo.

Por exemplo, se um aplicativo móvel travar consistentemente sempre que os usuários se inscrevem, isso seria considerado um bug bloqueador.

Blocker é essencialmente a mesma coisa que showstopper (veja acima). Um bug bloqueador impede um novo lançamento.

Erros de casos extremos acontecem apenas em raras situações. Isso pode significar apenas em um sistema operacional ou dispositivo antigo, ou ocorrendo apenas 1 em 200 vezes. A priorização para casos extremos geralmente é baixa. Em muitos casos, os casos extremos ficarão permanentemente no backlog.

Por exemplo, digamos que 99,9% de seus usuários estejam no iOS versão 10 e superior. Um caso extremo pode ser um bug de formatação no iOS 9, que afetaria apenas 0,01% dos usuários.

Defeitos são problemas em um aplicativo ou site que não atendem aos critérios de aceitação (veja acima). Por exemplo, talvez um fundo tenha o tom errado de azul. Isso não pareceria necessariamente um “bug” para usuários reais. Mas porque não atende aos requisitos da empresa para o projeto, seria um “defeito”.

Hot Fix é uma correção de bug crítica que precisa ser lançada antes da próxima data de lançamento agendada.

Experiência do usuário se refere à qualidade da experiência e das interações que um usuário tem com um aplicativo ou site. Um aplicativo pode ter uma experiência ruim para o usuário sem ser explicitamente “bugado”.

Por exemplo, digamos que você tenha uma seção de registro em um aplicativo iOS. Talvez cada campo funcione corretamente e os usuários consigam salvar e registrar-se com sucesso. Mas se um usuário tiver que ir para uma nova tela sempre que terminar um campo (em vez de ter vários campos em uma página), isso seria uma experiência ruim para o usuário.

“Experiência do usuário” é um tópico importante no vocabulário de teste de controle de qualidade de qualquer pessoa. Para saber mais, consulte O que é experiência do usuário?

Feature  é um serviço ou funcionalidade em um aplicativo ou site. Por exemplo, poder ‘curtir’ tweets é um recurso do Twitter.

Você chegou ao final do nosso vocabulário de QA – parabéns!

Embora essas definições não sejam exaustivas, agora você conhece os termos mais comuns de um profissional de qualidade.