1. Teste de Software em Frameworks Ágeis
Por Rodrigo Monteiro
Surgem diversas questões sobre como estruturar testes em projetos que se
utilizam de frameworks ágeis, como SCRUM. Como nestes projetos a documentação
gerada é significativamente menor em função da desburocratização do processo de
desenvolvimento, alguns métodos de teste, estes fortemente baseados em artefatos
como especificações, devem ser revistos e adequados à realidade de cada projeto.
Em projetos ágeis, os membros do time de desenvolvimento devem possuir
todas as capacidades necessárias para tornar um requisito de negócio a um incremento
funcional do sistema, e dentre tais capacidades necessárias, as relacionadas aos testes
de software.
Quanto à definição do escopo dos testes, o mesmo deve ser feito de maneira
participativa, envolvendo os integrantes do projeto, incluindo o cliente, o usuário final,
a equipe que dará manutenção ao software futuramente, dentre outros, a fim de
entender e atender às necessidades de qualidade do incremento do software a ser
desenvolvido na iteração.
Página 1
2. Uma boa solução para não deixar nada de fora é se basear em um checklist ou
em normas como a ISO/IEC 9126-1 (que apresenta uma lista de características e
subcaracterísticas que um produto de software com qualidade deve apresentar) para
definir quais pontos podem ser abordados durante os testes:
Características Subcaracterísticas
- Adequação (execução do que é apropriado)
- Acurácia (execução de forma correta)
Funcionalidade (satisfação das necessidades) - Interoperabilidade (interação com quem deve)
- Conformidade (aderência às normas)
- Segurança de Acesso (bloqueio de uso não autorizado)
- Maturidade (freqüência de falhas)
Confiabilidade (imunidade à falhas) - Tolerância à falhas (forma de reação à falhas)
- Recuperabilidade (forma de recuperação de falhas)
- Intelegibilidade (facilidade de entendimento)
Usabilidade (facilidade de uso) - Apreensibilidade (facilidade de aprendizado)
- Operacionalidade (facilidade de operação)
- Tempo (tempo de resposta, velocidade de execução)
Eficiência (rápido e enxuto) - Recursos (recursos utilizados)
- Analisabilidade (facilidade de encontrar falhas)
- Modificabilidade (facilidade de modificar)
Manutenibilidade (facilidade de manutenção) - Estabilidade (baixo risco quando de alterações)
- Testabilidade (facilidade de testar)
- Adaptabilidade (facilidade de se adaptar a outros
ambientes)
- Capacidade para ser instalado (facilidade de instalar em
Portabilidade (uso em outros ambientes) outros ambientes)
- Conformidade (aderência a padrões de portabilidade)
- Capacidade de substituir (facilidade de ser substituído
por outro)
Sobre a escolha das técnicas de teste a serem utilizadas, estas devem ser
discutidas a partir do escopo de testes definido. Para cada característica ou
necessidade apresentada, deve-se apresentar uma ou mais estratégias que possam
verificá-las ou validá-las. Por exemplo, sistemas para o público em geral como caixas
eletrônicos devem ser fáceis de utilizar, sem a necessidade de auxílio e
acompanhamento, portanto podem-se utilizar estratégias de teste que visem avaliar a
usabilidade deste tipo de software.
Página 2
3. É importante que as táticas escolhidas estejam de acordo com as características
encontradas nos projetos ágeis, como a incerteza e flutuação dos requisitos, o
desenvolvimento incremental, dentre outras. Ou seja, as táticas de testes escolhidas
devem se adequar facilmente às mudanças nos requisitos, ser capazes de serem
aplicadas nos incrementos do software gerados em cada iteração (sprints), etc. Porém
não devem ser desconsiderados testes que visem avaliar o produto como um todo.
Quanto aos documentos a serem produzidos durante o processo de testes, assim
como em todo projeto ágil, eles devem ser utilizados conforme vista sua necessidade.
Procedimentos podem ser elaborados para determinar quais os documentos passíveis
de serem utilizados para cada categoria de testes.
Página 3