Você está na página 1de 4

TCNICAS DE TESTE DE SOFTWARE E ESTRATGIAS DE TESTE A atividade de teste de software um elemento crtico da garantia de qualidade de software e representa a ltima

a reviso de especificao, projeto e codificao. Objetivos da Atividade de Teste 1. 2. 3. A atividade de teste o processo de executar um programa com a inteno de descobrir um erro. Um bom caso de teste aquele que tem uma elevada probabilidade de revelar um erro ainda no descoberto. Um teste bem sucedido aquele que revela um erro ainda no descoberto.

Teste de Caminho Bsico O mtodo de caminho bsico possibilita que o projetista do caso de teste derive uma medida da complexidade lgica de um projeto procedimental e use essa medida como guia para definir um conjunto bsico de caminhos de execuo. Teste de Estrutura de Controle Estes testes ampliam a cobertura dos testes e melhoram a qualidade dos testes.
l

Teste de condio: Pe em prova as condies lgicas contidas num mdulo de programa. Uma condio simples uma varivel booleana ou uma expresso relacional, possivelmente precedida por um operador NOT ( ' ) . Uma expresso relacional assume a forma E1<operador relacional>E2. Uma condio composta constituda de duas ou mais condies simples, operadores booleanos e parnteses, OR ( | ). AND ( & ) e NOT ( ' ). Uma condio sem expresses relacionais chamada expresso booleana. O mtodo de teste de condio concentra-se em testar cada condio do programa.

l l

Teste de Fluxo de Dados: Seleciona caminhos de teste de um programa de acordo com as localizaes das definies e usos de variveis no programa. Teste de Laos: Se concentra exclusivamente na validade das construes de laos, laos simples, aninhados, concatenados, noestruturados.

Particionamento de Equivalncia Este mtodo divide o domnio de entrada de um programa em classes de dados a partir das quais os casos de teste podem ser derivados. O particionamento de equivalncia procura definir um caso de teste que descubra classes de erros, assim reduzindo o nmero total de casos de teste que devem ser desenvolvidos. Uma classe de equivalncia representa um conjunto de estados vlidos para condies de entrada. Anlise de Valor Limite BVA A anlise de valor limite leva escolha de casos de teste que pem prova os valores fronteirios. A anlise de valor limita uma tcnica de projeto de casos de teste que complementa o particionamento de equivalncia. Em vez de selecionar qualquer elemento de uma classe de equivalncia, a BVA leva seleo de casos de testes nas extremidades da classe. Em vez de se concentrar somente nas condies de entrada, a BVA deriva os casos de teste tambm do domnio de sada. Teste de Sistemas de Tempo Real Neste tipo de deste, encontramos o elemento de combinao alinhado ao teste que o tempo. Os testes de software devem levar em considerao o impacto das falhas de hardware sobre o processamento do software. Tais falhas podem ser extremamente difceis de ser simuladas realsticamente. Estratgia global para sistemas de tempo real: 1. 2. 3. 4. teste de tarefas: O primeiro passo da atividade de testes de tempo real consiste em testar cada tarefa independentemente. Este teste revela erros de lgica e de funo, mas no revelar erros comportamentais ou de timing. Teste comportamental: possvel simular o comportamento de um sistema de tempo real e examinar seu comportamento como uma conseqncia de eventos externos. O comportamento do software examinado a fim de detectar erros de comportamento. Teste intertarefas: As tarefas assncronas, que sabidamente comunicam-se entre si, so testados com diferentes taxas de dados e cartas de processamento para determinar se ocorrero erros de sincronizao intertarefas. Teste do sistema: O software e o software so integrados e uma variedade completa de testes de sistema levada a efeito, numa

tentativa de descobrir erros na interface software/hardware.

ESTRATGIAS DE TESTE DE SOFTWARE Um esqueleto (template) de teste de software deve ser definido para o processo de engenharia do software. Esqueleto um conjunto de passos no qual podemos alocar tcnicas de projeto de casos de teste e mtodos de teste especfico. Uma estratgia de teste de software deve acomodar teste de baixo nvel que seja necessrio para verificar se um segmento de cdigo-fonte foi corretamente implementado, bem como teste de alto nvel que valide funes importantes do sistema contra requisitos do cliente. Verificao e Validao A verificao refere-se ao conjunto de atividades que garante que o software implemente corretamente uma funo especfica. A validao refere-se a um conjunto diferente de atividades que garante que o software que foi construdo rastrevel s exigncias do cliente. Os mtodos de anlise, projeto e implementao (codificao) atuam no sentido de aumentar a qualidade ao oferecer tcnicas uniformes e resultados previsveis. A anlise e o projeto de software (juntamente com a codificao) so tarefas construtivas , ou seja, o engenheiro de software cria um programa de computador, sua documentao e estruturas de dados correlatas. Do ponto de vista do construtor, a atividade de teste pode ser destrutiva, pois sempre vo ser descobertos erros no programa. Uma Estratgia de Teste de Software Teste unitrio, este teste concentra-se em cada unidade de software de acordo com a implementao do cdigo-fonte, ele exercita caminhos especficos da estrutura de controle de um mdulo, a fim de garantir uma completa cobertura e mxima deteco de erros. Teste de integrao, a ateno encontra-se no projeto e na construo da arquitetira de software, este teste cuida das questes associadas aos duplos problemas da verificao e construo em programas. Teste de validao, os requisitos estabelecidos como parte da anlise de requisitos de software so validados em relao ao software que foi construdo, o teste de validao oferece a garantia final de que o software atende a todas as exigncias funcionais, comportamentais e de desempenho. Teste de sistema, neste teste o software e outros elementos do sistema so testados como um todo, ele verifica se todos os elementos combinam-se adequadamente e se a funo/desempenho global do sistema conseguida. Critrios para a Concluso de Teste A atividade de teste jamais ter completada, a carga simplesmente transfere-se de voc (o projetista) para o cliente. Teste de Unidade O teste de unidade concentra-se no esforo de verificao da menor unidade de projeto de software - o mdulo. Caminhos de controle importantes so testados para descobrirem erros dentro das fronteiras do mdulo. A interface com o mdulo testada para ter a garantia de que as informaes fluem para dentro e para fora da unidade de programa que se encontra sob teste. A estrutura de dados local examinada para ter a garantia de que os dados armazenados temporariarmente mantm sua integridade durante todos os passos de execuo de um algoritmo. As condies de limite so testadas para ter a garantia de que o mdulo opera adequadamente nos limites estabelecidos para demarcarem ou restringirem o processamento. Entre os erros mais comuns de computao esto: 1. 2. 3. precedncia aritmtica incorreta ou mal compreendida; operaes em modo misto; inicializao incorreta;

Os casos de teste devem descobrir erros tais como: 1. 2. 3. comparao de diferentes tipos de dados; operadores lgicos ou precedncia incorretos; trmino do lao imprprio ou inexistente;

Teste de Integrao Este teste uma tcnica sistemtica para a construo da estrutura de programa realizando-se, ao mesmo tempo, testes para descobrir erros associados a interfaces. O objetivo , a partir dos mdulos testados no nvel de unidade, construir a estrutura de programa que foi determinada pelo projeto. Freqentemente, existe uma tendncia para tentar a integrao no-incremental; ou seja, construir o programa usando uma abordagem "big bang" onde todos os mdulos so combinados antecipadamente. O programa completo testado como um todo. A integrao incremental a anttese do big bang. O programa construdo e testado em pequenos segmentos, onde os erros so mais fceis de ser isolados e corrigidos; as interfaces tm maior probabilidade de ser testadas completamente; e uma abordagem sistemtica ao teste pode ser aplicada. Integrao Top-Down: uma abrdagem incremental construo das estruturas de programa. Os mdulos so integrados movimentando-se de cima para baixo atravs da hierarquia de controle, iniciando-se do mdulo de controle principal(programa principal).Os mdulos subordinados ao mdulo de controle principal so incorporados estrutura de uma maneira depht-first (primeiramente pela profundidade) ou breadth-first (primeiramente pela largura). Integrao Bottom-Up: inicia a construo e os testes com mdulos atmicos (isto , mdulos localizados nos nveis mais baixos da estrutura de programa). Uma vez que os mdulos so integrados de baixo para cima, o processamento exigido para os mdulos subordinados em determinado nvel est sempre disponvel, e a necessidade de stubs eliminada. A maior desvantagem da abordagem top-down a necessidade de ter stubs e as dificuldades de teste resultantes que podem ser compensados pela vantagem de testar logo as principais funes de controle. A maior desvantagem da integrao bootom-up que o programa no existe como entidade at que o ltimo mdulo seja adicionado. Os critrios que esto citados a seguir so aplicados a todas as fases de testes: Integridade de interface: As interfaces internas e externas so testadas medida que cada mdulo incorporado estrutura. Validade funcional: Testes projetados para a descoberta de erros funcionais so aplicados. Contedo de informao: Testes projetados para a descoberta de erros associados s estruturas de dados globais e locais so aplicados. Desempenho: Testes projetados para a verificao dos limites de desempenho estabelecidos durante o projeto de software so aplicados. Teste de Sistema O teste de sistema na verdade , uma srie de diferentes testes, cujo propsito primordial por completamente prova o sistema baseado em computador. No obstante cada teste tenha uma finalidade diferente, todo o trabalho deve verificar se todos os elementos do sistema foram adequadamente integrados e realizam as funes atribudas. Teste de Recuperao O teste de recuperao um teste de sistema que fora o software a falhar de diversas maneiras e verifica se a recuperao adequadamente executada. Teste de Segurana Este teste tenta verificar se todos os mecanismos de proteo embutidos num sistema o protegero, de acessos indevidos. Durante o teste de segurana, o analista desempenha papis de pessoas que desejam penetrar no sistema, qualquer coisa vale, tentando desarmar o sistema, e derrubar as defesas que tenham sido construdas.

Teste de Desempenho idealizado para testar o desempenho de run-time do software dentro do contexto de um sistema integrado. O teste de desempenho ocorre ao longo de todos os passos do processo de teste. Estudo Terico e Aplicado de Critrios de Teste e Validao na Produo de Software Consiste em estudo terico e emprico, definio e comparao de critrios de teste e implementao de ferramentas de software de apoio s atividades de teste na produo de software. Atividades de comparao entre critrios de teste funcional, estrutural , com nfase em critrios baseados em anlise de fluxo de dados, e em critrios baseados em erros, com nfase na Anlise de Mutantes, tambm so conduzidos dentro do escopo desta linha. Todos esses aspectos so explorados tanto no nvel de teste de unidade como no teste de integrao, assim como luz do paradigma de desenvolvimento de software orientado a objeto.