479 Shares 1916 views

programas de testes – processo de detecção de erro no produto de software

No desenvolvimento de software, uma parte significativa do processo de produção é baseada em teste de software. O que é e como é essa atividade vai discutir neste artigo.

O que é chamado um teste?

Isto se refere ao processo, executando o software para detectar os locais de operação incorreta do código. Para melhores resultados, deliberadamente construídas conjunto difícil de dados de entrada. A principal finalidade da inspecção é criar a melhor oportunidade para a falha de software. Embora às vezes testar o programa desenvolvido pode ser simplificada para uma verificação de rotina da capacidade de trabalho e executar as funções. Isso economiza tempo, mas é muitas vezes acompanhada pela falta de fiabilidade do software, insatisfação do usuário, e assim por diante.

eficácia

Como bem e rapidamente são erros, um impacto significativo sobre o custo ea duração do desenvolvimento de software de qualidade exigido. Assim, apesar do fato de que os testadores receber um salário várias vezes menor do que os desenvolvedores, o custo de seus serviços é geralmente até 30 – 40% do custo de todo o projeto. Isto é devido ao número de pessoal, uma vez que a busca pelo erro – este é um processo incomum e bastante difícil. Mas mesmo se o software é passado um número respeitável de testes, não há garantia de 100% que o erro não vai acontecer. Só não sei quando eles ocorrem. Para incentivar testadores para escolher os tipos de testes que são mais propensos a encontrar a falha, diferentes ferramentas de motivação são usados: moral e material.

Abordagem ao trabalho

O ideal é quando a implementar diversos mecanismos para garantir que os erros no software não foi desde o início. Para fazer isso, você deve cuidar do projeto de arquitetura adequada, termos de referência claros, e é importante não fazer ajustes na comunicação, quando o trabalho no projeto já começou. Neste caso, o testador para a tarefa de encontrar e identificar um pequeno número de erros que permanecem no resultado final. Isto vai poupar tempo e dinheiro.

Qual é a prova?

Este é um aspecto importante das actividades de inspecção, que é necessária para o êxito da detecção de defeitos do código. Elas são necessárias, a fim de controlar a aplicação correcta. O que está incluído no teste? É constituída de dados e os seus valores iniciais, que deve ser obtida como o resultante (ou intermédia). A fim de identificar com sucesso problemas e inconsistências, os testes devem ser após o algoritmo foi desenvolvido, mas não começar a programar. É desejável utilizar várias abordagens para estimar os dados necessários. Neste caso, aumentando a probabilidade de detectar um erro porque você pode examinar o código a partir de uma perspectiva diferente. testes complexos deve fornecer verificação de efeitos externos dos produtos de software acabados, bem como seus algoritmos de trabalho. De particular interesse e fornecer casos degenerados marginais. Assim, na prática de erros muitas vezes pode revelar que o ciclo opera em uma ou mais vezes menos do que o planejado. Também importante é o teste de computador, através do qual você pode verificar que o resultado desejado em máquinas diferentes. Isto é necessário, a fim de se certificar de que o software irá funcionar em todos os computadores. Além disso, o teste de computador, em que o desenvolvimento vai ser realizada, é importante na criação de desenvolvimento multi-plataforma.

Artes de solução de problemas

Programas geralmente visam trabalhar com grandes conjuntos de dados. É necessário criar completamente? Não. Difundida adquiriu a prática de "miniaturização" do programa. Neste caso, há uma redução razoável do volume de dados, em comparação com que a ser usado. Vejamos um exemplo: há um programa, o que cria uma matriz de tamanho 50×50. Em outras palavras – você deve digitar manualmente os valores de 2500. É certamente possível, mas vai demorar um tempo muito longo. Mas, a fim de testar a funcionalidade, o software recebe uma matriz cuja dimensão é 5×5. Para fazer isso, você precisa digitar mais de 25 valores. Se, neste caso, uma operação normal, livre de erros, isso significa que tudo está em ordem. Embora há armadilhas que se encontram no fato de que, com ocorre situação miniaturização, resultando em mudança torna-se implícita e desaparecer temporariamente. Também é muito raro, mas ainda acontece é que há novos bugs.

objectivos prosseguidos

O teste não é uma tarefa fácil devido ao fato de que este processo não é passível de formalização na sua totalidade. programas grandes quase nunca têm a referência exata necessária. Portanto, como uma diretriz usando uma série de dados indiretos, que, no entanto, não podem refletir plenamente as características e funções de desenvolvimento de software que depurado. Além disso, eles devem ser escolhidos de modo que o resultado correto calculada antes como o produto de software será testado. Se você não avançar, é tentador considerar tudo, e se o resultado da máquina fica no intervalo esperado, será feita uma decisão errada, de que tudo está correto.

Verifique sob condições diferentes

Como regra geral, o teste do programa ocorre em volumes que são necessárias para o teste de funcionalidade mínima de forma limitada. Atividades realizadas com a mudança dos parâmetros, bem como suas condições de trabalho. O processo de teste pode ser dividido em três fases:

  • Verifique em condições normais. Neste caso estamos a testar a funcionalidade básica do software desenvolvido. O resultado deve corresponder ao esperado.
  • Verifique em condições extremas. Nestes casos, como sinônimo com os dados de contorno, que podem afetar negativamente o desempenho do software criado. Como um exemplo, nós trabalhamos com um extremamente grandes ou pequenos números ou mesmo completa ausência de informações recebidas.
  • Verificando em situações excepcionais. Ela envolve o uso de dados que estão além de tratamento. Em tais situações, é muito ruim quando o software percebe como útil para o cálculo e dá um resultado plausível. Cuidados devem ser tomados para que, nesses casos, há uma rejeição de todos os dados que não podem ser processados corretamente. É também necessário prever informar o utilizador sobre isso

Testes: Tipos

Criar software sem erro é muito difícil. Isto requer uma quantidade considerável de tempo. Para obter um bom produto é muitas vezes usado dois tipos de testes: "Alfa" e "Beta". O que são eles? Quando as pessoas falam sobre os testes alpha, significa que a revisão a ser realizada se no estado de desenvolvimento condições de "laboratório". Esta é a última etapa de testes antes do programa será transferido para os usuários finais. Portanto, os desenvolvedores estão tentando virar o máximo. Para facilitar a operação, os dados podem estar logado para criar uma cronologia dos problemas e suas soluções. Sob o teste beta de compreender o fornecimento de software a um número limitado de usuários, para que eles possam explorar o programa e identificar os erros que você perdeu. Uma característica especial neste caso é o fato de que muitas vezes o software não é utilizado para a sua finalidade. Devido a esta falha será identificada onde não havia nada antes visto. Isso é normal e se preocupe com isso não é necessário.

Conclusão teste

Se as etapas anteriores foram concluídas com êxito, ele continua a realizar testes de aceitação. Ele, neste caso, torna-se uma mera formalidade. Durante este teste vem a confirmação de que há problemas adicionais foram encontrados e o software pode ser lançado no mercado. O mais importante será o resultado final, o mais de perto deve ser verificada. Cuidados devem ser tomados para garantir que todas as etapas foram concluídas com êxito. Aqui está o processo de teste como um todo. Agora vamos entrar em detalhes técnicos e falar sobre uma ferramenta tão útil, como os programas de teste. O que são e quando usado?

teste assistida por computador

Anteriormente, pensava-se que a análise dinâmica de software desenvolvido – é abordagem muito pesado que efetivamente usado para detectar defeitos. Mas, devido à crescente complexidade e volume dos programas apareceu opinião contrária. Teste automatizado é usado onde as prioridades mais importantes são a eficiência ea segurança. E eles devem estar sob qualquer entrada. Como exemplo, os programas para os quais é apropriado para tais testes, incluem o seguinte: protocolos de rede, servidor web, sandboxing. Continuamos a olhar para algumas amostras, que podem ser usados para tais atividades. Se você está interessado em programas de testes gratuitos, a qualidade é difícil de encontrar entre eles. Mas não estão rachados versões "piratas" dos projetos bem estabelecidos, assim você pode se referir a seus serviços.

avalanche

Esta ferramenta ajuda a detectar defeitos são programas no modo de análise dinâmica testado. Ele coleta dados e analisa o desempenho do objeto pista projetada. O testador é dado um conjunto de entradas que causam erro ou não utilizam o conjunto existente de restrições. Graças a um bom teste do algoritmo desenvolvido por um grande número de situações possíveis. O programa recebe um conjunto diferente de dados de entrada, que permitem a simular um grande número de situações e criar condições em que o mais provável é a ocorrência de uma falha. Uma vantagem importante do programa é o uso de métrica heurística. Se há um problema, então o erro de aplicação é altamente provável. Mas este programa tem limitações, como apenas uma tomada de entrada de verificação marcada ou arquivo. Ao realizar uma operação, como programas de teste conterá informações detalhadas sobre os problemas com o ponteiro nulo, loops infinitos, endereços incorretos ou avarias devido ao uso de bibliotecas. Claro, isso não é uma lista completa dos erros detectados e seus únicos exemplos comuns. deficiências correção, infelizmente, têm desenvolvedores – meios automatizados não são adequados para esses fins.

KLEE

É um bom programa para testar a memória. Ele pode interceptar cerca de 50 chamadas de sistema e um grande número de processos virtuais, portanto, executados em paralelo ou separadamente. Mas, em geral, o programa não está à procura de alguns lugares suspeitos, e processa o montante máximo possível de código e análises utilizados caminhos de dados. Devido a isso, o programa de teste depende do tamanho do objeto. Ao verificar a aposta é colocada sobre os processos simbólicos. Eles são uma das possíveis maneiras de executar tarefas em um programa que é testado. Graças à operação paralela é possível analisar um grande número de variantes do trabalho do aplicativo de teste. Para cada caminho de conjuntos de dados de entrada são armazenados após seu teste, que começou com o cheque. Deve-se notar que os programas de teste usando KLEE ajuda a identificar um grande número de variações, que não deveriam estar. Pode encontrar problemas mesmo em aplicações que são desenvolvidas ao longo de décadas.