Muito se fala em qualidade de software, mas quem é o verdadeiro responsável por garantir a qualidade de um software?
Esse personagem, presente em qualquer empresa com foco na engenharia de sistemas, é figura fundamental no processo de desenvolvimento dos serviços. Especialistas da área de qualidade de softwares e análise de testes classificam com propriedade este profissional, e afirmam a necessidade da aplicação dos testes desde o início do desenvolvimento de softwares, e também da importância dos desenvolvedores terem conhecimentos sobre a qualidade de software e testes unitários.
O primeiro passo para entender essa demanda é compreender a definição de qualidade de software. A esta categoria estão atrelados métodos segmentados em duas abordagens distintas: a abordagem preventiva e a abordagem destrutiva. Além disso, cabem à qualidade de software duas visões fundamentais: a visão do produtor, ao qual recai a tarefa de verificação das conformidades com os requisitos; e a visão do cliente, que consiste na validação e certificação da adequação do sistema desenvolvido para o uso.
Tendo este conceito bem esclarecido (aceito e aplicado), é possível, às empresas desenvolvedoras de softwares, garantirem a excelência de seus produtos. Cabe neste caso, a exigência não só de quem presta os serviços, mas também dos seus consumidores. Há atualmente uma grande deficiência nesse sentido, pois, segundo a opinião de especialistas da área, falta uma cobrança intensiva por parte dos consumidores. É preciso que aquele que compra um dado produto esteja inteiramente preocupado com a sua aplicação, suas funcionalidades e usabilidade. Mas é claro que não se deve esperar unicamente do cliente esta noção. As empresas desenvolvedoras devem entender a necessidade da aplicação de testes, de vários tipos, e aplicá-los como parte fundamental e indispensável ao desenvolvimento de softwares.
Portanto, outras definições também devem estar inseridas no planejamento de desenvolvimento de softwares, que são as funções de um arquiteto de testes e a de um analista de testes. O primeiro, segundo especialistas, é o responsável por definir como os testes deverão ser implementados, além de determinar sua aplicação de acordo com a necessidade de um dado projeto. É quem conhece a fundo todos os tipos e técnicas de testes. Para o segundo, a palavra de ordem é sempre: processo. Seu foco está em garantir a qualidade do produto desenvolvido, e faz isso através de uma série de documentos e materiais que irão garantir que o solicitado pelo usuário tenha sido de fato produzido. A análise de testes está diretamente ligada à necessidade do usuário. Cabe ao Analista pensar como um usuário, de modo a perceber se o produto de fato o atende.
Contudo, apesar da gama de informações sobre a garantia e qualidade de software ainda há deficiência quanto a este serviço. Muitas empresas ainda não prezam por isso, e de fato acabam por desenvolver produtos extremamente suscetíveis a erros. Mas é importante lembrar que, garantir a qualidade de um software também é tarefa do consumidor. É indispensável que o cliente tenha a certeza do que foi pedido e que acompanhe todo o processo de desenvolvimento do seu produto, como sugerido nas soluções “Agile” de desenvolvimento de softwares, por exemplo.
Não é muito fácil de se imaginar que uma empresa de transportes aéreos não tenha um controle rígido sobre o desenvolvimento e testes de suas aeronaves, certo? O que restaria a um usuário de uma aeronave cujo sistema pode a qualquer momento apresentar falhas? Por isso, entender, aplicar e garantir a qualidade de software é tarefa tanto de quem desenvolve quanto de quem produz.
Se você deseja saber mais sobre qualidade de softwares e análise de testes, fique ligado na minha coluna. Em breve mais posts sobre o tema!