A importância do teste no desenvolvimento de softwares

Ao longo dos anos, a realização de testes durante o processo de desenvolvimento de softwares vem evoluindo e se consolidando com base em padrões reconhecidos internacionalmente.

Empresas de TI incorporam prática de testes em seus processos internos para assegurar a entrega de um produto final de qualidade ao cliente.
Ao longo dos anos, a realização de testes durante o processo de desenvolvimento de softwares vem evoluindo e se consolidando com base em padrões reconhecidos internacionalmente.
No princípio, a execução de testes consistia apenas em percorrer um código fonte e corrigir problemas já conhecidos, atividade que era realizada pelos próprios desenvolvedores, não existindo recursos específicos para essa ação. A partir de 1957, essa ideia se ampliou para um processo de detecção de erros de software, executado apenas no final do desenvolvimento.
Dos anos 70 em diante, os testes passaram a ganhar mais importância graças ao conceito de engenharia de software, que foi adotado como padrão pelas universidades e organizações. Em 1979, Glenford J. Myers, produziu um dos primeiros trabalhos “The Art of Software Testing”, no qual definiu que: “Teste é o processo de executar um programa com o intuito de encontrar erros”, apresentando a ideia de que quanto mais cedo se descobre e corrige um erro, menor é o custo para o projeto.
Já nos anos 80, o conceito de “qualidade de software” profissionalizou a execução dos testes, considerando que desenvolvedores e testadores trabalhassem juntos no processo de desenvolvimento, tendo cada fase sua atividade de conferência de modo a garantir que a etapa estava completa.
Hoje em dia, padrões foram consolidados como o CMM (Capability Manuterity Model), elaborado pelo Software Engineering Institute, que é adotado pelas empresas desenvolvedoras de software como modelo de avaliação e testes mais reconhecido mundialmente.
A crescente importância com testes e padrões de qualidade tem se refletido atualmente nas mais diversas organizações, que, em busca de alcançar a eficiência na gestão e na operação para se manterem competitivas no mercado, estão se apoiando cada vez mais na tecnologia visando a redução de custos e mais agilidade nas decisões.
Com isso, o aumento da dependência tecnológica das companhias que têm suas operações internas suportadas por sistemas informatizados está configurando um novo cenário, no qual os riscos de um mau funcionamento no processo de software pode impactar de forma significativa o negócio.
Para minimizar esses riscos, as empresas de TI vêm atuando com base num processo de qualidade de software que integra sua estratégia corporativa em prol do pleno atendimento às necessidades de seus clientes finais, usuários dos mais diversos sistemas.
A aplicação dos testes de software faz parte deste processo por meio do qual é possível garantir a qualidade do produto em conformidade com o que foi especificado no projeto.  Para isso, ao realizar testes nos sistemas desenvolvidos, as empresas adotam como prática de sucesso que os testes sejam efetuados por uma equipe específica e não pelo grupo de desenvolvimento.
“A forma de pensar utilizada durante os testes é diferente da utilizada durante o desenvolvimento. Muitas vezes, os desenvolvedores concentram-se apenas no caso de sucesso para determinada situação e deixam de implementar alguma funcionalidade ou regra de negócio que foi especificada. Por isso, a separação da atividade de teste para um testador é feita para focalizar o esforço. Testadores têm certo grau de independência, o que muitas vezes representa uma forma eficiente de encontrar defeitos e falhas”, explica Danielle Souza Guimarães, Analista de Teste da GSW.
Alinhadas a essa realidade, cada vez mais empresas de TI têm migrado a realização de testes de uma tarefa secundária para etapa crucial de seu processo interno. “Penso que a dificuldade em implantar um setor de testes está relacionada à cultura e à resistência da empresa, que acredita desenvolver da melhor forma e conforme as necessidades do cliente. No entanto, assim como o desenvolvimento, o teste também deve fazer parte do ciclo de vida do software”, complementa Danielle.
Para Luiz Alberto, Professor de Engenharia de Software da PUC Minas (campus Poços de Caldas) e Consultor da empresa Affirmare TI, esse cenário se confirma. “A atividade de desenvolvimento de software é essencialmente humana e, como tal, sujeita a muitos erros ou enganos. Sem dúvida, uma das formas mais eficientes de se encontrar erros inseridos durante o desenvolvimento ou manutenções no software é a realização de testes. Minha percepção como professor, consultor e desenvolvedor é que o teste vem se tornando a cada dia mais popular nas organizações. O desejo de reduzir as falhas no software e os impactos negativos trazidos por eles têm motivado o aumento no uso dos testes pelas empresas”.
Na GSW, empresa de Tecnologia da Informação com foco no desenvolvimento de sistemas, por exemplo, a área de testes é recente e foi estruturada em 2010. Atualmente, a equipe conta com dois colaboradores que elaboram casos de testes e os realizam efetivamente. “Defeitos encontrados durante a execução dos testes são reportados para a equipe de desenvolvimento. Os testes são executados desde o início do projeto e não apenas no final. Em cada sistema testado, aprendemos novas lições que nos permitem aprimorar o processo de modo a prevenir reincidências de erro e melhorar a qualidade de sistemas futuros”, conta Danielle.
Dicas :: Melhores práticas para realização de testes de software
1. Recrute profissionais detalhistas, metódicos e pacientes. Procure pessoas que também saibam codificar.
2. Reúna no mesmo espaço testadores e desenvolvedores para aprimorar a comunicação entre dois grupos.
3. Monte uma estrutura de hierarquia independente. A função de teste não deve reportar a nenhum grupo que é avaliado por cumprir prazos ou manter baixos os custos de um projeto.
4. Dedique testadores a sistemas específicos.
5. Proporcione treinamento em negócio.
6. Permita que usuários da área de negócio também testem para assegurar que os sistemas que TI está desenvolvendo sigam as especificações.
7. Envolva o grupo de operações de rede para lhes dar a chance de ensaiar uma implementação antes que um sistema entre em produção, garantindo que a implementação real transcorrerá sem sobressaltos.
8. Crie um laboratório que reproduza seu ambiente de negócio.
9. Desenvolva testes durante a fase de requisitos. A metodologia ágil recomenda que se deve testar continuamente, do início ao fim do projeto.
10. Aplique particionamento de classe de equivalência, técnica que os testadores usam para identificar requisitos funcionais adicionais que analistas e usuários da área de negócio talvez não tenham observado ou comunicado.

Empresas de TI incorporam prática de testes em seus processos internos para assegurar a entrega de um produto final de qualidade ao cliente.

Ao longo dos anos, a realização de testes durante o processo de desenvolvimento de softwares vem evoluindo e se consolidando com base em padrões reconhecidos internacionalmente.

No princípio, a execução de testes consistia apenas em percorrer um código fonte e corrigir problemas já conhecidos, atividade que era realizada pelos próprios desenvolvedores, não existindo recursos específicos para essa ação. A partir de 1957, essa ideia se ampliou para um processo de detecção de erros de software, executado apenas no final do desenvolvimento.

Dos anos 70 em diante, os testes passaram a ganhar mais importância graças ao conceito de engenharia de software, que foi adotado como padrão pelas universidades e organizações. Em 1979, Glenford J. Myers, produziu um dos primeiros trabalhos “The Art of Software Testing”, no qual definiu que: “Teste é o processo de executar um programa com o intuito de encontrar erros”, apresentando a ideia de que quanto mais cedo se descobre e corrige um erro, menor é o custo para o projeto.

Já nos anos 80, o conceito de “qualidade de software” profissionalizou a execução dos testes, considerando que desenvolvedores e testadores trabalhassem juntos no processo de desenvolvimento, tendo cada fase sua atividade de conferência de modo a garantir que a etapa estava completa.

Hoje em dia, padrões foram consolidados como o CMM (Capability Manuterity Model), elaborado pelo Software Engineering Institute, que é adotado pelas empresas desenvolvedoras de software como modelo de avaliação e testes mais reconhecido mundialmente.

A crescente importância com testes e padrões de qualidade tem se refletido atualmente nas mais diversas organizações, que, em busca de alcançar a eficiência na gestão e na operação para se manterem competitivas no mercado, estão se apoiando cada vez mais na tecnologia visando a redução de custos e mais agilidade nas decisões.

Com isso, o aumento da dependência tecnológica das companhias que têm suas operações internas suportadas por sistemas informatizados está configurando um novo cenário, no qual os riscos de um mau funcionamento no processo de software pode impactar de forma significativa o negócio.

Para minimizar esses riscos, as empresas de TI vêm atuando com base num processo de qualidade de software que integra sua estratégia corporativa em prol do pleno atendimento às necessidades de seus clientes finais, usuários dos mais diversos sistemas.

A aplicação dos testes de software faz parte deste processo por meio do qual é possível garantir a qualidade do produto em conformidade com o que foi especificado no projeto.  Para isso, ao realizar testes nos sistemas desenvolvidos, as empresas adotam como prática de sucesso que os testes sejam efetuados por uma equipe específica e não pelo grupo de desenvolvimento.

“A forma de pensar utilizada durante os testes é diferente da utilizada durante o desenvolvimento. Muitas vezes, os desenvolvedores concentram-se apenas no caso de sucesso para determinada situação e deixam de implementar alguma funcionalidade ou regra de negócio que foi especificada. Por isso, a separação da atividade de teste para um testador é feita para focalizar o esforço. Testadores têm certo grau de independência, o que muitas vezes representa uma forma eficiente de encontrar defeitos e falhas”, explica Danielle Souza Guimarães, Analista de Teste da GSW.

Alinhadas a essa realidade, cada vez mais empresas de TI têm migrado a realização de testes de uma tarefa secundária para etapa crucial de seu processo interno. “Penso que a dificuldade em implantar um setor de testes está relacionada à cultura e à resistência da empresa, que acredita desenvolver da melhor forma e conforme as necessidades do cliente. No entanto, assim como o desenvolvimento, o teste também deve fazer parte do ciclo de vida do software”, complementa Danielle.

Para Luiz Alberto, Professor de Engenharia de Software da PUC Minas (campus Poços de Caldas) e Consultor da empresa Affirmare TI, esse cenário se confirma. “A atividade de desenvolvimento de software é essencialmente humana e, como tal, sujeita a muitos erros ou enganos. Sem dúvida, uma das formas mais eficientes de se encontrar erros inseridos durante o desenvolvimento ou manutenções no software é a realização de testes. Minha percepção como professor, consultor e desenvolvedor é que o teste vem se tornando a cada dia mais popular nas organizações. O desejo de reduzir as falhas no software e os impactos negativos trazidos por eles têm motivado o aumento no uso dos testes pelas empresas”.

Na GSW, empresa de Tecnologia da Informação com foco no desenvolvimento de sistemas, por exemplo, a área de testes é recente e foi estruturada em 2010. Atualmente, a equipe conta com dois colaboradores que elaboram casos de testes e os realizam efetivamente. “Defeitos encontrados durante a execução dos testes são reportados para a equipe de desenvolvimento. Os testes são executados desde o início do projeto e não apenas no final. Em cada sistema testado, aprendemos novas lições que nos permitem aprimorar o processo de modo a prevenir reincidências de erro e melhorar a qualidade de sistemas futuros”, conta Danielle.

Dicas :: Melhores práticas para realização de testes de software

1. Recrute profissionais detalhistas, metódicos e pacientes. Procure pessoas que também saibam codificar.

2. Reúna no mesmo espaço testadores e desenvolvedores para aprimorar a comunicação entre dois grupos.

3. Monte uma estrutura de hierarquia independente. A função de teste não deve reportar a nenhum grupo que é avaliado por cumprir prazos ou manter baixos os custos de um projeto.

4. Dedique testadores a sistemas específicos.

5. Proporcione treinamento em negócio.

6. Permita que usuários da área de negócio também testem para assegurar que os sistemas que TI está desenvolvendo sigam as especificações.

7. Envolva o grupo de operações de rede para lhes dar a chance de ensaiar uma implementação antes que um sistema entre em produção, garantindo que a implementação real transcorrerá sem sobressaltos.

8. Crie um laboratório que reproduza seu ambiente de negócio.

9. Desenvolva testes durante a fase de requisitos. A metodologia ágil recomenda que se deve testar continuamente, do início ao fim do projeto.

10. Aplique particionamento de classe de equivalência, técnica que os testadores usam para identificar requisitos funcionais adicionais que analistas e usuários da área de negócio talvez não tenham observado ou comunicado.

 

 

 

Newsletter: Edição 014 – Ano 2012

Leia Também:

 

Motivação na área de TI: como perceber o que agrega valor para os funcionários?
Você conhece os incentivos do governo brasileiro para exportação?
GSW inaugura SAP Solution Center
A Era digital do Fisco veio para ficar?

 

Olá, Tudo Bem?
Se precisar estamos a disposição.

Receba nossa newsletter

Fique tranquilo não enviamos e-mails em excesso.

Nome
E-mail
Assunto
Selecione

  • Desenvolvimento de Sistemas
  • SAP Solution Center
  • Gestão Tributária
  • Comércio Exterior
  • BPO Tributário
  • CRM & Mobile