Testar de caixa branca é um método de projeto do caso do teste que use a estrutura do controle do projeto processual derivar casos do teste. Testar casos pode ser derivado isso
1. garantia que todos os trajetos independentes dentro de um módulo estiveram exercitados pelo menos uma vez, . exercício 2 todas as decisões lógicas em seus lados verdadeiros e falsos, 3. executam todos os laços em seus limites e dentro de seus limites operacionais, e 4. estruturas de dados internas do exercício para assegurar sua validez.
A natureza de defeitos do software
Os erros da lógica e as suposições incorretas são inversa proporcionais à probabilidade que um trajeto do programa estará executado. Processar geral tende a ser compreendido bem quando processar especial do caso tender a ser prone aos erros.
Nós acreditamos frequentemente que um trajeto lógico não é provável ser executado quando pode ser executado em uma base regular. Nossas suposições inconscientes sobre o controle fluem e os dados conduzem para projetar os erros que podem somente ser detectados testar do trajeto.
Os erros tipográficos são aleatórios.
Testar do trajeto da base
Este método permite o desenhador de derivar uma medida lógica da complexidade de um projeto processual e de usá-la como uma guia para definir um jogo da base de trajetos da execução. Testar os casos que exercitam o jogo da base são garantidos para executar pelo menos cada indicação no programa uma vez durante testar.
Gráficos do fluxo
Os gráficos do fluxo podem ser usados representar o fluxo do controle em um programa e podem ajudar na derivação do jogo da base. Cada nó do gráfico do fluxo representa um ou mais indicação processual. As bordas entre nós representam o fluxo do controle. Uma borda deve terminar em um nó, mesmo se o nó não representar nenhumas indicações processuais úteis. Uma região em um gráfico do fluxo é uma área limitada por bordas e por nós. Cada nó que contem uma circunstância é chamado um nó do predicado. A complexidade de Cyclomatic é uma métrica que forneça uma medida quantitative da complexidade lógica de um programa. Define o número de trajetos independentes no jogo da base e fornece assim um limite superior para o número dos testes que devem ser executados.
O jogo da base
Um trajeto independente é todo o trajeto com um programa que introduza pelo menos um jogo novo de processar indicações (deve se mover ao longo pelo menos de uma borda nova no trajeto). O jogo da base não é original. Todo o número de jogos diferentes da base pode ser derivado para um projeto processual dado. A complexidade de Cyclomatic, V (G), porque um gráfico G do fluxo é igual a
1. O número das regiões no gráfico do fluxo. 2. V (G) = E - N + 2 onde E está o número das bordas e N são o número dos nós. 3. V (G) = P + 1 onde P é o número de nós do predicado.
Derivando casos do teste 1. Do código do projeto ou de fonte, derivar um gráfico do fluxo. 2. Determinar a complexidade cyclomatic deste gráfico do fluxo. Mesmo sem um gráfico do fluxo, V (G) pode ser determinado contando o número de indicações condicionais no código. 3. Determinar um jogo da base de trajetos linear independentes. Os nós do predicado são úteis para determinar os trajetos necessários. 4. Preparar os casos do teste que forçarão a execução de cada trajeto no jogo da base. Cada caso do teste é executado e comparado aos resultados previstos.
Automatizando derivação ajustada da base A derivação do gráfico do fluxo e do jogo de trajetos da base é amenable à automatização. Uma ferramenta do software para fazer isto pode ser desenvolvida usando uma estrutura de dados chamada uma matriz do gráfico. Uma matriz do gráfico é uma matriz quadrada cujo o tamanho seja equivalente ao número dos nós no gráfico do fluxo. Cada fileira e coluna correspondem a um nó particular e a matriz corresponde às conexões (bordas) entre nós. Adicionando um peso da ligação a cada entrada da matriz, mais informação sobre o fluxo do controle pode ser capturada. Em seu formulário mais simples, o peso da ligação é 1 se uma borda existir e 0 se não. Mas outros tipos de pesos da ligação podem ser representados:
½ do ¿ do ï a probabilidade que uma borda estará executada, ½ que do ¿ do ï o tempo processando expended durante a ligação traversal, ½ do ¿ do ï a memória requerida durante a ligação traversal, ou ½ do ¿ do ï os recursos requeridos durante a ligação traversal.
Os algoritmos da teoria de gráfico podem ser aplicados a estas matrizes do gráfico à ajuda na análise necessária produzir o jogo da base.
Testar do laço
Focos desta técnica da caixa do branco exclusivamente na validez de construções do laço. Quatro classes diferentes dos laços podem ser definidas:
Os seguintes testes devem ser aplicados aos laços simples onde n é o número máximo de passagens permissíveis através do laço:
1. faixa clara o laço inteiramente, . somente passagem 2 uma vez através do laço, 3. passagens de m através do laço onde m < n="">
4. n - 1, n, n + 1 passa através do laço.
4. n - 1, n, n + 1 passes through the loop.
Laços aninhados
Testar de laços aninhados não pode simplesmente estender a técnica de laços simples desde que este resultaria em um número geomètrica crescente de casos do teste. Uma aproximação para laços aninhados:
1. Começar pelo laço innermost. Ajustar todos laços restantes aos valores mínimos.
2. Testes de laço simples da conduta para o laço innermost ao prender os laços exteriores em seus mínimos. Adicionar testes para valores out-of-range ou excluídos. 3. Trabalhar para fora, conduzir testa para o laço seguinte ao manter todos laços exteriores restantes em mínimos e em outros aninhou laços aos valores típicos. 4. Continuar até que todos os laços estejam testados.
Laços concatenados
Os laços concatenados podem ser testados como laços simples se cada laço for independent do outro. Se não forem independentes (por exemplo o contador do laço para um é o contador do laço para o outro), a seguir a aproximação aninhada pode ser usada.
Laços Unstructured
Este tipo de laço deve redesigned não testado!!! Outras técnicas brancas da caixa Outras técnicas testando de caixa branca incluem:
1. Testar da circunstância exercita as condições lógicas em um programa. 2. Os fluxo de dados testando seleciona trajetos do teste de acordo com as posições das definições e dos usos das variáveis no programa.