O Teste Software
Por: Emerline17 • 23/10/2017 • Artigo • 1.957 Palavras (8 Páginas) • 360 Visualizações
Abstract. This article discusses the importance of software testing during development fase, before the delivery to customer. It also describes the roadmap to be followed, the most important documents, the kinds of tests and tools that can be used. The objective is to demonstrate the importance and relevance of testing the application before the delivery of the project, in order to present the best possible version for the client.
Resumo. Este artigo aborda a importância dos testes de software durante o desenvolvimento de um sistema, antes da entrega ao cliente. Descreve também o roteiro a ser seguido, e os documentos mais importantes, além dos tipos de testes e ferramentas que podem ser usados. O objetivo é demonstrar a importância e a relevância de testar a aplicação antes da entrega do projeto, a fim de apresentar a melhor versão possível para o cliente.
- Introdução
O desenvolvimento de software é uma tarefa complexa, com várias etapas desde a coleta dos requisitos até a entrega validada, para o cliente. A metodologia fundamental para a validação é projetar casos de teste, com abrangência objetivada a quebrar o software a procura de falhas.
Para muitos desenvolvedores essa varredura é desnecessária pela autoconfiança na capacidade de programar. No entanto, o melhor a fazer para evitar retrabalho é testar arduamente, considerando que os usuários finais, poderão utilizar de maneiras distintas que não são previstas no desenvolvimento, os softwares sem teste eficiente apresentaram erros.
A indicação inicial para aplicação de testes convencionais divide-se em duas etapas, testar a lógica interna do programa e verificar se os requisitos do software não apresentam erros em níveis de validação. Ambas técnicas serão empenhadas com objetivo de vasculhar todo programa com menor esforço e tempo possível.
Como o objetivo do teste é encontrar problemas, é imprescindível ter um projeto e implementar um sistema com o intuito de viabilizar o teste, com praticidade e economia de tempo. Dessa maneira a probabilidade de encontrar erros é expressivamente mais eficiente. Para construir esse sistema o embasamento são os fundamentos do teste de software.
Esses fundamentos direcionam o teste para ampliar a sua performance, são baseados na “testabilidade”, ou seja, a facilidade que o programa apresenta para ser testado.
- Teste de Software
O objetivo do teste de software é garantir que um programa atenda aos requisitos do cliente, cumpra o que foi proposto e encontre o máximo de defeitos possíveis no programa antes da sua liberação para uso. O processo de testes também conta com sua própria terminologia, as palavras erro, defeito e falha, que costumam ser sinônimos, encontram significados diferentes nessa área. Erro é causado pela ação humana, que produz um resultado incorreto, como uma falha na escrita de um código; O defeito, ou bug, é o resultado de um erro no código, gerando uma anomalia no funcionamento no sistema; E a falha é resultado da execução de um defeito no código. A imagem traduz o que cada um representa.
[pic 1]
Figura 1: Diferença entre Erro, Defeito e Falha.
Fonte: http://www.devmedia.com.br/gestao-de-defeitos-no-teste-de-software/21940, visto 2017
Quando os testes são realizados sem considerar as individualidades ou analisar as especificações do sistema, vários erros podem passar despercebidos, desperdiçando tempo e recursos que poderiam ser melhor investidos, além de gerar uma imagem negativa perante o cliente, que provavelmente encontrará dificuldades depois. Para evitar esse tipo de problema é utilizado como estratégia um roteiro com as etapas a serem seguidas, definindo previamente o passo a passo baseado no tempo e recursos disponíveis. É padrão que o roteiro possua três documentos essenciais, apresentados a seguir.
Plano de teste – Onde são apresentadas as atividades de testes, escopo, cobertura dos testes, funcionalidades que serão ou não testadas, restrições, critérios de validação e os responsáveis pelas tarefas.
Caso de teste – Descreve as condições particulares a serem testadas. É composto por valores de entrada, restrições para a sua execução e o resultado ou comportamento esperado. O processo de criação de casos de testes pode também ajudar a encontrar falhas de requisitos, ou seja, identificar cenários não tratados pelos requisitos do sistema.
Roteiro de teste - Retrata os passos necessários para a execução de um caso de teste ou um grupo de casos de testes.
Com o uso destes documentos o processo de testes de software se torna mais produtivo pois o testador pode seguir a sequência de passos de forma prática, objetiva e eficiente.
- Técnicas de Teste
Existem muitas maneiras de se testar um software, e elas são divididas de acordo com suas especificações e finalidades. Ainda assim, o objetivo principal é sempre o mesmo: Encontrar falhas. As técnicas mais utilizadas são a de Teste Estrutural, conhecida também como Caixa Branca e o Teste Funcional, ou Caixa Preta.
- Caixa Branca
Esse tipo de teste é projetado em função da estrutura do componente e permite uma averiguação mais precisa do comportamento dessa estrutura. O testador tem acesso ao código fonte e investiga a estrutura do código, escolhendo partes específicas de um componente para serem avaliadas. O acesso ao código fonte facilita o isolamento de uma função ou ação, o que ajuda na análise comportamental das mesmas. Também permite que o avaliador encontre falhas que não seriam notadas apenas com a interface, como redundâncias no código ou comandos inseridos de maneira desnecessária.
- Caixa Preta
Nesse caso o analista não tem o acesso ao código fonte e a estrutura interna do sistema, ele deve encontrar problemas usando apenas a interface. É conhecido como teste funcional, pois é baseado nos requisitos funcionais do software. O foco, nesse caso, é nos requisitos da aplicação, ou seja, nas ações que ela deve desempenhar.
Apesar dos testes acima serem padrão, outros também são muito conhecidos e utilizados nos dias atuais, inclusive relacionando diretamente as atividades de desenvolvimento de sistemas as de testes, como é mostrado no modelo “V” da imagem abaixo.
...