Você está na página 1de 28

Centro de Tecnologia da Informao Renato Archer CTI/MCT

Centro de Tecnologia da Informao Renato Archer, CTI


Ministrio da Cincia e Tecnologia, MCT

Modelo de Processo Genrico de Teste de Software

Autores:
Adalberto Nobiato Crespo: Adalberto.crespo@cti.gov.br Mario Jino: Jino@dca.fee.unicamp.br Miguel Argollo: Miguel.argollo@cti.gov.br Paulo M. S. Bueno: Paulo.bueno@cti.gov.br Celso P. Barros: Celso.barros@cti.gov.br

Dezembro/2010

SPB - Modelo de Processo Genrico de Teste de Software

Centro de Tecnologia da Informao Renato Archer CTI/MCT

Modelo de Processo Genrico de Teste de Software

Apresentao
Este documento apresenta um modelo de processo genrico de teste de software; apresenta o contexto do teste de software; define os subprocessos fundamentais de um processo de teste de software e apresenta alguns exemplos de processos de teste de software. Este documento parte integrante da Estrutura Tecnolgica de Teste de Software do Software Pblico Brasileiro SPB. Destina-se s comunidades do SPB interessadas na atividade de teste com o objetivo de aprimorar a qualidade dos produtos de software disponveis no Portal do SPB.

SPB - Modelo de Processo Genrico de Teste de Software

Centro de Tecnologia da Informao Renato Archer CTI/MCT

Sumrio
1 2 3 4 5 Introduo ........................................................................................................................ 4 O Que Teste de Software .............................................................................................. 4 O Que um Processo ....................................................................................................... 4 O Que um Processo de Teste de Software .................................................................... 5 Um Modelo de Processo Genrico de Teste de Software ............................................... 6 5.1 Subprocessos do Processo de Teste de Software .................................................... 7 Planejamento dos Testes ................................................................................. 7 Projeto dos Testes ............................................................................................ 8 Execuo e Registro dos Testes ....................................................................... 9 Acompanhamento dos Testes ........................................................................ 10 Finalizao dos Testes .................................................................................... 10

5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 6 7

Caracterizao do Processo de Teste............................................................................. 11 Exemplos de Processo de Teste de Software................................................................. 12 7.1 Teste ao Longo do Processo de Desenvolvimento de Software ............................ 12 Primeiro Exemplo: Processo de Teste Alinhado com o Modelo Cascata ....... 13 Segundo Exemplo: Processo de Teste Alinhado com o Processo Iterativo de Desenvolvimento ........................................................................................... 20

7.1.1 7.1.2

7.2 7.3

Teste de um Software Previamente Desenvolvido ................................................ 23 Teste de uma Nova Verso de um Software.......................................................... 26

SPB - Modelo de Processo Genrico de Teste de Software

Centro de Tecnologia da Informao Renato Archer CTI/MCT

Introduo

Sistemas computacionais tm hoje um papel fundamental, afetando de forma significativa os vrios segmentos da sociedade, tais como os setores de energia, transporte, financeiro, comrcio, telefonia, educao, s para citar alguns. O funcionamento inadequado desses sistemas tem potencial de gerar grandes prejuzos operacionais, financeiros, ou de colocar em risco vidas humanas; portanto, natural que as exigncias de qualidade e confiabilidade desses sistemas sejam cada vez maiores. Para que se atinjam altos nveis de qualidade de produtos que envolvem software, fundamental o aprimoramento dos processos de engenharia e de gesto no desenvolvimento de software. Alm de uma maior qualidade dos produtos de software, almeja-se que os projetos sejam bem sucedidos, com menores custos e respeitando os limites de prazo. O teste uma atividade fundamental para avaliar se o software produzido atende aos requisitos levantados com os usurios, identificar deficincias que possam existir em produtos de software e, ainda, obter evidncias da confiabilidade do software (ou da falta dela). Portanto, para a obteno de produtos de software de boa qualidade de suma importncia a adoo, por parte das organizaes desenvolvedoras, de boas prticas de teste de software. O teste uma das atividades de verificao e validao e no exclui a utilizao de outras atividades, como a realizao de inspees nos artefatos produzidos ao longo do desenvolvimento de software. O teste a avaliao final da qualidade do produto desenvolvido. O teste de software, realizado ao longo, no final ou aps o desenvolvimento do software, uma atividade que requer um processo bem definido que oriente a sua realizao.

O Que Teste de Software

Teste de software o processo de executar o software de uma maneira controlada com o objetivo de avaliar se ele se comporta conforme especificado. Tipicamente, o teste de um produto de software tem por objetivo avaliar se ele atende aos requisitos do usurio; identificar defeitos que possam existir nos produtos de software; e obter evidncias sobre a confiabilidade do software.

O Que um Processo

Um processo um conjunto de passos parcialmente ordenados, constitudos por atividades, mtodos, prticas e transformaes, usado para atingir uma meta. Esta meta geralmente est associada a um ou mais resultados concretos finais, que so os produtos da execuo do processo. Um processo define: o que feito (produto), quando feito (passos), por quem

SPB - Modelo de Processo Genrico de Teste de Software

Centro de Tecnologia da Informao Renato Archer CTI/MCT feito (agentes), as coisas que se utilizam (insumos) e as coisas que se produzem (resultados).

O Que um Processo de Teste de Software

Um processo de teste de software um conjunto de passos parcialmente ordenados constitudos por atividades, mtodos e prticas, usados para testar um produto de software. Numa viso contextual, um processo de teste tem as seguintes partes: Entradas: so todas as informaes necessrias para a execuo do teste do software, tais como informaes do software, especificao de requisitos, etc.; Mecanismos e Agentes: so as equipes de teste, as tcnicas de teste, os procedimentos de teste, as ferramentas, etc.; Restries e Condies: cronogramas, custos, confiabilidade requerida, etc. Sadas: so os resultados, produtos da execuo das atividades, tais como: software testado, defeitos revelados, nvel de confiabilidade atingido, qualidade desejada, etc. A Figura 1 ilustra a viso contextual de um processo de teste de software.

Figura 1: Viso Contextual de um Processo de Teste de Software

SPB - Modelo de Processo Genrico de Teste de Software

Centro de Tecnologia da Informao Renato Archer CTI/MCT

Um Modelo de Processo Genrico de Teste de Software

Um modelo de processo genrico de teste de software um modelo de processo abrangente que envolve todas as situaes de teste de um software e contm todas as atividades previstas no teste de um software. Um processo genrico de teste pode ser instanciado e implantado numa organizao desenvolvedora de software de acordo com as suas necessidades, seus recursos, padres utilizados, e tipo de software desenvolvido. A implantao do processo de teste envolve a definio das atividades a serem efetuadas e a definio dos artefatos a serem criados na realizao do teste de um software. Qualquer que seja o processo de teste existem atividades correlacionadas que podem ser agregadas em um subconjunto denominado subprocesso. O processo genrico de teste de software proposto possui os seguintes subprocessos: Planejamento do Teste; Projeto do Teste; Execuo e Registro do Teste; Acompanhamento do Teste; Finalizao do Teste.

A Figura 2 mostra um processo genrico de teste com seus respectivos subprocessos.

Acompanhamento
Avaliao de incidentes Avaliao de mtricas Avaliao de cobertura Acompanhamento dos riscos Tomada de aes corretivas Reviso e ajuste do planejamento Avaliao do cronograma Avaliao de recursos

Planejamento
Escopo Extenso Equipe Abordagem Mtricas e Medidas Recursos Ambiente Atividades Cronograma Riscos

Projeto
Abordagem Ambiente Tcnicas Critrios Tipos Mtricas e Medidas Procedimentos Base de dados Scripts Casos de teste

Execuo e Registro
Execuo: Registro:
Procedimentos Casos de teste Incidentes Dirio Resumo Medidas

Finalizao
Aceitao do produto Avaliao final:
Produto Medidas Equipe Cronograma Oportunidades de melhoria Resultados

Registro:

Figura 2: Um Processo Genrico de Teste de Software e seus Subprocessos.

SPB - Modelo de Processo Genrico de Teste de Software

Centro de Tecnologia da Informao Renato Archer CTI/MCT

5.1

Subprocessos do Processo de Teste de Software

Um processo de teste de software pode ser entendido como uma hierarquia de subprocessos, organizados de tal maneira que cada subprocesso tenha seu prprio modelo de processo. Cada subprocesso composto por atividades; tem critrios de incio e trmino para essas atividades; e as atividades de um subprocesso so organizadas em uma seqncia lgica. Alm disso, cada atividade de um subprocesso gera um conjunto de informaes que podem ser consolidadas num documento e devem ser utilizadas como subsdios para o acompanhamento do processo de teste. A Figura 3 ilustra a hierarquia dos subprocessos de um processo de teste de software.

P R O C E S S O
A C O M P A N H

D E
A

T E S T E
M E N T O

Planejamento

Projeto

Execuo Registro

Finalizao

Subprocesso Atividades

Subprocesso Atividades

Subprocesso Atividades

Subprocesso Atividades

Informaes

Informaes

Informaes

Informaes

Figura 3: Hierarquia dos Subprocessos do Processo de Teste de Software.

5.1.1 Planejamento dos Testes


A primeira atividade de planejamento de teste a iniciao, que consiste em coletar todas as informaes disponveis para o planejamento do teste. O produto deste subprocesso um conjunto de informaes denominado Plano de Teste de Software que descreve o planejamento de todas as atividades envolvidas no teste de um software. Alm das atividades, o Plano de Teste deve conter a abrangncia do teste, a abordagem utilizada no teste, os recursos necessrios, o cronograma das atividades de teste e a definio do ambiente operacional para a execuo dos testes. Um plano de teste uma forma de agrupar idias e experincias que possam ser aplicadas no projeto atual; ele serve como um mecanismo de comunicao com os demais envolvidos e permite a identificao, comunicao e discusso de problemas e pontos em aberto.

SPB - Modelo de Processo Genrico de Teste de Software

Centro de Tecnologia da Informao Renato Archer CTI/MCT As atividades de planejamento de teste procuram responder s seguintes perguntas: O que deve ser testado no software? O que pode ficar fora do teste? Que abordagem de teste vai ser seguida neste projeto? Quais riscos devem ser abordados pelos testes? Que equipe vai participar do teste do software? Quanto tempo est disponvel para o teste do software? Como as tarefas de teste do software sero distribudas neste tempo?

Tipicamente, o Plano de Teste identifica os itens de software a serem testados, o nvel em que os itens devem ser testados, a abordagem utilizada para testar cada um dos itens, as tarefas envolvidas em cada atividade de teste, as pessoas responsveis pelas atividades, os riscos associados ao teste, um cronograma das atividades e as mtricas para se medir o processo de teste . O Plano de Teste de Software pode conter informaes relacionadas a um projeto amplo de teste do software ou pode conter informaes relacionadas a um dos nveis de teste, tais como: Teste de Unidade, Teste de Integrao, Teste de Sistema e Teste de Aceitao. Um Plano de Teste de Software pode ser um conjunto de informaes to simples e resumido que caiba em poucas linhas ou seguir um padro altamente estruturado. O nvel de detalhamento depender do formalismo adotado pela organizao. O Guia para Planejar o Teste de Software traz informaes sobre as atividades que devem ser realizadas na fase de planejamento dos testes.

5.1.2 Projeto dos Testes


O produto deste subprocesso um conjunto de informaes denominado Projeto de Teste de Software, que descreve todas as informaes necessrias ao teste de um software. Os objetivos deste subprocesso so: Refinar a abordagem de teste de software definida no planejamento; Definir e especificar os casos de teste; Revisar os requisitos de ambiente de teste; Definir e especificar os procedimentos de teste.

Da mesma forma que um bom projeto de software dar origem a um sistema de software bem estruturado, que atenda a todas as necessidades de seus usurios e que seja mais facilmente modificado, um bom projeto de teste dar origem a casos de testes que cubram adequadamente as funcionalidades do software em teste e que tenham a capacidade de

SPB - Modelo de Processo Genrico de Teste de Software

Centro de Tecnologia da Informao Renato Archer CTI/MCT detectar mais rapidamente a presena de defeitos nas reas do software que apresentem maiores riscos. A atividade de projeto de teste procura responder s seguintes perguntas: Quais so as tcnicas de teste mais adequadas a serem utilizadas neste projeto? Como os casos de teste sero agrupados de forma coerente? Como as diversas funcionalidades do software em teste sero cobertas pelo teste? Quais passos sero necessrios para executar os testes?

O Projeto de Teste de Software contm basicamente o detalhamento da abordagem do teste definida na fase de planejamento, bem como a definio dos casos de teste e os procedimentos para a aplicao dos casos de teste. Para cada caso de teste, o projeto de teste dever conter o detalhamento dos dados de entrada e os respectivos resultados esperados. Alm disso, o projeto contm os requisitos de ambiente de teste, os requisitos de procedimentos especiais, as dependncias entre casos de teste, e a definio das mtricas de teste. Um projeto de teste pode ser um conjunto simples de informaes, armazenado em planilhas que contenham os casos de teste e os respectivos passos que devem ser seguidos nos testes, ou pode ser composto por um conjunto maior de informaes. O Guia para Projetar o Teste de Software traz informaes sobre as atividades que devem ser realizadas nesta fase.

5.1.3 Execuo e Registro dos Testes


A execuo e registro dos testes a fase responsvel pela aplicao dos testes planejados e projetados anteriormente; o tempo investido nas atividades anteriores execuo ser compensado nesta atividade. A execuo envolve a aplicao de cada caso de teste, de acordo com o procedimento de teste anteriormente definido no projeto de teste. Normalmente os testes so realizados em ciclos, de forma que em cada ciclo todos os casos de testes projetados, ou um conjunto predefinido deles, sejam aplicados. Os testes devem ser realizados em ambiente distinto do ambiente de desenvolvimento e, durante a realizao de cada ciclo de teste, o ambiente operacional deve permanecer estvel. O registro envolve a identificao e o detalhamento dos incidentes observados durante os testes. Um incidente de teste a manifestao de qualquer defeito no software ou uma anomalia no funcionamento do ambiente operacional. Incidentes encontrados durante a realizao dos testes devem ser relatados em relatrios ou preferencialmente por meio de ferramentas como Bugzilla, Mantis, etc. Nesta fase devem ser registrados:

SPB - Modelo de Processo Genrico de Teste de Software

Centro de Tecnologia da Informao Renato Archer CTI/MCT Detalhes e medidas relevantes relacionados com a execuo dos testes; Qualquer evento que ocorra durante a execuo do teste e que requeira anlise; Resumo dos resultados das atividades de teste associadas ao Projeto de Teste; As avaliaes baseadas nos resultados do teste.

O Guia para Executar e Registrar o Teste de Software traz informaes sobre as atividades que devem ser realizadas nesta fase.

5.1.4 Acompanhamento dos Testes


A execuo dos testes gera uma quantidade considervel de informaes relativas aos testes realizados. A fase de acompanhamento responsvel por organizar e consolidar estas informaes de forma que seja possvel verificar rapidamente a situao do teste e tambm a situao do software em teste. O acompanhamento de teste procura responder s seguintes perguntas: Quantos casos de teste j foram executados? Quantos incidentes foram detectados e identificados? Quantos incidentes continuam em aberto? Quantos incidentes continuam em aberto nas reas de risco identificadas? Quais funcionalidades j foram adequadamente cobertas pelos casos de teste aplicados? Que porcentagem do software j foi testada? Novos casos de testes so necessrios?

O acompanhamento composto por atividades que so realizadas periodicamente, visando monitorar e avaliar o andamento do teste. Neste contexto, so avaliados: os incidentes ocorridos; as medidas coletadas, de acordo com as mtricas definidas; as medidas de cobertura do teste; os fatores de risco associados ao processo de teste e ao produto em teste; o cronograma das atividades; os recursos utilizados e os custos incorridos. Sempre que forem identificados desvios significativos em relao ao que foi planejado, ou qualquer situao no prevista inicialmente, aes corretivas apropriadas devem ser realizadas. O Guia para Acompanhar o Teste do Software traz informaes sobre atividades que podem ser realizadas nesta fase.

5.1.5 Finalizao dos Testes


A finalizao dos testes o subprocesso que trata das atividades de encerramento do teste. Nesta fase feita a aceitao formal do produto pelo cliente, caso esta atividade esteja prevista no Plano de Teste. Alm disso, no encerramento do teste consolidam-se todas as

SPB - Modelo de Processo Genrico de Teste de Software

10

Centro de Tecnologia da Informao Renato Archer CTI/MCT informaes sobre: o andamento do teste; os resultados obtidos no teste do produto; o desempenho da equipe de teste; o processo de teste adotado; as mtricas definidas no processo de teste; os recursos gastos no teste; o tempo gasto na execuo das atividades em relao ao planejado; e as lies aprendidas no teste daquele produto. Todas essas informaes devem ser consolidadas num conjunto denominado Resumo do Teste e disponibilizadas para gerncia. Essas informaes podem servir como referncias para futuras tomadas de decises e/ou melhorias do processo de teste. O Guia para Finalizar o Teste do Software traz informaes sobre atividades que podem ser realizadas nesta fase.

Caracterizao do Processo de Teste

Em qualquer desenvolvimento de software a aplicao do teste deve ser realizada segundo um processo de teste previamente definido. Caracterizar um processo de teste significa definir os nveis de teste, os tipos de teste, as tcnicas e critrios que direcionam a criao dos casos de teste, e os elementos do teste alinhados ao processo de desenvolvimento do software. A caracterizao do processo de teste completada pelo detalhamento das atividades de planejamento do teste, projeto do teste, execuo e registro dos resultados do teste, finalizao do teste; e acompanhamento do teste, levando em considerao os elementos anteriormente especificados. A caracterizao do processo de teste depende da poltica de teste adotada pela empresa e deve ser feita de forma cuidadosa obedecendo s reais necessidades de teste e dos recursos e caractersticas da organizao. Os seguintes fatores devem ser considerados na definio de um processo de teste: tipo de software que desenvolve; requisitos do software em relao confiabilidade, segurana e desempenho; e disponibilidade de recursos humanos e financeiros. Uma empresa pode definir um processo de teste nico, a ser aplicado em qualquer produto de software por ela desenvolvido, ou seja, o seu modelo de processo de teste de software fixo. Outra empresa pode definir seu processo de teste de acordo com os vrios tipos de produtos de software por ela desenvolvidos, ou seja, o modelo de processo de teste de software da empresa configurvel. O processo de teste a ser aplicado em um produto de software especfico deve ser definido de acordo com o modelo de processo de desenvolvimento de software adotado pela organizao. Alm disso, o processo de teste pode ser complexo ou simples dependendo das caractersticas da organizao, dos recursos disponveis, e do tipo, tamanho e complexidade da aplicao. Cada modelo de processo de desenvolvimento de software define seus produtos correspondentes. Os produtos gerados durante o desenvolvimento do

SPB - Modelo de Processo Genrico de Teste de Software

11

Centro de Tecnologia da Informao Renato Archer CTI/MCT software sero utilizados para planejar e projetar os testes. Exemplos: a anlise de requisitos produz os requisitos do software que sero utilizados para projetar os casos de teste de aceitao; o projeto da arquitetura do software produz a arquitetura do programa que ser utilizada para projetar os casos de teste de integrao. Em uma perspectiva ampla, a Figura 4 ilustra os fatores envolvidos na definio de um processo de teste de software. Os objetivos de negcio da organizao fornecem a base para moldar o processo de teste. Este processo, por sua vez, deve produzir as informaes teis para que os objetivos do negcio da organizao sejam alcanados.

NEGCIO
Apoia Direciona

INFORMAO

PROCESSO

Gera
Figura 4: Fatores que Envolvem a Definio de um Processo de Teste de Software.

7
7.1

Exemplos de Processo de Teste de Software


Teste ao Longo do Processo de Desenvolvimento de Software

Deve ser observado que o teste de um software pode ser planejado a partir do momento em que se consolida a especificao dos requisitos do software. Neste contexto, as atividades do processo de teste devem estar em conformidade com as outras atividades do processo de desenvolvimento do software. Ou seja, o processo de teste dependente do processo de desenvolvimento do software. Desta forma, as informaes geradas pelas outras atividades do desenvolvimento do software devero ser utilizadas como entradas para as atividades do teste do software.

SPB - Modelo de Processo Genrico de Teste de Software

12

Centro de Tecnologia da Informao Renato Archer CTI/MCT No entanto, cada processo de desenvolvimento de software tem suas caracter ada caractersticas prprias, gera informaes especficas e tem suas atividades executadas numa determinada seqncia. A Figura 5 traz uma ilustrao do processo de teste acoplado ao processo de desenvolvimento do software. Desta forma, exemplos de processos de teste devem estar em conformidade com o processo de desenvolvimento de software. olvimento Nos dois primeiros exemplos de processo de teste a serem apresentados, as atividades do teste estaro alinhadas com o processo de desenvolvimento de software.

Figura 5: Processo de Teste Acoplado ao Processo de Desenvolvimento do Software.

7.1.1 Primeiro Exemplo: Processo de Teste Alinhado com o Modelo Exemplo: Cascata
Neste exemplo apresentado um processo de teste instanciado para um produto sendo desenvolvido segundo o ciclo de vida modelo cascata pela mesma empresa responsvel pela sua manuteno e evoluo. O teste realizado por uma equipe especializada e experiente em teste, distinta da equipe de desenvolvimento. Como o mercado em que o produto ser oferecido muito exigente, a liberao de um produto com o nvel de um qualidade necessrio foi considerado mais importante do que a economia dos recursos alocados aos testes. Por estas caractersticas, optou se por um processo de teste sistemtico e bem optou-se documentado, de forma que o esforo despendido nas fases de planejamento e projeto do teste da verso inicial do produto possa ser compensado no teste de suas verses posteriores. O processo apresentado ser formal e pesado; outros exemplos exploraro processos mais informais e leves. A Figura 6 apresenta o processo de teste e suas atividades, alinhado com o modelo cascata de desenvolvimento. Como pode ser observado na Figura 6, o fluxo pode ser descomposto em 3 etapas. A , primeira etapa compreende a iniciao, o planejamento, o projeto dos testes de si sistema e

SPB - Modelo de Processo Genrico de Teste de Software

13

Centro de Tecnologia da Informao Renato Archer CTI/MCT aceitao e a realizao dos testes de unidade e integrao. A segunda etapa compreende a realizao dos testes de sistema, ao passo que a etapa final abrange a realizao dos testes de aceitao. Atividades de controle e replanejamento esto distribudas ao longo do processo no trmino dos testes de unidade e integrao e no trmino de cada ciclo de testes de sistema e aceitao, pois se acredita que nestes pontos encontra-se disponvel a quantidade de informao necessria a um eventual replanejamento dos testes. Neste exemplo foi dada uma nfase maior na descrio das atividades do que na definio das condies de incio, dados de entrada, condies de trmino, dados de sada e mtricas. Entretanto, na definio de um processo real, todas estas informaes devem estar determinadas, em um nvel de detalhamento adequado. Os diversos guias de teste elaborado pelo SPB apresentam formas concretas para a organizao e realizao das atividades necessrias execuo de um processo de teste, e devem ser consultados em paralelo leitura deste exemplo de processo. Note que este simplesmente um exemplo de processo outros processos que atendam aos objetivos do projeto tambm podem ser definidos, sem que sejam necessariamente melhores ou piores que o processo apresentado.

SPB - Modelo de Processo Genrico de Teste de Software

14

Centro de Tecnologia da Informao Renato Archer CTI/MCT

Figura 6: Processo de Teste e suas Atividades, Alinhado com o Modelo Cascata

SPB - Modelo de Processo Genrico de Teste de Software

15

Centro de Tecnologia da Informao Renato Archer CTI/MCT (A) Iniciao Esta atividade tem como objetivo coletar informaes relativas ao sistema em teste, tais como: agentes envolvidos (stakeholders), requisitos funcionais e no funcionais, planos e processo de desenvolvimento, recursos de teste, etc. Todas as informaes necessrias ao planejamento dos testes devem ser levantadas nesta fase. Embora a iniciao faa parte do subprocesso Planejamento, esta atividade foi destacada no exemplo para maior clareza. (B) Planejamento do Teste O subprocesso Planejamento tem como objetivo definir, a partir das informaes levantadas na iniciao, a abordagem que ser adotada no teste do produto, as atividades necessrias realizao dos testes, o cronograma e os recursos correspondentes. Pelas caractersticas do produto em teste optou-se pela realizao de um planejamento cuidadoso e abrangente, que procure identificar a maior parte das situaes que podem ocorrer ao longo do processo de teste. Atividades propostas: Definir abordagem e estratgia de teste; Definir tarefas de teste; Definir cronograma de teste; Definir equipe de teste; Definir riscos associados ao produto; Definir critrios de aprovao do produto em teste; Definir em alto nvel a forma pela qual os testes de unidade e integrao sero realizados e avaliados, e elaborar check-lists de auxlio equipe de desenvolvimento; Definir mtricas usadas para acompanhar a realizao dos testes; Definir ambiente de execuo dos testes; Definir riscos associados ao projeto.

(C) Projeto dos Testes de Sistema e Aceitao O subprocesso Projeto do Teste tem como objetivo a obteno dos casos de teste e procedimentos de teste utilizados na execuo dos testes de sistema e de aceitao. Como os testes projetados devero ser aproveitados nas prximas verses do produto, optou-se por uma documentao cuidadosa e detalhada dos casos e procedimentos de teste. Optou-se tambm por manter uma associao entre casos de teste e requisitos para facilitar o trabalho de teste de futuras verses do sistema, onde requisitos originalmente levantados podero sofrer modificaes.

SPB - Modelo de Processo Genrico de Teste de Software

16

Centro de Tecnologia da Informao Renato Archer CTI/MCT Atividades propostas: Refinar abordagem de teste; Acompanhar requisitos levantados junto equipe de desenvolvimento; Identificar cenrios de teste a partir dos requisitos; Projetar e documentar casos de teste; Validar casos de teste com os agentes envolvidos (stakeholders) com o sistema (incluindo equipe de desenvolvimento); Associar casos de teste aos requisitos do sistema; Definir e documentar procedimentos de teste; Desenvolver a base de dados de teste e eventuais programas para carga de dados; Preparar o ambiente de teste (hardware, software e scripts de teste).

(D) Execuo dos Testes de Unidade e Integrao Atividade realizada pela equipe de desenvolvimento, seguindo os critrios explicitados no Plano de Teste. Atividades propostas: Executar teste de unidade; Executar teste de integrao; Registrar evidncias da execuo dos testes.

(E) Avaliao da Realizao dos Testes de Unidade e de Integrao Esta uma atividade simples, realizada pela equipe de teste, que tem como objetivo verificar se os testes de unidade e de integrao foram realizados conforme definido na fase de planejamento. (F) Controle e Replanejamento Esta atividade tem como objetivo verificar o andamento do projeto, identificando desvios em relao ao planejado e antecipando potenciais problemas que podem ocorrer. (G) Preparao para Ciclo de Teste de Sistema Atividade realizada pela equipe de desenvolvimento. (H) Avaliao do Produto para o Incio de um Ciclo de Teste Esta uma atividade que deve ser simples e rpida, e tem como objetivo verificar se a verso entregue para teste pode ser executada, ou seja, se todos os arquivos que devem estar presentes na distribuio realmente esto presentes com as verses corretas. Na literatura esta atividade conhecida pelo nome smoke test, termo provavelmente herdado das equipes de hardware, consistindo simplesmente em ligar o equipamento sendo testado: se no houver fumaa, o teste inicial considerado um sucesso!

SPB - Modelo de Processo Genrico de Teste de Software

17

Centro de Tecnologia da Informao Renato Archer CTI/MCT Atividades propostas: Instalar software no ambiente de teste; Realizar testes iniciais para validar a estabilidade mnima da verso distribuda para teste (smoke test). (I) Execuo de Ciclo de Teste de Sistema Pelas caractersticas do projeto, todas as informaes e artefatos necessrios realizao dos testes devem estar disponveis neste ponto: ambiente de teste preparado, casos de teste documentados com valores de entrada e resultados esperados, bases de dados e scripts necessrios para os testes definidas, etc. Atividades propostas: Executar testes projetados, com documentao dos resultados obtidos; Registrar incidentes identificados.

(J) Aplicao do Critrio de Aprovao do Produto Ao trmino da execuo de cada ciclo de teste de sistema a equipe de teste deve verificar se o critrio de aprovao do produto, definido na fase de planejamento dos testes, j foi atingido. Esta verificao realizada, por exemplo, pela anlise da gravidade dos incidentes reportados. Atividade proposta: Verificar se o produto atingiu o critrio de aprovao definido no planejamento dos testes. (K) Realizao das Mudanas Necessrias Realizao, pela equipe de desenvolvimento, das alteraes necessrias correo dos incidentes relatados (L) Controle e Replanejamento Esta atividade, que ocorre sempre que um ciclo de teste de sistema for encerrado, tem como objetivo acompanhar o andamento do projeto, identificando desvios em relao ao planejado e antecipando potenciais problemas que possam ocorrer. Atividades do Controle e Replanejamento: Avaliar incidentes identificados e ainda no resolvidos; Avaliar medidas coletadas; Avaliar cobertura dos testes (% dos requisitos validados pelos testes); Avaliar andamento do cronograma dos testes; Redefinir e renegociar cronograma e recursos alocados aos testes, se necessrio;

SPB - Modelo de Processo Genrico de Teste de Software

18

Centro de Tecnologia da Informao Renato Archer CTI/MCT Projetar novos casos de teste, se necessrio; Acompanhar riscos do projeto.

(M) Preparao para Ciclo de Teste de Aceitao Atividade realizada pela equipe de desenvolvimento. (N) Avaliao do Produto para o Incio de um Ciclo de Teste de Aceitao Esta uma atividade que deve ser simples e rpida, e tem como objetivo verificar se a verso entregue para teste pode ser executada, ou seja, se todos os arquivos que devem estar presentes na distribuio realmente esto presentes com as verses corretas. Atividades propostas Instalar software no ambiente de teste; Realizar testes iniciais para validar a estabilidade mnima da verso distribuda para teste (smoke test); Negociar com os envolvidos (stakeholders) datas previstas para a realizao dos testes de aceitao. (O) Execuo de Ciclo de Teste de Aceitao Executar testes de aceitao projetados, com documentao dos resultados obtidos; Registrar incidentes identificados.

(P) Realizao das Mudanas Necessrias Realizao, pela equipe de desenvolvimento, das alteraes necessrias correo dos incidentes relatados. (Q) Aplicao do Critrio de Aceitao do Produto Tarefa proposta: Verificar se o produto atingiu o critrio de aceitao definido no planejamento dos testes. (R) Controle e Replanejamento Caso o sistema no seja aprovado ao trmino do 1o ciclo dos testes de aceitao, realizao das seguintes tarefas: Avaliao dos incidentes identificados e ainda no resolvidos; Avaliao das medidas coletadas; Avaliao da cobertura dos testes (% dos requisitos validados pelos testes); Avaliao do andamento do cronograma dos testes;

SPB - Modelo de Processo Genrico de Teste de Software

19

Centro de Tecnologia da Informao Renato Archer CTI/MCT Redefinio e renegociao do cronograma e recursos necessrios aos testes, se necessrio; Projeto de novos casos de teste, se necessrio; Acompanhamento dos riscos do projeto.

(S) Finalizao Este subprocesso tem como objetivo encerrar formalmente o teste realizado. Atividades propostas: Avaliar medidas coletadas; Avaliar desempenho da equipe; Avaliar recursos estimados e utilizados; Identificar oportunidades de melhoria; Comunicar formalmente o trmino do teste.

7.1.2 Segundo Exemplo: Processo de Teste Alinhado com o Processo Iterativo de Desenvolvimento
Neste exemplo apresentado um processo de teste instanciado para um produto sendo desenvolvido por um processo iterativo por uma empresa que no responsvel por sua manuteno e evoluo. O produto desenvolvido novo e complexo, e nem a empresa desenvolvedora nem a empresa que contratou o desenvolvimento esto em condies de definir completamente seus requisitos antes do incio do desenvolvimento, razo pela qual o processo incremental foi o escolhido. Desta forma, os requisitos devem ser refinados ao longo do desenvolvimento, na medida em que uma melhor compreenso das necessidades for obtida. A equipe de desenvolvimento adota um processo leve, voltado mais para a produo de verses executveis necessrias para a validao dos requisitos e necessidades dos usurios do sistema, com pouca documentao. do desenvolvimento. A qualidade do produto considerada crtica, pois ele ser distribudo por vrios escritrios espalhados pelo pas ao ficar pronto. O teste realizado por uma equipe de teste especializada e experiente em teste, distinta da equipe de desenvolvimento. As duas equipes j trabalharam juntas em outro projeto iterativo, e seus membros esto acostumados a cooperar e trocar informaes. Como o prazo para a concluso e entrega do produto considerado suficiente, mas com pouca folga, optou-se por um processo de teste simples, que produz pouca documentao. Particularmente, nos sub-processos de planejamento e projeto devem ser realizadas somente as atividades consideradas essenciais, de forma a sobrar o mximo de tempo A equipe de desenvolvimento tem experincia e emprega a automao dos testes de unidade ao longo

SPB - Modelo de Processo Genrico de Teste de Software

20

Centro de Tecnologia da Informao Renato Archer CTI/MCT possvel para as tarefas de execuo dos testes e remoo dos eventuais defeitos. A Figura 7 apresenta o processo de teste e suas atividades.

Figura 7: Processo de Teste e suas Atividades, Alinhado com o Processo iterativo (A) Iniciao Esta atividade tem como objetivo juntar as informaes relativas ao sistema testado, tais como os envolvidos (stakeholders), a verso inicial da arquitetura do aplicativo, os principais requisitos funcionais e no funcionais j definidos bem como o plano de incrementos proposto (quais funcionalidades esto previstas por iterao). Como as equipes de desenvolvimento e teste j trabalharam juntas, seus processos de trabalho so conhecidos. (B) Planejamento do Teste O principal objetivo do subprocesso de planejamento definir a abordagem adotada no teste do produto, baseada principalmente na distribuio das funcionalidades entre os diversos incrementos propostos.

SPB - Modelo de Processo Genrico de Teste de Software

21

Centro de Tecnologia da Informao Renato Archer CTI/MCT Atividades propostas: Definir riscos associados ao produto e ao projeto de teste; Definir prazos de teste de acordo com a distribuio das funcionalidades entre os diversos incrementos propostos; Definir a abordagem do teste; Definir ambiente de execuo dos testes; Detalhar as tarefas e cronograma dos testes do 1 incremento.

(C) Projeto do Teste O subprocesso projeto do teste tem como objetivo a elaborao dos casos de teste necessrios em cada iterao. Este subprocesso repetido antes do incio de cada iterao do desenvolvimento, e tem como principal objetivo identificar os principais cenrios de teste para as funcionalidades da iterao e definir os casos de teste para as funcionalidades que apresentem maior risco. Como a equipe de teste acompanha o trabalho de detalhamento de requisitos, os procedimentos de teste no so documentados, bastando somente a documentao dos casos de uso. A partir da 2 iterao este subprocesso deve verificar quais testes realizados nas iteraes anteriores precisam ser repetidos como teste de regresso. Atividades propostas: Acompanhar requisitos levantados junto equipe de desenvolvimento; Identificar cenrios de teste a partir dos requisitos; Projetar e documentar os casos de teste; Validar os casos de teste com os envolvidos com o sistema (stakeholders).

(D) Execuo dos Testes de cada Iterao Este subprocesso se inicia com a re-execuo dos testes selecionados da iterao anterior. Caso no haja ocorrncia de falhas, executam-se os testes previstos para a iterao atual, sendo priorizadas as funcionalidades que apresentam maiores riscos. A equipe de teste pode propor novos cenrios de teste, caso perceba que determinadas reas do aplicativo apresentem um maior nmero de problemas do que o esperado. Problemas encontrados so inicialmente discutidos com a equipe de desenvolvimento e, se necessrio, com representantes dos usurios, e posteriormente documentados no sistema de acompanhamento de incidentes. A proximidade entre as equipes de desenvolvimento e de teste permite que os componentes da iterao possam ser testados to logo estejam implementados, o que permite um considervel ganho de tempo, fator importante no projeto.

SPB - Modelo de Processo Genrico de Teste de Software

22

Centro de Tecnologia da Informao Renato Archer CTI/MCT Esta fase considerada terminada quando todos os cenrios de teste previstos so executados sem a ocorrncia de incidentes graves. (E) Replanejamento para Prxima Iterao Esta uma atividade rpida, composta principalmente pela reviso do planejamento anteriormente realizado. (F) Finalizao Este subprocesso tem como objetivo encerrar formalmente o teste. Atividades propostas: Analisar medidas finais do projeto; Comunicar formalmente o trmino do teste.

7.2

Teste de um Software Previamente Desenvolvido

Neste exemplo apresentado um processo de teste que visa a realizao do teste final de um produto de software j desenvolvido. Neste caso, as atividades de anlise de requisitos, projeto e implementao do software j foram concludas. No so estabelecidas premissas sobre as atividades de teste j realizadas. Isto , o teste pode ter sido feito de forma informal, sem aplicao de tcnicas e sem registros que o evidenciem; o teste pode ter sido feito de forma mais cuidadosa e sistemtica; ou mesmo nenhuma atividade de teste pode ter sido realizada. Qualquer que seja a situao, o processo de teste visa a: Avaliar de forma sistemtica o software identificando os defeitos existentes; Criar registros que evidenciem um teste sistemtico e seu nvel de rigor.

Diferentemente dos anteriores, em que um processo de teste completo deve ser executado ao longo do desenvolvimento do software, tem-se o objetivo especfico de criar um bom conjunto de casos de teste de sistema; execut-los; e criar registros destas atividades. Portanto, os testes de unidade e de integrao no so tratados. importante destacar que, quando no se realizam testes de unidade e de integrao, pode existir um nmero maior de defeitos no software. Alm disto, a identificao do defeito e a correo do software tendem a ser mais trabalhosas neste caso do que quando todos os nveis de teste so aplicados. A equipe que realiza o teste no necessariamente formada por integrantes da equipe que desenvolveu o software e que, eventualmente realizou testes iniciais. No entanto, membros da equipe de desenvolvimento podem ser uma importante fonte de informaes para o teste. Dado o objetivo deste processo de teste, so enfatizados os subprocessos de: projeto, execuo e registro do teste. As atividades destes subprocessos so definidas a fim de

SPB - Modelo de Processo Genrico de Teste de Software

23

Centro de Tecnologia da Informao Renato Archer CTI/MCT permitir um bom nvel de agilidade do teste, mas ao mesmo tempo, visando propiciar o controle necessrio das atividades de teste e a utilizao de tcnicas e tipos adequados de teste, conforme o nvel de confiabilidade requerida do produto. Alm disso, esses subprocessos podem ser executados de forma colaborativa, de maneira que partes do software sejam alocadas a responsveis distintos. Algum esforo de planejamento necessrio, mas provavelmente menor do que o realizado nos exemplos anteriores, nos quais os diferentes nveis e ciclos de teste demandam um maior rigor no tratamento de aspectos gerenciais. A Figura 8 apresenta uma viso geral do processo de teste.

PROCESSO DE TESTE

(A) Planejamento do Teste

(B) Projeto do Teste

(C) Execuo e Registro dos Testes

(D) Acompanhamento do Teste

Critrio de Aceitao Atingido?

No

Sim

(E) Finalizao do Teste

Figura 8: Processo de Teste para um Software j Desenvolvido

SPB - Modelo de Processo Genrico de Teste de Software

24

Centro de Tecnologia da Informao Renato Archer CTI/MCT (A) Planejamento do Teste O planejamento do teste deve ser executado logo que se identifique a necessidade de realizar atividades de teste, seja com o objetivo principal de identificar defeitos e aprimorar o produto de software ou com o objetivo de criar evidncias do teste. O objetivo geral do planejamento definir os principais aspectos do teste: abordagem, tcnicas, tipos, riscos, equipe e ambiente de teste. Atividades propostas: Coletar informaes teis ao teste; Definir riscos associados ao produto; Definir abordagem e estratgia de teste; Definir equipe de teste; Definir tarefas de teste; Definir cronograma de teste; Definir critrio de aprovao do produto; Definir as mtricas usadas; Definir ambiente de execuo dos testes.

(B) Projeto do Teste O projeto do teste de sistema inicia-se tipicamente aps a realizao do planejamento. Neste subprocesso a equipe alocada para o teste elabora, com base em informaes coletadas do software, os casos de teste a serem executados e os procedimentos necessrios para a execuo. O objetivo do teste de sistema avaliar se o software satisfaz os requisitos funcionais e no funcionais estabelecidos. importante, portanto, utilizar tcnicas adequadas para projetar casos de teste que permitam esta avaliao. Como h interesse em coletar evidncias do teste, os casos de teste (dados de entrada e resultado esperado) sero documentados. Atividades propostas: Refinar abordagem de teste; Projetar e documentar casos de teste; Definir e documentar procedimentos de teste; Desenvolver a base de dados de teste e programas de carga de dados; Preparar o ambiente de teste.

(C) Execuo e Registro do Teste Este subprocesso envolve as atividades necessrias para a execuo dos casos de teste projetados, seguindo os procedimentos de teste estabelecidos. Durante a execuo dos testes feito o registro de informaes relevantes para: apoiar o gerenciamento do processo; evidenciar a realizao do teste; e controlar os incidentes observados.

SPB - Modelo de Processo Genrico de Teste de Software

25

Centro de Tecnologia da Informao Renato Archer CTI/MCT Atividades propostas: Executar testes projetados e documentar os resultados obtidos; Registrar o progresso do teste; Documentar os incidentes identificados.

(D) Acompanhamento do Teste As atividades deste subprocesso so executadas periodicamente conforme definido no planejamento. Normalmente, aps a execuo de um conjunto de casos de teste, deve-se avaliar se o critrio de aprovao do produto (definido na fase de planejamento) foi atingido. Pode-se decidir ento pela necessidade de projetar e executar casos de teste adicionais. Neste subprocesso encontram-se tambm atividades para avaliao do andamento do teste e para a reviso do planejamento, caso necessrio. Atividades propostas: Aplicar o critrio de aprovao do produto; Avaliar incidentes identificados; Avaliar medidas coletadas; Avaliar cobertura dos testes; Avaliar o cronograma de teste; Acompanhar riscos; Tomar aes corretivas.

(E) Finalizao do Teste Tem como objetivo encerrar as atividades de teste, realizar avaliaes finais e publicar as informaes de teste. Atividades propostas: Avaliar produto final e registrar informaes; Avaliar processo de teste e registrar informaes; Relatar e publicar as informaes do teste.

7.3

Teste de uma Nova Verso de um Software

No primeiro exemplo apresentado um processo de teste instanciado para um produto desenvolvido atravs do ciclo de vida cascata pela mesma empresa responsvel pela sua manuteno e evoluo. A responsabilidade pelos testes de uma equipe especializada e experiente em teste, distinta da equipe de desenvolvimento. Como o mercado em que o produto oferecido muito exigente, um produto com boa qualidade considerado mais importante do que a economia dos recursos alocados aos testes. A nfase do primeiro exemplo em sua aplicao no desenvolvimento inicial do produto. Entretanto, o mesmo processo de teste, apresentado na Figura 6, utilizado para a

SPB - Modelo de Processo Genrico de Teste de Software

26

Centro de Tecnologia da Informao Renato Archer CTI/MCT realizao dos testes de suas novas verses, que incorporam correes de erros encontrados aps as diversas liberaes do produto, alteraes provenientes por mudanas nos requisitos e incorporao de novos requisitos. (A) Iniciao A atividade de iniciao do teste de uma nova verso do produto significativamente mais simples do que a do teste do produto original, uma vez que todas as informaes levantadas inicialmente so mantidas atualizadas. Desta forma, para o teste de uma nova verso, esta atividade deve se concentrar no levantamento das alteraes realizadas e nos recursos alocados ao teste. (B) Planejamento do Teste O planejamento pode ser realizado pela reviso do plano de teste original, com a modificao dos pontos relacionados s alteraes realizadas no produto. Um novo cronograma deve ser elaborado. A anlise de riscos pode necessitar ser refeita, devido tanto esperada estabilidade das funcionalidades no alteradas no produto como aos riscos associados s novas funcionalidades e alteraes na estrutura do software. (C) Projeto dos Testes de Sistema e de Aceitao Os testes anteriormente projetados so revistos para verificar quais casos de teste foram impactados pelas alteraes da nova verso e, dessa forma, precisam ser alterados. O esforo de elaborao e manuteno da rastreabilidade entre os requisitos e os casos de teste compensado neste ponto. Para as novas funcionalidades, a partir dos requisitos, novos cenrios de teste so identificados, novos casos e procedimentos de teste so projetados e documentados. (D) Execuo dos Testes de Unidade e de Integrao Atividade realizada pela equipe de desenvolvimento, seguindo os critrios explicitados no Plano de Teste. As novas unidades desenvolvidas para esta verso bem com as unidades alteradas devem ser testadas conforme previsto no Plano de Teste. (E) Avaliao da Realizao dos Testes de Unidade e Integrao Esta uma atividade simples, realizada pela equipe de teste, que tem como objetivo verificar se os testes de unidade e integrao foram realizados conforme definido na fase de planejamento. (F) Controle e Replanejamento Esta atividade verifica o andamento do projeto e identifica desvios em relao ao planejado, antecipando potenciais problemas que possam ocorrer.

SPB - Modelo de Processo Genrico de Teste de Software

27

Centro de Tecnologia da Informao Renato Archer CTI/MCT Espera-se que no teste de uma nova verso de um produto de software a necessidade de replanejamento neste ponto seja menor do que no teste do produto original. (G) Preparao para Ciclo de Teste de Sistema Atividade realizada pela equipe de desenvolvimento. (H) Avaliao do Produto para o Incio de Ciclo de Teste Esta uma atividade simples e rpida, e tem como objetivo verificar se a verso entregue para teste pode ser executada. (I) Execuo de Ciclo de Teste de Sistema Pelas caractersticas do projeto, todas as informaes e artefatos necessrios realizao dos testes devem estar disponveis. A estratgia de teste de uma nova verso do produto pode focar a estabilidade desta verso: no ciclo inicial so realizados os testes de regresso juntamente com os novos testes projetados; ciclos intermedirios enfocam os testes das novas funcionalidades; e no ciclo final so re-executados todos os testes. Alternativamente, a estratgia tambm pode focar na rapidez dos testes, de modo que nos ciclos iniciais so realizados somente os testes das novas funcionalidades, ficando os testes de regresso reservados para os ciclos finais. (J) Aplicao do Critrio de Aprovao do Produto Ao trmino da execuo de cada ciclo de teste de sistema a equipe de teste deve verificar se o critrio de aprovao do produto, definido na fase de planejamento dos testes, foi atingido. Esta verificao realizada, por exemplo, pela anlise da gravidade dos incidentes relatados. (K) Realizao das Mudanas Necessrias Realizao, pela equipe de desenvolvimento, das alteraes necessrias correo dos incidentes relatados. (L) Controle e Replanejamento Esta atividade, que ocorre sempre que um ciclo dos testes de sistema for encerrado, verifica o andamento do projeto, identificando desvios em relao ao planejado e antecipando potenciais problemas que podem ocorrer. Ciclo de teste de aceitao Espera-se que os testes de aceitao, descritos na terceira etapa na Figura 6, sejam realizados de forma semelhante tanto no caso do desenvolvimento de um novo produto quanto no caso da liberao de uma nova verso deste produto.

SPB - Modelo de Processo Genrico de Teste de Software

28