Transformação Digital

Testes

Confiamos em um produto, serviço ou até uma marca depois que eles são minimamente testados.

Em quem ou no que você confia? Pense na sua relação com pessoas ou produtos e nos diga: você confia em alguém ou algo com o qual você não vivenciou experiências? Falando mais especificamente de produtos: você confia antes de realizar testes básicos? Colocando de outra forma: você compraria um carro se, ao virar a chave ou apertar o botão, ele não ligasse?

Por mais óbvias que soem as perguntas acima, elas nos levam a uma conclusão evidente: confiamos em um produto, serviço ou até uma marca depois que eles são minimamente testados.

De forma geral a confiança está diretamente ligada ao atendimento das nossas expectativas. Já discutimos aqui no blog como a automação é valiosa. Graças a ela fazemos funcionar, no futuro, uma ação que só tínhamos em imaginação. Se imaginamos o mesmo sobre um produto ou serviço, se supomos que ele vai funcionar como esperamos, temos nossas expectativas atendidas. Consequentemente, vamos acreditar que ele tem qualidade.

É exatamente por isso que os testes são a principal ferramenta para a Engenharia de Qualidade na indústria de software. Graças a eles confiamos em um sistema e, assim, nos sentimos seguros em usá-lo.

Em linhas gerais, podemos dividir os testes em dois grandes grupos. No primeiro, “quem” realiza os testes: o humano ou um robô. Testes manuais são executados por pessoas, normalmente um analista de QA – sigla do termo em inglês quality assurance – enquanto robôs fazem os testes automatizados.

No segundo, “o quê” é testado: as partes e a relação entre elas. Nos testes unitários, verificamos o funcionamento de pedaços do sistema, muitas vezes partes bem pequenas, enquanto nos de integração combinamos vários blocos da aplicação e as testamos em grupo.

Para facilitar a sua navegação neste universo de conhecimento, reunimos nesta página os conteúdos produzidos pela Inmetrics sobre o tema. A partir daqui você irá acessar a história dos testes, conhecer melhor os manuais, os de experiência, os unitários e uma metodologia bastante conhecida para realizá-los, a de desenvolvimento orientado a testes.

História dos testes

Pode ser difícil de acreditar mas já houve um tempo no qual as pessoas não testavam o funcionamento de um software, elas esperavam ele falhar.

Esse cenário começou a mudar a partir da década de 1950, quando testes e depuração passaram a ser encarados como atividades distintas. E em 1979, com a publicação da obra “A arte de testes em software”, o panorama da atividade mudou, ganhando a relevância que tem nos dias de hoje.

O livro propõe uma nova e holística forma de checar se o programa está funcionando e atendendo os requisitos. Ao invés de testar e confirmar o que funcionava, o objetivo da atividade passou a ser executar um sistema com a intenção de encontrar erros, verificando todas as hipóteses que poderiam levar a um erro.

Conheça um pouco mais sobre a história dos testes na indústria de software clicando aqui!

Testes manuais

Testes manuais são aqueles executados por pessoas, normalmente um analista de QA ou analista de qualidade. Dado que são realizados por indivíduos, em muitos deles manuais será necessário ativar habilidades e capacidades que são eminentemente humanas: as sensoriais.

A maior parte das interações que estabelecemos com aplicações estão restritas às telas e para realizá-las usamos a visão e o tato, seja para comandar mouse, teclado ou telas sensíveis. Entretanto, há aplicações que emitem sinais sonoros, vibram… Muito da nossa sensorialidade é acionada em testes manuais.

Em tempos de inteligência artificial, os analistas de QA têm se dedicado a rodar aqueles testes manuais nos quais a cognição ou criatividade humana agrega e acelera a atividade: os exploratórios ou centrados na experiência do usuário.

Clique aqui, entenda um pouco mais sobre tanto sobre a história dos testes manuais quanto sobre o seu papel na era dos agentes de inteligência artificial!

Testes unitários

Só há o todo porque existem partes que se relacionam. Quando aplicamos essa reflexão nas aplicações, as vemos como um conjunto de telas nas quais há botões que guardam funções, que ativam outras funções… Podemos decompor toda a aplicação em partes muito pequenas e para inspecioná-las, procedemos com testes unitários.

A principal característica que diferencia os testes integrados dos unitários é o seu nível de granularidade. Estes são realizados em funcionalidades isoladas, sem a sua conexão com outras partes do sistemas, serviços ou agentes externos.

Naturalmente, testes unitários são mais rapidamente executados e mais fácil de serem realizados. Contudo, apesar da praticidade em executá-los, sua importância é enorme: é por meio deles que detectamos falhas precocemente e, consequentemente, criamos uma “rede de segurança”, evitando que erros se propaguem para as camadas superiores das aplicações.

Entenda com mais detalhes como são definidos os testes unitários e como eles aumentam a eficácia em projetos de desenvolvimento!

Testes de experiência

Na indústria de software, perseguimos um atributo muito valioso: “prazeroso de usar”. Para alcançá-lo realizamos testes de experiência para verificar qual “sentimento” o sistema transmite quando o utilizamos.

Conforme falamos neste texto, podemos dividir testes em duas grandes dimensões: os atores que os realizam e “o que” é testado. Contudo, para além dessas dimensões, podemos categorizar testes sob diferentes perspectivas. Podemos, por exemplo, reunir os de usabilidade, acessibilidade e experiência no espectro dos testes de qualidade centrados no usuário.

A observação é importante porque talvez o jeito mais fácil de definir testes de experiência seja diferenciando-os dos de usabilidade. Enquanto estes estão focados nas interfaces – leiaute, clareza das informações, fluxo de navegação, comportamento do usuário diante da tela – buscando avaliar quão fácil está o uso de uma aplicação, os testes de experiência vão além. O objetivo é checar como o usuário “sente” as aplicações, quais sensações e emoções são ativadas diante das interfaces.

Os testes de experiência tem se tornado cada vez mais importantes diante do aumento exponencial de atividades que estão sendo transferidas para software. Para entendê-los com mais detalhes, clique aqui!

Testes de performance

Espera-se que aplicações modernas consigam: a) processar rapidamente muitos dados sem erros; b) oferecer experiências fluidas ao usuário independente do dispositivo e; c) realizar essas duas capacidades para muitos usuários e simultaneamente. Os Testes de performance servem para verificar se a aplicação consegue realizar tudo isso.

Inspecionar a performance é medir a eficiência de um sistema, sob diferentes volumes, seja de usuários, dados, transações ou tempo de exposição. Com programas que usam a computação em nuvem como modelo de sustentação, eles tornam-se ainda mais centrais, uma vez que são eles que dizem se a aplicação consegue escalar mantendo a estabilidade.

Quando executamos algum dos quatro tipos de testes de performance, buscamos identificar cinco métricas centrais. Saiba quais são os tipos, as métricas e sua importância clicando aqui!

Desenvolvimento orientado a testes

Testar algo antes disso existir: parece impossível mas, conceitualmente falando, é exatamente o que preconiza a abordagem de Desenvolvimento orientado a testes.

Para que programas sejam frequentemente incrementados, são aplicadas práticas de qualidade da fase conceitual ao ambiente produtivo. Sistemas passam por validações perenes e massivas em todas as etapas, com cada um de seus pequenos fragmentos sendo criados de maneira conforme. Isso só é possível graças à abordagem de Desenvolvimento orientado a testes, um método para rodar testes unitários e automatizados.

Desenvolvida por Kent Back na virada do século XX para o XXI, a abordagem que ficou mundialmente conhecida pela sigla TDD – significa Test-Driven Development – é uma das mais praticadas no mercado para aumentar a confiabilidade do sistema em todos os estágios da produção, reduzindo o volume de esforço de inspeção na fase de lançamento.

Conheça em detalhes a abordagem de desenvolvimento orientado a testes acessando o texto aqui!

Artigos relacionados
Transformação Digital
Gestão de mudança
Transformação Digital
Multicloud
Transformação Digital
AI Operating Model, o próximo passo da IA corporativa
Transformação Digital
Testes de performance
Pensamos com ambição.

Executamos com método.

Construímos o que vem depois.
Inmetrics. Business, Engineered.

Brasil

comercial@inmetrics.com.br
Av. Tambore, 267
22º andar - Torre Sul
Tamboré, Barueri - SP
06460-000, Brasil

Chile

comercial@inmetrics.lat
Cerro El Plomo, 5420
Oficina 1503
Las Condes | Santiago, Chile
7560742

Colômbia

comercial@inmetrics.lat
Calle 95 #14-45
Edificio Nueve 5, piso 8
Oficina 801
Bogotá, Colômbia
110221

Descubra mais sobre Inmetrics

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continuar lendo