LD Adenilso

download LD Adenilso

of 215

Transcript of LD Adenilso

  • 7/27/2019 LD Adenilso

    1/215

    Contribuies para o Teste de Software

    Adenilso da Silva Simo

  • 7/27/2019 LD Adenilso

    2/215

    Contribuies para o Teste de Software

    Adenilso da Silva Simo

    Texto sistematizando o trabalho cientco docandidato, apresentado ao Instituto de CinciasMatemticas e de Computao da Universidadede So Paulo, como parte dos requisitos paraobteno do Ttulo de Professor Livre Docente, junto ao Departamento de Sistemas de Compu-tao.

    So Carlos/SP Janeiro/2011

  • 7/27/2019 LD Adenilso

    3/215

    Resumo

    Este texto foi elaborado para a participao do autor no Concurso Pblico de Pro-fessor Livre Docente junto ao Departamento de Sistemas de Computao do Ins-tituto de Cincias Matemticas e de Computao da Universidade de So Paulo(SSC/ICMC/USP). No texto, apresentada uma sistematizao das pesquisas etrabalhos realizados pelo autor, delineando seu foco de pesquisa emTeste de Soft-ware. Primeiramente, so descritas as contribuies na rea deTeste Baseado em Mquinas de Estados Finitos, o qual concentra os principais esforos do autor eas publicaes mais recentes. Em seguida, so apresentadas as contribuies narea deTeste de Programas Paralelosque caracteriza a segunda linha de atuao do

    autor. Por m, so descritas as outras linhas de pesquisa nas quais o autor tematuado.

    Neste documento, so descritos os fundamentos e os pressupostos com asquais as abordagens tm sido exploradas pelo autor, destacando as contribuiese os desenvolvimentos realizados nos ltimos seis anos de trabalho acadmico,correspondendo ao perodo posterior concluso do doutorado. Nesse perodo,o autor publicou oito artigos completos em revistas, incluindo publicaes naIEEE Transactions on Computers, Oxford Computer Journal, IET Softwaree ComputerLanguages, Systems and Structures, com Qualis A1, B1, B2 e B2, respectivamente.Publicou tambm 24 artigos em congressos da rea, sendo 13 em eventos interna-cionais e 11 em eventos nacionais.

    i

  • 7/27/2019 LD Adenilso

    4/215

    Abstract

    This document was elaborated to fulll the requirements of the authors appli-cation for a position of Associate Professor in Software Engineering, at the Com-puter Systems Department of the Institute of Mathematical Sciences and Com-puting, University of So Paulo (SSC/ICMC/USP). The text systematizes theauthors research contribution, focused on studies aboutSoftware Testing. First,it presents the contributions on software testing based on Finite State Machines,which represents the core of the authors contributions and publications in recentyears. Then, it presents the contributions on Parallel Program Testing, which re-presents his second main topic of investigation. Finally, it describes other research

    topics which the author has investigated.This text describes the background and the assumptions which are the basis

    for the research done by the author, highlighting the contributions and develop-ments accomplished in the last six years, i.e. after the conclusion of the DoctoralThesis. In this period, the author published eight papers in journals, includingIEEE Transactions on Computers, Oxford Computer Journal, IET Softwaree ComputerLanguages, Systems and Structures, evaluated as Qualis A1, B1, B2 e B2, respec-tively. He also published 24 papers in conferences, whereof 13 in internationalevents and 11 in national ones.

    ii

  • 7/27/2019 LD Adenilso

    5/215

    Sumrio

    1 Introduo 1

    1.1 Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Organizao do Texto Sistematizado . . . . . . . . . . . . . . . . . . 5

    2 Contribuies ao Teste de Software 7

    2.1 Teste Baseado em Mquinas de Estados Finitos . . . . . . . . . . . . 82.2 Teste de Programas Paralelos . . . . . . . . . . . . . . . . . . . . . . 242.3 Outras Linhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    2.3.1 Teste de Mutao . . . . . . . . . . . . . . . . . . . . . . . . . 292.3.2 Teste de Regresso . . . . . . . . . . . . . . . . . . . . . . . . 302.3.3 Teste Funcional . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    2.4 Consideraes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    3 Concluses 36

    3.1 Discusso e Reexes . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.2 Trabalhos Futuros e em Andamento . . . . . . . . . . . . . . . . . . 37

    A Teste baseado em Mquinas de Estados Finitos: Denies e Exemplos 49A.1 Denies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49A.2 Propriedades de MEFs . . . . . . . . . . . . . . . . . . . . . . . . . . 52A.3 Domnio de Defeitos . . . . . . . . . . . . . . . . . . . . . . . . . . . 53A.4 Custo de Aplicao do Critrio . . . . . . . . . . . . . . . . . . . . . 53A.5 Mtodos de Gerao . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    A.5.1 Comparao entre os Mtodos de Gerao . . . . . . . . . . 64

    iii

  • 7/27/2019 LD Adenilso

    6/215

    iv

    B Teste de Programas Paralelos: Denies e Exemplos 66

    B.1 Critrios de Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    C Checking Completeness of Tests for Finite State Machines. IEEE Tran-

    sactions on Computers, 2010 72

    D Fault Coverage-Driven Incremental Test Generation. Computer Journal,

    2010 83

    E Comparing Finite State Machine Test Coverage Criteria. IET Software,

    2009. 99

    F Structural Testing Criteria for Message-Passing Parallel Programs. Con-

    currency and Computation. Practice & Experience, 2008 115

    G A Transformational Language for Mutant Description. Computer Lan-

    guages, Systems & Structures, 2009 140

    H Towards Deriving Test Sequences by Model Checking. Electronic Notes

    in Theoretical Computer Science, 2008 159

    I Generating Reduced Tests for FSMs with Extra States. 21st IFIP Int.

    Conference on Testing of Communicating Systems, 2009 180

    J A Generalized Model-based Test Generation Method. The 6th IEEE In-

    ternational Conferences on Software Engineering and Formal Methods,

    2008 198

  • 7/27/2019 LD Adenilso

    7/215

    Lista de Figuras

    2.1 Arquitetura da Plavis/FSM. . . . . . . . . . . . . . . . . . . . . . . . 132.2 Condies de Sucincia. . . . . . . . . . . . . . . . . . . . . . . . . 172.3 Arquitetura da Ferramenta ValiPar. . . . . . . . . . . . . . . . . . . . 262.4 Distribuio das Publicaes. . . . . . . . . . . . . . . . . . . . . . . 332.5 Distribuio das Publicaes: Contribuies. . . . . . . . . . . . . . 35

    A.1 Exemplo de MEF extrado de (Dorofeeva et al., 2005b). . . . . . . . 55A.2 Grafo-X d. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57A.3 Grafo- e Grafo- reduzido. . . . . . . . . . . . . . . . . . . . . . . . 58

    B.1 PCFG para o programa GCD (Souza et al., 2008). . . . . . . . . . . . 70

    v

  • 7/27/2019 LD Adenilso

    8/215

  • 7/27/2019 LD Adenilso

    9/215

    teste bem sucedido aquele que revela a presena de um ou mais defeitos atento no encontrados (Myers et al., 2004). Quando executado de forma sistem-

    tica e criteriosa, o teste contribui para aumentar a conana de que o softwareapresenta os requisitos anteriormente estabelecidos, uma vez que, em geral, no possvel provar que um programa est isento de defeitos (Harrold, 2000; Weyu-ker, 1996).

    De acordo com Pressman (2005), uma estratgia de teste de software integramdulos de projeto de casos de teste em uma srie planejada de etapas, forne-cendo um roteiro que descreve os passos a serem conduzidos. Essa estratgiadeve ser exvel e, ao mesmo tempo, controlada, de forma a promover um pla-nejamento razovel e acompanhamento gerencial medida que o projeto avana.Uma estratgia de teste deve incorporar atividades, tais como: planejamento deteste, que responsvel por formular a maneira em que a atividade de teste serconduzida, como por exemplo, a escolha das tcnicas e critrios a serem utiliza-dos; projeto de casos de teste, o qual consiste na elaborao dos casos de teste apartir dos critrios estabelecidos; execuo do teste, que conduz a aplicao doscasos de teste criados anteriormente; coleta e avaliao dos resultados do teste, a

    qual se tem um levantamento de como a atividade foi conduzida e os resultadosobtidos (Pressman, 2005; Maldonado, 1991; Beizer, 1990).

    Um dos pontos mais importantes e cruciais da atividade de teste o projetode casos de teste. Um caso de teste um par ordenado composto pela entrada epela sada esperada. Um conjunto de casos de teste forma um conjunto de teste.Segundo Myers et al. (2004), um bom caso de teste aquele que tem alta proba- bilidade de encontrar um defeito ainda no descoberto. Porm, a construo doconjunto de teste no trivial, uma vez que, na maioria dos casos, deve-se se-lecionar um conjunto especco e nito, j que se torna impraticvel testar todoo domnio de entrada de um software. Para isso, tem-se o conceito de critriode teste, que tem como objetivo a seleo e/ou avaliao dos casos de teste, deforma a aumentar as possibilidades de revelar a presena de defeitos e estabelecerum nvel elevado de conana na correo do produto (Fabbri and Maldonado,2001). Um critrio de teste dene requisitos de teste que um conjunto de testedeve satisfazer.

    2

  • 7/27/2019 LD Adenilso

    10/215

    Tcnicas de teste foram estabelecidas com o objetivo de encontrar o mximode defeitos possveis de um software. Essas tcnicas so classicadas de acordo

    com a origem da informao que utilizada para estabelecer os requisitos detestes (Maldonado, 1991). As principais tcnicas de teste so:

    Funcional: conhecida tambm como caixa-preta, considera o sistema como umacaixa fechada da qual no se tem conhecimento sobre sua implementaoou seu comportamento interno. No teste funcional, os testes so geradossomente considerando os valores de entrada e sada do sistema utilizandocomo base a sua especicao.

    Estrutural: conhecida tambm como caixa-branca, estabelece os requisitos deteste baseados na estrutura interna do produto em teste. A gerao dostestes considera as estruturas lgicas e funcionais implementadas, veri-cando se as funcionalidades e os resultados gerados esto de acordo com aespecicao. Por ser baseado no conhecimento da estrutura interna da im-plementao, o testador deve ter acesso ao cdigo fonte do programa, que utilizado para gerar os casos de teste.

    Baseada em Defeitos: estabelece os requisitos de teste explorando os defeitos t-picos cometidos durante o desenvolvimento de software (DeMillo, 1980).Vrias caractersticas do desenvolvimento de software devem ser conside-radas quando se trata do teste baseado em defeitos, como a linguagem uti-lizada, ferramentas, tipo de software, entre outros.

    Essas tcnicas so em geral complementares, devendo ser aplicadas de formaestratgica em um programa para obter melhores resultados (Maldonado, 1991).

    Para auxiliar no projeto de casos de teste, importante que se tenha uma de-nio clara de o que a sada esperada para uma dada entrada. Assume-sea existncia de umorculo capaz de determinar se o programa passou ou no noteste. Contudo, se o orculo for um procedimento manual, a quantidade de testesque podem ser executados limitada. Uma abordagem que tem sido empregadapara, por um lado, ajudar na gerao de casos de teste, e, por outro lado, simpli-car a denio das sadas esperadas a utilizao de um modelo formal, com

    3

  • 7/27/2019 LD Adenilso

    11/215

    semntica bem denida, que permite automatizar a tarefa de decidir se o testeproduziu ou no a sada esperada. Coletivamente denominadoTeste Baseado em

    Modelos(Pretschner and Philipps, 2004), essa abordagem permite que um volumemaior de testes seja aplicado, pois, entre outras vantagens, automatiza a tarefa doorculo. Dentre as diversas tcnicas de teste baseado em modelos, as baseadasem mquinas de estados nitos vem recebendo grande ateno da comunidadeacadmica e da indstria h vrias dcadas.

    O teste baseado em mquinas de estados nitos tem uma longa histria, sendoque os primeiros trabalhos datam da dcada de 50 (Moore, 1956; Hennie, 1964).Trata-se, contudo, de uma rea que continua sendo ativamente investigada (Hi-erons et al., 2009). Diversos mtodos de gerao tm sido propostos. Novos m-todos geralmente incorporam avanos no entendimento das caractersticas quefazem com que os conjuntos de teste gerados apresentem propriedades deseja-das.

    A eccia de uma estratgia de teste est diretamente relacionada com as ca-ractersticas dos programas a serem testados. Por exemplo, programas que resol-vem problemas numricos devem ser testados de forma diferente de programas

    baseados em transaes. Assim, importante que estratgias de teste sejam in-vestigadas em diversos paradigmas e tcnicas de programao.

    Programas paralelos so aqueles em que dois ou mais processos so executa-dos simultaneamente. Programas paralelos adicionam um nvel maior de com-plexidade durante a fases de projeto e implementao, pois devem ser levadosem considerao detalhes de comunicao e sincronizao entre processos, nodeterminismo, etc. Da mesma forma, o teste de programas paralelos deve le-var em considerao caractersticas que podem impedir que tcnicas de teste deprogramas tradicionais sejam aplicadas adequadamente. O teste de programasparalelos devem lidar com caractersticas que, em geral, no esto presentes noteste de programas tradicionais, tais como problemas de sincronizao entre pro-cessos,deadlockse livelocks, e o no determinismo na execuo.

    Os trabalhos desenvolvidos pelo autor aps a concluso do doutorado estofocados principalmente nas subreas do teste baseado em modelos, em particular,

    4

  • 7/27/2019 LD Adenilso

    12/215

  • 7/27/2019 LD Adenilso

    13/215

    como o teste baseado em defeitos e o teste funcional. No Captulo 3 so discutidasas concluses e indicados os trabalhos futuros e em andamento. Nos Apndice A

    e B so apresentados os principais conceitos e as denies relacionadas ao teste baseado em mquinas de estados nitos e ao teste de programas paralelos, res-pectivamente. Por m, nos Apndices C a J so includas as publicaes maisrelevantes, resultantes do trabalho aqui reportado.

    6

  • 7/27/2019 LD Adenilso

    14/215

    Captulo 2

    Contribuies ao Teste de

    Software

    A seguir, so resumidos os trabalhos desenvolvidos pelo autor ou sob sua orien-tao aps a concluso do doutorado. Os trabalhos sero classicados de acordocom o enfoque principal. As publicaes relacionadas sero indicadas ao longodo texto e sumarizadas ao nal. Os trabalhos foram divididos em trs grupos,correspondentes s subsees desse captulo. Primeiramente, so apresentadosos trabalhos relacionados ao teste baseado em mquinas de estados nitos, querepresenta a maior parte dos trabalhos desenvolvidos pelo autor. Em seguida,apresenta-se o teste de programas paralelos, que representa uma rea de investi-gaoque o autor tem desenvolvido, podendo serconsiderada como sua segundaprincipal rea de atuao. Por m, so apresentados trabalhos que so relevantesdesenvolvidos em outras linhas, todas relacionadas a diferentes aspectos do teste

    de software.Os trabalhos so apresentados de forma resumida. Apenas os conceitos prin-cipais so apresentados, assim como os aspectos que distinguem os trabalhos ecaracterizam sua contribuio principal. Informaes adicionais sobre os traba-lhos so includas nos apndices; denies formais, exemplos e detalhes podemser l encontrados. A referncia de cada publicao includa em uma nota derodap, usando a seguinte conveno. Os crculos correspondem s publicaes

    7

  • 7/27/2019 LD Adenilso

    15/215

    em revista, enquanto que os quadrados correspondem s publicaes em confe-rncias. As publicaes nacionais so apresentadas com linha tracejada. As oito

    publicaes mais relevantes so apresentadas com fundo cinza; cpias dessas pu- blicaes podem ser encontradas nos Apndices C a J.

    2.1 Teste Baseado em Mquinas de Estados Finitos

    Nesta seo, so apresentados os resultados obtidos na rea de pesquisa do teste baseado em mquinas de estados nitos. Trata-se da rea em que o autor tematuado mais diretamente aps a concluso de seu doutorado. Deve-se destacarque no perodo de Ago/2008 a Jul/2010, o autor realizou um estgio de ps-doutoramento junto aoCentre de Recherche Informatique de Montreal(CRIM), emcolaborao com o pesquisador Alexandre Petrenko, o que contribuiu para con-solidar os resultados que vinham sendo desenvolvidos.

    As pesquisas desenvolvidas nessa linha esto no contexto do teste baseadoem modelos, que busca uma forma automatizada de gerar casos de teste a partirde uma especicao ou modelo. Embora alguns autores armem que o teste

    sempre baseado em modelos, dado que modelos mentais implcitos so usadospara guiar os testes (Binder, 1999), a ideia do teste baseado em modelos utilizarmodelos explcitos (Pretschner and Philipps, 2004). Utting and Legeard (2006)denem o teste baseado em modelos como automao do projeto de testes caixa-preta em que, dado um modelo de teste adequado, sequncias de teste podem sergeradas e transformadas emscripts executveis.

    O modelo de teste pode ser construdo manualmente, derivado de alguma es-pecicao de requisitos ou fonte de conhecimento sobre o sistema, codicando ocomportamento esperado de uma implementao chamada de sistema sob teste(System Under Test - SUT). importante que a tcnica de modelagem selecionadapara o teste baseado em modelos seja formal (em outras palavras, bem denidasinttica e semanticamente), pois a presena de modelos ou especicaes for-mais pode levar a um teste mais eciente e efetivo (Hierons et al., 2009). SegundoUtting and Legeard (2006), um modelo formal se possui um signicado precisoe no ambguo, representando o comportamento de uma forma compreensvel e

    8

  • 7/27/2019 LD Adenilso

    16/215

    manipulvel por ferramentas. Pela necessidade de validar o modelo, esse deveser mais simples que o SUT, ou, no mnimo, mais fcil de vericar, modicar e

    manter (Utting et al., 2006). Entretanto, o modelo deve ser sucientemente pre-ciso para servir como base para a gerao de casos de teste signicativos.

    No teste baseado em modelos, a representao por meio de Mquinas de Esta-dos Finitos (MEFs) (Gill, 1962) vem sendo frequentemente utilizada devido suasimplicidade e capacidade de modelar sistemas, principalmente na modelagemde protocolos de comunicao e sistemas reativos. Alm disso, o teste baseadoem MEFs pode ser aplicado em outros tipos de sistemas, como sistemas orien-tados a objetos (Hong et al., 1995) e sistemas Web (Andrews et al., 2005). Outravantagem do uso de MEFs segue do fato de existirem vrios mtodos de geraode sequncias de teste, oferecendo apoio e direcionamento nos testes gerados eexecutados.

    As MEFs so uma tcnica formal que se tem mostrado bastante til para trataro comportamento de sistemas e para ser utilizada no teste de software. Essa tc-nica muito utilizada para modelar o comportamento de sistemas reativos, poisesses so essencialmente dirigidos a eventos e dominados por controle. Alm

    disso, as MEFs possuem uma gama de aplicaes bastante grande e genrica, po-dendo ser utilizadas na modelagem de vrios tipos de sistemas. Sendo assim,seus modelos so aplicveis em diversos contextos, como por exemplo, em pro-tocolos de comunicao, sistemas reativos, circuitos eltricos, entre outros.

    Segundo Gill (1962), uma MEF uma mquina hipottica composta por esta-dos e transies. Cada transio liga um estadoa a um estadob (a e b podem ser omesmo estado). A cada instante, uma mquina pode estar em apenas um de seusestados, o que caracteriza uma mquina determinstica, caso contrrio uma m-quina no determinstica. Em resposta a um evento de entrada, a mquina geraum evento de sada e executa uma transio. Tanto o evento de sada geradoquanto o novo estado so denidos unicamente em funo do estado atual e doevento de entrada (Davis, 1988).

    A utilizao de MEFs no contexto do teste de software vem sendo investigadoh vrias dcadas, sendo que os primeiros trabalhos datam das dcadas de 50(Moore, 1956) e 60 (Hennie, 1964). Dentre os mtodos mais conhecidos, pode-

    9

  • 7/27/2019 LD Adenilso

    17/215

    se destacar os mtodos DS (Gonenc, 1970), W (Chow, 1978), UIO (Sabnani andDahbura, 1988), Wp (Fujiwara et al., 1991), HSI (Petrenko et al., 1993; Luo et al.,

    1994), H (Dorofeeva et al., 2005a) eState Counting (Petrenko and Yevtushenko,2005).

    Em geral, a aplicao dos mtodos de gerao requer que as MEFs possuamcertas propriedades, sendo que diferentes mtodos podem requerer diferentesconjuntos de propriedades. Dessa forma, os diversos mtodos de gerao desequncias de teste a partir de MEFs podem ser classicados com base em trscaractersticas:

    Aplicabilidade, que se refere s propriedades necessrias para aplicao domtodo.

    Completude, que se refere classe de defeitos que o mtodo garante revelar.

    Tamanho dos conjuntos e nmero de sequncias de teste geradas.

    O custo de aplicao dos mtodos pode ser calculado em relao ao custo degerao das sequncias de teste e ao custo da execuo. Por exemplo, um m-

    todo pode ser eciente para gerar as sequncias de teste, porm se as sequnciasgeradas forem muito grandes, seu custo de execuo alto, o que pode torn-loineciente. O custo de execuo das sequncias de teste normalmente o fatordominante quando se avalia o custo da aplicao de um mtodo. Sendo assim, otamanho do conjunto de sequncias de teste geralmente utilizado para compa-rar o custo de aplicao do mtodo. Alm disso, o nmero de sequncias geradaspelos mtodos tambm um fator de inuncia no custo do teste. Em geral,assume-se a existncia de uma operaoreset, que leva tanto a MEF quanto suaimplementao ao seu estado inicial. A operaoreset deve ser inserida no inciode cada sequncias do conjunto de teste; portanto, o nmero de operaesresets igual ao nmero de sequncias de um conjunto de teste.

    Na gerao de testes a partir de MEFs, assume-se que a implementao podeser modelada como uma MEF contida em um domnio de defeitos. Essa hip-tese, conhecida como hiptese de teste, necessria para que um conjunto nitode testes possa ser gerado (Chow, 1978; Ural et al., 1997; Hierons and Ural, 2006;

    10

  • 7/27/2019 LD Adenilso

    18/215

    Hennie, 1964). O teste baseado em MEFs consiste na gerao de um conjunto desequncias de teste cujo objetivo encontrar o mximo de defeitos em uma imple-

    mentao. Dessa forma, possvel vericar se a implementao da MEF est deacordo com sua especicao. Dada uma MEFM comn estados, m (M ) denota odomnio de defeitos denido pelo conjunto de todas as MEFs com o mesmo alfa- beto de entrada e no mximom estados, utilizado por grande parte dos mtodosde gerao, como por exemplo, os mtodos W (Chow, 1978), Wp (Fujiwara et al.,1991), HSI (Petrenko et al., 1993; Luo et al., 1994), H (Dorofeeva et al., 2005a),entre outros. De acordo com Chow (1978), os defeitos so classicados em:

    Defeito de transferncia: transio atinge estado incorreto.Defeito de sada: transio gera uma sada incorreta.

    Estados faltantes: os estados da implementao devem ser aumentados paratorn-la equivalente especicao.

    Estados extras: os estados da implementao devem ser reduzidos para torn-laequivalente especicao.

    Todos esses defeitos podem ser modelados por MEFs pertencentes am (M ),caso o parmetrom seja escolhido adequadamente. Para que o teste em MEFspossa ser realizado, deve-se estimar o nmerom de estados da implementao,sendo que quanto melhor for essa estimativa, melhor ser o conjunto de testeobtido. Os mtodos de gerao de casos de teste consideram que a MEF possuino mximom estados, tal quem seja maior ou igual an (nmero de estados daespecicao). A partir dessa informao, a implementao estar de acordo comsua especicao se no possuir defeitos de transferncias nem defeitos de sada.Para ns de entendimento deste trabalho, ser considerado o teste de MEFs emque o nmero de estados igual o da implementao, ou seja,n = m e o defeitode estados extras no considerado. Dessa forma,(M ) contm todas as MEFsque modelam os defeitos que se encaixam no contexto deste trabalho.

    Um conjunto de sequncias de testeT n -completo, ou simplesmentecompleto,se para cada MEFN (M ) tal queN e M so distinguveis, existe uma sequn-cia pertencente aT que distingueN de M . Ou seja, se o conjunto completo, ele

    11

  • 7/27/2019 LD Adenilso

    19/215

    capaz de revelar todos os defeitos de uma implementao deM que possa sermodelada por uma MEF de(M ).

    Projeto Plavis

    A pesquisa com a gerao de testes baseados em MEFs era um dos objetivos doprojeto Plavis (Platform for Software Validation & Integration on Space Systems, CNPqProcesso no 473396/2003-3 Vigncia: 01/06/2003 a 30/09/2005, prorrogado at30/09/2006), no qual o autor participou aps a concluso do doutorado. O pro- jeto contava com a participao de pesquisadores de diversas universidades bra-

    sileiras e francesas, alm do Instituto Nacional de Pesquisas Espaciais (INPE).No contexto desse projeto, foi desenvolvido um ambiente para integrar diversasferramentas relacionadas ao teste e a MEFs desenvolvidas pelos membros do pro- jeto. Esse ambiente, denominado Plavis/FSM (Simo et al., 2005) , foi utilizadoem alguns cursos de graduao no ICMC e continua sendo utilizado em cursosde ps-graduao no INPE. O ambiente Plavis/FSM serviu como base para tra- balhos de concluso de curso e de iniciao cientca. Contudo, no contexto dostrabalhos desenvolvidos pelo autor, o projeto foi muito relevante, pois foi pormeio desse projeto que o autor iniciou a investigao dos problemas clssicosreferentes a essa linha de pesquisa.

    A arquitetura da Plavis/FSM apresentada na Figura 2.1; a Plavis/FSM foidesenvolvida como uma aplicao Web e est disponvel para uso remoto. Aprincipal motivao foi permitir que a ferramenta pudesse ser utilizada sem anecessidade de instalao. A incorporao de as ferramentas integradas feitapormeio de adaptadores; foram integradas as ferramentas Proteum/FSM (Fabbri

    et al., 1999), Condado (Martins et al., 1999) e MGASet (Candolo et al., 2001).Os primeiros trabalhos orientados pelo autor nessa linha foram dois trabalhosde iniciao cientca, em 2005. Primeiramente, no trabalho de Leonardo Filono-nes Teixeira, foidesenvolvido um mecanismo de ltro de casos de teste. Em geral,o nmero de casos de teste gerados pelos mtodos integrados na Plavis/FSM

    A. S. Simo , A. M. Ambrosio, S. C. P. F. Fabbri, A. S. Amaral, E. Martins, J. C. Maldonado.Plavis/FSM: an Environment to Integrate FSM-based Testing Tools. In: Sesso de Ferramentas doSimpsio Brasileiro de Engenharia de Software, 2005. p. 1-6, Uberlndia, MG

    12

  • 7/27/2019 LD Adenilso

    20/215

  • 7/27/2019 LD Adenilso

    21/215

    noo de completude de casos de teste, a qual passou a gurar em praticamentetodos os trabalhos posteriores nessa linha.

    Minimizao de Conjuntos Completos

    Em 2006, o autor juntou-se ao corpo de orientadores do Programa de Ps-Graduao de Cincias de Computao e Matemtica Computacional doICMC/USP. O primeiro trabalho de mestrado nessa linha de investigao foi otrabalho desenvolvido por Lcio Felipe de Mello Neto. O tema investigado foi aminimizao de casos de teste, de forma a manter a completude na capacidade

    de deteco de defeitos. Primeiramente, foi identicado um trabalho (Dorofeevaet al., 2005a) que denia um conjunto de condies de sucincia para comple-tude de casos de teste. Em geral, os mtodos de gerao garantem por construoque o conjunto de testes obtidos so completos. Contudo, poucos trabalhos in-vestigavam como um conjunto arbitrrio de sequncias pode ser analisado paravericar se ele ou no completo, sendo que os trabalhos de Petrenko et al. (1996)e Yao et al. (1994) eram os nicos encontrados na literatura at ento. O trabalhode Dorofeeva et al. (2005a) apresenta um avano, no sentido de identicar condi-es de sucincia mais exveis. Apesar de os autores desse trabalho apenas asutilizarem para propor um novo mtodo (o mtodo H) que gera conjuntos com-pletos por construo, durante o mestrado de Mello Neto foi observado que taiscondies poderiam ser utilizados para a minimizao de conjuntos de forma amanter a completude.

    Foi desenvolvido um algoritmo, baseado nas condies de sucincia deni-das por Dorofeeva et al. (2005a), que, dados uma MEF e um conjunto de teste

    que satisfaz tais condies (e, portanto, completo), seleciona um subconjuntoque ainda satisfaa tais condies. Resultados preliminares do algoritmo foi pu- blicado em (Mello Neto and Simo, 2007) . A extenso do algoritmo e os estu-dos experimentais realizados para avali-lo foram posteriormente publicados em

    L. F. Mello Neto,A. S. Simo . Minimizao de Conjuntos de Casos de Teste por Meio deCondies de Sucincia. In: The 1st Brazilian Workshop on Systematic and Automated SoftwareTesting. p. 55-62. Joo Pessoa, PB, 2007.

    14

  • 7/27/2019 LD Adenilso

    22/215

    (Mello Neto and Simo, 2008) . Um possvel cenrio de utilizao do algoritmo quando j existe um conjunto de teste (obtido de formaad hoc), mas deseja-setambm a garantia de deteco de defeitos oferecida pelos mtodos completos.Assim, o conjunto inicial pode ser complementado com um conjunto completogerado pelos Mtodos W, Wp, HSI ou H, e o algoritmo desenvolvido por de MelloNeto se encarregaria de remover sequncias desnecessrias.

    O trabalho de Mello Neto motivou a investigao mais aprofundada do tra- balho de Dorofeeva et al. (2005a). Foi desenvolvida a iniciao cientca por JosAugusto Stuchi, cujo objetivo era a implementao do mtodo H, proposto nesse

    artigo. Apesar de ser apenas um trabalho de iniciao cientca, as investigaesrealizadas durante o desenvolvimento desse trabalho resultou em um melhor en-tendimento das limitaes dascondiesde sucinciapropostas e serviude basepara trabalhos futuros. Foi realizado um experimento com o mtodo H e mostra-ram que os conjuntos gerados por esse mtodo , em mdia, 66% do tamanho dosconjuntos gerados pelo mtodo HSI (Petrenko et al., 1993; Luo et al., 1994).

    Um dos passos do mtodo H que possui impacto direto diz respeito escolhade sequncias de separao de dois estados (Dorofeeva et al., 2005a). Dados dois

    estados, uma sequncia de separao uma sequncia de entrada tal que essesestadosproduzam resultadosdiferentes (ou seja, sadas diferentes). O trabalho deconcluso de curso desenvolvido por Guilherme Botelho Diniz Junqueira tinhacomo objetivo identicar estratgias que permitissem selecionar as sequncias dedistino que levariam ao menor acrscimo no tamanho atual do conjunto deteste. Assim, pde-se estudar como diferentes formas de selecionar as sequnciasde distino podem ser utilizadas e como essas formas inuenciam o tamanho

    nal do conjunto de teste. Os resultados desses estudos foram incorporados emtrabalhos futuros.

    L. F. Mello Neto,A. S. Simo . Test Suite Minimization Based on FSM CompletenessSufcient Conditions. In: The 9th IEEE Latin-American Test Workshop. p. 93-98. Puebla, Mexico,2008.(Qualis B3)

    15

  • 7/27/2019 LD Adenilso

    23/215

  • 7/27/2019 LD Adenilso

    24/215

    (Dorofeeva et al. 2005)(Ural et al. 1997)

    (Simao e Petrenko 2010)

    Figura 2.2: Condies de Sucincia.

    condies de (Dorofeeva et al., 2005a). Por outro lado, foi demonstrado que todosos conjuntos que satisfazem quer as condies de (Dorofeeva et al., 2005a) queras condies de (Ural et al., 1997) tambm satisfazem as condies de (Simo andPetrenko, 2010a). Alm disso, demonstrou-se que existem conjuntos que satisfa-

    zem as condies de (Simo and Petrenko, 2010a) e no satisfazem as condiesde (Dorofeeva et al., 2005a) e nem as de (Ural et al., 1997).

    As condies propostas em (Simo and Petrenko, 2010a) foram a base paradois trabalhos de mestrado. O artigo estava em avaliao enquanto os traba-lhos estavam sendo desenvolvidos. No trabalho de Jorge Francisco Cutigi, foielaborado um mtodo de minimizao de conjuntos de teste completos. O m-todo pode ser aplicado com dois objetivos: reduo no nmero de sequncias doconjunto ou reduo no tamanho total do conjunto. Diferentemente do trabalhode Mello Neto, as condies utilizadas por Cutigi permitiram que a reduo nonmero de sequncias fosse muito expressiva (Cutigi et al., 2010) , em mdia80%.

    J. F. Cutigi, P. H. Ribeiro,A. S. Simo , S. R. S. Souza. Reduo do Nmero de Sequnciasno Teste de Conformidade de Protocolos. In: XI Workshop de Testes e Tolerncia a Falhas, p.105-117, 2010, Gramado, RS.(Qualis B5)

    17

  • 7/27/2019 LD Adenilso

    25/215

    Todos os mtodos de gerao, exceto o mtodoState Counting (Petrenko andYevtushenko, 2005), s podem ser aplicados a MEFs reduzidas (ou seja, sem es-

    tados equivalentes). Para ser aplicado a uma MEF no reduzida, essa deve por-tanto ser inicialmente convertida para uma forma reduzida. Enquanto a reduode MEFs completas pode ser realizada por algoritmos polinomiais, a reduo deMEFs parciais um problema de alto custo computacional. No trabalho de AlexDonizeti Betez Alberto, foi proposto um algoritmo para reduo de MEFs parci-ais. O algoritmo (Alberto and Simo, 2009) foi experimentalmente comparadocom algoritmos encontrados na literatura. Observou-se o que, por um lado, os re-sultados eram comparveis ao mtodo que apresentavam os melhores resultadosenquanto que, por outro lado, o tempo gasto para a reduo foi consideravel-mente menor.

    Sequncias de Vericao

    A gerao de sequncias de vericao um tpico que vem sendo investigadodesde os trabalhos seminais de Hennie (Hennie,1964). O objetivo produzirumasequncia de entrada que forme um conjunto completo unitrio. Em (Hennie,1964) foi demonstrado que se a MEF possui uma sequncia de distino, pos-svel gerar uma sequncia de vericao. Contudo, no foi apresentado nenhummtodo sistemtico. Em (Gonenc, 1970), um algoritmo baseado em grafos pro-posto, o qual procura sistematizar o mtodo proposto por Hennie. O interesse nagerao de sequncias foi retomado a partir dos trabalhos de (Ural et al., 1997).Em essncia, esse trabalho baseado no trabalho de (Gonenc, 1970), modelando-o como um problema de otimizao em grafo, a saber o problema do Carteiro

    Rural Chins (Aho et al., 1991). Diversos trabalhos seguiram a mesma linha, taiscomo (Hierons and Ural, 2002; Chen et al., 2005; Ural and Zhang, 2006; Hieronsand Ural, 2006).

    Apesar de diversos trabalhos terem sido desenvolvidos com base no trabalhode (Ural et al., 1997), os ganhos na reduo no tamanho das sequncias de ve-

    A. D. B. Alberto,A. S. Simo . Minimization of Incompletely Specied Finite State Ma-chines Based on Distinction Graphs. In: The 10th Latin-American Test Workshop. p. 1-6, , Buzios,RJ, 2009.(Qualis B3)

    18

  • 7/27/2019 LD Adenilso

    26/215

    ricao so pequenos. Parte do problema pode ser atribudo ao fato de que osmodelos de otimizao se concentram em minimizar sequncias de transferncia,

    que em geral correspondem a uma pequena parte do tamanho total do problema.Dados dois estados, uma sequncia de transferncia uma sequncia de entradaque leva a MEF de um estado a outro. Uma abordagem diferente, baseada em busca local, foi proposta em (Simo and Petrenko, 2008) . Diferentemente dostrabalhos baseados em (Ural et al., 1997), em vez de procurar modelar a geraocomo um problema de otimizao, o mtodo proposto busca a cada passo adici-onar o mnimo de entradas necessrio para vericar uma transio. O trabalhofoi experimentalmente comparado com os dois melhores mtodos baseados notrabalho de (Ural et al., 1997), a saber, (Chen et al., 2005; Hierons and Ural, 2006);em 75% dos casos, o mtodo proposto gerou sequncias menores do que as ge-radas pelo mtodo proposto por (Chen et al., 2005); em todos os casos, o mtodoproposto gerou sequncias menores do que as geradas pelo mtodo proposto por(Hierons and Ural, 2006).

    Em (Simo and Petrenko, 2009) , foi demonstrado que em alguns casospode-se utilizar as sequncias de distino em apenas algumas partes, enquanto

    que em outras utilizam-se sequncias de identicao de estado, tais como nosmtodos baseados no W. importante observar que j em (Hennie, 1964) foimencionado que seria possvel evitar a utilizao das sequncias de distinopara gerao de sequncias de vericao. Contudo, ainda no havia um m-todo sistemtico que indicasse como isso pudesse ser feito. Assim, o trabalhodesenvolvido corresponde a uma importante contribuio terica. A contribui-o prtica, por outro lado, ainda no est clara, pois no foi possvel identicarqual o ganho na reduo do tamanho das sequncias de vericao geradas.

    A. S. Simo , A. Petrenko. Generating Checking Sequences for Partial Reduced FiniteState Machines. In: The 20th IFIP Int. Conference on Testing of Communicating Systems (TEST-COM), p. 153-168, Tokyo, Japo, 2008.(Qualis B3)

    A. S. Simo , A. Petrenko. Checking Sequence Generation Using State DistinguishingSubsequences. In: The 5th Workshop on Advances in Model Based Testing. p. 1-10, Denver, USA,2009.

    19

  • 7/27/2019 LD Adenilso

    27/215

  • 7/27/2019 LD Adenilso

    28/215

  • 7/27/2019 LD Adenilso

    29/215

    mente generalizadas para domnios especcos, tais como implementaes dasquais se sabe que algumas transies esto corretamente implementadas.

    Testes Baseado em Vericadores de Modelos

    Embora a gerao de casos de teste a partir de MEFs ser um tpico bastante in-vestigado, muitos sistemas no podem ser facilmente modelados se no foremincludos mecanismos para a incluso de recursos que permitam descrever comovariveis so manipuladas. Diversas extenses s MEFs para incluir tais recursostm sido propostas, dando origem s MEFs Estendidas (MEFEs). Em (Bonifcio

    et al., 2006) , foi investigado como tcnicas de vericao de modelos podemser utilizadas para orientar a gerao de casos de teste a partir de MEFEs adici-onadas com informaes de tempo. Em geral, muitos problemas relacionados atividade de teste, tais como a distino entre dois estados da MEFEs ou mesmose um determinado estado alcanvel, so indecidveis. Dessa forma, a apli-cao de tcnicas de teste utilizadas em MEFs no so facilmente aplicveis aMEFEs. As tcnicas de vericao de modelos so utilizadas para vericar seuma determinada propriedade, especicada por meio de uma lgica temporal, vlida para um determinado modelo. Caso no seja vlida, um contraexemplo produzido. Se a propriedade a ser vericada cuidadosamente denida parareetir uma propriedade indesejada do sistema, o contraexemplo pode ser utili-zado como base para a construo de casos de teste para testar a presena dessapropriedade no sistema. Uma verso estendida desse trabalho foi publicado em(Bonifcio et al., 2008b) .

    A. L. Bonifacio,A. S. Simo , A. Moura, J. C. Maldonado. Conformance Testing by ModelChecking Timed Extended Finite State Machines. In: Simpsio Brasileiro de Mtodos Formais. p.43-58, Natal, RN, 2006.(Qualis B3)

    A. L. Bonifacio, A. Moura,A. S. Simo , J. C. Maldonado. Towards Deriving Test Sequen-ces by Model Checking. Electronic Notes in Theoretical Computer Science, v. 195, p. 21-40, 2008.(Qualis B2)

    22

  • 7/27/2019 LD Adenilso

    30/215

    Estudos Experimentais

    Em alguns casos, possvel identicar que um mtodo de gerao produz con- juntos que so comprovadamente menores do que outros mtodos. Contudo,em vrias situaes, os mtodos so teoricamente incomparveis: no poss-vel determinar qual mtodo gera os menores conjuntos. Nesses casos, estudosexperimentais so importantes (Dorofeeva et al., 2005b).

    Em (Simo et al., 2007) , foi investigado qual o comportamento tpico dediversoscritrios de cobertura para MEFs. Em geral, apenas os limites tericos dotamanho dos conjuntos de teste gerados pelos diversos mtodos so conhecidos.

    Na maior parte dos casos, tais limites so quadrticos ou cbicos em funo donmero de estados da mquina. Contudo, mostrou-se no trabalho desenvolvidoque para MEFs geradas aleatoriamente tais limites so em mdia muito menores.Por exemplo, enquanto o limite terico para o mtodo H O(n 3 ), onde n onmero de estados da MEF, os estudos experimentais apontam que em geral otamanho do conjunto O(n 1 .4 ). Estes dados so importantes para que o testadorpossa ter subsdios para denir estratgias efetivas de teste. Uma extenso dessetrabalho com a comparao do tamanho de conjuntos completos foi publicadaem (Simo et al., 2009b) .

    No trabalho de mestrado de Flvio Dusse (co-orientado pelo autor), foi inves-tigado como a comparao do critrios de cobertura poderia ser melhorada com aincluso da Anlise de Mutantes. A concluso principal desse trabalho foi de queo escore de mutao de um critrio diretamente relacionado ao tamanho mdiodos conjuntos adequados (Dusse et al., 2009) . Esse resultado conrma a intui-

    A. S. Simo , A. Petrenko, J. C. Maldonado. ExperimentalEvaluation of Coverage Criteriafor FSM-based Testing. In: Simpsio Brasileiro de Engenharia de Software. p. 359-376. JooPessoa, PB, 2007.(Qualis B3)

    A. S. Simo , A. Petrenko, J. C. Maldonado. Comparing nite state machine test coveragecriteria. IET Software, v. 3, p. 91-105, 2009.(Qualis B2)

    F. Dusse,A. S. Simo , J. C. Maldonado. Anlise de Mutantes Aplicada a Critrios de Co- bertura de Teste a partir de MEFs. In: The 3rd Brazilian Workshop on Systematic and AutomatedSoftware Testing. p. 41-50. Gramado, RS, 2009

    23

  • 7/27/2019 LD Adenilso

    31/215

    o de que critrios mais exigentes obtm tambm melhores escores de mutaoe, por conseguinte, devem resultar em melhores casos de teste.

    Resumo

    Foram orientados quatro trabalhos de mestrado, trs trabalhos de iniciao cien-tca e um trabalho de concluso de curso. Os trabalhos contaram com a cola- borao ativa de diversos pesquisadores, em especial, Alexandre Petrenko, comquem realizou o trabalho de ps-doutoramento; Jos Carlos Maldonado, que foio orientador do autor durante o mestrado e doutorado; Adilson Luiz Bonifcio,

    Arnaldo Moura e Simone do Rocio Senger de Souza. Foram publicados quatroartigos em revistas internacionais, seis artigos em eventos internacionais e seteartigos em eventos nacionais.

    2.2 Teste de Programas Paralelos

    Nesta seo, so descritos os trabalhos desenvolvidos pelo autor na rea de pes-quisa relacionada ao teste de programas paralelos. Foram desenvolvidos crit-rios, estratgias e ferramentas para o teste de programas paralelos.

    O teste estrutural, ou teste caixa branca, utiliza a estrutura do programa paradenir critrios de teste. Um critrio de teste estabelece requisitos que um con- junto de teste deve atender, servindo tanto para avaliar a adequao de um con- junto quanto para guiar a gerao de conjuntos adequados. Os critrios de testeso algumas vezes chamados de critrios de cobertura, pois em geral exige-se queelementos especcos do programa sejam cobertos, ou seja, sejam executados

    sob determinadas condies. Em geral, a estrutura do programa abstrada naforma de um grafo de uxo de controle (GFC), no qual cada n representa um bloco de comandos sem desvio de controle (ou seja, ou todos os comandos deum bloco so executados, ou nenhum o ), e cada aresta representa o desvio decontrole entre dois blocos.

    24

  • 7/27/2019 LD Adenilso

    32/215

    Critrios de teste para programas paralelos foram denido em (Souza et al.,2008) . Primeiramente, o conceito de grafos de uxo de controle foi estendido

    de modo a ser aplicado para programas paralelos. Um programa paralelo foi mo-delado com um conjunto de processos concorrentes, que se comunicampela trocade mensagens. Foram includos arestas de sincronizao/comunicao, que re-presentam o envio de uma mensagem de um processo a outro, denindo um GFCparalelo. Mais especicamente, se o nn 1 do GFC de um processo possui um co-mando que envia uma mensagem que pode ser recebida por um comando de umn 2 do GFC de outro processo, uma aresta inter-processo entre os nsn 1 e n 2 criada. Ento, foram denidos critrios de cobertura que levam em consideraotais arestas.

    Os critrios propostos complementam os critrios estruturais introduzidospor (Rapps and Weyuker, 1985) para programas sequenciais. Foi desenvolvidaa ferramenta ValiPar, que apoia o teste estrutural de programas paralelos basea-dos nos critrios denidos (Souza et al., 2005) . A ferramenta foi desenvolvidaem mdulos, como descrito na Figura 2.3.

    Os mdulos que compem a ferramenta so:

    Vali-Inst: responsvel pela gerao do modelo de teste, instrumentao e ex-trao das informaes de uxo de dados. A gerao do modelo de testecria uma representao do programa de entrada no modelo GFC paralelo.A ferramenta ValiPar utiliza uma abordagem conservativa para gerar os ar-cos inter-processos. A instrumentao gera um programa instrumentadoem que comandos so inseridos no programa original para gravar infor-maes sobre trechos executados. A extrao das informaes de uxo de

    dados armazena informaes sobre denies e usos de variveis.

    S. R. S. Souza, S. R. Verglio, P. S. L. Souza,A. S. Simo , A. Hausen. Structural Tes-ting Criteria for Message-Passing Parallel Programs. Concurrency and Computation. Practice &Experience, v. 20, p. 1893-1916, 2008.(Qualis B1)

    S. R. S. Souza, S. R. Verglio, P. S. L. Souza,A. S. Simo , T. B. Gonalves, A. M. Lima, A.C. Hausen. ValiPar: A Testing Tool for Message-Passing Parallel Programs. In: XVII InternationalConference on Software Engineering and Knowledge Engineering. p. 386-392, Taipen, Taiwan,2005.(Qualis B2)

    25

  • 7/27/2019 LD Adenilso

    33/215

    Figura 2.3: Arquitetura da Ferramenta ValiPar.

    Vali-Exec: responsvel pela execuo controlada do programa instrumentadoe gravao das instrues ocorridas. O programa executado com os ca-sos de teste fornecidos pelo usurio. As sadas dos testes e ostraces soarmazenados para realizao da anlise de cobertura.

    Vali-Elem: responsvel pela gerao dos elementos requeridos dos critrios deteste do modelo GFC paralelo. Esses elementos so gerados por meio domodelo de teste e informaes de uxo de dados fornecidos pelo mduloVali-Inst.

    Vali-Eval: responsvel pela avaliao da cobertura dos casos de teste em re-lao aos critrios de teste selecionados. Utiliza informaes dos mdulosVali-Elem e Vali-Exec para determinar qual foi a cobertura alcanada peloscasos de teste executados.

    A ferramenta pode ser instanciada para diversas plataformas de computaoparalela. A ValiMPI a verso paraMessage Passing Interface(MPI) da ValiPar

    26

  • 7/27/2019 LD Adenilso

    34/215

    (Hausen et al., 2006) , (Hausen et al., 2007) . Foi tambm desenvolvida umaverso para Parallel Virtual Machine (PVM).

    Os critrios denidos para a passagem de mensagem foram estendidos paraaplicar em outro paradigma de programao paralelo, quando a comunicaointer-processos realizada por meio de memria compartilhada (Sarmanho et al.,2007) . O principal problema como as vrias linhas de execuo comparti-lham as variveis e como isso impacta no uxo de dados do programa. A sin-cronizao entre as linhas realizadas por meio de semforos (Sarmanho et al.,2008) .

    Como os critrios so baseados em sincronizaes em geral produzem muitoselementos requeridos, muitos dos quais no so executveis, importante quese determine formas de se identicar quais sincronizaes no podem ocorrerdurante a execuodo programa. No trabalho de iniciao cientca de Mrio dosSantos Camillo, foi investigado como a estratgia proposta por (Lei and Carver,2006) poderia ser utilizada para gerar somente as sincronizaes executveis.

    O modelo baseado em GFC para programas paralelos mostrou-se bastanteverstil para representar sistemas no contexto de composio de servios web.Um servio web um componente autnomo de software que pode ser invo-cado por meio de protocolos abertos. Dois ou mais servios web podem ser com- binados para formar um novo servio web, em um processo conhecido comocomposio de servios web. Existem duas formas principais de composio:coreograa ou orquestrao. No caso de orquestrao, um servio web princi-

    A. C. Hausen, S. R. Verglio, S. R. S. Souza, P. S. L. Souza,A. S. Simo . ValiMPI: UmaFerramenta para o Teste de Programas Paralelos. In: Sesso de Ferramentas - Simpsio Brasileiro

    de Engenharia de Software. p. 1-6, Florianpolis, SC, 2006.A.C.Hausen, S.R.Vergilio, S.R. S.Souza, P. S.L. Souza,A. S. Simo . A Tool forStructural

    Testing of MPI Programs. In: The 8th IEEE LAtin-American Test Workshop, p1-6 Cuzco, Peru.2007.(Qualis B3)

    F. S. Sarmanho, P. S. L. Souza, S. R. S. Souza,A. S. Simo . Aplicao de Teste Estruturalpara Programas Multithreads Baseados em Semforos. In: The 1st Workshop on Languages andTools for Parallel and Distributed Programming (LTPD). p. 18-21, Granado, RS, 2007.

    F. S. Sarmanho, P. S. L. Souza and S. R. S. Souza,A. S. Simo . Structural Testing forSemaphore-Based Multithread Programs. In: The 8th International Conference on ComputationalScience. p. 337-346, Krakw, Polnia, 2008.

    27

  • 7/27/2019 LD Adenilso

    35/215

  • 7/27/2019 LD Adenilso

    36/215

    colaborao pontual. Contudo, so linhas que podem vir a se desenvolver futu-ramente.

    2.3.1 Teste de Mutao

    O teste de mutao uma tcnica de teste baseado em defeitos, ou seja, utiliza-seo conhecimento de erros tpicos cometidos pelos desenvolvedores para guiar aadequao de conjuntos de casos de teste. Durante o mestrado e o doutorado,o autor investigou a aplicabilidade do teste de mutao para a gerao de tes-tes a partir de especicaes, mais precisamente, de Redes de Petri e Redes de

    Petri Coloridas. Dessa forma, ao trmino do doutorado, algumas contribuiesreferentes a essa ainda foram obtidas, reetindo os resultados de investigaesiniciadas no doutorado e concludas posteriormente.

    O teste de mutao envolve uma srie de passos que devem ser seguidos paraque o resultado obtido seja de qualidade. Cada passo por si s apresenta desaosinteressantes que tm sido atacados por meio de diversas contribuies tericase prticas na rea. Em uma tentativa de sistematizar essa contribuies, ou seja,de catalogar e organizar as contribuies obtidas, em (Vincenzi et al., 2005) proposto um processo de teste baseado em mutao. O processo, cuja versoestendida apresentada em (Vincenzi et al., 2006) , descreve todos os passosreferentes ao teste de mutao e como os problemas encontrados podem ser re-solvidos com diversas contribuies encontradas na literatura.

    A qualidade do teste de mutao est diretamente relacionada qualidadedos mutantes utilizados. A primeira tarefa a ser realizada quando o teste de mu-tao vai ser aplicado em um novo contexto, tais como uma nova linguagem deprogramao ou tcnica de especicao, denir um conjunto de operadores demutao. Um operador de mutao uma funo que, dado o artefato original,

    A. M. R. Vincenzi, M. E. Delamaro,A. S. Simo , J. C. Maldonado. Muta-Pro: Towards theDenition of a Mutation Testing Process. In: The 6th LAtin-American Test Workshop. p. 149-154,Salvador, BA, 2005.(Qualis B3)

    A. M. R. Vincenzi, M. E. Delamaro,A. S. Simo , J. C. Maldonado. Muta-Pro: Towardsthe Denition of a Mutation Testing Process. Journal of the Brazilian Computer Society, v. 12, p.47-61, 2006.(Qualis B2)

    29

  • 7/27/2019 LD Adenilso

    37/215

    produz um conjunto de artefatos, cada um com alguma modicao reetindoum possvel engano que pode ser cometido pelo desenvolvedor. Os operadores

    de mutao so, portanto, de suma importncia para denir a qualidade do teste baseado em mutao. Em (Simo et al., 2009a) , foi proposta uma linguagem,chamadaM uDeL, que utiliza os conceitos dos paradigmas transformacional (emespecial, a linguagem TXL (Cordy et al., 1988)) e lgico (em especial, a linguagemProlog (Bratko, 1990)) para denir operadores de mutao. Com base na gram-tica livre de contexto da linguagem alvo, so criados diversos mdulos que mani-pulam um artefato produzido nessa linguagem. Inicialmente, a rvore sinttica obtida. Em seguida, com base nos comandos do operador de mutao escritos emM uDeL, a rvore sinttica alterada, dando origem a diversas rvores mutan-tes. Por m, os ns da rvore so visitados de modo a obter os mutantes. Todo oprocesso automatizado, de forma que o desenvolvedor necessita apenas denira gramtica livre de contexto (geralmente disponvel para diversas linguagensde programao) e depois os operadores propriamente ditos. A linguagem foidenida de forma a estimular o reso dos operadores entre linguagens similares.

    2.3.2 Teste de Regresso

    Em geral, um software desenvolvido por meio de vrias verses, de forma queuma verso introduz novas funcionalidades ou corrige problemas em versesanteriores. Aps a criao de uma nova verso, importante se certicar queproblemas indesejveis no tenham sido introduzidos no software. Por exemplo,ao se tentar corrigir um problema em alguma parte do software, defeitos podemser includos em outras partes. Para evitar que isso ocorra, o teste de regresso

    geralmente aplicado. O teste de regresso busca aplicar testes para garantirque defeitos no tenham sido inadvertidamente introduzidos no software. Ostestes utilizados durante o desenvolvimento das verses anteriores so em geralaplicados. Contudo, a reexecuo de todos os testes pode ser custosa. Diversas

    A. S. Simo , J. C. Maldonado and R. S. Bigonha. A transformational language for mutantdescription. Computer Languages, Systems & Structures, v. 35, p. 322-339, 2009.(Qualis B2)

    30

  • 7/27/2019 LD Adenilso

    38/215

    tcnicas de priorizao e seleo de testes para otimizar o teste de regresso temsido propostos (Rothermel et al., 2001).

    Em (Simo et al., 2006) , foi proposta uma estratgia para a seleo de casosde teste para o teste de regresso que baseado em redes neurais. Para cadacaso de teste, extrada uma assinatura que representa a execuo do caso deteste. A assinatura foi denida como sendo a quantidade de vezes que um n foiexercitado durante a execuo. Em seguida, a rede neural particiona os casos deteste em blocos que continham casos de teste com assinaturas semelhantes. Umcaso de teste de cada bloco ento selecionado. A premissa que casos de testecom assinaturas semelhantes exercitam caractersticas semelhantes do software e,portanto, durante o teste de regresso, deve-se priorizar os testes mais distintospossveis.

    Em (Simo et al., 2008) , a abordagem foi aplicada utilizando-se como as-sinatura os pares de denio e uso de variveis. A abordagem foi comparadacom as abordagensTestar-Tudo e Aleatria, conseguindo uma economia de tempode execuo em relao primeira e na quantidade de defeitos encontrados emrelao segunda.

    2.3.3 Teste Funcional

    O teste funcional utiliza as informaes referentes a especicao do softwarepara avaliar a adequao de um conjunto de casos de teste. Tambm pode serutilizado como guia para a gerao de casos de teste. Contudo, enquanto o testeestrutural em geral possui um grande apoio ferramental, o teste funcional nor-malmente aplicado manualmente, tanto para a gerao quanto para a avaliao

    A. S. Simo , R. F. Mello, L. J. Senger. A Technique to Reduce the Test Case Suites forRegression Testing Based on a Self-Organizing Neural Network Architecture. In: The 30th An-nual International Computer Software and Applications Conference. p. 1-4, Chicago, USA, 2006.(Qualis B1)

    A. S. Simo , R. F. Mello, L. J. Senger, L. T. Yang, Improving regression testing perfor-mance using the Adaptive Resonance Theory-2A self-organising neural network architecture. In-ternational Journal of Autonomous and Adaptive Communications Systems, pp. 370-385, 2008.

    31

  • 7/27/2019 LD Adenilso

    39/215

    da adequao dos casos de teste. Em (Rocha et al., 2005) , foi proposta umaferramenta baseada em aspectos com o objetivo de automatizar a avaliao deconjuntos de casos de teste com base na tcnica funcional. Foram implementa-dos os critriosParticionamento em Classes de Equivalnciae Anlise de Valor Limite.Para cada condio de entrada, denido uma classe de forma que cada classede equivalncia representada por um mtodo. O mtodo, que retorna um valorbooleano, decide se um conjunto de parmetros de entrada de uma operao estoem uma classe de equivalncia. So denidos ento aspectos que interceptam aschamadas das operaes do sistema e enfocam os mtodos que correspondem s

    classes. Assim, pode-se determinar quais classes foram cobertas.

    2.4 Consideraes Finais

    Na Figura 2.4, so apresentadas as publicaes obtidas aps a concluso do dou-torado, separadas por ano e por linha de pesquisa. A numerao correspondeao nmero da nota de rodap utilizada para introduzir a referncia no decorrerdeste Captulo 2. Como mencionado anteriormente, os crculos correspondem spublicaes em revista, enquanto que os quadrados correspondem s publicaesem conferncias. As publicaes nacionais so apresentadas com linha tracejada.As oito publicaes mais relevantes so apresentadas com fundo cinza; cpiasdessas publicaes podem ser encontradas nos Apndices C a J.

    Pode-se observar que o volume de publicaes se manteve adequado ao longode todo o perodo. Inicialmente, os trabalhos estavam mais dispersos entre asdiversas linhas de pesquisa, sendo que a maioria dos trabalhos eram publicados

    em conferncias nacionais. O perl se altera a partir de 2008, coincidindo como perodo de ps-doutorado; mais publicaes em conferncias internacionais eem revistas foram obtidas, concentrando-se principalmente no teste baseado emMEFs, tema do ps-doutorado.

    A. D. Rocha,A. S. Simo , J. C. Maldonado, P. C. Masiero. Uma ferramenta baseada emaspectos para o teste funcional de programas Java. In: Simpsio Brasileiro de Engenharia deSoftware. p. 263-278, Uberlandia, MG, 2005.(Qualis B3)

    32

  • 7/27/2019 LD Adenilso

    40/215

    1 15

    262019

    30 31

    2927 28

    21

    22

    24

    23

    18

    25

    6

    8

    9

    11

    16

    17

    2

    3

    13

    4

    5

    12

    Teste Funcional

    Teste de Regressao

    Teste de Mutacao

    Teste Baseado em MEFs

    Teste de Programas Paralelos

    14

    20102007

    32

    2005 2006 2008 2009

    7

    10

    Figura 2.4: Distribuio das Publicaes.

    33

  • 7/27/2019 LD Adenilso

    41/215

    Outro ponto a se destacar que o autor atuou nas trs tcnicas de teste, a saber,estrutural (no teste de programas paralelos), funcional (incluindo o teste baseado

    em modelos) e baseada em defeitos (no teste de mutao). Portanto, obteve-seuma viso ampla da rea de pesquisa. Vale lembrar que apesar de estar divididoem cinco linhas distintas de pesquisa, os trabalhos esto todos relacionadas aoteste de software, que uma subrea da engenharia de software.

    As contribuies para a rea de teste de software podem ser classicadas em:estudos tericos, estudos experimentais e automatizao. Na Figura 2.5, apre-sentado como as publicaes obtidas podem ser mapeadas nessas trs categorias.Pode-se observar que o autor tem atuado nas trs categorias, com maior desta-que nos estudos tericos. Em geral, estudos tericos podem abrir novas linhasde investigao nas duas outras categorias. Assim, espera-se que futuramentetrabalhos envolvendo estudos experimentais e automatizao possam ser desen-volvidos.

    34

  • 7/27/2019 LD Adenilso

    42/215

    24

    18

    8

    26

    28

    29

    14

    4

    10

    13

    12

    2

    2231

    3019

    211

    20

    27

    32

    15

    17

    16

    11

    6 3

    97

    23

    5

    25

    Estudos Teoricos

    Automatizacao

    Estudos Experimentais

    Figura 2.5: Distribuio das Publicaes: Contribuies.

    35

  • 7/27/2019 LD Adenilso

    43/215

    Captulo 3

    Concluses

    3.1 Discusso e Reexes

    Aps a concluso do doutorado, o autor continuou a desenvolver pesquisas emteste de software. Vrias linhas de pesquisa dentro dessa rea foram investiga-das. Maior nfase foi dada ao teste baseado em MEFs, que caracteriza a linhaprincipal de pesquisa. Diversos resultados relevantes foram obtidos, com avan-

    os em importantes problemas que esto sendo investigadosh algumas dcadas.Tratam-se de problemas fundamentais que foram alvo de diversos trabalhos aolongo do tempo.

    Outra linha de investigao que foi explorada pelo autor o teste de pro-gramas paralelos. Assim como novos desaos so adicionados programaode programas paralelos, o teste de programas paralelos tambm difere do testede programas tradicionais. Pode-se observar que as publicaes nessa linha soanteriores a 2009. De fato, em agosto de 2008, o autor afastou-se para realizarps-doutorado (a propsito, para dar continuidade s investigaes na linha doteste baseado em MEFs). Dessa forma, houve uma interrupo natural no desen-volvimento dessa linha por parte do autor. Espera-se que no futuro essa linhavolte a ser investigada.

    Um ponto a se destacar que apenas os trabalhos desenvolvidos aps a con-cluso do doutorado foram apresentados neste documento. Assim, no foram

    36

  • 7/27/2019 LD Adenilso

    44/215

  • 7/27/2019 LD Adenilso

    45/215

    tituto Nacional de Cincia e Tecnologia em Sistemas Embarcados Crticos (INCT-SEC). Um dos objetivos do trabalho de Pinheiro identicar uma aplicao real

    que possa ser testada com os mtodos de gerao baseados em MEFs. Eventual-mente, a ferramenta Plavis/FSM poder ser reestruturada para se adequar a essecontexto.

    Alm disso, foi recentemente aprovado um projeto de pesquisa pelo EditalUniversal do CNPq, que tem como tema a continuidade dos trabalhos de in-vestigao sobre mtodos de gerao de conjuntos completos para MEFs. Dessaforma, pode-se destacarcomo trabalhos futuros nessa linhas o estudo dos seguin-tes itens:

    Gerao de testes para MEFs no determinsticas; todos os trabalhos desen-volvidos pelo autor at o momento tratam de MEFs determinstica. Con-tudo, existem domnios que podem ser melhores descritos com a inclusode no determinismo.

    Gerao de sequncias de vericao a partir de MEFs sem sequncias dedistino.

    Consolidao de aplicaes prticas de teste baseado em MEFs para dom-nios especcos, tais como sistemas embarcados e arquiteturas orientadas aservio.

    Agradecimentos

    Os pesquisadores e alunos aqui citados tiveram participao fundamental nas

    atividades de pesquisas desenvolvidas. Em especial, agradeo aos professores doICMC Jos Carlos Maldonado, Simone do Rocio Senger de Souza e Paulo SrgioLopes de Souza, e ao pesquisador Alexandre Petrenko.

    Agradeo aos professores e funcionrios do ICMC, muitos dos quais meapoiam desde que eu ainda era aluno de ps-graduao.

    Agradeo ao suporte nanceiro da FAPESP, CAPES e CNPq.Agradeo aos meus pais, Geraldo e Olivia, por sempre me apoiarem.

    38

  • 7/27/2019 LD Adenilso

    46/215

    Finalmente, agradeo a Selma, Emanoela e Gabriel, pelo carinho, apoio e com-preenso.

    39

  • 7/27/2019 LD Adenilso

    47/215

    Referncias Bibliogrcas

    Aho, A. V., Dahbura, A. T., Lee, D., and Uyar, M. U. (1991). An optimization te-

    chnique for protocol conformance test generation based on UIO sequences andrural chinese postman tours.IEEE Transactions on Communications, 39(11):16041615.

    Alberto, A. and Simo, A. (2009). Minimization of incompletely specied nitestate machines based on distinction graphs. InLatin-American Test Workshop,pages 16, Buzios, RJ.

    Andrews, A., Offutt, J., and Alexander, R. (2005). Testing web applications bymodeling with fsms.Software Systems and Modeling, 4(3):326345.

    Beizer, B. (1990).Software testing techniques (2nd ed.). Van Nostrand Reinhold Co.,New York, NY, USA.

    Belli, F., Budnik, C. J., and White, L. (2006). Event-based modelling, analysisand testing of user interactions: approach and case study: Research articles.Software Testing, Verication & Reliability, 16(1):332.

    Binder, R. V. (1999).Testing Object-Oriented Systems: Models, Patterns, and Tools.Addison Wesley Longman, Inc., 1 edition.

    Bonifcio, A., Moura, A., and Simo, A. (2008a). A generalized model-basedtest generation method. InProceedings of 6th IEEE International Conferences onSoftware Engineering and Formal Methods, pages 139148, Cape Town, Africa doSul.

    40

  • 7/27/2019 LD Adenilso

    48/215

    Bonifcio, A. L., Moura, A., Simo, A., and Maldonado, J. C. (2008b). Towardsderiving test sequences by model checking.Electronic Notes in Theoretical Com-

    puter Science, 195:2140.Bonifcio, A. L., Simo, A., Moura, A., and Maldonado, J. C. (2006). Conformance

    testing by model checking timed extended nite state machines. InSimpsioBrasileiro de Mtodos Formais, pages 4358, Natal, RN.

    Bratko, I. (1990).Prolog Programming for Articial Intelligence. Addison-Wesley,Wokingham, England ; Reading, Mass., 2 edition.

    Candolo, M. A., Simao, A. S., and Maldonado, J. C. (2001). Mgaset - uma ferra-menta para apoiar o teste e validao de especicaes baseadas em mquinasde estado nito. InAnais do XV Simpsio Brasileiro de Engenharia de Software,pages 386391.

    Chen, J., Hierons, R. M., Ural, H., and Yenigun, H. (2005). Eliminating redundanttests in a checking sequence. InTestCom 2005, number 3502 in Lecture Noteson Computer Science, pages 146158.

    Chow, T. S. (1978). Testing software design modeled by nite-state-machines.IEEE Transactions on Software Engineering, 4(3):178186.

    Cordy, J. R., Halpen, C. D., and Promislow, E. (1988). TXL: A rapid prototypingsystem for programming language dialects. InIEEE International Conference onComputer Languages, Maimi.

    Cutigi, J. F., Ribeiro, P. H., Simo, A., and Souza, S. R. S. (2010). Reduo do

    nmero de seqncias no teste de conformidade de protocolos. InXI Workshopde Testes e Tolerncia a Falhas, volume 1, pages 105117, Gramado, RS.

    Davis, A. M. (1988). A comparison of techniques for the specication of externalsystem behavior.Communications of the ACM, 31(9).

    de Mello Neto, L. F. (2008). Minimizao de conjuntos de casos de teste paramquinas de estados nitos.

    41

  • 7/27/2019 LD Adenilso

    49/215

    DeMillo, R. A. (1980). Mutation analysis as a tool for software quality assurance.

    Dorofeeva, R., El-Fakih, K., and Yevtushenko, N. (2005a). An improved confor-mance testing method. InFORTE , pages 204218.

    Dorofeeva, R., Yevtushenko, N., El-Fakih, K., and Cavalli, A. R. (2005b). Experi-mental evaluation of fsm-based testing methods. InSEFM 05: Proceedings of theThird IEEE International Conference on Software Engineering and Formal Methods,pages 2332, Washington, DC, USA. IEEE Computer Society.

    Dusse, F., Simo, A., and Maldonado, J. C. (2009). Anlise de mutantes aplicada

    a critrios de cobertura de teste a partir de mefs. InIII Brazilian Workshop onSystematic and Automated Software Testing, pages 4150, Gramado, RS.

    Endo, A. T. (2008). Teste de composio de web services: uma estratgia baseadaem um modelo de teste de programas paralelos.

    Endo, A. T., Lindshulte, M., Simo, A., and Souza, S. R. S. (2010). Event- andcoverage-based testing of web services. In2nd Workshop on Model-Based Veri-cation & Validation From Research to Practice, pages 18, Cingapura, Cingapura.

    Endo, A. T., Simo, A., , Souza, S. R. S., and Souza, P. S. L. (2008). Web ser-vices composition testing: A strategy based on structural testing of parallelprograms. InTaicPart: Testing Academic & Industrial Conference - Practice andResearch Techniques, pages 312, Windsor, UK.

    Endo, A. T., Simo, A., Souza, S. R.S., and Souza, P. S. L. (2007). Aplicao de testeestrutural para composio de web services. InBrazilian Workshop on Systematic

    and Automated Software Testing, pages 1320, Joo Pessoa, PB.Fabbri, S. C. P. F. and Maldonado, J. C. (2001). Teste de software. In Rocha, A.

    R. C., Maldonado, J. C., and Weber, K. C., editors,Qualidade de Software: Teoria ePrtica, chapter 4, pages 7384. Prentice-Hall, So Paulo, Brasil.

    Fabbri, S. C. P. F., Maldonado, J. C., Delamaro, M. E., and Masiero, P. C. (1999).Proteum/FSM: A tool to support nite state machine validation based on mu-

    42

  • 7/27/2019 LD Adenilso

    50/215

    tation testing. InXIX SCCC - International Conference of the Chilean ComputerScience Society, pages 96104, Talca, Chile.

    Fujiwara, S., Bochman, G. V., Khendek, F., Amalou, M., and Ghedamsi, A. (1991).Test selection based on nite state models.IEEE Transactions on Software Engi-neering, 17(6):591603.

    Gill, A. (1962).Introduction to the Theory of Finite-State Machines. McGraw-Hill,New York.

    Gonenc, G. (1970). A method for design of fault detection experiments.IEEE

    Transactions on Computers, 19(6):551558.Harrold, M. J. (2000). Testing: A roadmap. InIn The Future of Software Engineering,

    pages 6172. ACM Press.

    Hausen, A. C., Vergilio, S. R., Souza, S. R. S., Souza, P. S. L., and Simo, A. (2007).A tool for structural testing of mpi programs. InLAtin-American Test Workshop- LATW , pages 16, Cuzco, Peru.

    Hausen, A. C., Verglio, S. R., Souza, S. R. S., Souza, P. S. L., and Simo, A. (2006).Valimpi: Uma ferramenta para o teste de programas paralelos. InSesso deFerramentas - Simpsio Brasileiro de Engenharia de Software, 2006, pages 16, Flo-rianpolis, SC.

    Hennie, F. C. (1964). Fault-detecting experiments for sequential circuits. InPro-ceedings of Fifth Annual Symposium on Circuit Theory and Logical Design, pages95110.

    Hierons, R. M., Bogdanov, K., Bowen, J. P., Cleaveland, R., Derrick, J., Dick, J.,Gheorghe, M., Harman, M., Kapoor, K., Krause, P., Lttgen, G., Simons, A. J. H., Vilkomir, S., Woodward, M. R., and Zedan, H. (2009). Using formal spe-cications to support testing.ACM Computing Surveys (CSUR), 41(2):176.

    Hierons, R. M. and Ural, H. (2002). Reduced length checking sequences.IEEETransactions on Computers, 51(9):11111117.

    43

  • 7/27/2019 LD Adenilso

    51/215

    Hierons, R. M. and Ural, H. (2006). Optimizing the length of checking sequences.IEEE Transactions on Computers, 55(5):618629.

    Holzmann, G. J. (1991).Design and Validation of Protocols. Prentice-Hall SoftwareSeries, Englewood Cliffs, New Jersey.

    Hong, H. S., Kwon, Y. R., and Cha, S. D. (1995). Testing of object-oriented pro-grams based on nite state machines. In2nd Asia-Pacic Software EngineeringConference (APSEC95), pages 234241, Brisbane, Queensland, Australia. IEEEComputer Society.

    Lei, Y. and Carver, R. H. (2006). Reachability testing of concurrent programs.IEEE Transactions on Software Engineering, 32:382403.

    Luo, G., Petrenko, R., and Bochmann, G. V. (1994). Selecting test sequences forpartially-specied nondeterministic nite state machines. InIn IFIP 7th Inter-national Workshop on Protocol Test Systems, pages 91106.

    Maldonado, J. C. (1991).Critrio potenciais usos: Uma contribuio ao teste estruturalde software. PhD thesis, DCA/FEE/UNICAMP, Campinas.

    Maldonado, J. C., Barbosa, E. F., Vincenzi, A. M. R., Delamaro, M. E., Souza, S.R. S., and Jino, M. (2004). Introduo ao teste de software. Technical Report 65,ICMC/USP, So Carlos, SP. Notas Didticas do ICMC, Srie Computao.

    Martins, E., Selma B. Sabi a., and Ambrosio, A. M. (1999). Condata: A tool for au-tomating specication-based test case generation for communication systems.Software Quality Control, 8(4):303320.

    Mello Neto, L. F. and Simo, A. (2007). Minimizao de conjuntos de casos deteste por meio de condies de sucincia. In1st Brazilian Workshop on Syste-matic and Automated Software Testing, pages 5562, Joo Pessoa, PB.

    Mello Neto, L. F. and Simo, A. (2008). Test suite minimization based on fsmcompleteness sufcient conditions. InProceedings of 9th IEEE Latin-AmericanTest Workshop, pages 9398, Puebla, Mexico.

    44

  • 7/27/2019 LD Adenilso

    52/215

  • 7/27/2019 LD Adenilso

    53/215

    Rothermel, G., Untch, R. H., Chu, C., and Harrold, M. J. (2001). Prioritizingtest cases for regression testing.IEEE Transaction on Software Engineering,

    27(10):929948.Sabnani, K. K. and Dahbura, A. (1988). A protocol test generation procedure.

    Computer NetWorks and ISDN Systems, 15(4):285297.

    Sarmanho, F. S., Souza, P. S. L., Souza, S. R. S., and Simo, A. (2007). Aplicaode teste estrutural para programas multithreads baseados em semforos. In1stWorkshop on Languages and Tools for Parallel and Distributed Programing (LTPD),pages 1821, Granado, RS.

    Sarmanho, F. S., Souza, P. S. L., Souza, S. R. S., and Simo, A. (2008). Structuraltesting for semaphore-based multithread programs. InProceedings of Internati-onal Conference on Computer Science, pages 337346, Krakw, Poland.

    Sidhu, D. P. and Leung, T. K. (1989). Formal methods for protocol testing: Adetailed study.IEEE Transactions on Software Engineering, 15(4):413426.

    Simo, A. (2007). Teste baseado em modelos.

    Simo, A., Ambrosio, A. M., Fabbri, S. C. P. F., Amaral, A. S., Martins, E., andMaldonado, J. C. (2005). Plavis/fsm: an environment to integrate fsm-basedtesting tools. InSesso de Ferramentas do Simpsio Brasileiro de Engenharia deSoftware, pages 16, Uberlndia, MG.

    Simo, A., Maldonado, J. C., and Bigonha, R. S. (2009a). A transformationallanguage for mutant description.Computer Languages, Systems & Structures,

    35:322339.Simo, A., Mello, R. F., and Senger, L. J. (2006). A technique to reduce the test case

    suites for regression testing based on a self-organizing neural network architec-ture. In30th Annual International Computer Software and Applications Conference,pages 14, Chicago, USA.

    Simo, A., Mello, R. F., Senger, L. J., and Yang, L. T. (2008). Improving regressiontesting performance using the adaptive resonance theory-2a self-organising

    46

  • 7/27/2019 LD Adenilso

    54/215

    neural network architecture.International Journal of Autonomous and AdaptiveCommunications Systems, 1:370385.

    Simo, A. and Petrenko, A. (2008). Generating checking sequences for partial re-duced nite state machines. InProceedings of 20th IFIP Int. Conference on Testingof Communicating Systems (TESTCOM), pages 153168, Tokyo, Japo.

    Simo, A. and Petrenko, A. (2009). Checking sequence generation using state dis-tinguishing subsequences. In5th Workshop on Advances in Model Based Testing,pages 110, Denver, USA.

    Simo, A. and Petrenko, A. (2010a). Checking completeness of tests fornite statemachines.IEEE Transactions on Computers, 59:10231032.

    Simo, A. and Petrenko, A. (2010b). Fault coverage-driven incremental test gene-ration. Computer Journal, 53:15081522.

    Simo, A., Petrenko, A., and Maldonado, J. C. (2007). Experimental evaluation of coverage criteria for fsm-based testing. InAnais do Simpsio Brasileiro de Enge-nharia de Software, pages 359376, Joo Pessoa, PB.

    Simo, A., Petrenko, A., and Maldonado, J. C. (2009b). Comparing nite statemachine test coverage criteria.IET Software, 3:91105.

    Simo, A., Petrenko, A., and Yevtushenko, N. (2009c). Generating reduced testsfor fsms with extra states. In21st IFIP Int. Conference on Testing of Communica-ting Systems and the 9th Int. Workshop on Formal Approaches to Testing of Software,pages 129147, Eidenhoven, Holanda.

    Souza, S. R. S., Verglio, S. R., Souza, P. S. L., Simo, A., Gonalves, T. B., Lima,A. M., and Hausen, A. C. (2005). Valipar: A testing tool for message-passingparallel programs. InProceedings of the XVII International Conference on SoftwareEngineering and Knowledge Engineering, pages 386392, Taipen, Taiwan.

    Souza, S. R. S., Verglio, S. R., Souza, P. S. L., Simo, A., and Hausen, A. (2008).Structural testing criteria for message-passing parallel programs.Concurrencyand Computation. Practice & Experience, 20:18931916.

    47

  • 7/27/2019 LD Adenilso

    55/215

    Ural, H., Wu, X., and Zhang, F. (1997). On minimizing the lengths of checkingsequences.IEEE Transactions on Computers, 46(1):9399.

    Ural, H. and Zhang, F. (2006). Reducing the lengths of checking sequences byoverlapping.Lecture Notes on Computer Science, (3964):274288.

    Utting, M. and Legeard, B. (2006).Practical Model-Based Testing: A Tools Approach.Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.

    Utting, M., Pretschner, A., and Legeard, B. (2006). A taxonomy of model-basedtesting. Technical report, Hamilton, New Zealand.

    Vincenzi, A. M. R., Delamaro, M. E., Simo, A., and Maldonado, J. C. (2005).Muta-pro: Towards the denition of a mutation testing process. In6th Latin-american test workshop (LATW), pages 149154, Salvador, BA.

    Vincenzi, A. M. R., Delamaro, M. E., Simo, A., and Maldonado, J. C. (2006).Muta-pro: Towards the denition of a mutation testing process.Journal of theBrazilian Computer Society, 12:4761.

    Weyuker, E. J. (1996). Using failure cost information for testing and reliabilityassessment.ACM Trans. Softw. Eng. Methodol., 5(2):8798.

    Yannakakis, M. and Lee, D. (1995). Testing nite state machines: Fault detection. J. Computer and System Science, 50(2):209227.

    Yao, M. Y., Petrenko, A., and von Bochmann, G. (1994). Fault coverage analysis inrespect to an fsm specication. InIEEE INFOCOM94 , pages 768775, Toronto,Canad.

    48

  • 7/27/2019 LD Adenilso

    56/215

    Apndice A

    Teste baseado em Mquinas

    de Estados Finitos:Denies e Exemplos

    Neste apndice, so apresentados os principais conceitos do teste baseado emMquinas de Estados Finitos, bem como as denies formais dos conceitos dis-cutidos na Seo 2.1. Este apndice baseado no captulo de livro (Simo, 2007),e no Captulo 3 da dissertao de mestrado de de Mello Neto (2008).

    A.1 Denies

    Uma MEF A pode ser representada formalmente por uma tupla(S, s 0 ,X ,Y,D A , , ), (Petrenko and Yevtushenko, 2005) , onde:

    S um conjunto nito de estados, incluindo o estado inicials 0 ;

    X um conjunto nito de entradas;

    Y um conjunto nito de sadas;

    D A S X um domnio da especicao;

    uma funo de transio, : D A S , e

    49

  • 7/27/2019 LD Adenilso

    57/215

    uma funo de sada, : D A Y ;

    Dados um estados i S e uma entradax X , diz-se que(s i , x ) uma tran-sio denida se e somente se(s i , x ) D A . Os estadoss i e s j = (s i , x ) sochamados de estadoinicial e estadonal da transio, respectivamente.

    SejamM = ( S, s 0 ,X ,Y,D M , , ) e I = ( T, t 0 ,X ,Y,D I , , ) duas MEFs querepresentam uma especicao e uma implementao, respectivamente. Umasequncia de entrada = x 1 x 2 . . . x k X chamada de sequncia de entradadenida para o estados i S se existe uma sequncia de transies(s i1 , x 1 ), ondes ij +1 o estado nal da transio(s ij , x j ). A notaoM (s i ) representa o conjunto

    de todas as sequncias de entrada denidas no estados i da mquinaM . Parauma sequncia de entrada e uma estradax , tal quex denido no estados i , dene-se que (s i , x ) = ( (s i , ), x ) e (s i , x ) = (s i , ) ( (s i , ), x ). Paraa sequncia vazia, denotada por, dene-se que, para todos S , (s, ) = s e (s, ) = .

    Dois estadoss i , s j M so compatveis se, para todo M (s i ) M (s j ),tem-se que (s i , ) = (s j , ). Caso contrrio, os estados sodistinguveis. For-malmente, os estadoss i e s j so distinguveis se existe uma sequncia de entrada M (s i ) M (s j ), chamada de sequncia de separao (separating sequence), talque (s i , ) = (s j , ).

    O estados i quasi-equivalente ao estados j , se M (s i ) M (s j ) e (s i , ) = (s j , ) para todo M (s j ). Em outras palavras, um estados i quasi-equivalente a um estados j se para toda entrada denida ems j , s i produzir amesma sada.

    Dados os estadoss i , s j S e uma sequncia M (s i ) tal que M (s i , ) = s j ,

    diz-se que uma sequncia de transferncia (transfer sequence) de s i para s j .Um conjuntostate cover Q de uma MEFM com n estados denido como umconjunto comn sequncia . de transferncia, incluindo a sequncia vazia, quelevaM a partir de seu estado inicial para cada um dos estados.

    Um conjuntotransition cover P umconjuntode sequncias de entrada emquepara cada transio denida(s, x ), existe uma sequncia de entrada M (s 0 ),

    50

  • 7/27/2019 LD Adenilso

    58/215

    tal que (s 0 , ) = s e x P . Ou seja, o conjuntoP faz com que a mquinaexecute cada transio e que, em seguida, pare.

    Uma sequncia de distino (distinguishing sequence) uma sequncia de en-trada d em que a sequncia de sada produzida pela MEFM , em resposta en-trada d, identica o estado da mquinaM , ou seja, para todos i , s j S, s i =s j , M (s i , d) = M (s j , d).

    Uma sequncia UIO (unique input/output sequence) de um estados j , denotadopor UIO (s j ) uma sequncia de entrada/sada nica para esse estado, ou seja,para todos i S s j , M (s i , U I O (s j )) = M (s j , U I O (s j )) . Dessa forma, com a apli-cao da sequncia UIO pode-se distinguir o estados j de qualquer outro estado,pois a sada produzida especca (nica) do estados j .

    Um conjunto de caracterizao (characterization set), frequentemente chamadode conjuntoW , um conjunto de sequncias de entrada tal que, para dois estadosquaisquers j e s i , i = j , existe uma sequncia W tal que M (s j , ) = M (s i , ).Em outras palavras, o conjuntoW um conjunto de sequncias de entrada quepossui uma sequncia que diferencia todo par de estados existentes emM .

    Um conjuntoW j M (s j ) de sequncias de entrada denidas chamado de

    identicador de estado (state identier) ou conjunto de separao (separating set)do estado s j se para qualquer outro estados i existe W j M (s i ) tal que M (s j , ) = M (s i , ). Em outras palavras, o conjuntoW j um identicadordo estados j se possui uma sequncia de entrada que o diferencia de todos osdemais estados.

    Uma famlia de separao (separating family) ou identicadores harmonizados(harmonized identiers) um conjunto de identicadores de estadoH j , s j S , talque para dois estados quaisquers j , s i S , i = j , existe H j e H i que tmum prexo comum tal que M (s j ) M (s i ) e M (s j , ) = M (s i , ).

    A operaoreset (representada como r nas sequncias de entrada) umaoperao que reinicia corretamente a MEF, ou seja, leva a implementao aoseu estado inicial. A maior parte do mtodos de gerao utilizam essa operaopara permitir que mltiplas sequncias sejam aplicadas.

    51

  • 7/27/2019 LD Adenilso

    59/215

  • 7/27/2019 LD Adenilso

    60/215

    A.3 Domnio de Defeitos

    Para um conjunto de sequncias de teste gerado a partir de uma MEF, uma ques-to importante refere-se em como avaliar aefetividade(ou qualidade) do mesmo,ou seja, avaliar sua cobertura em relao aos defeitos revelados. Como, por umlado, innitos defeitos so possveis e, por outro, o conjuntode casos de teste deveser nito, dene-se um domnio de defeitos, representando o conjunto de poss-veis defeitos que o teste deve revelar. Domnios de falha diferentes podem serdenidos para reetir caractersticas particulares de uma congurao de teste.

    No teste baseado em MEFs, domnios de defeitos so denidos em funo do

    nmero mximo de estados que a implementao pode ter. Assim, dado um n-merom , o domnio de defeitos o conjunto de todas as MEFs com no mximomestados. Note-se que em geral o domnio de defeitos, apesar de nito, possui umnmero muito grande de MEFs. Como a implementao considerada uma caixapreta, esse nmero mximo no conhecido, sendo que assume-se um valor que baseado em heursticas. Trata-se de uma hiptese de teste (Chow, 1978; Petrenkoand Yevtushenko, 2005; Hierons and Ural, 2006)

    O conjunto de teste m -completo se para qualquer implementaoI do dom-nio de defeitos,I vai passar pelo teste, se e somente se,I estiver em conformidadecom a especicaoM .

    Alguns mtodos garantem a gerao de conjuntos de testem -completos, paraqualquer m n pr-denido, sendon o nmero de estados da especicao.Outros mtodos apenas garantem para o caso dem = n , onden o nmero deestados da especicao. Alm disso, alguns mtodos no oferecem esse tipo degarantia.

    A.4 Custo de Aplicao do Critrio

    O custo de aplicao de um mtodo pode ser dividido em dois fatores principais.Por um lado, tem-se o custo para a gerao das sequncias de teste. Esse custorelaciona-se com a complexidade dos algoritmos utilizados durante o processode gerao. Os algoritmos de gerao devem ser tratveis, no sentido de que o

    53

  • 7/27/2019 LD Adenilso

    61/215

    tempo necessrio para gerar deve ser de ordem polinomial no tamanho da MEF.Por outro lado, tem-se o custo da execuo das sequncias de teste. Cada sequn-

    cia de teste deve ser traduzida em entradas concretas para a implementao, aqual deve ser executada com essas entradas. Normalmente, o custo de execuo o principal fator na avaliao do custo da aplicao de um mtodo, uma vezque normalmente aceitvel um mtodo que demande mais tempo para geraodas sequncias de teste, se ele conseguir gerar um conjunto menor. Dessa forma,o custo de aplicao de um mtodo medido em termos do tamanho do conjuntode teste gerado, tanto no caso mdio como no pior caso.

    A forma usual de medir o custo pela quantidade de smbolos de entradapresentes no conjunto, tambm conhecido como comprimento do conjunto. Assequncias que so prexos de outras sequncias do conjunto no so contadas,pois ao se aplicar uma sequncia, todos os seus prexos j so necessariamenteaplicados. Alm disso, assume-se que para levar a implementao ao estado ini-cial, deve-se utilizar uma entrada adicional dereset. Assim, dado uma sequnciade testet , dene-se o custo det como sendo o comprimento det mais 1. Dadoum conjunto de sequncias de testeT , dene-se o comprimento como sendo a

    soma dos comprimentos de todas as sequncias que no so prexos de outrassequncias emT .

    A.5 Mtodos de Gerao

    Nesta seo so apresentados os principais mtodos de gerao de casos de teste apartir de MEFs. O objetivo fornecer uma viso geral dos mtodos e da evoluohistrica dos mesmos.

    Embora os mtodos possuam um objetivo comum (de vericar se uma imple-mentao est correta comsua especicao), eles diferem com relaoaocusto dagerao das sequncias de teste,tamanho do conjunto de teste e capacidade de de-teco de defeitos (eccia). Da mesma forma que as sequncias geradas precisamdetectar o mximo de defeitos existentes em uma implementao, elas devem serrelativamente pequenas para que seja possvel sua aplicao na prtica.

    54

  • 7/27/2019 LD Adenilso

    62/215

    Nesta seo, so apresentados alguns mtodos de gerao de casos de teste, buscando ilustrar as diferenas apresentadas em relao ao conjunto de pro-

    priedades requeridas. Uma MEF, ilustrada na Figura A.1, ser utilizada comoexemplo para a gerao dos casos de teste. Essa MEF possui quatro estados{S 1 , S 2 , S 3 , S 4 }, sendoS 1 o estado inicial, as entradasX = {x, y } e as sadasY = {0, 1}. A MEF tambm admite o conjunto de sequncias{x,y,yy } como oconjuntoW , o conjunto state coverQ = { ,y,x,yy }, os identicadores de estadoW 1 = {yy}, W 2 = {y}, W 3 = {x} e W 4 = {x,yy } e as famlias de separaoH 1 = {x,yy }, H 2 = {x, y }, H 3 = {x} e H 4 = {x,yy }.

    S 1

    x/1 y/0

    y/0

    y/0

    y/1

    x/1

    x/1

    x/0

    S 2

    S 3 S 4

    Figura A.1: Exemplo de MEF extrado de Dorofeeva et al. (2005b).

    Cobertura de Estados e Transies Em Holzmann (1991) um algoritmo pro-posto para o teste de conformidade.

    O algoritmo de teste de conformidade funciona com a aplicao das mensa-gensstatus , reset e set para todo estados S , sendo X da seguinte forma.

    1. Aplique uma mensagem dereset para trazerMi ao seu estado inicial.

    2. Aplique uma mensagemset (s) para levarMi ao estados .

    3. Aplique a entrada .

    4. Verique se a sada produzida est em conformidade com a especicaoM , ou seja, igual S (s, ).

    55

  • 7/27/2019 LD Adenilso

    63/215

    5. Aplique a mensagem destatus e verique se o estado nal est em confor-midade com a especicaoMs , ou seja, igual S (s, ).

    Achecking sequenceproduzida pelo algoritmo uma concatenao das sequn-ciasreset , set (s), e status repetida para cada estado do conjunto de estadosS epara cada smbolo de entrada do conjunto de smbolos de entradaX . Esse algo-ritmo capaz de revelar qualquer defeito de sada e de transferncia. No entanto,o algoritmo baseia-se na mensagemset , que por sua vez, pode no existir.

    Para evitar o uso de mensagensset , uma sequnciatransition tour (TT) podeser construda. Essa sequncia percorre a mquina visitando cada estado e cada

    transio ao menos uma vez sem que ela precise ser reiniciada aps a execuode cada teste. Pela aplicao do mtodo TT, juntamente com uma mensagem destatus (inserida aps cada entrada da sequncia TT), umachecking sequence ob-tida. Essa sequncia de entrada consegue descobrir os defeitos de transfernciae de sada. No entanto o mtodo TT, proposto originalmente por Naito and Tsu-noyama (1981), no utiliza a mensagem destatus e obtm somente um