Vous êtes sur la page 1sur 34

Teste de Software Parte 1

Ricardo de Almeida Falbo


Tpicos Especiais Qualidade de Software 2008/2 Departamento de Informtica Universidade Federal do Esprito Santo

Agenda

Verificao e Validao Teste de Software: Definio e Conceitos Tcnicas de Teste Fases de Teste Processo de Teste Automatizao do Processo de Teste

Tpicos Especiais - Qualidade de Software 2008/2

Verificao e Validao

O desenvolvimento de software est sujeito a diversos tipos de problemas, os quais acabam resultando na obteno de um produto diferente daquele que se esperava. Muitos fatores podem ser identificados como causas de tais problemas, mas a maioria deles tem uma nica origem: erro humano (Delamaro et al., 2007). As atividades de Verificao e Validao (V&V) visam garantir, respectivamente, que:

o software est sendo desenvolvido corretamente, o software que est sendo desenvolvido o software correto.

Tpicos Especiais - Qualidade de Software 2008/2

V&V: Esttica x Dinmica

As atividades de V&V costumam ser divididas em estticas e dinmicas. As estticas no requerem a execuo ou mesmo a existncia de um programa ou modelo executvel para serem realizadas. As dinmicas se baseiam na execuo de um programa ou modelo (Delamaro et al., 2007).

Tpicos Especiais - Qualidade de Software 2008/2

Teste de Software

o processo de executar um programa com o objetivo de encontrar defeitos (Myers, 1979). , portanto, uma atividade de V&V dinmica. Do ponto de vista psicolgico, o teste de software uma atividade com um certo vis destrutivo, ao contrrio de outras atividades do processo de software.

Tpicos Especiais - Qualidade de Software 2008/2

Perspectiva de Teste

Bons testadores necessitam de um conjunto especial de habilidades. Um testador deve abordar um software com a atitude de questionar tudo sobre ele (McGregor e Sykes, 2001). A perspectiva de teste , um modo de olhar qualquer produto de desenvolvimento e questionar a sua validade. Habilidades requeridas na perspectiva de teste:

Querer prova de qualidade, No fazer suposies, No deixar passar reas importantes, Procurar ser reproduzvel.
Tpicos Especiais - Qualidade de Software 2008/2 6

Perspectiva de Teste

A perspectiva de teste requer que um fragmento de software demonstre no apenas que ele executa de acordo com o especificado, mas que executa apenas o especificado (McGregor e Sykes, 2001). O software faz o que deveria fazer e somente isso?

Tpicos Especiais - Qualidade de Software 2008/2

Teste de Software

Executa-se um programa ou modelo utilizando algumas entradas em particular e verificar-se se seu comportamento est de acordo com o esperado. Caso a execuo apresente algum resultado no especificado, um defeito foi identificado. Os dados da execuo podem servir como fonte para a localizao e correo de defeitos, mas teste no depurao (Delamaro et al., 2007).

Tpicos Especiais - Qualidade de Software 2008/2

Conceitos

Seja P um programa a ser testado. O domnio de entrada de P (D(P)) o conjunto de todos os valores possveis que podem ser utilizados para executar P. Um dado de teste para P um elemento de D(P). O domnio de sada de P o conjunto de todos os possveis resultados produzidos por P. Um caso de teste de P um par formado por um dado de teste mais o resultado esperado para a execuo de P com aquele dado de teste. Ao conjunto de todos os casos de teste usados durante uma determinada atividade de teste d-se o nome de conjunto de casos de teste ou conjunto de teste (Delamaro et al., 2007).
Tpicos Especiais - Qualidade de Software 2008/2 9

Cenrio Tpico da Atividade de Teste

Definido um conjunto de casos de teste T, executa-se P com T e verificam-se os resultados obtidos. Se os resultados obtidos coincidem com os resultados esperados, ento nenhum defeito foi identificado (O software passou no teste). Se, para algum caso de teste, o resultado obtido difere do esperado, ento um defeito foi detectado (O software no passou no teste). De maneira geral, fica por conta do testador, baseado na especificao do programa, decidir sobre a correo da execuo (Delamaro et al., 2007).
Tpicos Especiais - Qualidade de Software 2008/2 10

Cenrio Tpico da Atividade de Teste


Espec(P) D(P)

Sucesso ou Falha

Entradas corretas

Tpicos Especiais - Qualidade de Software 2008/2

11

Teste Exaustivo

Para se poder garantir que P no contm defeitos, P deveria ser executado com todos os elementos de D(P). Seja um programa exp com a seguinte especificao: exp(int x, int y)=xy

D(exp) = todos os pares de nmeros inteiros (x,y) passveis de representao. Cardinalidade (#) de D(exp) = 2n * 2n, onde n = nmero de bits usado para representar um inteiro. Em uma arquitetura de 32 bits, #(D(exp)) = 264 Se cada teste puder ser executado em 1 milissegundo, seriam necessrios aproximadamente 5,85 milhes de sculos para executar todos os testes.

Logo, em geral, teste exaustivo no vivel.


Tpicos Especiais - Qualidade de Software 2008/2 12

Teste de Software

Ao se testar P, devem-se selecionar alguns pontos especficos de D(P) para executar. Portanto, testes podem mostrar apenas a presena de defeitos, mas no a ausncia deles. Um aspecto crucial para o sucesso na atividade de teste a escolha correta dos casos de teste. Um teste bem-sucedido identifica defeitos que ainda no foram detectados. Um bom caso de teste aquele que tem alta probabilidade de encontrar um defeito ainda no descoberto.

Tpicos Especiais - Qualidade de Software 2008/2

13

Teste de Software

A escolha de casos de teste passa pela identificao de subdomnios de teste. Um subdomnio de teste um subconjunto de D(P) que contm dados de teste semelhantes, ou seja, que se comportam do mesmo modo; por isso, basta executar P com um deles. Fazendo-se isso com todos os subdomnios de D(P), consegue-se um conjunto de teste T bastante reduzido em relao a D(P), mas que, de certa maneira, representa cada um de seus elementos (Delamaro et al., 2007).

Tpicos Especiais - Qualidade de Software 2008/2

14

Teste de Software

Existem duas maneiras de se selecionar elementos de cada um dos subdomnios de teste (Delamaro et al., 2007):

Teste Aleatrio: um grande nmero de casos de teste selecionado aleatoriamente, de modo que, probabilisticamente, se tenha uma boa chance de ter todos os subdomnios representados em T. Teste de Subdomnios ou Teste de Partio: procura-se estabelecer quais so os subdomnios a serem utilizados e, ento, selecionam-se os casos de teste em cada subdomnio.

Tpicos Especiais - Qualidade de Software 2008/2

15

Teste de Subdomnios

A identificao dos subdomnios feita com base em critrios de teste. Dependendo dos critrios estabelecidos, so obtidos subdomnios diferentes. Tipos principais de critrios de teste:

Funcionais Estruturais Baseados em Modelos Baseados em Defeitos

O que diferencia cada um deles o tipo de informao utilizada para estabelecer os subdomnios (Delamaro et al., 2007) Tcnicas de Teste.
Tpicos Especiais - Qualidade de Software 2008/2 16

Teste Funcional ou Caixa-Preta

Tcnica de projeto de casos de teste na qual o programa ou sistema considerado uma caixapreta. Para test-lo, so fornecidas entradas e avaliadas as sadas geradas para verificar se esto em conformidade com os objetivos especificados. Os detalhes de implementao no so considerados. O software avaliado segundo o ponto de vista do usurio (Delamaro et al., 2007).

Tpicos Especiais - Qualidade de Software 2008/2

17

Teste Estrutural ou Caixa Branca

Estabelece os requisitos de teste com base em uma dada implementao, requerendo a execuo de partes ou componentes elementares de um programa. Baseia-se no conhecimento da estrutura interna do programa. Caminhos lgicos so testados, estabelecendo casos de teste que pem prova condies, laos, definies e usos de variveis. Em geral, a maioria dos critrios estruturais utiliza uma representao de Grafo de Fluxo de Controle (Delamaro et al., 2007).
Tpicos Especiais - Qualidade de Software 2008/2 18

Teste Estrutural

Blocos disjuntos de comandos so considerados ns. A execuo do primeiro comando do bloco acarreta a execuo de todos os outros comandos desse bloco, na ordem dada. Todos os comandos em um bloco tm um nico predecessor (possivelmente com exceo do primeiro) e um nico sucessor (possivelmente com exceo do ltimo) (Delamaro et al., 2007).

Tpicos Especiais - Qualidade de Software 2008/2

19

Teste Estrutural

Limitao: se um programa no implementa uma funo, no existir um caminho que corresponda a ela e nenhum dado de teste ser requerido para exercit-la. Essa tcnica vista como complementar s demais, uma vez que cobre classes distintas de defeitos. As informaes obtidas pela aplicao de critrios estruturais so muito teis para as atividades de depurao e manuteno (Delamaro et al., 2007).

Tpicos Especiais - Qualidade de Software 2008/2

20

Teste Baseado em Modelos

Boa parte do tempo despendido na atividade de teste gasta buscando-se identificar o que o sistema deveria saber. Antes de se perguntar se o resultado est correto, deve-se saber qual seria o resultado correto. Um modelo muito til para tal, servindo tanto como orculo (instrumento que decide se a sada obtida coincide com a sada esperada) quanto como base para a definio de casos de teste. Existem diversas tcnicas baseadas em Mquinas de Transies de Estados (Delamaro et al., 2007).
Tpicos Especiais - Qualidade de Software 2008/2 21

Teste Baseado em Defeito ou Teste de Mutao

Defeitos tpicos do processo de implementao so utilizados como critrios de teste. O programa que est sendo testado alterado diversas vezes, criando-se um conjunto de programas mutantes, inserindo defeitos no programa original. O trabalho do testador escolher casos de teste que mostrem a diferena de comportamento entre o programa original e os programas mutantes. Cada mutante determina um subdomnio de teste relacionado com um defeito especfico (Delamaro et al., 2007).
Tpicos Especiais - Qualidade de Software 2008/2 22

Teste de Mutao

Envolve os seguintes passos:


1. 2. 3. 4.

Gerao dos mutantes; Execuo do programa em teste; Execuo dos mutantes; Anlise dos mutantes.

praticamente impossvel executar 1, 3 e 4 sem apoio computacional. Assim, na prtica, deve-se associar aplicao dessa tcnica uma ferramenta de suporte. Na gerao de mutantes, operadores de mutao so aplicados. Ex.: eliminao de comandos, troca de operador relacional, troca de variveis escalares etc (Delamaro et al., 2007).
Tpicos Especiais - Qualidade de Software 2008/2 23

Fases de Teste

A atividade de teste dividida em fases com objetivos distintos. De uma forma geral, pode-se estabelecer como fases (Delamaro et al., 2007):

Teste de Unidade Teste de Integrao Teste de Sistema

Tpicos Especiais - Qualidade de Software 2008/2

24

Teste de Unidade

Tem como foco as menores unidades de um programa. Uma unidade um componente de software que no pode ser subdividido. Nesta fase esperam-se encontrar defeitos relacionados a algoritmos incorretos ou mal implementados, estruturas de dados incorretas ou simples erros de programao. Pode ser aplicado medida que ocorre a implementao das unidades e pode ser realizado pelo prprio desenvolvedor (Delamaro et al., 2007).
Tpicos Especiais - Qualidade de Software 2008/2 25

Teste de Unidade

Durante os testes de unidade, necessria a implementao de drivers e stubs. Um driver um programa que coordena o teste de uma unidade U, sendo responsvel por ler os dados fornecidos pelo testador, repassar esses dados na forma de parmetros para U, coletar os resultados produzidos por U e apresent-los para o testador. Um stub um programa que substitui, na hora do teste, uma unidade chamada por U, simulando o comportamento dessa unidade com o mnimo de computao ou manipulao de dados (Delamaro et al., 2007).
Tpicos Especiais - Qualidade de Software 2008/2 26

Teste de Unidade

Todas as tcnicas de teste se aplicam ao teste de unidade. Teste de Mutao voltado principalmente para o teste de unidade, ainda que haja adaptaes para outras fases. Por exemplo, mutao de interfaces teste de integrao.

Tpicos Especiais - Qualidade de Software 2008/2

27

Teste de Integrao

Deve ser realizado aps serem testadas as unidades individualmente. A nfase colocada na construo da estrutura do sistema. Deve-se verificar se as partes, quando colocadas para trabalhar juntas, no conduzem a erros. Requer grande conhecimento das estruturas internas do sistema e, por isso, geralmente executado pela prpria equipe de desenvolvimento (Delamaro et al., 2007). Todas as tcnicas de teste se aplicam, com destaque para o teste funcional.

Tpicos Especiais - Qualidade de Software 2008/2

28

Teste de Sistema

Uma vez integradas todas as partes, inicia-se o teste de sistema. Quando realizado por uma equipe de teste, o objetivo verificar se as funcionalidades especificadas na especificao de requisitos foram corretamente implementadas. Quando realizado por usurios, o objetivo validar o sistema (Teste de Aceitao). uma boa prtica que essa fase seja realizada por testadores independentes. Tipicamente, aplica-se teste funcional.
Tpicos Especiais - Qualidade de Software 2008/2 29

Teste de Regresso

A cada novo mdulo adicionado ou alterao, o software se modifica. Essas modificaes podem introduzir novos defeitos, inclusive em funes que previamente funcionavam corretamente. Assim, necessrio verificar se as alteraes efetuadas esto corretas e, portanto, deve-se reexecutar algum subconjunto de testes que j foi conduzido para garantir que as modificaes no esto propagando efeitos colaterais indesejados (Pressman, 2006).

Tpicos Especiais - Qualidade de Software 2008/2

30

Processo de Teste

O processo de teste pode ser definido como um processo separado, mas intimamente ligado, ao processo de desenvolvimento. Isso porque eles tm metas e medidas de sucesso diferentes. Por exemplo, quanto menor a taxa de defeitos (razo entre o no de casos de teste que falham pelo total de casos de teste), mais bem sucedido considerado o processo de desenvolvimento. Por outro lado, quanto maior a taxa de defeitos, considera-se mais bem sucedido o processo de teste (McGregor e Sykes, 2001).

Tpicos Especiais - Qualidade de Software 2008/2

31

Processo de Teste

Independentemente da fase de teste, o processo de teste inclui as seguintes atividades:


Planejamento Anlise de Requisitos de Teste Projeto de Casos de Teste Implementao de Casos de Teste Execuo Anlise

Tpicos Especiais - Qualidade de Software 2008/2

32

Automatizao do Processo de Teste

um ponto importante para o sucesso no teste de um software. O processo de teste tende a ser extremamente dispendioso e muito importante utilizar ferramentas de apoio ao teste para buscar aumentar a produtividade. H diversos tipos de ferramentas de teste. Ainda assim, muito trabalho humano necessrio para criar os casos de teste adequados ao critrio utilizado (Delamaro et al., 2007).

Tpicos Especiais - Qualidade de Software 2008/2

33

Referncias

Delamaro, M.E., Maldonado, J.C., Jino, M., Introduo ao Teste de Software, Srie Campus SBC, Editora Campus, 2007. Koscianski, A., Soares, M.S., Qualidade de Software, Editora Novatec, 2006. Myers, G.J., The Art of Software Testing, 2nd edition, John Wiley & Sons, 2004. McGregor, J.D., Sykes, D.A., A Practical Guide to Testing Object-Oriented Software, AddisonWesley, 2001. Pressman, R.S., Engenharia de Software. 6a edio, McGrawHill, 2006.

Tpicos Especiais - Qualidade de Software 2008/2

34

Vous aimerez peut-être aussi