49 research outputs found

    Claret: um artefato central para engenharia de requisitos e teste baseado em modelos.

    Get PDF
    A construção de casos de testes da forma tradicional tem sido, em grande medida, um processo lento e dispendioso em termos financeiros. Nesse sentido, a geração automática de testes baseados em modelos surge como uma alternativa promissora para solucionar tais percalços. A especificação de requisitos do sistema é uma atividade proveniente da engenharia de requisitos que tem como saída diagramas ou documentos detalhados como os casos de uso. Em especial, o documento de caso de uso pode servir como forte candidato para um modelo central no processo de geração automática de testes. Entretanto, o modelo escolhido deve prover informações suficientes para permitir a geração automática de testes e ao mesmo tempo ser sucinto o bastante para não gerar custos e esforços adicionais à engenharia de requisitos. A solução proposta nesta pesquisa tem como objetivo integrar a geração automática de testes baseado em modelos com a engenharia de requisitos, através da proposta de uma notação em linguagem de domínio específico com o apoio de ferramentas visando a geração automática tanto de meta-modelos para auxiliar a criação de casos de testes quanto de documentos formatados de caso de uso.The construction of test cases in the traditional way has been, to a large extent, a slow and costly process in financial terms. In this sense, the automatic generation of model-based tests emerges as a viable alternative to solve such mishaps. The system requirements specification is an activity from the requirements engineering whose output diagrams, or detailed documents as the use cases. In particular, the use case document can serve as a strong candidate for a central model in the process of automatic generation of tests. However, the chosen model should provide sufficient information to allow the automatic generation of testing and at the same time be succinct enough not to generate additional cost and effort to requirements engineering. The solution proposed in this research aims to integrate the automatic generation of model-based testing with requirements engineering, through the proposal of a domain-specific language notation with the support of tools aimed at the automatic generation of both meta-templates to assist the creation of test cases as formatted documents of use case

    Geração automática de testes baseada em algoritmos genéticos para verificação funcional

    Get PDF
    Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Engenharia Elétrica, Florianópolis, 2016.O constante aumento da complexidade de sistemas embarcados requer um processo de verificação capaz de acompanhar esse crescimento e ser capaz de assegurar o correto funcionamento do sistema projetado, especialmente se tratando de aplicações críticas que lidem com vidas humanas ou com grandes investimentos. Esta responsabilidade por parte das companhias que desenvolvem tais sistemas faz com que a verificação se torne a parte mais importante no projeto de um sistema, consumindo a maior parte dos seus recursos, tanto em questão de tempo quanto financeiramente. A verificação realizada através de simulações requer a participação de um engenheiro de verificação analisando os resultados e com base nestes, modificando parâmetros para gerar novos testes. Neste trabalho é apresentada uma abordagem para uso de Algoritmos Genéticos no processo de verificação, de forma a automatizar a geração de novos vetores de teste. Esta abordagem analisa os resultados com base nas métricas de verificação definidas durante a fase de planejamento do projeto, e com estas informações gera novos testes que contribuam para a validação do sistema, adaptando-se ao funcionamento do sistema e aos resultados de cada nova iteração do processo de verificação.Abstract : The growing increase in embedded systems complexity requires a verification process to be able to follow this trend while capable of assuring the correctness of the designed system, especially on critical applications that deal with human lives, or big financial investments. This responsibility incurred by these system's developers makes verification the most important step in designing an embedded system, considering both development time and money. Simulation-based verification requires an engineer's work by analyzing results and creating new test vectors relevant to the process. In this work an approach for automating test vector generation through Genetic Algorithms is presented. This approach analyzes test results based on predefined verification metrics and, with this information creates new tests that aim on advancing the verification process to reach a better system validation, adapting itself to the design and its results at each step of the process

    Ferramenta para Geração Automática de Testes Unitários a patir de Especificações Algébricas usando Alloy e SMT

    Get PDF
    No âmbito do projeto QUEST (http://gloss.di.fc.ul.pt/quest), a equipa da FEUP desenvolveu uma ferramenta (GenT) de geração automática de testes unitários em JUnit a partir de especificações formais de tipos abstratos de dados, envolvendo os seguintes passos: tradução da especificação formal para Alloy; geração automática de objetivos de teste (condições a testar); utilização do Alloy Analyzer para encontrar modelos que satisfazem os objetivos de teste; conversão automática dos modelos encontrados para testes em JUnit e "mock objects" associados. A ferramenta desenvolvida precisa de ser continuada para melhorar a adequação dos testes gerados, nomeadamente: alguns dos objetivos de teste gerados (condições a testar) não são satisfazíveis; não gera testes fora do domínio (teste de excepções). O objetivo do presente trabalho é precisamente resolver as limitações atuais, bem como efetuar uma avaliação experimental que demonstre as vantagens em relação a outras abordagens existentes. Espera-se que a nova versão da ferramenta possa ser utilizada a nível académico no ensino de algoritmos e estruturas de dados e a nível industrial para melhorar o teste de implementações de tipos abstratos de dados.Under the QUEST (http://gloss.di.fc.ul.pt/quest) project, FEUP team developed a tool(Gent) of automatic generation of unit tests in JUnit from formal specifications of abstract data types, involving the following steps: translation of the formal specification for Alloy; automatic generation of test objectives (test conditions); use the Alloy Analyzer to find models which meet the test objectives; automatic conversion of the models found for JUnit tests and associated "mock objects".The tool developed needs to be continued to improve the adequacy of the generated tests, namely: some of the goals generated test (test conditions) are not satisfiable; does not generate tests outside the field test (exceptions).The objective of this work is precisely to solve the current limitations, as well as place an experimental evaluation to demonstrate the advantages over other existing approaches. It is expected that the new version of the tool can be used in academic teaching of algorithms and data structures and industrial level to improve the implementations of abstract data types test

    Avaliação experimental de um gerador de testes dirigidos para a verificação de memória compartilhada em multicore chips

    Get PDF
    TCC(graduação) - Universidade Federal de Santa Catarina. Centro Tecnológico. Ciências da Computação.No contexto de verificação de memória compartilhada em multicore chips, este trabalho propõe uma avaliação crítica da geração automática de testes dirigidos quando baseada em Programação Genética. A metodologia consiste na comparação do gerador McVerSi (que representa o estado da arte) com geradores de testes aleatórios (que representam a base de geradores dirigidos por cobertura). Dois geradores de testes aleatórios são utilizados: um deles (McVerSi_Rand) pressupõe uma restrição do espaço de endereçamento imposta estaticamente antes de disparar a geração, o outro (IRTG) admite a variação dinâmica de restrições impostas ao espaço de endereçamento. Os três geradores são comparados de acordo com duas métricas: cobertura estrutural dos controladores de cache e esforço requerido na detecção de erros de coerência de memória

    Avaliação experimental de um gerador de testes dirigidos para a verificação de memória compartilhada em multicore chips

    Get PDF
    TCC(graduação) - Universidade Federal de Santa Catarina. Centro Tecnológico. Ciências da Computação.No contexto de verificação de memória compartilhada em multicore chips, este trabalho propõe uma avaliação crítica da geração automática de testes dirigidos quando baseada em Programação Genética. A metodologia consiste na comparação do gerador McVerSi (que representa o estado da arte) com geradores de testes aleatórios (que representam a base de geradores dirigidos por cobertura). Dois geradores de testes aleatórios são utilizados: um deles (McVerSi_Rand) pressupõe uma restrição do espaço de endereçamento imposta estaticamente antes de disparar a geração, o outro (IRTG) admite a variação dinâmica de restrições impostas ao espaço de endereçamento. Os três geradores são comparados de acordo com duas métricas: cobertura estrutural dos controladores de cache e esforço requerido na detecção de erros de coerência de memória

    Editorial

    Get PDF
    Apresentação do vigésimo primeiro número da Revista Brasileira de Computação Aplicada por parte do editor da revista

    RapiTest – Aplicação Web para testar API

    Get PDF
    Projeto Final para obtenção do Grau de Mestre em Engenharia Informática e de ComputadoresQuando se trata de serviços na web, as RESTful Web API tornaram-se o padrão por norma desde o ano 2000. Application Programming Interface’s (API) expõem dados de back-end, portanto, é crucial que sejam robustas, seguras e confiáveis de forma a manter os dados confidenciais protegidos. Embora as ferramentas existentes para automati zar a geração de casos de teste para API tenham mostrado um potencial significativo, estas são limitadas na sua aplicabilidade, pois focam-se apenas em dados aleatórias por meio de fuzzing. Usando apenas especificações de API, é impraticável descrever casos de teste personalizados e específicos. Esta dissertação apresenta RapiTest, uma aplicação de teste contínuo de caixa preta e de código aberto para API REST. Esta tira partido da especificação da API para gerar testes automaticamente, mas, também tira partido de uma nova Domain Specific Language DSL chamada de Test Specification Language (TSL), para criar casos de teste personalizados. A aplicação web RapiTest permite a configuração de várias verificações nativas, relativas à segurança e exatidão das respostas, enquanto executa os testes em intervalos regulares, como a cada 24 ho ras. Dessa forma, a API pode ser supervisionada continuamente para garantir o seu correto funcionamento.When it comes to web services, RESTful web API have become the de facto standard since 2000. Those Application Programming Interface’s (API) expose back-end data, so it is crucial that they are robust, secure, and reliable to keep sensitive data pro tected. Although existing tools for automating API test case generation have shown significant potential, they are limited in their applicability since they focus solely on random inputs through fuzzing. Using only API specifications, it is impractical to de scribe personalized and specific test case workflows. This paper introduces RapiTest, an open-source continuous black-box testing application for RESTful web API. It takes advantage of the API specification to automatically generate tests, but also makes use of a new Domain Specific Language DSL named Test Specification Language (TSL), to create rich test cases. The RapiTest web application allows the setup of several prede fined verifications, regarding security and correctness of the responses, while running the tests at regular intervals, such as every 24 hours. In this way, the API can be moni tored continuously to ensure it is running correctly.info:eu-repo/semantics/publishedVersio

    Flexibilização de regras de negócio aplicadas ao Sistema de Dotação de Material do Exército Brasileiro

    Get PDF
    Dissertação (mestrado)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2018.Distribuição de materiais é um tema comum na área de logística. A distribuição de Materiais de Emprego Militar (MEM) no Exército Brasileiro envolve a catalogação de materiais, a definição de regras que associam MEMs a unidades organizacionais, e a execução das regras para derivar os materiais previstos para cada unidade militar, listados no Quadro de Material Previsto (QDM). Atualmente, o QDM é gerado quase que totalmente de forma manual através do preenchimento de planilhas eletrônicas para cada Organização Militar (OM). O objetivo deste trabalho é apresentar a solução desenvolvida para geração automática de QDMs a partir da definição de regras de distribuição e posterior execução em um motor de regras. A simplicidade na definição das regras de distribuição de materiais, transformando definições de alto nível em definições baseadas em regras de motor de inferência, facilita a manutenção e extrai tais definições do código-fonte de uma aplicação. Isso motivou o uso de programação generativa, em termos de meta-programação, e um motor de inferência específico para a linguagem Java. Embora seja específica para a 4a Subchefia do Estado-Maior do Exército (EME), a solução tende a ser genérica o suficiente para ser adotada, após algumas adaptações, por outras áreas do exército ou até mesmo organizações externas que lidam com regras de distribuição de materiais semelhantes.Material distribution is a common theme in the logistics area. The distribution of Military Employment Materials (MEM) in the Brazilian Army involves the cataloging of materials, the definition of rules that associate MEMs with organizational units, and the execution of rules to derive the materials for each military unit listed in the Foreseen Material Table (QDM). Currently, QDM is generated almost entirely manually by filling spreadsheets for each Military Organization (OM). The objective of this work is to present the solution developed for automatic generation of QDMs from the definition of distribution rules and later execution in a rules engine. Simplicity in defining material distribution rules, transforming high-level definitions into definitions based on inference engine rules, facilitates maintenance and extracts such definitions from the source code of an application. This motivated the use of generative programming, in terms of meta-programming, and an inference engine specific to the Java language. Although it is specific to the 4th Army Staff Sub-Committee (EME), the solution tends to be generic enough to be adopted after some adaptations by other areas of the army or even outside organizations dealing with similar materials

    Inteligência artificial na verificação e teste de software para desenvolvimento ágil

    Get PDF
    Dissertação de natureza científica realizada para a obtenção de grau de Mestre em Engenharia Informática e de ComputadoresAs metodologias ágeis convivem bem com a mudanças que ocorrem ao longo de um projeto de desenvolvimento de software, sendo por isso cada vez mais adotada para a sua gestão. As metodologias ágeis e em particular o “scrum”, têm por base um conjunto de princípios que incluem a entrega incremental de funcionalidade e cujo somatório corresponde no final à totalidade do produto pretendido. Os testes, tal como nas outras metodologias, são fundamentais para garantir a qualidade do produto, mas aqui correm obrigatoriamente em cada iteração, testando funcionalidades novas e antigas. Em cada iteração são criados novos planos de testes compostos pelos scripts das para as novas funcionalidades e pela reutilização dos scripts da funcionalidade anterior. Os testes às funcionalidades anteriores são conhecidos por testes de regressão. A presente dissertação apresenta uma nova abordagem para a automatização dos testes de regressão usados no desenvolvimento ágil, que é fácil de enquadrar com a metodologia e a prática das equipas e que inclui: Uma forma de modelação do sistema em testes tendo por base as histórias de uso; Um algoritmo para a geração automática de planos de teste: Uma arquitetura de um agente artificial e um dialeto para execução de testes no sistema em testes; Uma sequência de atividades para verificação da consistênci dos requisitos.Abstract: Agile methodologies can cope better with changes occurring during the software development and are, for that reason, more and more used for project management. Agile methodology, particularly “scrum”, are based on a common set of principles including incremental delivery of functionality, that in the end represent the full product. Testing, like in other methodologies, are fundamental to guaranty product quality, but here that run on each iteration, testing new and current functionality. In each iterationnew testing plans are created composed with test scripts for new functionality and reusing scripts for existing functionality. Tests of the old functionality are known as regression testing. The present dissertation suggests a new approach to automate regression tests used in agile development, easy to integrate with the methodology and team’s practice and includes: A modeling form of the system in tests based on user stories; An algorithm for automatic generation of testing plans; An architecture of artificial agent and a dialect for tests execution on the system in tests; A sequence of activities to verify the consistency of requirements.N/

    Plataforma para testes de conformidade de sistemas baseados em módulos conceptuais STEP

    Get PDF
    Obtenção do grau de Mestre em Engenharia Electrotécnica, Sistemas e ComputadoresO conjunto de normas STEP (ISO 10303) é reconhecido pela comunidade científica e industrial como sendo importante para a integração de sistemas em ambientes industriais. Com o crescimento da utilização da Internet para troca de informação e conhecimento, outras tecnologias têm vindo a ser cada vez mais utilizadas para os mesmos fins, sendo o XML, um dos casos mais notórios. Atenta a este facto, a ISO desenvolveu uma norma (ISO 10303-Parte 28) para utilização de XML nos seus protocolos de aplicação. Contudo, esta norma não contempla toda a informação presente nos modelos STEP, devido à falta de expressividade da linguagem usada (XSD) para representar os modelos na tecnologia XML. Esta dissertação propõe a extensão dos modelos XSD, obtidos utilizando a parte 28 como referência, com esquemas Schematron e código Java. Para verificar que os dados XML usados cumprem todas as especificações estabelecidas pelos modelos conceptuais STEP, e que os sistemas que trocam e usam estes dados são interoperáveis, é proposta uma metodologia para testes de conformidade e verificação de interoperabilidade, adaptando e estendendo a metodologia descrita nas partes 30s da norma STEP. Para a sua implementação, foi desenvolvida uma plataforma baseada em serviços para a Internet (SOA)
    corecore