O conceito de qualidade está presente em praticamente tudo a nossa vista, no dia-a-dia comum e principalmente no contexto profissional.
Você não quer adquirir um produto que não tenha qualidade ou tenha sido mal avaliado, não quer contratar um profissional para executar um serviço que não resolva o seu problema, não concorda?
No desenvolvimento não é diferente, a qualidade de software é a área responsável por garantir a implementação do código de acordo com as boas práticas e normas da área, e assim garantir a qualidade e o cumprimento dos requisitos do projeto.
Para alcançar os requisitos do projeto, utilizar do conceito de qualidade de software, ou até mesmo contar com um profissional expert da área, pode melhorar o processo de desenvolvimento e a entrega final.
Nesse artigo vamos fazer um apanhado do conceito de qualidade de software, sua importância, o profissional responsável e alguns outros pontos importantes que você, da área de desenvolvimento, precisa saber, siga com a leitura!
O que é e para que serve a qualidade de software
Tratar qualidade em um contexto geral é um tanto quanto subjetivo você não concorda?
Visualizando desse ponto é um conceito subjetivo e está sujeito as análises de quem avalia a qualidade de acordo com as suas necessidades específicas ou sua percepção pessoal do projeto, no âmbito profissional.
No desenvolvimento a qualidade de software é a área responsável por avaliar e garantir o desenvolvimento de um software de acordo com as boas práticas técnicas da literatura, cumprindo os requisitos do sistema de acordo com o objetivo final do projeto.
A grosso modo, um projeto que tem como objetivo entregar um sistema de gestão estilo EPR ao cliente, por exemplo, tem diferentes perspectivas de qualidade considerando a visão do cliente e a visão do desenvolvedor.
Para o cliente, os atributos específicos relacionados a qualidade são, por exemplo, a boa gestão do estoque, gestão financeira dos fornecedores, e a longo prazo a redução de custos com a implementação de um sistema automatizado.
Na visão dele, a qualidade do software é garantida atendendo suas necessidades específicas através da entrega desses atributos pontuais.
Partindo para o olhar do desenvolvedor, a qualidade do software se dá a partir das boas práticas de desenvolvimento.
Implementação de um código limpo, de acordo com a documentação, que consiga solucionar os problemas do cliente e que de preferência seja “entendível” por qualquer profissional da área possibilitando a melhoria ou upgrades por qualquer desenvolvedor com certo nível de conhecimento.
Entregando assim, para o cliente, o melhor produto de acordo com as boas práticas, mesmo que para ele, a boa estrutura do código não seja um atributo claro de qualidade para o cumprimento do objetivo do projeto.
Existem também algumas normas técnicas para assegurar a qualidade de software, basicamente essa área técnica do desenvolvimento e engenharia de software serve para assegurar a qualidade de sistemas de acordo com seus requisitos de entrega e requisitos técnicos do desenvolvimento de software.
Datas importantes para a área
Existem duas datas importantes onde se comemora o Dia do Teste de Software (20/02) e também o Dia do Testador de Software (09/09).
O Dia do Teste de Software é voltado para a atividade em si, e comemora o lançamento do primeiro livro de destaque sobre a área (“The Art of Software Testing” em 20 de fevereiro de 1979, por Glenford J. Myers) e que trazia os primeiros conceitos e práticas de teste de software.
Já o Dia do Testador de Software refere-se ao profissional testador de software, e marca o encontro do primeiro bug reportado oficialmente (encontrado no computador eletromecânico Mark II, em que um inseto – bug mesmo rsrs – ficou preso a uma válvula e atrapalhava o processamento), a responsável pela identificação foi a oficial da marinha americana Grace Hopper.
Qual o profissional responsável pela qualidade de software
Para entender as responsabilidades do profissional de qualidade de software, vamos aprofundar um pouco mais e entender as atribuições de um profissional de Quality Assurance (tradução para “Garantia de Qualidade”) na área de desenvolvimento.
O papel de um profissional Tester ou QA, como é chamado no setor, é, principalmente, garantir que o que foi implementado satisfaz aos requisitos solicitados.
Logo, a função do QA é compreender os requisitos e se utilizar das técnicas e recursos disponíveis para validar que eles estão sendo atendidos. Ele é o principal “termômetro” da entrega de resultados e do bom andamento do projeto.
Por muito tempo o papel do testador de software era meramente resumido em: “a pessoa que encontra problemas” ou “o inimigo do Dev”.
Felizmente, hoje esse mindset tem mudado e temos uma amplitude maior do entendimento do seu papel e da sua importância dentro dos times.
Independente se está inserido dentro do contexto ágil ou cascata, o analista de qualidade pode (na verdade, deve) atuar desde o início do desenvolvimento da aplicação ou funcionalidade, garantindo que a expectativa do cliente seja atendida desde a prototipação da entrega, por exemplo.
Existem diversas atividades que podem ser associadas como função do QA, no entanto, existe a adequação do escopo de atividades ao projeto e ao objetivo da entrega.
Algumas responsabilidades são:
- Compreender a arquitetura do produto a ser testado;
- Analisar o código que precisam testar;
- Analisar o escopo/requisitos da alteração;
- Criar documentação de testes (como: casos de teste, planos de teste);
- Definir a melhor estratégia de testes a ser adotada;
- Levantar prazos para execução dos testes;
- Analisar os prós e contras do plano específico, bem como os riscos ligados a alteração;
- Executar casos de teste;
- Coletar as evidências para documentar os testes e os defeitos detectados;
- Criar scripts de automação;
- Executar ciclos de testes automatizados;
- Manter-se a par dos aspectos técnicos da infraestrutura do projeto (por exemplo, navegadores, bases de dados, linguagens etc);
- Gerar relatórios de testes do projeto.
Levando em consideração principalmente o contexto ágil, podemos dizer que o principal papel do QA é evangelizar a importância da qualidade dentro do time.
Precisamos entender que a qualidade não é função específica do QA, ele é a pessoa que conhece bem os conceitos e técnicas, que tem uma visão mais abrangente do que e como deve ser validado, que busca um comportamento próximo do que o cliente faria ou espera, mas, a qualidade da entrega é responsabilidade de todo time.
Chapter de QA
A principal função do Chapter, além de aproximar e conectar todos os QAs, é fortalecer os nossos processos, criar padrões e definir ferramentas que caracterizem uma atividade e que possa ser facilmente adotadas em vários projetos.
Entre as discussões mais frequentes neste time, estão:
- Padrão de aprovação de issues;
- Padrão de reporte de erros;
- Fluxo básico de validação de testes;
- Condições mínimas necessárias para realização de testes em um projeto;
- Indicadores da área;
- Padrões de relatórios;
- Ferramentas (caso de testes, automação, teste mobile);
- Pontos fortes e pontos de melhoria dos projetos com compartilhamento das ações que foram adotadas ou que poderiam ser implementadas para melhorá-los;
- Entre outros temas.
Ficou claro a importância da qualidade de software para o desenvolvimento? Tenho certeza de que se não fosse por um profissional da área, você estaria tendo vários problemas para ler esse artigo, não concorda.
Entenda mais sobre o universo do desenvolvimento de software low-code com os artigos do Blog, clique aqui para visitar.