FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS...

download FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

of 76

Transcript of FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS...

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    1/76

    UNIVERSIDADE REGIONAL DE BLUMENAU

    CENTRO DE CINCIAS EXATAS E NATURAIS

    CURSO DE CINCIAS DA COMPUTAO BACHARELADO

    FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE

    TESTE FUNCIONAL DE SOFTWARE A PARTIR DE

    DIAGRAMAS DE CASOS DE USO

    JULIANO BIANCHINI

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    2/76

    JULIANO BIANCHINI

    FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE

    TESTE FUNCIONAL DE SOFTWARE A PARTIR DE

    DIAGRAMAS DE CASOS DE USO

    Trabalho de Concluso de Curso submetido Universidade Regional de Blumenau para aobteno dos crditos na disciplina Trabalhode Concluso de Curso II do curso de Cinciada Computao Bacharelado.

    Prof. Everaldo Artur Grahl - Orientador

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    3/76

    FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE

    TESTE FUNCIONAL DE SOFTWARE A PARTIR DE

    DIAGRAMAS DE CASOS DE USO

    Por

    JULIANO BIANCHINI

    Trabalho aprovado para obteno dos crditos

    na disciplina de Trabalho de Concluso deCurso II, pela banca examinadora formadapor:

    ______________________________________________________Presidente: Prof. Everaldo Artur Grahl, FURB

    ______________________________________________________Membro: Prof. Maurcio Capobianco Lopes, FURB

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    4/76

    Dedico este trabalho a minha querida esposaRosangela e ao meu querido av IngoWengrath (in memorian)

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    5/76

    AGRADECIMENTOS

    A Deus, pelo seu imenso amor e graa.

    minha famlia por acreditar em mim, principalmente, a minha querida esposa pelo

    apoio e compreenso.

    A todos os meus amigos que me ajudaram direta ou indiretamente, principalmente ao

    Giancarlo Tomazelli e ao Andr Vinicius Castoldi.

    Ao meu orientador, Everaldo Artur Grahl, por todo o apoio e por ter acreditado na

    concluso deste trabalho.

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    6/76

    RESUMO

    Atualmente existem muitas pesquisas sobre a utilizao da UML para a gerao de casos detestes funcionais. Este trabalho analisou algumas alternativas existentes na literatura sobre ouso de diagrama de casos de uso, um dos diagramas mais usados na UML, e a partir desteestudo foi criada uma ferramenta de suporte ao planejamento de testes funcionais.Inicialmente foi modificada a ferramenta CASE ArgoUML para incluir extenses apropriadasa casos de testes. Posteriormente foi desenvolvida uma ferramenta para permitir a leituradestas extenses e documentar os testes seguindo orientaes previstas no padro IEEE 829que trata da documentao de testes de software.

    Palavras chaves: teste de software; UML; casos de teste; casos de uso; IEEE 829.

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    7/76

    ABSTRACT

    Currently there are many researches on the use of the UML for the generation of functionaltest cases. This work analyzed some existing alternatives in literature on the use of use casediagrams, one of the most used diagrams in the UML, and from this study a tool for supportfunctional test planning was created. Initially, the ArgoUML CASE tool was customized toinclude appropriate extensions for the test case specification. Later, a tool was developed toallow the reading of these extensions and to document the tests cases according with IEEE829 standard that it deals with the documentation of software tests.

    Key-Words: software test; UML; test cases; use cases; IEEE 829.

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    8/76

    LISTA DE ILUSTRAES

    Figura 1 Vises dos testes por perspectivas diferentes .........................................................16Figura 2 Diferentes nveis de abstrao ao longo do processo de desenvolvimento.............17Figura 3 Relacionamento entre os testes de unidade, integrao e sistema ..........................19Figura 4 Estratgias de integrao entre modelagem de requisitos e testes..........................23Figura 5 Transformando modelos de caso de uso em modelos hierrquico de estados........24Figura 6 Modelo de caso de uso com informao adicional .................................................24Figura 7 Fluxo principal e os fluxos alternativos para um caso de uso.................................26Figura 8 Frmula para calcular a cobertura dos testes dos casos de uso estendidos.............28Figura 9 Relacionamento dos documentos de teste com o processo de teste........................31Figura 10 Interface da ferramenta CASE ArgoUML ............................................................37Figura 11 Principais pacotes do projeto ................................................................................38Figura 12 Casos de uso da ferramenta de suporte ao teste de funcional ...............................43Figura 13 Fluxo de dados entre as ferramentas .....................................................................44Figura 14 Classes de persistncia da ferramenta TestCen.....................................................46

    Figura 15 Classes da customizao da ferramenta ArgoUML..............................................47Figura 16 Classes implementados e/ou alteradas no ArgoUML...........................................48Figura 17 Criao de campos com persistncia na forma de tagged values..........................48Figura 18 Guia Caso de Teste, implementada pela classe TabTestCase1.............................49Figura 19 Guia Caso de Teste - Procedimento, implementada pela classe TabTestCase2 ...49Figura 20 Persistncia dos procedimentos de teste em forma de tagged values ...................49Figura 21 Esteretipo de Caso de Teste ................................................................................50Figura 22 Trecho do cdigo que implementa o esteretipo de Caso de Teste......................50

    Figura 23 Barra de ferramentas customizada para permitir a incluso de casos de teste......50Figura 24 Imagem da tela principal da ferramenta TestCen .................................................51Figura 25 Estrutura do arquivo XML de um projeto de teste de exemplo ............................52Figura 26 Caso de uso - emprstimo de livros ......................................................................53Figura 27 Testes de cenrio para o caso de usoEmprestar livro ..........................................56Figura 28 Especificao do caso de teste fluxo principal (Testar emprstimo de livros).....56Figura 29 Procedimentos do caso de teste principal (Testar emprstimo de livros).............57

    Figura 30 Importao do arquivo XMI do ArgoUML ..........................................................57Figura 31 Parte da especificao dos casos de teste..............................................................58Figura 32 Execuo do caso de teste CT001.........................................................................59Figura 33 Lista de casos de teste por casos de uso................................................................60Figura 34 Grfico de casos de teste por caso de uso .............................................................60Figura 35 Documentos cobertos pelas ferramentas implementadas......................................62

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    9/76

    SUMRIO

    1 INTRODUO..................................................................................................................10

    1.1 OBJETIVOS DO TRABALHO ........................................................................................12

    1.2 ESTRUTURA DO TRABALHO......................................................................................12

    2 FUNDAMENTAO TERICA....................................................................................13

    2.1 QUALIDADE DE SOFTWARE.......................................................................................13

    2.2 O PAPEL DO TESTE NA QUALIDADE DO PRODUTO DE SOFTWARE ................15

    2.3 A UML E O TESTE DE SOFTWARE...........................................................................21

    2.3.1 Introduo a UML...........................................................................................................21

    2.3.2 UML como modelo de teste............................................................................................22

    2.3.3 Diagrama de Casos de Uso .............................................................................................23

    2.3.3.1 Integrao da modelagem de casos de uso e testes baseados em uso...........................23

    2.3.3.2 Gerao de casos de teste a partir dos casos de uso .....................................................25

    2.3.3.3 Teste de caso de uso estendido .....................................................................................26

    2.4 IEEE STD 829-1998 PADRO PARA DOCUMENTAO DO TESTE DE

    SOFTWARE......................................................................................................................30

    2.4.1 Especificao do plano de teste.......................................................................................32

    2.4.2 Especificao do projeto de teste ....................................................................................33

    2.4.3 Especificao do caso de teste ........................................................................................34

    2.4.4 Especificao do procedimento de teste .........................................................................34

    2.4.5 Relatrio de transio de item de teste............................................................................35

    2.4.6Logdos testes (dirio de bordo)......................................................................................35

    2.4.7 Relatrio de incidente .....................................................................................................35

    2.4.8 Relatrio com resumo dos testes.....................................................................................36

    2 5 A FERRAMENTA CASE ARGOUML 37

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    10/76

    3.3.2 Ferramenta de planejamento e execuo de testes (TestCen).........................................50

    3.3.3 TCNICAS E FERRAMENTAS UTILIZADAS...........................................................53

    3.3.4 OPERACIONALIDADE DA IMPLEMENTAO......................................................53

    3.3.4.1 Especificao dos casos de teste na ferramenta TestCen .............................................57

    3.4 RESULTADOS E DISCUSSO ......................................................................................61

    4 CONCLUSES..................................................................................................................63

    4.1 EXTENSES ....................................................................................................................63

    REFERNCIAS BIBLIOGRFICAS .................................................................................65

    APNDICE A Relatrio de erros por caso de teste ..............................................................67

    APNDICE B Cdigo fonte da importao do arquivo XMI ...............................................68

    ANEXO A Diagramas da UML e padres de projeto de teste aplicveis a cada diagrama..72

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    11/76

    10

    1 INTRODUO

    A contnua demanda por sistemas de computao exige que os profissionais da rea de

    tecnologia da informao estejam preparados para fornecer produtos de software com

    qualidade. Para tanto, a verificao e validao (V&V) so consideradas atividades

    fundamentais no desenvolvimento de software. Estas atividades so especialmente valiosas

    quando aplicadas desde cedo no processo de desenvolvimento, pois erros encontrados nasfases de especificao e projeto so muito mais baratos para serem corrigidos do que quando

    encontrados em fases mais avanadas (RYSER; GLINZ, 2003, p. 1-2). Entre as atividades de

    V&V est a atividade de teste de software.

    O papel do teste encontrar erros na implementao de um software e validar os

    requisitos implementados. Isso significa que o teste tem um papel importantssimo na

    verificao e validao de software. Porm, em muitos casos, a preparao e o

    desenvolvimento dos casos de teste so feitos sem muito planejamento. Alm disso,

    freqentemente os testes so selecionados de forma aleatria ou ad-hoc (momentnea) e os

    casos de teste so desenvolvidos de uma forma no estruturada e no sistemtica. Esta uma

    realidade encontrada no desenvolvimento de softwares comerciais, onde h recursos limitados

    e tempo escasso para o teste.

    Apesar de existirem vrias tcnicas e estratgias aplicadas a teste de software, a prtica

    ainda est distante da teoria (RYSER; GLINZ, 2003, p. 1-2). Alguns problemas encontrados

    incluem:

    a) falta de planejamento dos tempos e custos: na prtica, o planejamento dos

    testes feito tardiamente no processo, quando ele est quase no final. Desta

    forma h presso para manter menor c sto e tempo e somado ao fato de q e o

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    12/76

    11

    fase de testes deveria comear imediatamente aps a especificao ter sido

    desenvolvida. Desta forma, muitos erros, omisses e inconsistncias podem ser

    encontradas nas fases de anlise e projeto. mais barato corrigir erros nestas

    fases iniciais do que aps a implementao ter sido feita;

    d) casos de teste no so gerados de forma sistemtica: os testes so escolhidos de

    forma aleatria e os casos de teste gerados com base no conhecimento dotestador e sem procedimento definido.

    Entre as abordagens de testes de software encontra-se o teste Funcional tambm

    conhecido como teste de Caixa-Preta. As tcnicas de teste Funcional derivam os casos de

    testes a partir da anlise da funcionalidade (dados de entrada/sada e especificao) do

    programa sem levar em considerao a estrutura interna do mesmo.

    A Unified Modeling Language(UML) muito usada para modelar sistemas orientados

    a objetos e, na verso 1.3, formado por nove diagramas com objetivos e perspectivas

    diferentes. A utilizao dela como modelo sistemtico para o desenvolvimento dos casos de

    teste tem sido estudada e evoluda durante os ltimos anos. Um diagrama que tem sido

    estudado para teste o caso de uso que uma forma de capturar as funcionalidades e

    comportamentos de um sistema na perspectiva do usurio. O caso de uso usado para ajudar

    na elicitao e documentao dos requisitos dos usurios. Desta forma, o caso de uso uma

    fonte de informaes que ajuda no s o desenvolvimento do software, mas tambm, a

    atividade de teste de software. Entre as propostas de utilizao da UML para teste encontra-sea apresentada por Heumann (2004) e o teste de caso de uso estendido, proposto por Binder

    (2000, p. 722-731).

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    13/76

    12

    1.1 OBJETIVOS DO TRABALHO

    Este trabalho tem por objetivo principal o desenvolvimento de uma ferramenta de

    suporte ao planejamento do teste funcional de software a partir da utilizao de diagramas de

    casos de uso da UML.

    Os objetivos especficos so:

    a) anlise e aplicao das metodologias de teste de software baseada em casos de

    uso da UML apresentadas por Heumann (2004) e Binder (2000, p. 722-731);

    b) adaptao de uma ferramenta CASE de cdigo aberto para suportar extenses

    aplicveis a casos de testes funcionais;

    c) incorporao de padres de documentao de teste de software da IEEE 829 na

    ferramenta construda.

    1.2 ESTRUTURA DO TRABALHO

    No segundo captulo feita uma reviso bibliogrfica para o entendimento do trabalhoincluindo temas como qualidade de software, testes de software, UML como modelo para

    testes de software, Padro IEEE 829 e a ferramenta CASE ArgoUML.

    O terceiro captulo apresenta os requisitos principais do problema tratado neste

    trabalho, assim como a especificao do software e a operacionalidade do mesmo

    demonstrando o seu uso prtico.

    O quarto captulo apresenta as concluses e sugestes de extenso deste trabalho.

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    14/76

    13

    2 FUNDAMENTAO TERICA

    Neste captulo so apresentados os conceitos, tcnicas, modelos, padres e ferramentas

    mais relevantes para o entendimento e desenvolvimento deste trabalho.

    2.1 QUALIDADE DE SOFTWARE

    Antes de efetivamente falar sobre qualidade de software, convm voltar no tempo eanalisar os fatos que levaram este tema a ser to discutido. Nos ltimos anos tem-se falado

    muito em qualidade de software. Isso se intensificou mais depois da to falada globalizao.

    A quebra da fronteira de comrcio entre os pases abriu as portas para a exportao de

    software. Essa quebra trouxe consigo mais oferta de produtos, maior concorrncia e maiores

    exigncias de qualidade. Produzir software apenas pensando em menor custo e prazo deentrega no seria mais o que o mercado queria. A isto, soma-se um fator decisivo: a qualidade

    do produto de software.

    Isso desencadeou uma srie de novas iniciativas na rea de qualidade e trouxe a tona

    aquelas j existentes. Iniciativas estas que visam garantir a qualidade do produto de software

    atravs da verificao e validao do produto e da maturidade do processo de

    desenvolvimento.

    A qualidade de software pode ser definida como um processo sistemtico que focaliza

    todas as etapas e artefatos produzidos com o objetivo de garantir a conformidade de processos

    e produtos, prevenindo e eliminando defeitos (BARTI, 2002, p. 16). Isto significa que aqualidade no uma fase do ciclo de desenvolvimento de software, mas sim parte de todas as

    fases.

    N B il lid d d f i i d h i

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    15/76

    14

    de 50% das empresas utilizam prticas de Engenharia de Software para avaliar a qualidade do

    produto, incluindo diferentes tipos de testes - funcionais, de aceitao, de campo, baseados em

    erros, de integrao e do sistema integrado. A Tabela 1 mostra prticas de Engenharia de

    Software adotadas na avaliao da qualidade do produto.

    Tabela 1 Prticas de Engenharia de Software adotadas na avaliao da qualidadeCategorias N de organizaes %

    Auditorias 97 22,6Inspeo formal, Reviso por pares (Peer-review), Walthroughestruturado

    70 16,3

    Julgamento de especialistas 88 20,5Levantamento de requisitos de qualidade 78 18,1Medies da qualidade (Mtricas) 75 17,4Modelos de confiabilidade de software 21 4,9

    Prova formal de programas 82 19,1Segurana do produto final 58 13,5Testes baseados em erros 236 54,9Testes de aceitao 246 57,2Testes de campo 243 56,5Testes de integrao 232 54,0Testes de unidade 149 34,7Testes do sistema integrado 222 51,6Testes estruturais 107 24,9Testes funcionais 255 59,3Testes orientados a objetos 91 21,2Testes para web 135 31,4Outras 3 0,7

    No adota tais prticas 50 11,6Base 430 100

    Fonte: SEPIN (2004)

    Infelizmente este o cenrio de muitas empresas de software no Brasil. Cenrio este

    que mostra a imaturidade dos processos de desenvolvimento de software. No basta ter

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    16/76

    15

    necessidade de outros esforos no processo de desenvolvimento para se atingir a qualidade

    total.

    2.2 O PAPEL DO TESTE NA QUALIDADE DO PRODUTO DE SOFTWARE

    V&V o processo de verificao e anlise que assegura que o software cumpra com

    suas especificaes e atenda s necessidades dos clientes (SOMMERVILLE, 2003, p. 358).

    Embora sejam facilmente confundidas, V&V no so a mesma coisa. Pode-se resumir a

    diferena atravs de uma pergunta chave:

    - Validao: estamos construindo o software certo?

    - Verificao: estamos construindo certo o software?

    Em outras palavras, validao um conjunto de atividades que garante que o softwareconstrudo corresponde aos requisitos do cliente e verificao o conjunto de atividades que

    garante que o software implementa corretamente determinada funo (PRESSMAN, 2002, p.

    470).

    Dentro da V&V pode-se utilizar duas tcnicas (SOMMERVILLE, 2003, p. 358):

    a) inspees de software: analisam e verificam as representaes do sistema,

    como o documento de requisitos, os diagramas do projeto e o cdigo-fonte do

    programa. As inspees podem ser aplicadas a todas as fases do processo de

    desenvolvimento. A inspeo uma tcnica esttica, pois no requer que o

    software seja executado.

    b) teste de software: envolve a execuo do software com dados de teste e a

    anlise das sadas e do comportamento operacional, a fim de verificar se ele

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    17/76

    16

    entrada e sada do sistema para descobrir erros de funcionalidade, comportamento e

    desempenho (PRESSMAN, 2002, p. 429).

    Myers (1979, p. 5), ao afirmar que a funo do teste de software mostrar a presena

    de erros (e no a ausncia), contribuiu para que o teste de software tomasse um rumo

    diferente. Na prtica, isso significa que mostrar que algo no funciona mais difcil (exige

    mais esforo) do que mostrar que funciona. Desenvolvedores de software so, por natureza,pessoas construtivas. O teste de software, ao contrrio, exige pessoas com natureza destrutiva.

    A Figura 1 ilustra vises dos testes por perspectivas diferentes. A viso do analista de

    sistemas , geralmente, provar que o software funciona, desta forma seus casos de teste sero

    limitados a cenrios que provem que o sistema est funcionando. J o analista de teste tem

    uma percepo mais ampla, isto , alm de testar as funcionalidades, seus casos de testetentam mostrar falhas no software.

    Fonte: Barti (2002, p. 21)

    Figura 1 Vises dos testes por perspectivas diferentes

    As atividades que envolvem a fase de teste so planejamento, projeto de casos de teste,execuo e avaliao dos resultados. Elas devem ser conduzidas ao longo de todo o processo

    de desenvolvimento (ROCHA; MALDONADO; WEBER, 2001, p. 74). Pode-se salientar que

    a falta da atividade de planejamento uma das causas dos problemas no desenvolvimento de

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    18/76

    17

    detalhada (teste de unidade, integrao e sistema) at uma viso mais externa e abstrata (teste

    de validao e certificao do sistema).

    Fonte: Regnell , Runeson e Wohlin (2003, p. 5)Figura 2 Diferentes nveis de abstrao ao longo do processo de desenvolvimento

    Antes dos testes serem efetivamente projetados, alguns princpios deveriam ser levados

    em conta (DAVIS apud PRESSMAN, 2002, p. 431-432):

    - todos os testes devem ser relacionados aos requisitos do cliente: os defeitos

    mais indesejveis de um software so aqueles que deixam de satisfazer osrequisitos do usurio.

    - os testes devem ser planejados muito antes do incio do teste: o planejamento

    dos testes pode comear to logo o modelo de requisitos esteja definido. A

    definio dos casos de teste pode comear assim que o modelo do projeto tenha

    sido consolidado. Sendo assim, todos os testes podem ser planejados e projetadosantes do cdigo ter sido gerado.

    - o princpio de Pareto se aplica ao teste de software: aplicando o princpio de

    Pareto, implica que 80% de todos os erros descobertos durante os testes sero,

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    19/76

    18

    combinaes de caminhos durante o teste. possvel, no entanto, cobrir

    adequadamente a lgica do programa e garantir que todas as condies no nvel de

    componentes tenham sido exercitadas.

    - para ser mais efetivo, o teste deveria ser conduzido por terceiros: como dito

    anteriormente, a natureza do testador deve ser destrutiva. Por outro lado, pessoas

    envolvidas no processo de desenvolvimento (construo) tem natureza

    construtiva. Isto , quanto menos a pessoa estiver envolvida no processo de

    desenvolvimento, maior a probabilidade dela encontrar erros.

    O projeto de casos de teste pode ser feito de duas formas principais (PRESSMAN,

    2002, p. 435):

    - teste de caixa preta: tambm conhecido como teste funcional, o testeconduzido na interface do software. Apesar de serem projetados para descobrir

    erros, so usados para demonstrar que as funes do software esto

    implementadas, ou seja, que a entrada adequadamente aceita e a sada

    corretamente produzida, e que a integridade das informaes externas mantida.

    O teste de caixa preta examina algum aspecto fundamental do sistema sepreocupando pouco com a estrutura lgica interna do software.

    - teste de caixa branca: tambm conhecido como teste estrutural, se trata de um

    exame rigoroso da estrutura interna do software. Caminhos lgicos, internos ao

    software so testados, definindo casos de testes que exercitam conjuntos

    especficos de condies e/ou ciclos.

    Alm dos casos de teste poderem ser desenvolvidos de duas formas, estes podem ser

    aplicados em diferentes escopos ou estgios. O escopo do teste a coleo de componentes de

    ft ifi d C t t d t d b i l t

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    20/76

    19

    testes de integrao. Por ltimo, a juno dos mdulos forma um sistema completo. Ao

    sistema completo so aplicados testes de sistema.

    Teste de unidadeClassesFunes

    Teste de integraoSub-sistemas

    Clusters

    Teste de sistemaAplicao (sistema)

    Fonte: Adaptado de Binder (2000, p. 46)Figura 3 Relacionamento entre os testes de unidade, integrao e sistema

    No teste de unidade (PRESSMAN, 2002, p. 476), testa-se a menor unidade do projeto

    de software, isto , o menor componente de software. O teste de unidade orientado para

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    21/76

    20

    O objetivo do teste de integrao descobrir erros associados s interfaces entre a

    unidades do software (ROCHA; MALDONADO; WEBER, 2001, p. 75). No contexto da OO,

    o teste de integrao pode ser feito de duas maneiras (PRESSMAN, 2002, p. 623). Na

    primeira, um conjunto de classes integrado para responder a uma entrada ou evento do

    sistema. Na segunda, o teste comea com as classes que usam poucas (ou nenhuma) classes

    servidoras. Em seguida, estas classes independentes so integradas com outras classes

    dependentes e, ento, so testadas. Isto se repete at que todo o sistema seja integrado e

    testado.

    O escopo do teste de sistema testar todo o sistema, levando em considerao

    componentes de software e hardware, ou seja, o software em seu provvel ambiente de

    produo. Neste estgio so testadas caractersticas que esto presentes apenas no sistemacomo um todo. Entre os testes que so aplicados neste estgio esto testes funcionais (para

    validar requisitos do usurio), testes de performance (tempo de resposta) e teste de carga ou

    estresse (desempenho do sistema quando sobrecarregado) (BINDER, 2000, p. 45).

    A Tabela 2 mostra a relao entre os estgios de teste e os paradigmas procedimental e

    OO.

    Tabela 2 Relao entre os estgios de teste e os paradigmas procedimental e OOParadigma

    Estgio de Teste Teste Procedimental Teste Orientado a Objetos

    Unidade Sub-rotina ou funo Mtodos das classesIntegrao Duas ou mais unidades Classe

    Cluster

    ComponenteSubclasse

    Sistema Toda a aplicao Toda a aplicaoFonte: adaptado de Rocha, Maldonado e Weber (2001, p. 76)

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    22/76

    21

    caractersticas comportamentais sejam conseguidas, todos os requisitos funcionais sejam

    alcanados, entre outros (PRESSMAN, 2002, p. 487).

    Depois que cada caso de teste de validao tenha sido executado, uma de duas

    condies pode acontecer: (1) o software est de acordo com os requisitos e aceito ou (2)

    um desvio da especificao descoberto e gerada uma lista de deficincias.

    2.3 A UML E O TESTE DE SOFTWARE

    2.3.1 Introduo a UML

    A Unified Modeling Language(UML) uma linguagem para modelagem de estruturas

    de software. Atravs da UML possvel visualizar, especificar, construir e documentar

    artefatos de software (BOOCH; RUMBAUGH; JACOBSON, 2000, p. 13).

    A UML (verso 1.3) composta por nove diagramas: diagrama de casos de uso,

    diagrama de objetos, diagrama de classes, diagrama de seqncia, diagrama de colaborao,

    diagrama de grficos de estados, diagrama de atividades, diagrama de componentes, diagrama

    de implantao. Cada um dos diagramas possui funcionalidades distintas. A seguir tem-seuma breve explicao de cada diagrama. Mais detalhes sobre a construo de cada diagrama

    pode ser encontrado em Booch, Rumbaugh e Jacobson (2000):

    a) diagrama de casos de uso: representa um conjunto de caso de uso e atores e

    seus relacionamentos. Este diagrama abrange a viso esttica de formas de uso

    do sistema. importante a utilizao deste diagrama principalmente porque

    atravs dele possvel organizar e modelar os comportamentos do sistema.

    Alm disso, os casos de uso servem para ajudar a validar a arquitetura e para

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    23/76

    22

    d) diagrama de seqncia: mostra a ordenao temporal das mensagens entre

    objetos. Ou seja, este diagrama mostra a seqncia das mensagens trocadas

    entre os objetos e qual o tempo de vida de cada mensagem;

    e) diagrama de colaborao: exibe a organizao dos objetos que participam de

    uma interao. Este diagrama mostra o relacionamento entre determinados

    objetos e quais as mensagens trocadas entre eles;

    f) diagrama de grficos de estados: exibe uma mquina de estados, que

    formada por estados, transies, eventos e atividades. Este diagrama apresenta

    uma viso dinmica do sistema em questo;

    g) diagrama de atividades: apresenta uma viso dinmica de um sistema. Estediagrama um grfico de fluxo, onde mostrado o fluxo de controle de uma

    atividade para outra;

    h) diagrama de componentes: exibe as organizaes e as dependncias existentes

    em um conjunto de componentes. Este diagrama empregado para mostrar

    uma viso esttica da implementao de um sistema. Est relacionado

    principalmente com o diagrama de classes, pois geralmente os componentes

    mapeados so classes, interfaces ou colaboraes;

    i) diagrama de implantao: exibe a configurao dos ns de processamento em

    tempo de execuo e os componentes que nele existem. Este diagrama utilizado para modelar uma viso esttica da implantao de um sistema.

    2.3.2 UML como modelo de teste

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    24/76

    23

    que apresenta um guia com padres de teste baseado na UML. O escopo deste trabalho est

    em utilizar o diagrama de casos de uso para testes de sistema e para validar requisitos, por

    isso, ser dada nfase no diagrama de casos de uso. Mais especificamente, este trabalho

    utilizar o padro proposto por Binder (2000, p.722-731) e Heumann (2004), pois estes se

    apresentaram mais completos e abrangentes no estudo realizado, alm de serem mais

    aplicveis ao contexto de testes funcionais.

    Para maiores informaes sobre a utilizao da UML no teste de software, vide o

    anexo A. Neste anexo esto relacionados os diagramas da UML e os padres de projeto de

    teste relacionados a cada diagrama, conforme proposto por Binder (2000, p. 272-273).

    2.3.3 Diagrama de Casos de UsoUm sistema especificado atravs de casos de uso prov muitas das informaes

    necessrias para se testar um sistema, pois ele descreve os requisitos funcionais de um

    software, isto , pode-se testar e validar os requisitos de software com base nos casos de uso.

    Algumas metodologias para se testar um sistema baseando-se em casos de uso sero

    apresentadas a seguir:

    2.3.3.1 Integrao da modelagem de casos de uso e testes baseados em uso

    Regnell , Runeson e Wohlin (2003) prope um modelo de uso como base para as

    disciplinas de engenharia de requisitos e teste. Alm disso investigam a possibilidade de

    integrar as duas disciplinas. Basicamente, so apresentadas duas estratgias de integraoentre as disciplinas: integrao atravs de transformao de modelos e integrao atravs de

    extenso de modelos. A figura 4 ilustra as duas estratgias.

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    25/76

    24

    A estratgia de transformao de modelos baseada na observao de que muitos dos

    conceitos utilizados na modelagem de casos de uso e teste esttico de utilizao tm

    semntica similar. A transformao consiste em adicionar informaes de teste aos casos de

    uso, gerando um modelo hierrquico de estados. A figura 5 ilustra a estratgia de

    transformao.

    Modelo de Casosde Uso- Atores- Servios- Casos de uso- Estmulos- Respostas- Aes dosistema

    TransformaoModelo Hierrquico deEstados

    - Tipos do usurio e subtipos- Servios- Comportamentos- Sub-comportamentos- Transies- Estados do usurio- Perfil de comportamento

    - Perfil de hierarquia

    Informao adicional- Probabilidades de utilizao deservios- Probabilidades de estmulos dousurio- Nmero de usurios- Estado dos usurios

    Fonte: Regnell , Runeson e Wohlin (2003, p. 26)

    Figura 5 Transformando modelos de caso de uso em modelos hierrquico de estados

    A estratgia de extenso do modelo baseada na idia de complementar o modelo de

    casos de uso em qualquer parte em que no haja uma escolha determinstica em

    probabilidades de diferentes escolhas. Se for possvel criar semnticas bem definidas de

    construo de casos de teste diretamente dos casos de uso, ser possvel economizar esforos

    na construo dos casos de teste. A figura 6 ilustra a estratgia de extenso dos casos de uso.

    Modelo de Casosde Uso- Atores- Servios- Casos de uso- Episdios

    Extenso doModelo

    Modelo de Casos deUso complementadocom:

    - Nmero de usurios- Probabilidade deinvocao servios

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    26/76

    25

    de extenso tem a vantagem de no precisar um segundo modelo. Ao invs disto, estende o

    modelo de caso de uso com informaes para gerar casos de teste.

    2.3.3.2 Gerao de casos de teste a partir dos casos de uso

    Heumann (2004) apresenta uma metodologia para criar casos de teste a partir dos casos

    de uso executando trs passos:

    a) para cada caso de uso, gerar uma lista de cenrios de casos de uso1;

    b) para cada cenrio, identificar, ao menos, um caso de teste e as condies que o

    faro ser executado; e

    c) para cada caso de teste, identificar os dados que sero utilizados para o teste.

    No primeiro passo, deve-se ler a descrio textual do caso de uso e identificar o fluxo

    principal e os fluxos alternativos. Por exemplo, um caso de uso para descrever o uso de um

    sistema para fazer validao de usurios ter um fluxo principal que : o usurio digita seu

    nome e senha corretamente e o sistema vai para a tela principal. Um fluxo alternativo seria: o

    usurio digita seu nome corretamente e senha invlida e, ento, o sistema emite um aviso e

    permanece na tela de validao. A figura 7 mostra o fluxo principal e os fluxos alternativos

    para um caso de uso.

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    27/76

    26

    Fonte: Heumann (2004)

    Figura 7 Fluxo principal e os fluxos alternativos para um caso de uso

    No segundo passo, os casos de teste para cada cenrio devem ser identificados. Para

    tanto deve-se analisar os cenrios, revisar a descrio do caso de uso e ento criar o caso de

    teste. Criar uma tabela que represente valores de entrada e sada pode ser muito til neste

    ponto, ajudando na organizao e montagem dos casos de teste.

    No terceiro e ltimo passo, deve-se revisar e validar os casos de teste para assegurar a

    meticulosidade e identificar casos de teste redundante ou faltantes. Depois de aprovados, os

    dados de teste devem ser identificados. Sem os dados de teste, os casos de teste no podem ser

    executados.

    Heumann (2004) afirma que com a metodologia apresentada, desenvolvedores podemsimplificar o processo de teste, incrementar a eficincia e ajudar na certeza de se ter uma

    cobertura completa dos testes.

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    28/76

    27

    b) sadas incorretas;

    c) erro de execuo levando o programa a ser terminado;

    d) tempo inadequado de resposta do sistema;

    e) funes (requisitos funcionais) omitidas;

    f) funes extras (apareceram sem ser requisitadas), etc.

    Primeiramente, os casos de uso estendidos devem ser desenvolvidos, sendo que estes

    devem conter as seguintes informaes:

    a) um inventrio completo das variveis operacionais;

    b) uma especificao completa do domnio de cada varivel operacional;

    c) os relacionamentos operacionais para cada caso de uso;

    d) a freqncia relativa para cada caso de uso (opcional).

    Para cada caso de uso estendido deve-se executar os seguintes passos:

    a) identificar as variveis operacionais: as variveis operacionais so todas as

    variveis que so explicitamente parte da interface que suporta o caso de uso.

    Entre elas esto entradas e sadas do sistema, condies do ambiente que

    resultam em diferentes comportamentos dos atores e estados do sistema;

    b) identificar os domnios das variveis operacionais: os domnios so

    desenvolvidos definindo quais so os valores vlidos e invlidos para uma

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    29/76

    28

    exclusiva, isto , para determinada condio do sistema, apenas uma linha da

    tabela de deciso represente esta condio;

    d) desenvolver casos de teste: cada variante da tabela verdadeira e falsa pelo

    menos uma vez. Este passo requer dois casos de teste para cada variante: um

    que represente a variante falsa e outro que represente a variante verdadeira. Os

    resultados esperados para cada caso de teste so tipicamente desenvolvidos porinspeo, isto , uma pessoa (provavelmente um analista de testes) observa os

    valores de entrada dos casos de teste e desenvolve os resultados esperados.

    Preferencialmente, esta pessoa deve ter grande conhecimento do negcio,

    principalmente do requisito em teste, e das formas como o sistema em teste

    deve ser usado.

    O desenvolvimento dos casos de uso estendidos deve ser feito assim que os casos de

    uso foram desenvolvidos e validados. J os casos de teste devem ser desenvolvidos assim que

    os casos de uso estendidos foram desenvolvidos e validados e o sistema em teste j tenha

    passado pelo teste de integrao que demonstre que os componentes necessrios para suportar

    o caso de uso estejam operacionais.

    Como critrio de aceitao e trmino dos testes, todos os requisitos precisam ser

    exercitados, pelo menos uma vez, para que se tenha cobertura mnima do sistema em teste.

    Binder (2000, p. 729) prope uma mtrica, chamada de cobertura de variantes (CV), que pode

    ajudar a definir a completude do sistema (ver figura 8).

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    30/76

    29

    Tabela 3 Matriz de rastreabilidade entre casos de uso e casos de teste

    Caso de teste 1 Caso de teste 2 ... Caso de teste 9999Caso de uso 1 Caso de uso 2

    ...

    Caso de uso 9999 Fonte: Binder (2000, p. 729)

    Entre as vantagens de utilizar este padro esto (BINDER, 2000, p. 730):

    a) casos de uso podem ser desenvolvidos por analistas e testadores que no

    possuem experincia no desenvolvimento orientado a objetos;

    b) a utilizao dos casos de uso est consolidada nos processos de anlise e

    projeto, isso facilita o desenvolvimento dos casos de teste;

    c) casos de uso refletem o ponto de vista do usurio (cliente), sendo que o foco

    dele est voltado para as funcionalidades que esto implementadas ou no e

    isso que determinar se o sistema em teste atende ou no suas necessidades;

    d) casos de uso estendidos provem uma forma sistemtica de desenvolvimento

    das informaes necessrias para o projeto de teste. A informao dever ser

    desenvolvida para testar qualquer caso de uso;

    e) se o sistema em teste for desenvolvido a partir de casos de uso ambguos,

    inconsistentes ou incompletos, estes logo sero apontados pelos testes.

    Por outro lado, entre as desvantagens pode-se apontar (BINDER, 2000, p. 729-730):

    a) casos de uso no so usados para especificar, entre outras, performance e

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    31/76

    30

    2.4 IEEE STD 829-1998 PADRO PARA DOCUMENTAO DO TESTE DE

    SOFTWARE

    O objetivo do padro IEEE 829 (INSTITUTE OF ELECTRICAL AND

    ELECTRONIC ENGINEERS, 1998) descrever os documentos necessrios para apoiar a

    atividade de teste de software. Os documentos descritos neste padro abrangem o

    planejamento, especificao e a gerao de relatrios de testes.

    Um plano de testes deve descrever o escopo, plano de ao, recursos e cronograma da

    atividade de testes. Ele deve identificar os itens a serem testados, as caractersticas a serem

    testadas, as tarefas de teste a serem executadas, os responsveis por cada tarefa e os riscos

    associados ao plano.

    Trs tipos de documentos fazem parte da especificao de teste:

    a) o documento de especificao do projeto, que detalha o plano de ao,

    identifica as caractersticas que sero testadas e os casos de teste associados.

    Tambm identifica os casos e os procedimentos de teste, alm de especificar o

    critrio de aceitao e rejeio dos testes.

    b) o documento de especificao do caso de teste que especifica os valores de

    entrada e as sadas esperadas. Alm disso, identifica restries nos resultados

    dos procedimentos de teste.

    c) o documento de especificao do procedimento de teste que especifica todos ospassos necessrios para operar o sistema e exercitar os casos de teste.

    Quatro tipos de documentos fazem parte do relatrio de testes:

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    32/76

    31

    d) o relatrio de resumo dos testes que sumariza as atividades de teste associado a

    um ou mais projetos de teste.

    A figura 9 mostra o relacionamento dos documentos de teste com o processo de teste.

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    33/76

    32

    2.4.1 Especificao do plano de teste

    O objetivo do plano prescrever o escopo, o plano de ao, os recursos e o

    cronograma das atividades de teste. Um plano de teste dever conter a seguinte estrutura:

    a) identificador nico do plano;

    b) introduo: sumariza os itens de software e as caractersticas a serem testadas;

    c) caractersticas a serem testadas: identifica todas caractersticas e combinaes

    de caractersticas que sero testadas;

    d) caractersticas que no sero testadas: identifica todas caractersticas e

    combinaes de caractersticas que no sero testadas e qual a razo;

    e) plano de ao: para cada caracterstica ou conjunto de caractersticas deve ser

    descrito qual o plano de ao que assegura que as mesmas sero

    adequadamente testadas. Deve ser especificado as principais atividades,

    tcnicas e ferramentas que sero utilizadas para testar as caractersticas;

    f) critrio de aceitao e rejeio dos testes: descreve quais os critrios que sero

    utilizados para determinar se cada item de teste passou ou falhou;

    g) critrio de suspenso e retomada: descreve quais os critrios que sero

    utilizados para suspender e reiniciar todos ou parte dos testes;

    h) documentos: identifica quais os documentos a serem gerados na atividade de

    teste;

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    34/76

    33

    l) mo de obra e treinamento: descreve as necessidades de treinamento para

    capacitar as pessoas envolvidas no processo;

    m) cronograma: descreve o cronograma da atividade de teste;

    n) riscos e contingncias: identifica os riscos do plano de testes e o plano de

    contingncia;

    o) aprovao: identifica os nomes e funes de todas as pessoas que precisam

    aprovar o plano.

    2.4.2 Especificao do projeto de teste

    O objetivo do projeto de teste refinar o que foi definido no plano de teste e identificaras caractersticas que sero testas pelo projeto e seus casos de teste. Um projeto de teste

    dever conter a seguinte estrutura:

    a) identificador nico do projeto;

    b) caractersticas que sero testadas: identifica todas caractersticas e

    combinaes de caractersticas que sero testadas pelo projeto. Para cada

    caracterstica ou combinao de caractersticas deve haver a referncia para o

    requisito associado;

    c) detalhamento do plano de ao: descreve detalhe do plano de ao descrito no

    plano de teste. Inclui-se aqui a descrio de tcnicas de teste a serem usadas.

    Alm disso, deve incluir um resumo dos atributos comuns a todos os casos de

    teste;

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    35/76

    34

    2.4.3 Especificao do caso de teste

    O objetivo do caso de teste definir o caso de teste identificado no projeto de teste.

    Um caso de teste dever conter a seguinte estrutura:

    a) identificador nico do caso;

    b) itens do teste: identifica os itens e caractersticas que sero exercitadas pelo

    caso de teste. Para cada item deve-se considerar os seguinte documentos

    associados ao item: especificao dos requisitos, especificao do projeto, guia

    do usurio, guia de operaes e guia de instalao;

    c) especificao das entradas: especifica cada entrada necessria para executar o

    caso de teste;

    d) especificao das sadas: especifica todas as sadas e caractersticas dos itens

    de teste;

    e) necessidades de ambiente: especificas as necessidades de ambiente de

    software, hardware e outros que so necessrios para a execuo do caso;

    f) procedimentos especiais: descreve qualquer restrio especial no procedimento

    de execuo do caso de teste.

    g) dependncias entre casos: lista os casos que devem ser executados antes deste

    caso.

    2.4.4 Especificao do procedimento de teste

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    36/76

    35

    d) passos para execuo: descreve os passos para execuo do procedimento.

    2.4.5 Relatrio de transio de item de teste

    O objetivo do relatrio de transio de item de teste identificar os itens que esto

    sendo enviados para a equipe de testes. Este documento dever conter a seguinte estrutura:

    a) identificador nico do relatrio;

    b) itens transmitidos: identifica os itens em transmisso, incluindo a

    verso/reviso e o responsvel pela transmisso;

    c) localizao: identifica a localizao dos itens em transmisso, devendo ser

    descrito a mdia que contm os mesmos;

    d) status: descreve o estado dos itens em transmisso;

    e) aprovao: descreve os nomes e cargo das pessoas que aprovaram este

    documento.

    2.4.6 Logdos testes (dirio de bordo)

    O objetivo do log prover um histrico cronolgico dos detalhes relevantes da

    execuo dos testes. Este documento dever conter a seguinte estrutura:

    a) identificador nico;

    b) descrio: informaes relativas a todas as entradas devem ser descritas;

    c) atividades e eventos de entrada: os eventos e atividades devem ser gravados

    36

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    37/76

    36

    a) identificador nico;

    b) sumrio: resumo do incidente, identificando os itens envolvidos e sua

    verso/reviso;

    c) descrio do incidente: descreve o incidente ocorrido;

    d) impacto: indica qual o impacto do incidente sobre o plano, projeto,procedimento ou caso de teste.

    2.4.8 Relatrio com resumo dos testes

    O objetivo deste relatrio sumarizar os resultados das atividades de teste projetadas e

    prover uma base para avaliao dos resultados. Este documento dever conter a seguinteestrutura:

    a) identificador nico;

    b) sumrio: apresenta um resumo dos itens testados;

    c) divergncias: descreve qualquer diferena dos itens testados em relao ao que

    foi planejado;

    d) avaliao do plano: apresenta uma avaliao do que foi executado em relao

    ao que foi planejado;

    e) resumo dos resultados: sumariza os resultados dos testes. Identifica todos

    incidentes resolvidos apresentando um resumo das solues. Alm disso,

    descreve todos os incidentes no resolvidos;

    37

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    38/76

    37

    Boa parte deste padro foi adotado na concepo da ferramenta proposta neste trabalho e ser

    citada futuramente no texto atravs da indicao da seo especfica para um melhor

    entendimento e relao com o texto descrito.

    2.5 A FERRAMENTA CASE ARGOUML

    O ArgoUML (TOLKE, 2004) uma ferramenta CASE para criao de diagramas da

    UML. Esta ferramenta gratuita e seu cdigo-fonte pode ser obtido pela internet (endereo:

    http://argouml.tigris.org). A ferramenta simples, prtica e no exige muito esforo para

    poder utiliz-la. A partir dos modelos possvel gerar cdigo-fonte em Java. possvel

    tambm fazer a engenharia reversa a partir de cdigo-fonte em Java. A Figura 10 mostra a

    interface da ferramenta. Uma caracterstica interessante que os dados dos diagramas podem

    ser exportados no formato XMI (XML Metadata Interchange), possibilitando assim levar

    dados do ArgoUML para outras ferramentas.

    38

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    39/76

    38

    O projeto ArgoUML, que composto por voluntrios de todo o mundo, possui

    atualizaes regulares e est aberto a qualquer pessoa que esteja interessada em contribuir na

    melhoria do mesmo. Entre as caractersticas tecnolgicas desta ferramenta pode-se citar que

    ela implementada em Java e que utiliza diversos outros projetos de cdigo-fonte aberto. O

    projeto possui documentao de usurio e desenvolvedor, apesar da documentao do

    desenvolvedor estar defasada em relao ao projeto. Examinando o projeto, pode-se ver na

    prtica a utilizao de XML (eXtensible Markup Language), padres de projeto, teste de

    unidade (utiliza o JUnit), Java e outros conceitos e tecnologias. A Figura 11 mostra os

    principais pacotes que compem o projeto.

    Figura 11 Principais pacotes do projeto

    Segue uma breve explicao sobre cada pacote:

    a) application: contm a classe principal e o ponto de partida do ArgoUML.

    Possui a definio das classes que tem abrangncia sobre toda a aplicao;

    39

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    40/76

    39

    g) util: possui classes de diversas utilidades como, por exemplo, API para logde

    execuo, que muito til para depurao;

    h) images: todas as imagens utilizadas no projeto so armazenadas neste pacote;

    i) ui: contm muitas das classes relacionadas a interface com o usurio;

    j) xml: suporta o processamento dos documentos XML;

    k) cognitive: define os elementos fundamentais do sistema de suporte cognitivo;e

    l) ocl: contm as classes para suporte a Object Constraint Languange (OCL)

    linguagem de restrio de objeto.

    Fazem parte dos pacotes mencionados, outros projetos de cdigo aberto, tais como:

    a) GEF (Graph Editing Framework): prov funes para a edio de grficos em

    tempo de execuo como, por exemplo, o desenho dos diagramas da UML e

    seus componentes;

    b) log4j: prov funes que facilitam a gerao de logs(arquivos de transao);

    c) SAX Parser Factory: prov funes para manipulao de arquivos XML;

    d) Novosoft UML Library: prov funes para manter e manipulador informao

    de meta-dados da UML.

    O projeto ArgoUML est passando por uma reengenharia em busca da simplicidade e

    legibilidade do cdigo-fonte e da performance da ferramenta. Mais informaes sobre o

    40

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    41/76

    40

    Santiago (2002), apresenta uma ferramenta de apoio para testes de programas

    utilizando teste de validao, cujo objetivo auxiliar os alunos no aprendizado de

    programao, utilizando os componentes da biblioteca CLX do Delphi 6.0. Neste trabalho, a

    ferramenta aplica testes de caixa preta para efetuar a correo dos exerccios submetidos pelos

    alunos em uma disciplina de programao. Desta forma, ao concluir um exerccio proposto

    pelo professor, o aluno o submeter correo. A partir de um conjunto de dados de entrada

    padro, a ferramenta ir comparar os resultados alcanados pelo programa do aluno com os

    resultados esperados, informando ao aluno se o programa atende ou no as especificaes do

    professor.

    Sander (2002), apresenta uma ferramenta de suporte ao gerenciamento do teste de

    software com base nas recomendaes existentes na norma ISO/IEC 12207 para o processo de

    gerncia e para as atividades de teste. A ferramenta apresenta um roteiro que orienta o gerente

    na elaborao de planos de teste com o propsito de padronizar e melhorar o desempenho da

    atividade de teste.

    41

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    42/76

    41

    3 DESENVOLVIMENTO DO TRABALHO

    Neste captulo a ferramenta desenvolvida descrita, desde o levantamento de

    requisitos at a descrio de um exemplo de sua utilizao.

    O desenvolvimento da ferramenta aconteceu em duas etapas distintas. Na primeira

    etapa foram feitas customizaes na ferramenta CASE ArgoUML visando sua adaptao s

    tcnicas adotadas. Na segunda etapa foi desenvolvida a ferramenta de suporte aoplanejamento, controle, execuo e documentao de testes (aqui denominada de TestCen)

    que utiliza os diagramas estendidos gerados na ferramenta CASE ArgoUML.

    3.1 REQUISITOS PRINCIPAIS DO PROBLEMA

    Conforme j dito anteriormente, a baixa qualidade de software pode ter como fonte

    algumas das prticas:

    a) os testes no so devidamente preparados, no h um plano de teste e os testes

    no so documentados;

    b) o desenvolvimento dos casos de teste feito depois que o sistema foi

    desenvolvido. Porm, os casos de teste podem (e deveriam) ser desenvolvidos

    assim que a especificao foi desenvolvida;

    c) os casos de teste no so gerados de forma sistemtica, isto , estes so

    escolhidos de forma aleatria, com base no conhecimento do testador e semprocedimento definido.

    Para gerar um produto de software com qualidade, um processo de qualidade (e teste)

    42

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    43/76

    suporte o planejamento, execuo e documentao do teste funcional de software com base no

    padro IEEE 829.

    Os principais requisitos funcionais a serem atendidos pela ferramenta incluem:

    a) integrao com ferramenta CASE: a ferramenta deve permitir a leitura dos

    casos de testes criados na ferramenta CASE ArgoUML;

    b) planejamento de testes: a ferramenta deve permitir a manuteno dos cadastros

    necessrios ao planejamento de testes incluindo os projetos de testes, casos de

    testes e respectivos procedimentos de testes;

    c) execuo dos casos de teste: a ferramenta deve permitir o registro de

    informaes sobre a execuo dos casos de testes criados e armazenar o

    histrico destas execues;

    d) relatrio de erros: a ferramenta deve emitir um relatrio com os erros

    encontrados na execuo de um caso de teste junto com um resumo do projeto

    de teste;

    e) gerao de grficos: a ferramenta deve gerar grficos sobre a cobertura de

    testes realizados e testes executados.

    Como principal requisito no-funcional pode-se destacar a aderncia ao padro IEEE 829 que

    apresenta diversas recomendaes sobre a documentao de testes de software.

    3.2 ESPECIFICAO

    A i t d di d d d i

    43

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    44/76

    Fi 12 C d d f t d t t t d f i l

    44

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    45/76

    devem ser baseados no padro IEEE 829 para especificao do caso de teste

    (2.4.3) e especificao do procedimento de teste (2.4.4). Este caso de uso

    representa a relao com a ferramenta CASE ArgoUML;

    Figura 13 Fluxo de dados entre as ferramentas

    b) criar projeto e caso de teste: o analista de testes cria um projeto de teste e os

    casos de teste que compe o projeto. Cada caso de teste pode estar associado a

    um caso de uso. Os atributos devem ser baseados no padro IEEE 829 para

    especificao do projeto de teste (2.4.2), especificao do caso de teste (2.4.3) e

    especificao do procedimento de teste (2.4.4);

    c) executar casos de teste: a partir dos casos de teste planejados, o testador pode

    escolher um caso, de cada vez, para ser executado. Para cada execuo do caso

    criado um histrico, com os dados utilizados nos testes e os resultados

    obtidos, para posterior consulta;

    d) gerar relatrio de erros encontrados: O testador seleciona um caso de uso e

    poder gerar um relatrio dos erros encontrados. Os atributos do relatrio

    devem ser baseados no padro IEEE 829 para relatrios de incidentes (2 4 7);

    45

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    46/76

    g) gerar resumo da execuo do projeto de teste: O testador poder selecionar e

    gerar um relatrio com sumrio do projeto de teste. Os atributos do relatriodevem ser baseados no padro IEEE 829 para relatrios de resumo dos testes

    (2.4.8).

    3.2.2 Diagrama de classes

    O diagrama de classe, apresentado na figura 14, representa as classes de negcio da

    ferramenta TestCen. Os atributos das classes esto baseados no padro IEEE 829 e os

    mtodos das classes dizem respeito a consulta e manuteno dos valores dos atributos.

    A classeprojeto_testemantm as informaes que dizem respeito a todos os casos de

    teste, alm da lista de casos de teste associados ao projeto. Esta classe representa aespecificao do projeto de teste descrito pelo padro IEEE 829 (ver 2.4.2).

    A classe caso_teste mantm informaes relativas a configurao dos casos de teste e,

    tambm a lista de procedimentos de teste. A especificao do caso de teste do padro IEEE

    829 (2.4.3) representada por esta classe.

    A classe procedimento_testeguarda informaes para a efetiva execuo dos testes.

    Representa a especificao do procedimento de teste do padro IEEE 829 (2.4.4).

    As classes histrico_execuo e resultados guardam dados do histrico de execuo

    dos casos de teste e os resultados obtidos. Estes dados so usados nos relatrios e grficos

    definidos nos requisitos. Os relatrios representam o relatrio de incidentes (2.4.7) e relatrio

    de resumo dos testes (2.4.8)

    46

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    47/76

    47

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    48/76

    Figura 15 Classes da customizao da ferramenta ArgoUML

    3.3 IMPLEMENTAO

    3.3.1 Alteraes na ferramenta ArgoUML

    As classes criadas para representar os casos de teste foram implementadas no pacote

    uml, conforme mostra a figura 16.

    48

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    49/76

    Figura 16 Classes implementados e/ou alteradas no ArgoUML

    A classe org.argouml.uml.ui.TabTestCase1mantm as informaes do autor, reviso,

    data, ambiente necessrio e procedimentos especiais do caso de teste compatveis com padro

    IEEE 829 visto na seo (2.4.3). Estas informaes so persistidas como tagged values

    (mecanismo de extenso da UML, ver BOOCH, RUMBAUGH e JACOBSON 2000, p.74-88)

    do diagrama de casos de uso. Para criar tagged values foi utilizada a classe

    UMLModelElementTaggedValueDocumentdo ArgoUML, conforme mostra a figura 17.

    49

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    50/76

    Figura 18 Guia Caso de Teste, implementada pela classe TabTestCase1

    A classe org.argouml.uml.ui.TabTestCase2 implementa a guia que est representada

    na figura 19.

    Figura 19 Guia Caso de Teste - Procedimento, implementada pela classe TabTestCase2

    Nesta classe so mantidos os dados dos procedimentos de teste (entradas e sadas).

    Estas informaes tambm so persistidas como tagged valuesdo diagrama de casos de uso.

    A classe TableModelTestCase2 implementa uma tabela que recebe os dados digitados e

    transforma em tagged values, conforme mostra a figura 20. As tags so formadas pelos

    prefixos procedimento_ e verificao_ mais o nmero da linha em que se encontram os dados

    e cada valuerecebe o valor digitado na tabela.

    50

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    51/76

    Mais informaes sobre mecanismos de extenso da UML podem ser encontradas em

    Booch, Rumbaugh e Jacobson (2000, p.74-88).

    A classe org.argouml.uml.diagram.use_case.ui.FigTestCaseimplementa o esteretipo2

    que representa o caso de teste (ver figura 21). Este esteretipo tem como base o elemento caso

    de uso. Esta classe herdeira da classe FigUseCase(classe que representa o caso de uso) e a

    ela foi dado o nome de esteretipo Caso de Teste. A figura 22 mostra parte do cdigo que

    implementa a classeFigTestCasee o esteretipo Caso de Teste.

    Figura 21 Esteretipo de Caso de Teste

    Figura 22 Trecho do cdigo que implementa o esteretipo de Caso de Teste

    A classe org.argouml.uml.diagram.use_case.ui.UMLUseCaseDiagram do projeto

    original. Ela foi customizada, para possibilitar a insero de casos de teste no diagrama de

    casos de uso (ver figura 23).

    Figura 23 Barra de ferramentas customizada para permitir a incluso de casos de teste

    3.3.2 Ferramenta de planejamento e execuo de testes (TestCen)

    51

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    52/76

    de teste e no segundo nvel esto os casos de teste associados ao projeto de teste. A rvore

    montada em tempo de execuo a partir das instncias das classes projeto_teste e caso_teste.

    Do lado direito da figura 24 utilizado o componente TPageControl, que possui trs

    guias. A primeira guia (Informaes do Projeto) mostra as informaes do projeto de teste.

    Esta guia aparece apenas se, no componente TTreeView, selecionado o objeto projeto_teste.

    A segunda e terceira (Informaes do Caso de Teste e Casos de Teste Procedimentos)

    mostram os dados de um caso de teste. Ao selecionar um caso de teste no TTreeView, os

    dados do objeto correspondente so mostrados nestas guias. Para mostrar os dados foram

    utilizados os componentes TEdit, TMemo e TStringGrid.

    Na parte superior da figura 24 est o menu de opes e, abaixo deste, est a barra de

    ferramentas com atalhos para itens do menu de opes.

    52

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    53/76

    de teste. Alm disso, pode-se visualizar o histrico de execues de um caso de teste e exibir,

    em forma de rvore, os casos de teste por caso de uso.

    J no menu Grficos, existem as opes de grfico de casos de teste por caso de uso,

    que mostra a quantidade de casos de teste por caso de uso, e grfico de cobertura de casos de

    teste, que mostra o nmero de casos de teste testados e no testados em relao ao total de

    casos de teste.

    No ltimo menu, Relatrios, existem as opes para imprimir os dados de um caso de

    teste onde aconteceram erros na execuo e imprimir o resumo do projeto de teste.

    A camada de persistncia formada por instncias das classes apresentadas na figura

    14. Os dados mantidos nos campos da interface com o usurio so gravados nos objetos da

    camada de persistncia. Os dados dos objetos so persistidos em disco no formato XML

    atravs da opo salvar do menu Projeto de Teste ou no boto salvar da barra de ferramentas.

    A figura 25 mostra um exemplo da estrutura do arquivo XML de um projeto de teste.

    53

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    54/76

    Na classe TfrmTestCen (herdeira da classe TForm), foram criados mtodos para

    implementar as regras de negcio da ferramenta. Destaca-se, entre os mtodos, o mtodoimporta_XMIque faz a importao dos dados, exportados do ArgoUML, para a ferramenta. O

    apndice B mostra o cdigo de implementao da importao. Para auxiliar na leitura do

    arquivo XMI, foi utilizado assistente XML Data Bindingdo prprio Delphi. Baseado em um

    arquivo XMI, criado com o ArgoUML, o assistente criou classes e interfaces para ler e

    processar os dados do arquivo. O mtodo importa_XMIimplementa as regras de quais dadosdevem ser importados e onde devem ser gravados dentro da ferramenta TestCen.

    Para implementao dos grficos, foi utilizada a classe TChart e para gerar os

    relatrios foi utilizada a classe TQuickRep.

    3.3.3 TCNICAS E FERRAMENTAS UTILIZADAS

    Para a modelagem foi utilizada a UML com a ferramenta CASE ArgoUML. Para a

    customizao da ferramenta ArgoUML foi utilizada a IDE (Integrated Development

    Environment ambiente integrado de desenvolvimento) NetBeans juntamente com o pacote

    de desenvolvimento JavaTM 2 SDK Standard Edition verso 1.4.2. Para a ferramenta de

    planejamento e execuo de testes foi utilizada a IDE Delphi 7.

    Para o desenvolvimento de todo o trabalho foram usadas tcnicas de anlise e projeto

    de software orientado a objetos com UML (BEZZERA, 2002) e tcnicas de teste funcional de

    software, alm de conceitos de arquitetura de software e XML.

    3.3.4 OPERACIONALIDADE DA IMPLEMENTAO

    Para facilitar o entendimento da ferramenta desenvolvida, foi realizado um conjunto de

    54

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    55/76

    Inicialmente o Analista precisa criar os casos de uso na ferramenta CASE ArgoUML.

    Aplicando as metodologias de teste baseado em caso de uso, apresentadas por Binder (2000) eHeumann (2004), foram desenvolvidos manualmente os casos (cenrios) de teste apresentados

    na figura 27. Estes casos (identificados pelo esteretipo ) foram

    especificados, no diagrama de casos de uso, utilizando a modificao aplicada na ferramenta

    CASE ArgoUML.

    Tabela 4 Descrio do caso de uso de emprstimo de livros

    Caso de uso emprestar livro

    Identificador CU001

    Ator primrio Aluno

    Ator secundrio Bibliotecrio

    Pr-condiesO aluno deve estar cadastrado no sistema de acadmicos e ter umcadastro e senha na biblioteca.

    Fluxo Principal

    O aluno informa os livros a serem emprestados. A bibliotecria faza leitura do cdigo de barras de cada livro e o sistema registra adata e hora do emprstimo, o cdigo do livro e qual a data dedevoluo do mesmo.

    Fluxo Alternativo 1O aluno tenta emprestar um livro, porm existem livrosemprestados cuja data de entrega j venceu. O sistema no deve

    permitir o emprstimo.

    Fluxo Alternativo 2O aluno tenta emprestar um livro, mas existem multas no pagasde atraso na entrega de livros. O sistema no deve permitir oemprstimo.

    Fluxo Alternativo 3O aluno tenta emprestar um livro, mas o nmero mximo deemprstimos j excedeu. O sistema no deve permitir oemprstimo.

    Para o fluxo principal, o sistema dever ter registrado com sucesso

    55

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    56/76

    operacionais e seus valores para teste. A tabela 5 mostra as variveis operacionais para o caso

    de teste do fluxo principal (Testar emprstimo de livros).Tabela 5 Variveis operacionais e valores para teste

    Cdigo do aluno Cdigo do livro Data e hora do emprstimo Data da devoluo001 005 Data e hora do momento do

    emprstimoData do momento deemprstimo + 7 dias

    Por ltimo, foram desenvolvidos os casos de teste, incluindo os procedimentos para

    execuo dos testes. Estes foram desenvolvidos com base nas descries dos casos de uso e

    nas variveis operacionais identificadas. A tabela 6 apresenta a descrio do caso de teste do

    fluxo principal (Testar emprstimo de livros).

    Tabela 6 Procedimento de teste para fluxo principal -Testar emprstimo de livrosProcedimentos Verificaes

    Na tela de validao do aluno, digitar comocdigo do aluno 001e senha abc123(j

    previamente cadastrados).

    O sistema dever ir para a tela de emprstimode livros.

    Informar como cdigo do livro a seremprestado 005.

    O sistema dever trazer as informaes dolivro: nome autor, descrio, editora e n daedio.

    Confirmar a emprstimo do livro para o aluno

    001.

    O sistema dever mostrar uma mensagem de

    confirmao do emprstimo, seguido de umalista de livros emprestados pelo aluno, ondepara o livro 005 a data e hora do emprstimodeve ser a data e hora do momento deemprstimo e a data de devoluo deve ser adata do momento de emprstimo + 7 dias.

    56

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    57/76

    Figura 27 Testes de cenrio para o caso de usoEmprestar livro

    As figuras 28 e 29 mostram as especificaes do caso de teste fluxo principal (Testar

    emprstimo de livros) na customizao feita no ArgoUML. A figura 29 descreve os

    procedimentos para execuo do teste. Na tabela 6 foram descritos os procedimentos, desta

    forma, bastou apenas copiar os procedimentos do caso de teste para o ArgoUML.

    57

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    58/76

    Figura 29 Procedimentos do caso de teste principal (Testar emprstimo de livros)

    3.3.4.1 Especificao dos casos de teste na ferramenta TestCen

    Aps os casos de teste terem sido especificados no ArgoUML, as informaes podemser exportadas para um arquivo XMI (XML Metadata Interchange), atravs do menu Tools,

    opoExport as XMI. Este arquivo pode ser importado pela ferramenta TestCen, atravs do

    menu Casos de Teste opo Importar XMI (ArgoUML) (ver figura 30). Vale lembrar que

    antes de importar os casos de teste, necessrio criar um projeto de teste.

    58

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    59/76

    O prximo passo complementar as especificaes dos casos de teste, caso as

    informaes importadas estejam incompletas. Neste exemplo as informaes de teste foram

    importadas, mas elas poderiam ser digitadas, pois a ferramenta permite a digitao ou

    importao das especificaes de teste. A figura 31 ilustra a especificao dos casos de teste.

    Figura 31 Parte da especificao dos casos de teste

    59

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    60/76

    Figura 32 Execuo do caso de teste CT001

    Ainda no menu Casos de Teste, existe a opoExibir Casos de Teste por Caso de Uso

    que mostra a lista de casos de teste para cada caso de uso, conforme mostra a figura 33. Esta

    opo facilita no rastreamento dos casos de teste por caso de uso.

    60

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    61/76

    Figura 33 Lista de casos de teste por casos de uso

    No menu Grficos pode-se visualizar grficos da quantidade de casos de teste por

    casos de uso e a cobertura de casos de teste. A figura 34 mostra um grfico com a quantidade

    de casos de teste associada a cada caso de uso. Neste grfico os casos de teste so agrupados

    por caso de uso, possibilitando uma visualizao dos casos de uso que possuem casos de teste

    implementados.

    61

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    62/76

    relatrio, so mostrados os logs de execuo onde houve algum erro, para o caso de teste

    selecionado. Isto , dado um caso de teste que j foi executado, pelo menos uma vez, orelatrio mostra apenas as execues onde foi encontrado algum erro.

    3.4 RESULTADOS E DISCUSSO

    A utilizao das metodologias apresentadas por Binder (2000, p. 722-731) e Heumann

    (2004) proporcionaram uma criao mais fcil e gil dos casos de teste. A utilizao dasferramentas facilitou e organizou todo o processo de teste. Alm disso, contribuiu para a re-

    execuo dos testes, isto , no momento em que o software foi alterado todos os testes

    executados anteriormente foram executados da mesma forma que foram executados nas vezes

    anteriores.

    A utilizao dos casos de uso no teste facilitada a medida que a especificao de

    requisitos e a especificao dos casos de uso feita de forma detalhada. Isto , a elicitao de

    requisitos e a anlise esto intimamente ligadas ao teste e validao de requisitos.

    A figura 35 mostra a cobertura das ferramentas implementadas em relao aos

    documentos descritos no padro IEEE 829. Dentre os documentos especificados por estepadro apenas a especificao do plano de teste (2.4.1) e o relatrio de transio de item de

    teste no foram implementados. O primeiro no foi coberto por ser um documento de

    planejamento global dos testes, onde so descritas as atividades, ferramentas e estratgias que

    sero utilizadas na fase de teste de um software. Este documento criado juntamente com

    planejamento de um projeto de software e neste ponto no se tem uma viso detalhada dosrequisitos. O segundo no foi coberto por ser um documento de comunicao entre a rea de

    desenvolvimento e a rea de testes.

    62

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    63/76

    FerramentaTestCen

    Ferramentas TestCen eArgoUML

    Ferramenta TestCen

    63

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    64/76

    4 CONCLUSES

    A utilizao das metodologias e ferramentas apresentadas neste trabalho podem

    auxiliar as equipes de teste a verificar e validar os requisitos de software de forma simples e

    organizada.

    Os objetivos definidos foram alcanados. Uma ferramenta de suporte ao planejamento

    do teste funcional de software a partir dos diagramas de casos de uso foi desenvolvida. Asmetodologias de teste baseada em casos de uso da UML, apresentadas por Heumann (2004) e

    Binder (2000, p. 722-731), foram aplicadas e facilitaram a criao de casos de teste. A

    ferramenta CASE ArgoUML foi adaptada para incorporar extenses a casos de testes. Isto foi

    possvel com a utilizao do mecanismo de criao de novos esteretipos disponvel na

    ferramenta CASE. Alm disso a ferramenta desenvolvida utilizou boa parte dos padresexistentes na IEEE 829 e que facilitaram e organizaram o processo de planejamento e

    execuo dos testes.

    importante salientar que o trabalho apresentado apenas supre parte do que a

    atividade de teste deve contemplar. Isso significa que o teste no se limita apenas a testar e

    validar os requisitos funcionais. Outros testes, como teste de performance, de carga, de

    unidade e integrao, devem ser executados durante a atividade de testes e estes tambm

    devem ser feitos de forma sistemtica e organizada .

    Outro aspecto a ser considerado o conjunto de testes elaborados para a validao das

    ferramentas. Os testes ficaram restritos ao orientando e seu orientador.

    Futuramente pretende-se disponibilizar a ferramenta nas disciplinas de engenharia de

    software da FURB visando facilitar o entendimento de conceitos sobre testes de software a

    64

    li d O i d d t i t d i d l d

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    65/76

    aplicados. O mecanismo de reproduo teria como entrada o arquivo gerado pelo gravador e

    ento reproduziria a interao que o usurio teve. Alm disso, o arquivo (chamado de script)poderia ser alterado manualmente e a este poderiam ser acrescentados comandos de interao

    e controle de fluxo. Desta forma a mesma interao com a interface poderia ser feita com

    dados diferentes.

    Outra sugesto seria o estudo de tcnicas de inteligncia artificial como, por exemplo,

    processamento de linguagem natural aplicada a automatizao do processo de testes baseados

    em casos de uso.

    65

    REFERNCIAS BIBLIOGRFICAS

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    66/76

    REFERNCIAS BIBLIOGRFICAS

    BARTI, Alexandre. Garantia da qualidade de software: adquirindo maturidadeorganizacional. Rio de Janeiro: Elsevier, 2002.

    BEZERRA, Eduardo. Princpios de anlise e projeto de sistemas com UML. Rio deJaneiro: Campus, 2002.

    BINDER, Robert V. Testing object-oriented systems: models, patterns and tools. Addison-Wesley, 2000.

    BOOCH, Grady; RUMBAUGH, James. JACOBSON, Ivar. UML, guia do usurio. Rio deJaneiro: Campus, 2000.

    CAVARRA, Alessandra et al. Using UML for automatic test generation. Disponvel em:. Acesso em:08 set. 2003.

    HEUMANN, Jim. Generating test cases from use cases. Disponvel em:. Acesso em: 20 jan. 2004.

    INSTITUTE OF ELECTRICAL AND ELECTRONIC ENGINEERS. IEEE Std 829-1998:IEEE standard for software test documentation. Nova York, 1998.

    OFFUTT, Jeff; ABDURAZIK, Aynur. Using UML collaboration diagrams for staticchecking and test generation. Disponvel em:. Acesso em: 08 set. 2003a.

    OFFUTT, Jeff; ABDURAZIK, Aynur. Generating tests from UML specifications.Disponvel em: . Acesso em:08 set. 2003b.

    l f d k il

    66

    REGNELL Bjrn; RUNESON Per; WOHLIN Claes Towards integration of use case

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    67/76

    REGNELL, Bjrn; RUNESON, Per; WOHLIN, Claes. Towards integration of use casemodelling and usage-based testing. Disponvel em:

    . Acesso em: 20 out. 2003.

    ROCHA, Ana R. Cavalcanti da; MALDONADO, Jos C; WEBER, Kival C. Qualidade desoftware: teoria e prtica. So Paulo: Prentice Hall, 2001.

    ROSA, Edson. Software de apoio a etapa de testes, utilizando tcnicas de caixa preta.1997. 67 f. Trabalho de Concluso de Curso (Bacharelado em Cincias da Computao) -Centro de Cincias Exatas e Naturais, Universidade Regional de Blumenau, Blumenau.

    RYSER, Johannes; GLINZ, Martin. A practical approach to validating and testingsoftware systems using scenarios. Disponvel em:. Acessoem: 01 set. 2003.

    SANDER, Izabela. Sistema de gerenciamento do teste de software baseado na normaISSO/IEC 12207. 2002. 64 f. Trabalho de Concluso de Curso (Bacharelado em Cincias daComputao) - Centro de Cincias Exatas e Naturais, Universidade Regional de Blumenau,Blumenau.

    SANTIAGO, Denise. Ferramenta para teste de programas utilizando componentes da

    biblioteca CLX. 2002. 57 f. Trabalho de Concluso de Curso (Bacharelado em Cincias daComputao) - Centro de Cincias Exatas e Naturais, Universidade Regional de Blumenau,Blumenau.

    SEPIN. Qualidade dos produtos de software. Disponvel em:. Acesso em:15 abr. 2004.

    SOMMERVILLE, Ian. Engenharia de software.6. ed. So Paulo: Addison Wesley, 2003.

    TOLKE, Linus. ArgoUML Project. Disponvel em: . Acesso em:

    67

    APNDICE A Relatrio de erros por caso de teste

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    68/76

    APNDICE A Relatrio de erros por caso de teste

    68

    APNDICE B Cdigo fonte da importao do arquivo XMI

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    69/76

    APNDICE B Cdigo fonte da importao do arquivo XMI

    //Importa arquivo XMIprocedure TfrmTestCen.importa_XMI;var

    i, i1, i2, i3, i4, i5 : integer;docXMI: IXMLXMIType;contentType: IXMLXMIcontentType;modelo: IXMLModel_ManagementModelType;ownedElement: IXMLFoundationCoreNamespaceownedElementType;listaEstereotipo: IXMLFoundationExtension_MechanismsStereotypeTypeList;estereotipo: IXMLFoundationExtension_MechanismsStereotypeType;LUseCase: IXMLBehavioral_ElementsUse_CasesUseCaseTypeList;UseCase: IXMLBehavioral_ElementsUse_CasesUseCaseType;useCaseEstereotipo:

    IXMLFoundationExtension_MechanismsStereotypeextendedElementType;listaTaggedValue: IXMLFoundationCoreModelElementtaggedValueType;listaAssociacoes: IXMLFoundationCoreAssociationTypeList;associacao: IXMLFoundationCoreAssociationType;conexao: IXMLFoundationCoreAssociationconnectionType;

    tempCasoTeste: caso_teste;tempProcedimento: procedimento_teste;

    begin

    //Abre arquivo XMI para importaodocXMI:= LoadXMI(odImportaXMI.FileName);contentType:= docXMI.XMIcontent;modelo:= contentType.Model_ManagementModel;

    ownedElement:= modelo.FoundationCoreNamespaceownedElement;ListaEstereotipo:= ownedElement.FoundationExtension_MechanismsStereotype;

    //Busca esteretipos de caso de testefor i:= 0 to ListaEstereotipo.Count - 1 dobeginestereotipo := ListaEstereotipo.Items[i];if estereotipo.FoundationCoreModelElementname = 'Caso de Teste' thenbegin

    useCaseEstereotipo:=

    estereotipo.FoundationExtension_MechanismsStereotypeextendedElement;break;endelse

    estereotipo:= nil; //endifend; //endfor

    69

    if estereotipo nil theni

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    70/76

    begin//Inicializa treeview

    tvTestCen.Items.item[0].Selected := true;// busca lista de casos de usoLUseCase:= ownedElement.Behavioral_ElementsUse_CasesUseCase;

    for i:=0 to LUseCase.Count -1 dobegin//Pega caso de uso da vezUseCase:= LUseCase.Items[i];

    //Verifica se um caso de teste - se o caso de uso possui o esteretipode caso de teste

    for i1:=0 to useCaseEstereotipo.Count - 1 dobegin

    if UseCase.Xmiid =useCaseEstereotipo.FoundationCoreModelElement[i1].Xmiidref then

    begin//Importa caso de testetempCasoTeste := caso_teste.Create;

    tempCasoTeste.Set_id(UseCase.FoundationCoreModelElementname);

    //Busca Associaes com os casos de usolistaAssociacoes:= ownedElement.FoundationCoreAssociation;for i4:= 0 to (listaAssociacoes.Count - 1) dobegin

    associacao:= listaAssociacoes.Items[i4];conexao:= associacao.FoundationCoreAssociationconnection;for i5:=0 to (LUseCase.Count - 1) dobegin

    //Verifica se existe conexoif ((LUseCase.Items[i5].Xmiid =conexao.FoundationCoreAssociationEnd[0].FoundationCoreAssociationEndtype.FoundationCoreClassifier.Xmiidref) or

    (LUseCase.Items[i5].Xmiid =conexao.FoundationCoreAssociationEnd[1].FoundationCoreAssociationEndtype.FoundationCoreClassifier.Xmiidref)) and

    ((conexao.FoundationCoreAssociationEnd[1].FoundationCoreAssociationEndtype.FoundationCoreClassifier.Xmiidref = UseCase.Xmiid) or

    (conexao.FoundationCoreAssociationEnd[0].FoundationCoreAssociationEndtype.FoundationCoreClassifier.Xmiidref = UseCase.Xmiid)) then

    begin

    tempCasoTeste.Set_use_case(LUseCase.Items[i5].FoundationCoreModelElementname);break;

    70

    if(listaTaggedValue FoundationExtension MechanismsTaggedValue[i2] FoundationExte

  • 7/26/2019 FERRAMENTA DE SUPORTE AO PLANEJAMENTO DE TESTE FUNCIONAL DE SOFTWARE A PARTIR DE DIAGRAMAS DE CASOS DE USO

    71/76

    (listaTaggedValue.FoundationExtension_MechanismsTaggedValue[i2].FoundationExtension_MechanismsTaggedValuetag = 'autor') then

    tempCasoTeste.Set_autor(listaTaggedValue.FoundationExtension_MechanismsTaggedValue[i2].FoundationExtension_MechanismsTaggedValuevalue);

    if(listaTaggedValue.FoundationExtension_Mechan