Resenha de Artigo - A importância do teste de software

Autoria de Joel Guerreiro Borghi Filho

INTRODUÇÃO


A falta de atenção à importância do teste de software nas empresas traz grandes prejuízos nos custos. Principalmente devido a falta de tempo e falta de mão de obra especializada, as falhas nos sistemas de software acabam passando despercebidas, o que pode geralmente gerar grandes problemas tanto para a empresa que construiu o sistema quanto para o usuário final. Negligenciar os testes de software durante as fases iniciais do desenvolvimento acarretam em custos futuros elevados, principalmente quando o produto já está em produção, a dificuldade e o alto custo de correções quando o software já está nas mãos do usuário incorre em grandes perdas.

Esta resenha tem como objetivo elucidar a importância dos testes durante o ciclo de vida de desenvolvimento do software.


O TESTE DE SOFTWARE


Com o objetivo principal de encontrar defeitos o teste de software deve ser realizado durante todo o desenvolvimento do sistema. A importância da realização de testes durnato o ciclo de vida serve para que seja possível encontrar com antecedência possíveis problemas futuros, e caso sejam encontrados que sejam resolvidos para abreviar problemas futuros de custo e também quando o sistema estiver em produção.

Nos primórdios da atividade de desenvolvimento de software os testes eram realizados pelos próprios desenvolvedores como uma tarefa sem muita importância de deixada sempre para depois e somente se o prazo de entrega do produto o permitisse. No entanto com o passar do tempo e com o aumento das demandas e da complexidade dos sistemas, esta pratica se torna inviável. Tal fato fez com que fossem criados novos métodos que atendessem às novas exigências.

O teste de software pode ser entendido como um atividade crítica da garantia da qualidade do sistema, sendo necessárias revisões da especificação, do projeto e do código.Geralmente a fase de testes é a parte final antes da entrega ao cliente por isso é tão importante. O conceito de qualidade final do produto de software é medida de duas maneiras: para os desenvolvedores é medido pelo quanto os requisitos do sistema levantados atendem ao usuário final, e para o usuário é definido se o sistema tende às suas necessidades ou dores. Ou seja é menor a qualidade a medida em que os requisitos não são atendidos, e o não atendimento dos requisitos ao que se espera podem ser entendidos como defeitos ou falhas o que diminui o conceito variável de qualidade de software.


O CUSTO DA NÃO QUALIDADE


No ciclo de desenvolvimento de software quanto mais tardar um erro é encontrado maior será o custo de correção, portanto quanto mais cedo um erro é encontrado menor será o custo futuro de reparo.

Testar software não é algo trivial e barato mas mesmo assim muitas empresas por conta de cronogramas apertados acabam deixando passar. Entregar um produto de software com defeitos ocorre com frequência o que gera grandes problemas tanto para o usuário quanto para a empresa que desenvolveu.


VALIDAÇÃO E VERIFICAÇÃO


Esta atividade consiste basicamente em verificar se o software durante seu ciclo de vida está sendo desenvolvido da forma correta dentro das normas e validar o código do sistema. Para isso é verificado se o sistema atende aos requisitos levantados inicialmente. O objetivo é a redução dos riscos do projeto, o modelo em V é o adotado.


VEIS OU ESTÁGIOS DE TESTES


  • TESTE UNITÁRIO

    • Validar código fonte e suas partes menores


  • TESTE DE INTEGRAÇÃO

    • Validar a integração entre os sistemas


  • TESTE DO SISTEMA

    • Validar o software como um todo


  • TESTE DE ACEITAÇÃO

    • Validar se o sistema realiza para o que foi projetado


CNICAS DE TESTE


  • TESTE DE CAIXA BRANCA OU ESTRUTURAL

    • Testa a estrutura interna do sistema e seu comportamento ocorrem durante o teste de unidade e de integração


  • TESTE DE CAIXA PRETA OU FUNCIONAL

    • Ao contrário do teste de caixa branca este teste avalia as entradas e saídas do sistema e pode ser feito durante todos os níveis de testes


ESTRATÉGIAS DE TESTE


  • Para criar uma estratégia de testes antes deve-se verificar:

    • O porte do software

    • Requisitos

    • Prazos

    • Riscos


Nesta parte é verificado qual abordagem de teste pode se encaixar melhor no projeto.


CICLO DE VIDA DE TESTE


  1. Procedimentos Iniciais

  2. Planejamento

  3. Projeto

  4. Execução

  5. Gerenciamento de defeitos

  6. Análise de resultados


Em cada fase diversas atividades são desenvolvidas, no início é necessário investigar escopo e contexto para delinear possíveis estratégias e abordagens. Após o procedimento inicial é criado um planejamento para analisar os objetivos do teste e a documentação do projeto para poder especificar a melhor técnica a ser empregada. Ao executar os testes relatórios são gerados e os defeitos são gerenciados para verificar quais partes passaram e podem ser liberadas para uso do cliente.


ESTUDO DE CASO


Para ilustrar foi selecionada a empresa “Alfa” do ramo de desenvolvimento de software.


  1. A execução dos testes é feita após a liberação do código fonte do sistema e liberação de artefatos de software

  2. A primeira coisa a se fazer é pegar este artefato de software gerado que é o plano de teste contendo o planejamento de execução dos testes, ferramentas etc.

  3. Os casos de uso do sistema serão testados e suas saídas analisadas para verificar se correspondem ao cenário

  4. Caso alguma falha seja encontrada é criado um gerenciamento de falhas

  5. Os defeitos encontrados são encaminhados ao desenvolvedor do caso de uso

  6. O desenvolvedor deverá alterar o código fonte corrigindo o defeito e o registro de ocorrência é fechado

  7. Após esta etapa é feito o teste de regressão que verifica se erros foram introduzidos pós-correções

  8. Ao final desta parte será realizado o teste de aceitação em que o software é testado pelo usuário final


CONSIDERAÇÕES FINAIS


Atividade de teste de software como elucidado anteriormente no texto, é uma atividade complexa e geralmente custosa por envolver grande parte dos recursos do projeto.

Testar software envolve também práticas e técnicas de gerenciamento para que os objetivos sejam atingidos. É também de suma importância a qualificação dos intregrantes das equipes de teste. Por fim vale ressaltar que testes devem ser feitos desde o início do projeto de software.


 

Referência: MOUTIN SEGORIA GASPAROTTO, ANGELITA, PIRES DE SOUZA, KARLA. A importância da atividade de teste no desenvolvimento de software – XXXII Encontro de engenharia de produção- A Gestão dos Processos de Produção e as Parcerias Globais para o Desenvolvimento Sustentável dos Sistemas Produtivos, 2013. Salvador, BA, 08/11/2013.

Comentários

Postagens mais visitadas deste blog

Gerenciamento de versões, mudanças, lançamentos e construção de sistemas em Engenharia de Software

RESENHA DE ARTIGO: QUALIDADE DE SOFTWARE