terça-feira, 20 de novembro de 2012

Teste de técnicas de software


Teste de software é um processo que consiste de todas as atividades do ciclo de vida, tanto estáticos e dinâmicos, preocupados com a preparação, planejamento e avaliação de produtos de software e produtos relacionados com o trabalho para determinar, de que satisfazem os requisitos especificados, para demonstrar que eles são adequados à finalidade e à detectar defeitos. ~ Fundação de Teste de Software por Dorothy Graham, Erik van VEENENDAL, Evans Isabel, Preto Rex.

Teste de Software - Uma Introdução!

A partir da definição de teste de software, é claro que o teste de software constitui o componente fundamental de garantia da qualidade de software. Enquanto um software está sendo testado, ele é colocado em pedaços para descobrir os erros no software. Quando o software é testado, o engenheiro de teste tem como objetivo encontrar erros no sistema, para encontrar um erro desconhecido. Para encontrar novos erros, técnicas de teste de software diferentes são usados. A finalidade das diferentes técnicas é descobrir novos erros. Neste artigo, veremos os diferentes tipos de técnicas de teste de software utilizados no processo de teste de software.

Software Técnicas e estratégias de teste

Normalmente o teste de software é realizada em todas as fases do ciclo de vida de desenvolvimento do software. A vantagem do teste em todas as fases, é que ela ajuda a localizar defeitos diferentes em diferentes estágios de desenvolvimento do software. Isto ajuda a minimizar o custo de software, uma vez que é mais fácil de fazer os defeitos e corrigir os defeitos na fase inicial de desenvolvimento do software. Quando todo o produto está pronto a aumentos de custos, uma vez que existem um número de outros componentes, os quais são também dependentes do componente, que tem defeitos. As metodologias de teste de software são amplamente divididas em dois, ou seja, técnicas estáticas e técnicas dinâmicas.

Técnicas de Teste de Software estáticos

Neste tipo de técnica, de um componente de teste é realizado sem a execução do programa. Existe uma análise estática do código, o qual é levada a cabo. Existem diferentes tipos de técnicas estáticas de teste de software também.

Comente

Revisão é dito ser uma técnica poderosa estática, que é levada a cabo nas fases iniciais do ciclo de vida de software de teste. Os comentários podem ser formal ou informal. A inspeção é a técnica de análise mais documentado e formal. No entanto, na prática, a avaliação informal é, talvez, a técnica mais utilizada.

Nos estágios iniciais do desenvolvimento, o número de pessoas que frequentam as opiniões, seja formal ou informal, são menos, mas aumentar nas fases posteriores do desenvolvimento de software. Peer Review é uma revisão de um produto de software realizado pelos pares e colegas do autor do componente de software, para identificar os defeitos no componente e também para recomendar quaisquer melhorias no sistema, se necessário. Os tipos de comentários são:

* Passo a passo: O autor do documento a ser revisto orienta os participantes através do documento, juntamente com o seu processo de pensamento / ela para chegar a um entendimento comum, bem como para obter feedback sobre o documento componente em análise.

* Análise Técnica: É uma discussão de grupo de pares, onde o foco da discussão, é alcançar um consenso sobre a abordagem técnica tomadas, durante o desenvolvimento do sistema.

* Inspeção: Este também é um tipo de revisão por pares, onde o foco é o exame visual de vários documentos para detectar eventuais defeitos no sistema. Este tipo de revisão é sempre baseada em um procedimento documentado.

Análise Estática por Ferramentas

Ferramentas de análise estática foco no código do software. Estas ferramentas são utilizadas por desenvolvedores de software antes, bem como às vezes durante componente e teste de integração. As ferramentas utilizadas incluem

* Coding Standards: Neste caso, é uma verificação conduzida para verificar a adesão a padrões de codificação.

* Métricas de Código: As métricas de código ajuda a medir atributos estruturais do código. Quando o sistema se torna cada vez mais complexo, que ajuda a decidir as alternativas de projeto, mais por isso, enquanto redesenhar partes do código.

* Estrutura de Código: Três principais aspectos da estrutura do código são a estrutura de controle de fluxo, estrutura de dados de fluxo e estrutura de dados.

Técnicas de Teste de Software dinâmicas

Nas técnicas de teste dinâmico de software, o código é realmente testados para os defeitos. Esta técnica é dividida em três sub-categorias, nomeadamente técnica de especificação baseada em técnica de estrutura baseada em experiência e técnica de base. Veremos agora a cada um deles.

Especificação Técnicas de Teste Baseados

O procedimento utilizado para obter e / ou seleccionar os casos de teste com base na análise de especificações funcionais, quer ou não de especificações funcionais, de um componente ou sistema, sem qualquer referência à estrutura interna do componente ou sistema. É também conhecido como "teste de caixa preta 'ou' de entrada / saída técnicas de teste orientadas. Eles são chamados o testador não tem conhecimento do modo como o sistema é estruturado para dentro. O testador concentra-se em que o software faz e não é incomodado sobre como ele faz isso. O teste funcional concentra-se em que o sistema faz, juntamente com as suas características ou funções. Por outro lado, os testes não funcionais concentrados de quão bem o sistema faz algo. Há cinco principais especificações técnicas de teste baseados em: 1. Particionamento de equivalência: Os casos de teste são projetados para executar entradas representante de uma partição de equivalência ou classes de equivalência. Os casos de teste são projetados, de modo que os casos de teste cobrir cada partição pelo menos uma vez. Para explicar ainda mais, uma técnica de divisão de equivalência, a ideia é a de dividir - um conjunto de condições de teste em sub-grupos ou conjuntos, que podem ser considerados o mesmo. Se algum valor a partir do grupo é utilizado no sistema, o resultado deve ser a mesma. Isto ajuda a reduzir a execução de um número de casos de teste, como apenas uma condição de cada partição pode ser testada. Exemplo: Se 1 a 100 são os valores válidos, então o particionamento válido é de 1 a 50, 50 a 100. Portanto, para o particionamento válido, 1, 50 e 100 são os valores para os quais o sistema tem que ser controlado. Mas não termina aí, o sistema terá que ser verificado também para partições inválidos também. Assim, os valores aleatórios como -10, 125, etc, são partições inválidas. Ao escolher os valores para o particionamento inválido, os valores devem estar longe das fronteiras válidos.

2. Análise Boundary Valor: Valor de entrada ou de saída, que está na extremidade de uma partição de equivalência ou está à menor distância incremental em ambos os lados de uma aresta. Esta técnica baseia-se testar os limites entre as partições para ambos os limites e fronteiras válidos inválidos. Exemplo: Se 1 a 99 são as entradas válidas. Portanto, os valores 0 e 100 são os valores inválidos. Assim, as etapas de teste devem ser concebidos de modo a incluir valores 0, 1, 99 e 100, a saber o funcionamento do sistema.

3. Tabela de Decisão: Esta técnica se concentra na lógica de negócio ou regras de negócio. Uma tabela de decisão é também conhecido como tabela efeito causa. Nesta tabela existe combinação de entradas, com as suas saídas associadas, as quais são usadas para projetar casos de teste. Esta técnica funciona bem em conjunto com o particionamento de equivalência. Aqui, a primeira tarefa é a de identificar a função adequada, que tem características de comportamento, que reagem de acordo com uma combinação de entradas. Se existem um grande número de condições, em seguida, dividindo-os em subconjuntos ajuda a avançar com os resultados precisos. Se há duas condições, então você vai ter 4 combinação de conjuntos de entrada. Da mesma forma, para três condições há 8 combinação e para 4 condições há 16 combinação, etc

4. Teste de Transição de Estado: Esta técnica é utilizada, onde qualquer aspecto do componente ou sistema pode ser descrita como uma "máquina de estados finitos». Os casos de teste para esta técnica são projetados para executar transição de estado válidos e inválidos. Em qualquer estado, um evento pode dar origem a uma única ação, mas o mesmo evento de outro estado pode causar uma ação diferente e um estado final diferente.

5. Use Testes de caso: Ela ajuda a identificar os casos de teste, que exercem todo o sistema em uma transação por transação base desde o início ao fim. Os casos de teste são projetados para executar cenários da vida real. Eles ajudam a desvendar defeitos de integração.

Técnicas de Estrutura de testes baseados

Há dois efeitos de técnicas de estrutura base de teste, viz. Medição de teste de cobertura e design caso estrutural teste. Eles são uma boa maneira de gerar casos de teste adicionais, que são diferentes dos casos de teste existentes, decorrentes das técnicas de especificação baseados. Isso também é conhecido como estratégia de caixa branca testes ou técnicas de teste caixa branca.

* Cobertura de Teste: O grau expressa em percentagem, para a qual um item de cobertura especificada foi exercida por um conjunto de testes. A medida da cobertura de base é



Cobertura =

Número de itens de cobertura número exercisedTotal de itens de cobertura

* 100%

Há um perigo de usar a medida de cobertura. Contrariamente à crença, uma cobertura de 100% não significa que o código é 100% testado.

* Cobertura de Declaração e Testes Declaração:

Esta é a porcentagem de declarações executáveis, que têm sido exercidas por um conjunto de testes particular. É importante notar, que uma instrução pode estar em uma única linha, ou pode ser dividido em várias linhas. Ao mesmo tempo, uma linha pode conter mais de uma instrução, ou uma parte de uma instrução bem e não se esquecer das instruções, que contêm outras declarações dentro deles. A fórmula para ser utilizada para a cobertura de instrução é:



Declaração de cobertura =

Número de declarações exercisedTotal número de declarações

* 100%

* Cobertura de decisão e Teste de decisão:

Declarações de decisão são declarações como 'If', instruções de loop, declarações de caso, etc, onde há dois ou mais resultados possíveis da mesma instrução. Para calcular a cobertura decisão, a fórmula que você vai usar é



Cobertura decisão =

Número de resultados da decisão exercisedTotal número de resultados da decisão

* 100%

Cobertura de decisão é mais forte que a cobertura de declaração, como uma cobertura de 100% sempre decisão garante cobertura de declaração, mas o contrário não é verdadeiro. Enquanto verifica cobertura de decisão, cada decisão deve ter tanto uma verdadeira, bem como um resultado falso.

* Outros estrutura baseada Técnicas de Teste:

Para além da estrutura de base em técnicas mencionadas acima, existem algumas outras técnicas também. Eles incluem seqüência de código linear e cobertura de salto (LCSAJ), cobertura de decisão múltipla condição (MCDC), teste de caminho, etc

Experimente Técnicas de Teste Baseados

Embora o teste precisa ser rigorosa, sistemática e exaustiva, existem algumas técnicas não sistemáticas, que são baseados em uma pessoa de conhecimento, imaginação, experiência e intuição. Um caçador de bugs, muitas vezes é capaz de localizar um defeito no sistema de esquiva. As duas técnicas, que se enquadram nesta categoria, são eles:

Erro Adivinhar

É uma técnica de projeto de teste, onde a experiência do testador é posta à prova, para caçar insetos indescritível, que pode ser uma parte do componente ou sistema, devido a erros cometidos. Esta técnica é frequentemente usada após as técnicas formais foram usados ​​para testar o código e provou ser bastante útil. Uma abordagem estruturada para ser utilizada na abordagem suposição de erro é a lista de possíveis defeitos, que podem ser uma parte integrante do sistema e, em seguida, os casos de teste, numa tentativa de reproduzir.

Exploratórios Técnicas de Teste

Teste exploratório é também conhecido como "teste macaco '. É uma aproximação hands-on, em que há o planeamento mínima de ensaio do componente, mas testes máximo ocorre. O projeto de teste e execução de testes acontecem simultaneamente, sem documentar formalmente as condições de teste, casos de teste e scripts de teste. Essa abordagem é útil, quando as especificações do projeto são pobres ou quando o tempo na mão é extremamente limitada.

Existem diferentes tipos de técnicas de software de estimativa de testes. Uma das técnicas de consultoria envolve pessoas que irão realizar as atividades de teste e as pessoas que têm conhecimentos sobre as tarefas a serem feitas. As técnicas de teste de software a serem utilizados para testar o projecto depende de uma série de factores. Os principais fatores são a urgência do projeto, a gravidade do projeto, os recursos em mãos, etc Ao mesmo tempo, nem todas as técnicas de teste de software será utilizado em todos os projetos, de acordo com as técnicas organizacionais policia será decidido....

Nenhum comentário:

Postar um comentário