TestingExpress: ferramenta de planejamento dos seus testes

Este artigo apresenta uma visão geral sobre ferramentas de execução e gestão de testes de software e apresenta a ferramenta TestingExpress, um software gratuito voltado para o público que está iniciando na área de testes de softwares.

Fique por dentro
Este artigo traz alguns dos conceitos fundamentais da área de testes de software, reforça a importância de executar testes durante o processo de desenvolvimento de software, bem como evidencia a importância de gerenciar esses testes. Além disso, o artigo é útil, pois traz uma visão geral sobre as ferramentas de execução e gestão de testes de software e apresenta a ferramenta TestingExpress, um software gratuito e que oferece funcionalidades para a realização da gestão e execução de testes de modo rápido e descomplicado.

Nas últimas décadas houve um aumento na adoção de softwares de gestão por empresas de diversos segmentos e tamanhos a fim de otimizar suas atividades. Consequentemente, identificou-se um aumento na dependência desses sistemas e assim, erros provenientes de falhas nos softwares refletiram diretamente nas atividades da empresa, ocasionando na maioria das vezes inúmeros prejuízos. Tal fato evidenciou uma crise de credibilidade que os softwares passaram a ter após recorrentes problemas.

Em 1979, Glenford Myers, em seu livro ‘The Art of Software Testing’ (A arte de teste de software), já apresentava o conceito no qual quanto mais cedo descobrimos e corrigimos o erro, menor é o seu custo para o projeto. Esse custo em correção de bugs cresce 10 vezes para cada estágio em que o projeto do software avança. Segundo o National Institute of Standards and Techonology, estima-se entre 22,2 a 59,5 bilhões de dólares as perdas anuais como resultado de software de qualidade baixa, muitas vezes pouco ou quase nada testado.

Para contornar esse cenário, visando responder a essa crise de credibilidade e tentando reduzir principalmente os erros oriundos da ausência de realização de testes, diversas normas para definir e padronizar os testes de software foram elaboradas:

Além das normas citadas, os testes de software também são mencionados no CMMI (Capability Maturity Model – Integration), MPS.BR (Melhoria de Processos do Software Brasileiro), RUP (Rational Unified Process) e em diversos segmentos da metodologia ágil.

A criação dessas normas, aliada ao uso delas em metodologias de desenvolvimento de software, possibilitou que os testes, assim como a gestão dos mesmos, passassem a ter um papel de maior destaque durante processo de desenvolvimento de software.

O teste de software trata-se de uma análise técnica que é realizada com o objetivo de identificar informações referentes à qualidade do produto. É uma ação que deve ser executada em todas as partes do software com o objetivo de alcançar 100% cobertura. O teste tem como meta identificar alguma não conformidade do produto alvo da análise. Uma vez identificada essa não conformidade, ela deverá ser acompanhada de perto até que a mesma seja corrigida e avaliada novamente. Trata-se de uma atividade não trivial e de difícil gestão.

Os testes são divididos em diversos grupos ou categorias, dentre os principais destacam-se os testes funcionais e os testes estruturais. Enquanto os funcionais têm como foco garantir que os requisitos estabelecidos estão sendo atendidos da forma esperada, os testes estruturais têm como objetivo identificar problemas de comportamento do sistema em diversas situações diferentes da situação normal.

Existem diversos motivos que justificam a implantação de testes de software nas empresas:

  1. Quando um produto não é testado, há uma grande chance que ele contenha erros ou defeitos, assim este produto não vai satisfazer as necessidades do cliente;
  2. O cliente quando não está satisfeito com o produto, dificilmente irá contratar novamente a empresa;
  3. Quando não há qualidade no produto, a empresa fica com a imagem prejudicada. Logo, é necessário mais investimento em marketing, por exemplo;
  4. Se os erros são encontrados pelo cliente, o custo para corrigir esses erros é muito maior do que quando o sistema ainda está em desenvolvimento;
  5. Com os testes, é possível ter uma maior garantia de que o sistema não possui erros críticos, os quais, quando existem, podem causar grandes prejuízos para o cliente;
  6. Com os testes, novos clientes ficarão interessados em seus sistemas devido às recomendações;
  7. Quando há uma equipe de teste para avaliar o sistema, todos saem ganhando: o dono da empresa (menos gasto com marketing e mais prestígio para a empresa), o cliente (satisfação e confiança no sistema), os usuários (conseguem usar o sistema de forma útil e correta), os programadores (motivação por criar sistemas com qualidade) e os testadores (mais empregos).

Teste é uma parte importante para o sucesso de um projeto, haja vista que os desenvolvedores estão sujeitos a falhas na programação, ou os requisitos nem sempre são entendidos conforme deveriam. A ausência de testes aumenta o risco do sistema de não atender adequadamente as necessidades do cliente, gerando consequentemente resultados negativos.

Com base nesse cenário, com o objetivo de atender as normas de qualidade existentes e garantir a satisfação dos seus clientes, as empresas de desenvolvimento de software passaram a incorporar em suas equipes profissionais especialistas em testes de software, além disso, implantaram práticas e técnicas para a elaboração, execução e principalmente gerenciamento dos planos e casos de testes.

A gestão dos testes possui um papel de destaque dentro de um processo de testes, afinal, é responsável pelo planejamento e controle de todas as atividades. Um bom gerenciamento dos testes é de fundamental importância, principalmente quando há uma alteração no requisito que causa alteração no caso de uso. Quando isso ocorre, é necessário identificar rapidamente quais testes precisam ser alterados e/ou executados novamente, garantindo que após a alteração o sistema permaneça coberto pelos testes.

Todavia, aplicar as práticas e técnicas para a elaboração, execução e gerenciamento dos planos e casos de testes não é uma tarefa trivial, pois o volume de informação gerado nesta atividade é muito elevado. Para contornar esta dificuldade, são utilizadas ferramentas voltadas especificamente para o gerenciamento e execução de testes de software.

Além de simplificar as atividades de gestão, a adoção deste tipo de ferramenta possibilita a centralização das informações, além da facilidade na criação de casos de testes, estimulando que mais casos sejam criados e tenhamos uma cobertura maior dos testes sobre o sistema, propiciando melhora da qualidade das aplicações testadas.

As ferramentas de gerenciamento de testes podem ser utilizadas em todas as etapas do ciclo de vida do teste, e têm como grande vantagem a centralização de todas as informações relacionadas à evolução dos testes realizados no software." [...] continue lendo...

Artigos relacionados