Testabilidade e planejamento de testes de software
Neste artigo, uma rotina de testes de software é proposta com o objetivo de mostrar como a sua realização colabora para o progresso do desenvolvimento de software.
A área de testes de software vem se tornando cada vez mais importante para que o desenvolvimento alcance um alto nível de qualidade e confiabilidade. Um software que apresenta erros e falhas após a sua entrega para o usuário final fatalmente não irá obter uma boa aceitação. Além disso, os desenvolvedores acabam gastando muito tempo para a correção de erros muitas vezes complexos que poderiam ter sido identificados na fase inicial. Tudo isso pode aumentar significativamente o custo do desenvolvimento. O ideal é que os testes de software sejam parte essencial desde o planejamento do projeto, passando por todas suas etapas e indo até a finalização e entrega do software totalmente funcional.
Estratégias e estruturas de testes adequadas devem ser criadas em cada etapa do desenvolvimento para que os testes sejam realizados no software. O objetivo é procurar os possíveis erros de forma automatizada, quando viável, facilitando o trabalho do programador ou responsável pela execução dos testes e preparando o software para que esses sejam facilmente elaborados e efetuados.
No entanto, a utilização apropriada das técnicas de testes de software ainda não é uma prática muito difundida entre as equipes de desenvolvimento. Muitos não preparam rotinas de testes principalmente por não compreenderem a sua importância. A realização dos testes contribui claramente para o aumento da qualidade do programa e resulta na satisfação do usuário final e na conformidade com os requisitos que foram identificados no projeto.
Os testes de software e a garantia da qualidade
A principal finalidade de se aplicar os fundamentos da engenharia de software no desenvolvimento é a criação de softwares dentro dos prazos e custos planejados e, sobretudo, com alta qualidade. A qualidade de software é definida pela norma ISO/IEC 9126 como sendo a capacidade de um produto ou serviço apresentar funcionalidades e características que atendam totalmente às necessidades específicas ou implícitas dos usuários. A garantia da qualidade reúne processos que definem como alcançar a qualidade do software e como a equipe de desenvolvimento deverá se comportar para satisfazer o nível de qualidade exigido.
Verificação e Validação (V&V) é um dos processos de garantia de qualidade do software, e abrange várias atividades, entre elas o teste de software. A verificação deve garantir a consistência interna do produto, ou seja, certificar que suas especificações estejam sendo atendidas. Já a validação utiliza as referências externas do usuário final para assegurar que o produto construído satisfaz suas necessidades e expectativas.
Os testes de software são conjuntos de funções e atividades que são executadas com o objetivo de encontrar erros cometidos na construção de um software. Além de buscar e descobrir falhas no software, os testes têm como meta comprovar que o produto atende aos requisitos e que está em conformidade com suas especificações. É importante citar que apesar dos testes contribuírem significativamente para a confiabilidade do software, eles não podem assegurar a qualidade de um produto, pois alcançar a qualidade de um software depende de outros fatores.
Estratégias de testes de software
Para executar os testes de software é preciso, inicialmente, definir uma estratégia de teste, fornecendo um roteiro que indica o caminho a ser seguido e definindo como e quando os passos referentes aos testes serão executados, bem como o tempo, esforço e recursos necessários. Uma estratégia de teste bem definida deve incluir o planejamento dos testes, o projeto dos casos de teste, a execução dos testes e, por fim, a coleta e avaliação de resultados.
O planejamento dos testes deve ser feito para garantir que se obtenham os resultados esperados, decidindo onde os erros podem ser encontrados e projetando os testes mais eficientes para localizá-los. Uma das maneiras de se criar um plano de teste é baseá-lo em riscos, ou seja, em uma parte do código em que a probabilidade de ocorrência de uma falha seja maior ou em um módulo específico onde o impacto do erro poderia comprometer o funcionamento do produto.
Um caso de teste deve documentar um teste com o objetivo de provar uma exigência. Deve haver pelo menos um caso de teste por requisito, mas algumas vezes são utilizados vários casos de testes para provar um único requisito. Também se pode utilizar o mesmo caso de teste em muitas situações a fim de verificar por completo uma determinada exigência.
A criação de projetos de casos de teste eficazes é um dos tópicos mais importantes relacionados aos testes de software, pois técnicas eficientes de casos de teste, utilizadas em conjunto, possibilitam a identificação da maioria dos erros. Entre essas técnicas estão:
- Teste de caixa-preta: seu objetivo é descobrir situações em que o software não se comporta de acordo com as suas especificações, sem se preocupar com os seus aspectos estruturais. Deve ser derivada de uma série de condições de entrada para que o programa seja testado com foco em seus requisitos funcionais, sendo que essas entradas podem ser válidas ou não; " [...] continue lendo...
Artigos relacionados
-
Artigo
-
Vídeo
-
Vídeo
-
DevCast
-
DevCast