Fca. Raquel de V. Silveira 1 , Gustavo Augusto L. de Campos 1 , Mariela Ins Corts 1
1 Universidade Estadual do Cear (UECE) 60.740-903 Fortaleza CE Brasil {raquel_silveira}@ifce.edu.br, {gustavo, mariela}@larces.uece.br Abstract. Software agents are a promising technology for the development of complex systems, although few testing techniques have been proposed to validate these systems. In this paper, we propose the design of an approach that uses agents to select test cases and test the performance of rational agent. For each test case are realized interaction between agent and environment for obtain the performance evaluation corresponding. As a result, we obtain a set of test cases and their evaluation in which the agent has not been well evaluated. Based on this result, the approach identifies the goals that are not met by the agent and release to the designer. Resumo. Agentes de software so uma tecnologia promissora para o desenvolvimento de sistemas complexos, embora poucas tcnicas de testes tenham sido propostas para validar esses sistemas. Neste trabalho, propomos uma abordagem que usa agentes para selecionar casos de testes e testar o desempenho de agentes racionais. Para cada caso de teste so realizadas as interaes entre Agente e Ambiente para obter a avaliao de desempenho correspondente. Como resultado, obtm-se um conjunto de casos de teste nos quais o agente no foi bem avaliado, com a respectiva avaliao. A partir desse resultado, a abordagem identifica os objetivos que no esto sendo satisfeitos e as falhas apresentadas pelo agente e repassa ao projetista. 1. Introduo Agente uma entidade capaz de perceber seu ambiente por meio de sensores e agir nesse ambiente por intermdio de atuadores. O conceito de agentes racionais refere-se aos agentes que agem para alcanar o melhor resultado esperado. O melhor resultado aquele que o agente obtm a melhor medida de desempenho [Russel e Norvig 2004]. Em particular, devido s propriedades peculiares dos agentes racionais (propriedades reativas, de memria, de aprendizagem, orientao por metas e por utilidade), difcil aplicar tcnicas de testes que sejam capazes de garantir a confiabilidade destes sistemas [Nguyen et al. 2009]. A realizao de testes de softwares tradicionais, que possuem entradas e sadas previsveis, uma atividade no trivial. Testar agentes autnomos um desafio, haja visto que a execuo de aes baseada nas suas prprias decises, que podem ser diferentes da perspectiva do usurio, embora sendo apropriada; a mesma entrada de teste pode resultar em diferentes execues [Nguyen et al. 2009]. Apesar de existirem alguns esforos no sentido de facilitar o desenvolvimento de sistemas baseados em agentes, pouco tem sido feito na direo de propor mtodos e 69
tcnicas para testar a eficincia destes sistemas [Nguyen et al. 2009]. Para a realizao de testes em agentes racionais, necessrio que as tcnicas existentes para testes de software sejam adaptadas e combinadas visando a deteco de diferentes falhas, tornando os agentes de software mais confiveis [Zina 2011]. O objetivo deste trabalho conceber uma abordagem baseada em agentes racionais que seja capaz de selecionar casos de testes para contribuir com o teste de agentes racionais, gerando para o projetista informaes relevantes sobre falhas, que lhe permitam realizar melhorias nos programas agentes. 2. Referencial Terico 2.1 Agentes Racionais Um agente de software um tipo de programa de computador que tem a capacidade de perceber seu ambiente por meio de sensores e de agir neste ambiente por meio de atuadores [Russell e Norvig 2004]. Agentes podem atingir diferentes tarefas de diferentes maneiras, e dependendo da tarefa e do contexto em que a tarefa pode ser concluda, pode selecionar a forma mais adequada [Poutakidis 2009]. Do ponto de vista do projetista do agente, um agente racional se, baseado nas informaes percebidas, o agente for capaz de tomar decises corretas que realizem os objetivos estabelecidos pelo projetista ou, quando no for possvel realizar todos os objetivos, tomar decises de maior sucesso, definido de acordo com algum critrio. Este critrio denominado medida de avaliao de desempenho [Russell e Norvig 2004]. Baseados nesses princpios, [Russell e Norvig 2004] descrevem quatro tipos bsicos de programas de agentes racionais: (i) agentes reativos simples (selecionam aes com base na percepo atual, ignorando o histrico de percepes), (ii) agentes reativos baseados em modelos (o agente mantm um estado interno que depende do histrico das percepes), (iii) agentes baseados em objetivos (alm do estado atual, mantm informao sobre os objetivos que descrevem situaes desejveis); (iv) agentes baseados em utilidade (possuem uma funo utilidade que mapeia um estado em um grau de felicidade associado). 2.2 Testes de Agentes Teste de software uma atividade que tem como objetivo avaliar a qualidade do produto e melhor-la atravs da identificao de defeitos e problemas. O teste consiste na verificao dinmica do comportamento de um programa em um conjunto de casos de teste adequadamente selecionados [Poutakidis 2009]. Ao nvel do agente, os testes tm relao direta com os casos de teste criados para testar os objetivos do agente. Em geral, o teste de um objetivo implica um teste ou um conjunto de planos que envolvem eventos e recursos. Da mesma forma, o teste de um objetivo aciona uma integrao de planos e eventos [Zina 2011]. No caso de testes do agente todos os objetivos do agente devem ser testados. O agente deve ser capaz de atingir suas prprias metas e agir corretamente em casos em que sua meta esperada no pode ser alcanada. Esta exigncia pode ou no ser suficiente para cobrir os componentes do agente, ou seja, planos, eventos, crenas etc. 70
Se o critrio de adequao bsico no for alcanado, mais casos de teste devem ser definidos para completar os testes do agente [Zina 2011]. 3. Trabalhos Relacionados Na literatura de engenharia de software orientada a agentes, tem sido propostas vrias pesquisas sobre os diferentes aspectos de teste de agentes. Cada uma das quais com diferentes abordagens e perspectivas. Entretanto, o teste de agente uma atividade desafiadora e um processo de teste estruturado para agentes ainda requerido [Zina 2011]. Nessa seo, verificado se as abordagens existentes so capazes de atender aos seguintes critrios, identificados a partir das caractersticas da abordagem proposta: (i) noo de agentes racionais, (ii) utilizao de casos de teste gerados de acordo com os objetivos, (iii) medida de avaliao de desempenho do agente testado, (iv) considerao dos planos para que o agente alcance os objetivos, e (v) acompanhamento da avaliao de desempenho do agente testado. Uma abordagem de teste orientada a objetivos para os agentes apresentada por [Zina 2011]. especificado um processo de teste que complementa a metodologia Tropos [Mylopoulos e Castro 2000] e refora a relao mtua entre a anlise de objetivos e testes. Alm disso, define um processo estruturado para a gerao de testes nos agentes, fornecendo uma forma de derivar casos de teste a partir da anlise dos objetivos dos agentes. Essa estratgia no apresenta: (i) a noo de agentes racionais, (ii) uma medida de avaliao de desempenho e (iii) uma simulao que possa monitorar o comportamento do agente ao executar as aes que envolvem os objetivos do agente. [Nguyen 2008] prope um mtodo de anlise orientada a objetivos, visando um processo de testes sistemtico e abrangente para agentes que engloba o processo de desenvolvimento do agente de acordo com a metodologia Tropos [Mylopoulos e Castro 2000] a partir da anlise de requisitos iniciais at a implantao. proposta uma metodologia de como produzir artefatos de testes a partir das especificaes dos agentes e do design, e usa estes artefatos para detectar problemas. Os casos de teste so gerados automaticamente e evoluem guiados pela mutao e funo de qualidade. Uma abordagem evolucionria para a realizao dos testes de agentes autnomos adotada por [Nguyen et al. 2009]. proposto aplicar um recrutamento dos melhores casos de teste para evoluir os agentes. Para cada agente dado um perodo experimental em que o nmero de testes com diferentes nveis de dificuldade so executados. Os agentes so recrutados apenas quando passam pelo critrio de qualidade. Em ambas as abordagens de [Nguyen 2008] e [Nguyen et al. 2009], o agente a ser testado implementado de acordo com o modelo BDI. Considerando os critrios avaliados, no tratado: (i) a noo de agentes racionais e (ii) uma simulao que possa monitorar o comportamento do agente ao executar uma ao que envolve os objetivos. 4. Abordagem Proposta Esta seo apresenta a abordagem proposta e os aspectos envolvidos na realizao dos testes de agentes racionais. A abordagem baseia-se na concepo do agente de resoluo de problemas de seleo de casos de teste que contribua com testes de agentes racionais. 71
4.1. Seleo de Casos de Teste de Agentes Racionais Considerando que os testes dos agentes racionais consistem em identificar situaes nas quais o agente no foi bem avaliado, o projetista informar a medida de avaliao do agente considerando um ou mais aspectos do ambiente. A Tabela 1 especifica uma medida de avaliao de desempenho para o agente aspirador de p (uma verso adaptada de [Russell e Norvig 2004]) que deve limpar o ambiente e maximizar a limpeza e a energia. A 1 coluna descreve parte da percepo do agente. A 2 coluna descreve a ao. A 3 e a 4 colunas so associadas aos objetivos energia e limpeza, respectivamente, duas funes escalares (av E e av L ) para medir o desempenho do agente no episdio. O projetista deve considerar este tipo de medida e conceber o agente visando maximizar o desempenho. Tabela 1. Medida de avaliao desempenho P K A K av E (P K , A K ) av L (P K , A K ) ..., L, ... Asp -1.0 0.5 ..., L, ... Dir, Esq, Ac, Ab -2.0 1.0 ..., L, ... N-op 0.0 -1.0 ..., S, ... Asp -1.0 2.0 ..., S, ... Dir, Esq, Ac, Ab -2.0 -1.0 ..., S, ... N-op 0.0 -1.0 O problema de seleo de casos de teste para um agente racional foi formulado como um problema de programao multiobjetivo (PMO). Seja: Agent: um programa agente racional a ser testado; Amb: um programa ambiente capaz de interagir com Agent; ProtocolInterao: uma descrio do protocolo de interao entre Agent e Amb; : um conjunto de ambientes factvel de instanciar Amb e testar Agent; P(): subconjuntos de ambientes possveis de serem descritos em ; CasosTEST P(): um subconjunto de casos de teste no conjunto P(), onde: Caso i CasosTEST: uma descrio especfica de ambiente emCasosTEST; H(CasosTEST) P((PxA) NInt ): conjunto de histrias de comprimento NInt de Agent em Amb considerando ProtocolInterao e todos os casos em CasosTEST tal que i {1, ..., NCasos}, t {1, ..., NInt}: h(Caso i ) (PxA) NInt : histria de comprimento NInt de Agent em Amb correspondente ao Caso i CasosTEST; Ep t (h(Caso i )) PxA: episdio na interao t, t NInt, da histria de Agent em Amb correspondente ao caso Caso i CasosTEST; f ad (H(CasosTEST)) = (f 1 (H(CasosTEST)), ..., f M (H(CasosTEST))) R M : um vetor de M funes objetivo (implcitas) na medida de avaliao de desempenho formada pelo projetista (M 1), mede a adequao de Agent a Amb considerando um conjunto de histrias H(CasosTEST), onde, m {1, ..., M}: f m (E(CososIESI)) = 1 NCosos Av m NCusos =1 (h(Caso I )) mede a adequao de Agent a Amb, quanto a realizao do objetivo m na medida de avaliao, considerando as histrias em H(CasosTEST); e i {1, ..., NCasos}: Av m (h(Caso I )) = av m NInt p=1 (Ep p (h(Caso I ))) 72
onde av m (Ep p (h(Caso i ))) o valor de recompensa/penalizao no objetivo m atribudo pela avaliao do episdio p da histria associada ao Caso i CasosTEST; f inad (H(CasosTEST)) = ( f 1 (H(CasosTEST)), ..., f M (H(CasosTEST))) R M : um vetor de M objetivos associado ao vetor f ad (H(CasosTEST)), mede a inadequao de Agent a Amb considerando as histrias em H(CasosTEST). Problema: maximizar f inad (H(CasosTEST)) s.a: CasosTEST P() e H(CasosTEST) P((PxA) NInt ) A formulao do problema de seleo de casos de testes considera que, se o programa agente for inadequado, as funes objetivo de inadequao, ou seja, as funes objetivo na medida de avaliao modificadas pelo sinal de menos (), sero maximizadas. Dependendo dos objetivos no PMO, pode no existir um conjunto timo. Neste caso, a tarefa consiste em encontrar um conjunto de casos satisfatrio. 4.4. Agente de Resoluo Problemas para a Seleo de Casos de Teste Esta seo esboa um agente de resoluo de problemas de seleo de casos de teste para programas agentes racionais (Thestes). O programa emprega uma estratgia de busca local, baseada em populaes e orientada por uma funo utilidade, para encontrar conjuntos de casos de teste satisfatrios, ou seja, ambientes especficos nos quais as histrias associadas de Agent em Amb tm baixo desempenho. 4.4.1. Estrutura do Programa Agente Thestes A Figura 1 ilustra a estrutura do agente de resoluo de problemas Thestes. Esta estrutura consiste em uma adaptao da estrutura de programas agente orientados por utilidade, especificada por [Russell e Norvig 2004], e da arquitetura abstrata do agente com estado interno, especificada por [Wooldridge 2002].
Figura 1. Estrutura do programa agente Thestes Considerando os subsistemas do agente Thestes, mais especificamente, o subsistema de percepo, ver, mapeia as informaes necessrias ao teste de Agent em uma representao computacional, Estado K , adequada ao processamento dos outros dois subsistemas: (Agent, Amb, ParmetrosBUSCA, ParmetrosSimulao). O subsistema de atualizao de estado interno, prximo, armazena as informaes em Estado K , considera os parmetros em ParmetrosSimulao e gera um conjunto inicial CasosTEST de maneira aleatria: (CasosTEST, Agent, Amb, ParmetrosBUSCA, ParmetrosSimulao). Finalmente, considerando o estado interno atualizado, a funo ao de Thestes inicia um processo de busca local visando encontrar uma ao satisfatria Ao K para ser enviada ao projetista. Esta funo utiliza informaes a respeito de um modelo de 73
transio de estados para gerar novos casos de teste a partir de CasosTEST, e o protocolo de interao e a funo utilidade para, respectivamente, obter as histrias correspondentes aos casos de teste e avaliar o desempenho de Agent nestas histrias. De posse das informaes geradas pela funo ao, Thestes envia ao projetista quatro informaes importantes em Ao K : (1) o conjunto CasosTEST soluo para o problema de seleo e os melhores casos encontrados, (2) as histrias correspondentes de Agent em Amb, (3) os valores de desempenho, considerando cada um dos objetivos, e (4) outras informaes relevantes para o diagnstico de problemas em Agent. 4.4.2. Modelo de Transio O modelo de transio indica a funo que modifica os conjuntos de casos de teste, considerando os casos de teste em uma soluo corrente, Pop t = CasosTEST, um modelo de transio pr-definido e os valores de desempenho correspondentes, medidos por uma funo Utilidade para gerar novos casos de teste, Pop t+1 . O modelo de transio genrico considera os NCasos em um conjunto Pop t corrente e escolhe: (a) os casos de teste que sero modificados, e (b) as mudanas que sero realizadas nestes casos. Esta primeira concretizao do modelo aplicou as principais noes presentes na metaheurstica baseada em populaes Algoritmo Gentico (GA). Da mesma maneira, diversos modelos de transio podem ser concretizados considerando outras noes presentes em outras metaheursticas, principalmente aquelas baseadas em populaes. 4.4.3. Mecanismo de Simulao de Interaes Agent-Amb Thestes conhece Agent e Amb, bem como o protocolo ProtocoloInterao. A funo ao considera estas informaes e ParmetrosSimulao no processo de tomada de deciso. Assim, foi concebido um mecanismo de interao que, de acordo com ProtocolInterao, simula as interaes entre Agent e Amb, quando Amb inicializado com informaes de um caso de teste (Caso i CasosTEST) e anota os episdios (Ep p (h(Caso i )) PxA) da histria (h(Caso i ) (PxA) NInt ). A Figura 2 ilustra o funcionamento deste mecanismo.
Figura 2. Simulao das interaes Agent-Amb O mecanismo alimenta Amb com informaes em P Amb a respeito de um caso de teste especfico pertencente ao conjunto soluo corrente CasosTEST. Ao perceber, Amb armazena internamente essas informaes e envia em A Amb as informaes de seu estado corrente. O mecanismo anota estas informaes e as repassa para Agent, que percebe em P Agent , processa-as e seleciona uma ao que enviada em A Agent para o mecanismo. Ao receber estas informaes sobre ao, o mecanismo encerra a anotao de um episdio da histria, envia em P Amb as informaes sobre ao para Amb e inicia outro ciclo de interao, que deve ser repetido at a anotao de uma histria completa. 4.4.4. Funo Utilidade Durante o processo de busca, na gerao de novos casos de teste, a funo Utilidade permite que o agente obtenha medidas de desempenho considerando os casos de teste 74
modificados pelo ModeloTransio. Estas medidas permitem que Thestes julgue os casos de teste e selecione um subconjunto de NCasos que seja melhor que o anterior. Assim, nesta primeira abordagem, supondo-se que a funo Utilidade preferencialmente independente, ou seja, o grau de utilidade de um objetivo independe dos valores assumidos pelos demais, foram incorporadas em Thestes duas formas especiais de funo Utilidade, ou seja, uma funo aditiva: 0tiliuaue(f Inad (B(CasosTEST))) = u m [- f m (B(CasosTEST)) , M m=1
e outra no formato linear, onde w m 0, m = 1, ..., M. 0tiliuaue(f Inad (B(CasosTEST))) = - w m - f m (B(CasosTEST)) M m=1
O problema de seleo de casos de teste foi reformulado como: maximizar Utilidade(f inad (H(CasosTEST))) s.a: CasosTEST P() e H(CasosTEST) P((PxA) NInt ) Ou seja, considerando que = f inad (P()) a representao do mapeamento de P() no espao dos objetivos: = {y R M | y = f inad (H(CasosTEST))), CasosTEST P() e H(CasosTEST) P((PxA) + )}; o problema pode ser estabelecido como: maximizar Utilidade(y) s.a: y 5. Avaliando o Agente Thestes O estudo de caso a seguir ilustra o funcionamento e uma primeira avaliao do esqueleto de Thestes, resolvendo um problema de seleo para testar um agente aspirador de p reativo simples com percepo local, que avaliado em um ambiente com vrias salas considerando os atributos energia e limpeza, de acordo com a Tabela 1. 5.1. O Ambiente de Tarefa e o Agente em Teste A tarefa de Thestes consiste em selecionar um conjunto de ambientes que sejam satisfatrios para testar um programa agente reativo simples aspirador de p, com regras condio-ao. Um ambiente difere de outro quanto localizao e quantidade de salas sujas. Todo ambiente parcialmente observvel, ou seja, pressupe-se que o aspirador percebe o ambiente, mas sua funo ver consegue mapear apenas o estado da sala que o agente est. A Figura 3 mostra as regras condio-ao do Agent.
Figura 3. Regras condio-ao do Aspi rador 5.2. Concretizao de Thestes para o Problema O esqueleto de Thestes pressupe a existncia de um conjunto CasosTEST corrente contendo NCasos de teste, que uma soluo inicial gerada pela funo prximo. A funo ao do agente considera quatro componentes principais: (1) um ModeloTransio de estados que opera sobre CasosTEST para gerar novos conjuntos, se estado da sala S ento retornar a ao Asp seno retornar uma ao de movimento aleatria (Ac, Esq, Dir, Ab)
75
(2) uma funo utilidade para avaliar os conjuntos gerados, (3) uma estratgia para selecionar entre os conjuntos avaliados um novo conjunto corrente mais til, e (4) um teste para o novo conjunto CasosTEST. Para os componentes (1), (3) e (4) o estudo empregou noes dos algoritmos genticos [Holland 1975]. Para o componente (2), empregou uma funo Utilidade no formato linear, conforme descrito na Seo 4.4.4. No contexto do GA, CasosTEST, contendo as descries de ambientes de tarefa compostos de nxn salas, foi representado por uma populao, onde cada indivduo codifica um ambiente e cada gene codifica o estado da sala, em termos de sujeira. O ModeloTransio baseado em GA considera CasosTEST como uma populao que est apta a passar pelas etapas de seleo de pares (empregado o mtodo da roleta), cruzamento e mutao, que provocam a evoluo e que permitem funo ao realizar simulaes, avaliar a utilidade dos indivduos e compor uma nova populao melhor. Visando prevenir a perda do melhor caso de teste encontrado em uma gerao anterior, nos experimentos empregou-se elitismo nas modificaes do conjunto CasosTEST. 5.3. Experimento com o Agente Thestes Esta seo apresenta um experimento realizado com Thestes. ParmetrosBUSCA descrevem o tamanho (n 2 ) e a quantidade (NCasos) de ambientes em CasosTEST, a taxa de mutao (Mut), o nmero mximo de execues (Kmx), e o valor de utilidade mxima que pode ser alcanada por uma histria (Umx). As informaes sobre Kmx e Umx definem a condio de parada no mecanismo de teste. As informaes em ParmetrosSimulao descrevem o nmero mximo de interaes entre Agent e Amb em qualquer simulao (Nint), ou seja, o nmero mximo de episdios em cada histria, e o nmero de simulaes realizadas em um mesmo ambiente (Ns). A Tabela 2 apresenta estas informaes. Tabela 2. Informaes em ParmetrosBUSCA e ParmetrosSimulao ParmetrosBusca ParmetrosSimulao NCasos n 2 Mut K mx U mx N int Ns 10 25 3 30 100000 100 5 O nmero mximo de interaes (I mx ) de Agent com Amb, a serem simuladas em cada um dos 10 casos (NCasos) na populao, 100. O valor de utilidade mxima (U mx ) alto, significando que a condio de parada no mecanismo de teste da estratgia de busca definida considerando a realizao de 30 ciclos de execues da funo ao (K mx ). Para cada caso de teste na populao foram realizadas cinco simulaes (Ns). A Figura 4 apresenta a funo Utilidade no formato linear com pesos iguais para limpeza e energia, respectivamente, na medida de avaliao, ou seja, w L = w E = 0,5.
Figura 4. Valores de utilidade de 10 casos CasosTEST em 30 geraes Os pontos no lineares representam os casos de teste em CasosTEST em cada gerao. Os pontos lineares identificam o melhor caso de teste na gerao. Da gerao 15 em diante, estes pontos no sofrem variao e, como se aplica o elitismo, servem 76
como referencial para os casos em CasosTEST na gerao. Conforme pode ser percebido, o melhor caso foi obtido na 14 gerao, ou seja, com valor de utilidade igual a 40,8. A Figura 5 apresenta os valores das funes de inadequao de limpeza e energia associados aos 10 casos de teste em CasosTEST nas 30 geraes.
Figura 5. Valores de Inadequao de Limpeza e Energia dos 300 casos As regras condio-ao no agente aspirador Agent foram concebidas considerando a medida de avaliao na Tabela 1. A funo ao de Thestes buscou selecionar os casos em cada gerao na qual o agente menos limpou e mais gastou energia. A Figura 6 destaca os casos em cada gerao e os valores de inadequao de limpeza em (a) e os valores de inadequao de energia em (b).
(a) (b) Figura 6. Valores de Inadequao de Limpeza (a) e Energia (b) Vale ressaltar, apesar dos dois objetivos na medida de avaliao de desempenho terem o mesmo valor de importncia (w L = w E = 0.5), a abordagem privilegiou os casos nos quais Agent teve um comportamento mais inadequado no consumo de energia, conforme indicado em (b). Isto se justifica, pois a medida de avaliao de desempenho pontua negativamente a energia em todos os episdios para Agent e positivamente a limpeza. Assim, conforme (a) e (b), o desempenho de energia do Agent mais inadequado que o de limpeza. A Tabela 3 ilustra cinco episdios de uma simulao da interao de Agent em Amb, no ambiente que obteve melhor valor mdio de utilidade. Tabela 3. Histria parcial de Agent em Amb K P K A K av E (P K , A K ) av L (P K , A K ) 1 ..., L, ... Ab 2.0 -1.0 2 ..., S, ... Asp 1.0 -2.0 3 ..., L, ... Dir 2.0 -1.0 4 ..., L, ... Dir 2.0 -1.0 5 ..., L, ... Ac 2.0 -1.0 O ambiente de tarefa selecionado foi constitudo de 25 salas com a seguinte configurao: [[L, S, L, L, S], [S, L, L, L, L], [S, S, S, S, L], [L, L, L, S, S], [L, S, S, S, S]]. O valor de utilidade foi U = 40.8 e os valores de inadequao: f L = 109.2 e f E = 190.8. Os demais episdios da histria de Agent em Amb seguem o mesmo padro. 77
Conforme esperado, o agente aspirador mais adequado ao ambiente considerando o critrio de limpeza que o critrio de energia. Uma anlise breve das regras condio- ao do aspirador de p confirmar esta proposio. Visto que o aspirador foi concebido como um agente reativo simples, pouco pode ser feito para melhorar seu desempenho, sendo necessrio estender sua estrutura para acomodar um estado interno. 6. Consideraes Finais Considerando que o agente racional deve ser capaz de realizar seus objetivos, testes adequados devem ser desenvolvidos para avaliar as aes e os planos executados pelo agente na realizao destes objetivos. Para a realizao dos testes em agentes racionais necessrio que tcnicas que tratem da natureza peculiar do agente sejam aplicadas. A abordagem considera que no caso dos agentes racionais, em que a medida de avaliao de desempenho estabelecida pelo projetista, envolve vrios objetivos e estes objetivos podem ser conflitantes. Na abordagem proposta, o resultado dos testes deve indicar o desempenho mdio do agente e, principalmente, os objetivos que no esto sendo satisfeitos, alm de informaes sobre as histrias do agente, que sejam teis para o projetista identificar em cada episdio das histrias, os comportamentos que precisam ser melhorados e as mudanas necessrias para que o agente melhore suas habilidades. Como trabalho futuro, sugere-se, um estudo de caso com os agentes racionais reativo baseado em modelos, baseados em objetivos e baseados em utilidade, alm da concepo de uma estratgia de teste capaz de testar, atravs de agentes racionais, a interao entre os agentes em sistemas multi-agentes. Referncias Holland, J. (1975) Adaptation in natural and artificial systems. University of Michigan Press. Mylopoulos J.; Castro J. (2000) Tropos: A Framework for Requirements-Driven Software Development. Information Systems Engineering: State of the Art and Research Themes, Lecture Notes in Computer Science, Springer. Nguyen, C. D. (2008) Testing Techniques for Software Agents. PhD Dissertation. University of Trento. Nguyen, C. D.; Perini, A.; Tonella, P.; Miles, S.; Harman, M.; Luck, M. (2009) Evoluctionary Testing of Autonomous Software Agents. In: 8th Int. Conf. on Autonomous Agents and Multiagent Systems. Budapest, Hungary. Russell, S.; Norvig, P. (2004) Inteligncia Artificial: uma abordagem moderna. 2 ed. So Paulo: Prentice-Hall. Poutakidis, D.; Winikoff, M.; Padgham, L.; Zhang, Z. (2009) Debugging and Testing of Multi-Agent Systems using Design Artefacts. Springer Science Business Media, LLC. Wooldridge, M. (2002) An Introduction to MultiAgent Systems. John Wiley & Sons Ltda. Zina, H. (2011) Test Suite Generation Process for Agent Testing, In: Indian Journal of Computer Science and Engineering (IJCSE), v. 2, n. 2. 78