• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 183
  • 15
  • 4
  • Tagged with
  • 202
  • 202
  • 163
  • 49
  • 44
  • 35
  • 34
  • 30
  • 29
  • 28
  • 26
  • 25
  • 25
  • 24
  • 23
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
31

Test orales for systems with complex outputs: the case of TTS systems / Oracles de teste para sistemas com saídas complexas - o caso dos sistemas TTS

Oliveira, Rafael Alves Paes de 18 April 2017 (has links)
Software testing is one of the most important Software Engineering processes, being the primary activity to check the conformance between the software requirements and its actual behavior. The automation of software testing activities is essential to certify productivity and effectiveness in such activities. Test automation leads testing activities to be conducted under systematic and accurate criteria, raising the chance of testers to reveal faults or inconsistencies. Test oracles are elementary members in software testing automation, being the mechanism responsible for indicating the correctness of software outputs. In testing environments, test oracles can be effectively implemented based on several sources of information about the Software Under Testing (SUT): software specifications, assertions, formal methods (Finite State Machines (FSM), formal specifications, etc, machine-learning methods, and metamorphic relations. Regardless of the implementation strategy, test oracles are vulnerable to false positive/negative verdicts, configuring what the literature describes as the oracle problem. Therefore, test oracles are a non-trivial and challenging object of studies of the software engineering research area. SUTs outputs in unusual formats make it harder the oracle problem. Audio, images, three-dimensional objects, virtual reality environments, complex statistical compositions, etc, are examples of non-trivial output formats. In the software testing context, SUTs with unusual outputs can be called complex-output systems. In this doctorate dissertation, we propose and evaluate a novel test oracle approach for complex-output systems called feature-based test oracles. The purpose of feature-based test oracles is the appropriation of a processing image technique called Content-Based Image Retrieval (CBIR) to collect information from features extracted from the SUTs outputs to compose test oracles. Given a query image, CBIR combines feature extraction and similarity functions to alleviate the problem of searching for digital images in large databases. In previous research, we have integrated CBIR concepts in a testing framework to support the automation of testing activities in processing image systems and systems with Graphical User Interfaces (GUI). In this doctorate dissertation, we extended that framework and its concepts to general complex-output systems, addressing the feature-based test oracle approach. We use Text-To-Speech (TTS) systems to validate empirically our test oracle technique. Through the results of five empirical analyses, three of them conducted in line with problems of a real-world industry TTS system, show the proposed technique is a valuable instrument to automate testing activities and alleviate practitioners efforts on testing complex output systems. We conclude the proposed test oracles are effective because they systematically evaluate the SUTs sensorial output rather than produce verdicts based on subjective specifications. As future work, we plan to conduct investigations towards the reduction of false positives/negatives and the association of the test oracles with machine learning techniques and metamorphic relations. / Teste de Software é um dos processos mais importantes da Engenharia de Software, sendo a principal atividade para averiguar a conformidade de requisitos de software e suas saídas. A automatização das atividades de teste é essencial para conferir produtividade e efetividade em tais atividades. A automatização faz com que atividades de teste sejam conduzidas sob critérios sistemáticos e precisos, aumentando a chance dos testadores de revelarem falhas ou inconcistências. Oráculos de teste são membros elementares na automatização do teste de software, sendo o mecanismo responsável por indicar a corretude das saídas do softwre. Em ambientes de teste, oráculos de teste podem ser efetivamente implementados com base em diversos fontes de informação sobre o sistema em teste: especificações de software, assertivas, métodos formais (máquinas de estados finitas, especificações formais, etc), métodos de aprendizagem de máquina e relações metamórficas. Independente da estratégia de implementação, oráculos de teste são vulneráveis a veridictos de falsos positivos/negativos, configurando o que é apresentado na literatura como O problema do Oráculo. Então, na área de engenharia de software, oráculos de teste são objetos de estudo não-triviais e desafiadores. O problema de oráculo é potencializado quando as saídas do sistema em teste são dadas em formatos não triviais como, por exemplo, audio, imagens, objetos tridimensionais, ambientes de realidade virtual, composições estatísticas complexas, etc. No contexto do teste de software, sistemas com saídas não triviais podem ser chamados de sistemas com saídas complexas. Esta tese de doutorado propões e avalia uma nova estratégia de oráculo de teste para sistemas com saídas complexas. O propósito de tal estratégia é a apropriação da técnica de processamento de imagem conhecida como CBIR (Recuperação de Imagem Basead em Conteúdo CBIR) para coletar informações de características extratídas do sistema em teste, compondo oráculos de teste. A partir de uma imagem de busca, o CBIR combina extração de características e funções de similaridade para aliviar problemas de busca em grandes based de imagens digitais. Em pesquisas anteriores, conceitos de CBIR foram integrados em um arcabouço de teste para apoiar a automatização de atividades de teste em systemas de processamento de imagens e sistemas com interfaces gráficas. Esta tese de doutorado estende o arcabouço e seus conceitos para sistemas com saídas complexas em geral. Sistemas Texto-Fala (TTS) foram utlizados para validações empíricas. Os resultados de seis análises empíricas, duas delas condizidas em consonância com problemas de um TTS industrial, revelam que a técnica proposta é um valioso instrumento para automatizar atividaes de teste e aliviar esforços de profissionais da indústria ao teste sistemas com saídas complexas. Conclui-se que a efetividade dos oráculos de teste propostos são devido às sistemáticas análises do conteúdo das saídas dos sistemas em teste, em vez da análises de especificações subjetivas. Os trabalhos futuros vislumbrados devem ser conduzidos no intuito de reduzir número de falsos positivos/negativos e a associação dos oráculos de teste com técnicas de aprendizado de máquina e relações metamórficas.
32

Teste de mutação nos paradigmas procedimental e oo: uma avaliação no contexto de estrutura de dados / Mutation testing in procedural and object-oriented paradigms: an evaluation of data structure programs

Campanha, Diogo Nascimento 06 December 2010 (has links)
Com o objetivo de auxiliar a definição e evolução de estratégias de testes, estudos experimentais vêm sendo realizados comparando diferentes técnicas e critérios de teste em relação ao custo, eficácia e dificuldade de satisfação (strength). Entretanto poucos estudos buscam avaliar os critérios em diferentes paradigmas. Esta avaliação é importante pois o paradigma de implementação influência significativamente no programa gerado e as características entre programas implementados em diferentes paradigmas pode influenciar em diversos aspectos da atividade de teste. Este estudo é complementar a um outro trabalho do grupo do laboratório de engenharia de software do ICMC em que foram comparados o custo da aplicação dos critérios da técnica Estrutural em relação aos paradigmas Procedimental e Orientado a Objetos. Este trabalho apresenta um estudo experimental comparando o custo e o strength do critério Análise de Mutantes nos dois paradigmas. Além da avaliação do critério Análise de Mutantes, o material gerado para este estudo será construído de forma que possa ser utilizado para o ensino e treinamento das principais técnicas e critérios de teste e espera-se que este possa contribuir de alguma forma para que o ensino de teste de software possa ser aplicado em paralelo com o ensino de algoritmos e estrutura de dados. Para a condução deste estudo, foi utilizado um conjunto de 32 programas do domínio de estrutura de dados com versões implementadas em C e em Java. O critério Análise de Mutantes foi aplicado com auxílio das ferramentas Proteum e MuClipse. Para a avaliação do strength, o conjunto de casos de teste adequado a um programa foi executado contra os mutantes gerados na mesma versão do programa implementado no outro paradigma de interesse e o escore de mutação avaliado (cross scoring). Resultados indicam que tanto o custo quanto o strength do teste de mutação é maior em programas implementados no paradigma Procedimental do que no paradigma OO. Resultados estes certamente influenciados pelo conjunto de operadores implementado nas duas ferramentas. No paradigma procedimental, também foi avaliado o escore de mutação obtido por um subconjunto dos operadores da Proteum, construído com o objetivo de reduzir o custo da aplicação do critério. O escore obtido foi satisfatório e as reduções no custo significativas. Também foi avaliado strength das técnicas Funcional e Estrutural em relação ao critério AM nos dois paradigmas. Os resultados mostram que os conjuntos de casos de teste adequados aos critérios das técnicas Funcional e Estrutural no paradigma OO obtiveram, em geral, um escore de mutação maior do que no paradigma Procedimental / AIming at to assist the definition and evolution of testing strategies, empirical studies have been conducted comparing the test criteria in terms of cost effectiveness and strength. However few studies were conducted comparing the criteria in different paradigms. This assessment is important because program paradigm can cause a big influence in the result program and the characteristics of this programs can cause influences in testing activities. This study complements another work in this group that compared the cost of Structural test technique considering the Procedural and Object Oriented paradigms. This paper presents an experimental study comparing the cost and strength of Mutation Test in Procedural and OO paradigms. Besides the evaluation of mutation test, the results of this study can be used to help teaching and training many test criteria and it may somehow contribute to teach software testing n parallel with algorithms and data structures programs. It was used a set of 32 programs of data structure programs with versions in C and Java. For this study it were used Proteum and MuClipse to execute the mutation tests. It was also evaluated the strength of a set of test cases (TC) appropriate to a program in a paradigm in the same version of the program implemented in the other paradigm of interest (cross scoring). Results indicate that both cost and strength is higher in Procedural programs than in OO. This results are certainly influenced by the set of operators built in each tool studied. It was also measured the mutation score of a subset of Proteums operators built to reduce the cost of Mutation Testing in Procedural programs. The mutation score obtained was satisfactory and there was a significant reduction in cost. It was also evaluated the strength of Functional and Structural techniques in Mutation Test for both paradigms. The results show that the mutation score of the set of test cases adequate to Functional and Structural techniques were in general, higher in OO paradigm than in Procedural paradigm
33

Teste estrutural de programas concorrentes como uma composição de serviços na Web / Structural testing of concurrent programs as a Web service composition

Prado, Rafael Regis do 24 March 2016 (has links)
O teste de programas concorrentes é essencial para assegurar a qualidade das atuais aplicações distribuídas/paralelas em desenvolvimento. Apesar de ser essencial, essa atividade de teste é dificilmente empregada adequadamente, devido a fatores como: alto custo de execução, grande lacuna entre desenvolvedores e resultados de pesquisas em testes para programas concorrentes e acesso às ferramentas de teste de programas concorrentes que automatizem/viabilizem o emprego do teste. Este projeto visa definir os parâmetros da atividade de teste estrutural de programas concorrentes que nortearão a composição de diferentes serviços na Web. Tais serviços dão suporte à atividade de teste estrutural de programas concorrentes, estabelecendo fronteiras claras em ferramentas de teste para os módulos relativos ao modelo de teste, aos critérios de teste, à linguagem de programação e aos paradigmas de sincronização. Desse modo, novas ferramentas de teste poderão ser construídas de maneira mais flexível, com menos custo de desenvolvimento e com mais eficácia. Tal abordagem traz como benefícios diretos: (1) facilitar a interação entre os setores da indústria, ensino e pesquisa que estejam interessados no desenvolvimento de programas concorrentes com qualidade; (2) diminuir os custos de instalação e manutenção de ferramentas de teste estrutural pelos desenvolvedores; (3) facilitar a incorporação da atividade de teste de programas concorrentes no ciclo de desenvolvimento das aplicações distribuídas e paralelas; (4) aumentar a abrangência do projeto TestPar, permitindo que novos usuários (desenvolvedores, professores e outros grupos de pesquisa) possam utilizar facilmente os conhecimentos gerados no projeto; e (5) realimentar o projeto TestPar com novas demandas qualificadas, estas advindas de novos programas concorrentes submetidos para teste. / Testing of concurrent programs is essential to ensure the quality of todays distributed/parallel applications in development. Although it is essential that testing activity is hardly properly employed, due to factors such as high cost of implementation, big gap between developers and research results in tests for competing programs and access to competing software testing tools to automate / enable the test job. This project aims to define the parameters of structural testing activity of concurrent programs that will guide the composition of different Web services. These services support the structural testing activity of concurrent programs, establishing clear boundaries in test tools for the modules related to the test model, the test criteria, the programming and synchronization paradigms language. Thus, new test tools can be built in a more flexible way, with less development cost and more effectively. Such an approach has as direct benefits: (1) facilitate interaction between industry sectors, education and research who are interested in the development of concurrent programs with quality; (2) reduce the costs of installation and maintenance of structural testing tools for developers; (3) facilitate the incorporation of testing activity of concurrent programs in the development cycle of distributed and parallel applications; (4) increase the scope of TestPar design, allowing new users (developers, teachers and other research groups) can easily use the knowledge generated in the project; and (5) feed back into the project TestPar with new demands qualified, those arising from new concurrent programs submitted for testing.
34

Ensino e aprendizado de fundamentos de programação: uma abordagem baseada em teste de software / Teaching and learning of programming foundations: an approach based on software testing

Souza, Draylson Micael de 13 April 2012 (has links)
O ensino de fundamentos de programação não é uma tarefa trivial muitos estudantes têm dificuldades em compreender os conceitos abstratos de programação e possuem visões erradas sobre a atividade de programação. Uma das iniciativas que tem sido investigada a fim de amenizar os problemas associados refere-se ao ensino conjunto de conceitos básicos de programação e de teste de software. A introdução da atividade de teste pode ajudar o desenvolvimento das habilidades de compreensão e análise nos estudantes. Além disso, aprendendo teste mais cedo os alunos podem se tornar melhores testadores e desenvolvedores. Seguindo esta tendência, em trabalhos anteriores foram investigados alguns mecanismos de apoio ao ensino integrado de fundamentos de programação e teste. Dentre os mecanismos investigados destaca-se a proposição de um ambiente de apoio para submissão e avaliação automática de trabalhos práticos dos alunos, baseado em atividades de teste de software PROGTEST. Em sua primeira versão, a PROGTEST foi integrada à ferramenta JABUTISERVICE, que apoia o teste estrutural de programas escritos em Java. O presente projeto de mestrado visou a dar continuidade aos trabalhos já realizados, tendo como principal objetivo a identificação e integração de diferentes ferramentas de teste ao ambiente PROGTEST, explorando tanto técnicas e critérios de teste diferenciados como linguagens de programação distintas. O ambiente PROGTEST também foi aplicado e validado em diferentes cenários de ensino, considerando diferentes linguagens e técnicas de teste. Em linhas gerais, os resultados evidenciam a viabilidade da aplicação do ambiente em cenários de ensino e aprendizagem / The teaching of programming foundations is not a trivial task - many students have difficulty to understand the abstract concepts of programming and have wrong views about the programming activity. Initiatives have been investigated in order to address the related issues. One of them refers to the integrated teaching of programming foundations and software testing. The introduction of testing can help students to develop programming comprehension and analysis skills. Moreover, teaching testing earlier could become the students better testers and developers. Following this perspective, previous studies have investigated mechanisms to support the integrated teaching of programming foundations and software testing. Among them, we highlight the proposition of a environment for the submission and automatic evaluation of programming assignments, based on testing activities - PROGTEST. In its first version, PROGTEST was integrated with JABUTISERVICE tool, which supports the structural testing of Java programs. This work aims at identifying and integrating different testing tools to the PROGTEST environment, exploring both different testing criteria and different programming languages. The PROGTEST environment was also applied and validated in different teaching scenarios, with different languages and testing techniques. In general, the results show the feasibility of applying the environment in the integrated teaching of programming foundations and software testing
35

Avaliação do custo e efetividade dos critérios de teste estruturais no contexto de programas concorrentes com memória compartilhada / Evaluation of the cost. effectiveness and strength of structural testing criteria in the concurrent programs context with shared memory

Melo, Silvana Morita 11 October 2012 (has links)
O teste de programas concorrentes e uma atividade desaadora, devido a fatores que não estão presentes em programas sequenciais, como comunicação, sincronização e não determinismo. Algumas técnicas de teste têm sido propostas para o contexto de programação concorrente, mas raramente sua aplicabilidade e avaliada por estudos teóricos ou experimentais. Este trabalho contribui nesse sentido, propondo e conduzindo um estudo experimental para avaliar o custo, eficácia e aspecto complementar dos critérios de teste estruturais para programas concorrentes no contexto de memória compartilhada, implementados usando o padrão PThreads (Posix Threads). A ferramenta de teste ValiPThread e usada para auxiliar a condução do experimento. Os programas usados no experimento foram selecionados de benchmarks, como o Inspect, Helgrind e Rungta. Esses benchmarks são comumente usados no estudo de técnicas de teste para programas concorrentes. Programas que resolvem problemas clássicos da programação concorrente também foram incluídos no estudo. Com base nos resultados obtidos foi definida uma estratégia de aplicação, considerando aspectos de custo e eficácia dos critérios de teste. Além disso, todo o material utilizado e gerado durante o experimento foi reunido em um pacote de laboratório, a fim de contribuir com a comunidade de pesquisa, possibilitando replicações e comparações desses critérios com outras técnicas de teste no contexto de programas concorrentes / Concurrent program testing is a challenging activity due to the communication, synchronization and nondeterminism of this application domain. Despite that, some testing techniques for concurrent programs have been proposed, but their applicability is rarely evaluated by theoretical or experimental studies. This work contributes in this direction proposing and conducting an experimental study to evaluate the cost, effectiveness and strength of structural testing criteria for multithreaded programs, implemented using the Pthreads standard (POSIX Threads). The testing tool ValiPThread is used to support the conduction of the experiment. The programs used in this experiment were selected from classical benchmarks, such as Inspect, Helgring and Rungta. These benchmarks are commonly used to study testing techniques for concurrent programs. We also include programs that solve concurrent classical problems. Based on the obtained results, we defined an application testing strategy, considering cost and effectiveness aspects of the testing criteria. Furthermore, all material used and generated during the experiment was incorporated in a lab package, in order to contribute with further research studies making possible replications and comparisons of these testing criteria with other testing techniques in context of concurrent programs
36

Uma estratégia para redução de conjuntos de sequências de teste para máquinas de estados finitos / A strategy for reducing test suites from finite state machines

Cutigi, Jorge Francisco 18 June 2010 (has links)
O teste baseado em modelos visa à derivação de casos de teste a partir de modelos produzidos ao longo do desenvolvimento de software. Nesse contexto, as Máquinas de Estados Finitos têm sido amplamente pesquisadas e utilizadas para derivação de seqüências de teste. Para isso, vários métodos de geração de seqüências de teste têm sido desenvolvidos há várias décadas. O objetivo desses métodos é a obtenção de um conjunto de teste que seja capaz de revelar os defeitos de uma implementação. Entretanto, muitas vezes os conjuntos gerados são muito grandes, o que torna sua aplicação inviável. Trabalhos recentes definiram condições que podem ser utilizadas para investigar mecanismos de redução de casos de teste. Este trabalho apresenta uma estratégia para a redução de conjuntos de seqüências de teste a partir de Máquinas de Estados Finitos com base em condições de suficiência. A estratégia baseia-se na combinação de seqüências de um conjunto de teste, de forma a reduzir o número de seqüências e o tamanho delas, mantendo a completude do conjunto. São apresentadas seis abordagens de redução baseadas na estratégia proposta, as quais foram implementadas em uma ferramenta. Para avaliar as abordagens foram conduzidos estudos experimentais, os quais também serviram para inferir sobre as características e propriedades de cada abordagem. Além disso, um estudo de caso com MEFs reais também foi realizado / Model-based testing aims at generating test cases from models produced along the software development process. In this context, Finite State Machines (FSM) have been largely investigated and used for generating test sequences. In the past decades, several test generation methods have been proposed to obtain test suites that are able to reveal implementation faults. Nevertheless, most of the generated test suites are huge, thus hindering their application in practice. Recent research has defined new sufficient conditions that can be employed in mechanisms for reducing the length of test sequences. This work presents a strategy based on sufficient conditions for reducing the length of test cases derived from FSMs. Our strategy is based on sequence combination of a test suite, aiming to reduce the number of sequences and their length, however still keeping full fault coverage. Six reduction approaches are presented based on the proposed strategy and implemented in a tool. In order to evaluate the strategy, we conducted experimental studies that identified characteristics and properties for each of the six proposed approaches. Moreover, a case study with real-world FSMs was performed
37

Geração automática de dados de teste para programas concorrrentes com meta-heurística / Automatic test data generation for concurrent programs with metaheuristic

Silva, José Dario Pintor da 22 September 2014 (has links)
A programação concorrente é cada vez mais utilizada nos sistemas atuais com o objetivo de reduzir custos e obter maior eficiência no processamento. Com a importância da programação concorrente é imprescindível que programas que implementam esse paradigma apresentem boa qualidade e estejam livres de defeitos. Assim,diferentes técnicas e critérios de teste vêm sendo definidos para apoiar a validação de aplicações desenvolvidas nesse paradigma. Nesse contexto, a geração automática de dados de teste é importante, pois permite reduzir o custo na geração e seleção de dados relevantes. O uso de técnicas meta-heurísticas tem sido uma área de grande interesse entre os pesquisadores para geração de dados, pois essas técnicas apresentam abordagens aplicáveis a problemas complexos e de difícil solução. Considerando esse aspecto, este trabalho apresenta uma abordagem de geração automática de dados para o teste estrutural de programas concorrentes em MPI (Message Passing Interface). A meta-heurística usada foi Algoritmo Genético em que a busca é guiada por critérios de teste que consideram características implícitas de programas concorrentes. O desempenho da abordagem foi avaliado por meio da cobertura dos dados detestes, da eficácia em revelar defeitos e do custo de execução. Para comparação, a geração aleatória foi considerada. Os resultados indicaram que é promissor usar geração de dados de teste no contexto de programas concorrentes, com resultados interessantes em relação à eficácia e cobertura dos requisitos de teste. / Concurrent programming has been increasingly used in current systems in order to reduce costs and obtain higher processing efficiency and, consequently, it is expected that these systems have high quallity. Therefore, different techniques and testing criteria have been proposed aiming to support the verification and validation of the concurrent applications. In this context, the automated data test generation allows to reduce the testing costs during the generation and selection of data tests. Metaheuristic technique has been widely investigated to support the data test generation because this technique has presented good results to complex and costly problems. In this work, we present an approach to the automated data test generation for message passing concurrent programs in MPI (Message Passing Interface). The generation of data test is performed using the genetic algorithm metaheuristic technique, guiding by structural testing criteria. An experimental study was conducted to evaluate the proposed approach, analyzing the effectiveness and application cost. The results indicate that the genetic algorithm is a promising approach to automated test data generation for concurrent programs, presenting good results in relation to effectiveness and data test coverage.
38

Teste de mutação aplicado a programas concorrentes em MPI / Mutation testing applied to concurrent programs in MPI

Silva, Rodolfo Adamshuk 13 March 2013 (has links)
A Programação Concorrente tornou-se uma forma popular de desenvolvimento de software. Este paradigma de desenvolvimento e essencial para construir aplicações com o intuito de reduzir o tempo computacional em muitos domínios como, por exemplo, previsão tempo, processamento de imagem, entre outros. Estes programas têm novas características como a comunicação, a sincronização e o não determinismo, que precisam ser considerados durante a atividade de teste. O teste de software e uma atividade que busca garantir a qualidade por meio da identificação de falhas no produto. O Teste de Mutação e um critério de teste que se baseia nos enganos que podem ser cometidos pelos desenvolvedores de software. Porém, o teste de mutação não pode ser aplicado em programas concorrentes da mesma maneira como e aplicado em programas sequenciais por causa das particularidades presentes nos programas concorrentes. Um problema de aplicar o teste de mutação nesse contexto e o comportamento não determinístico das aplicações. Este trabalho investiga a definição do teste de mutação para programas concorrentes implementados em MPI (Message Passing Interface), os quais realizam comunicação e sincronização por meio de troca de mensagens. Para isso, defeitos típicos nesse domínio foram considerados, buscando modelar operadores de mutação para tratar os aspectos de comunicação e sincronização dessas aplicações. Também foi proposto um procedimento para dar suporte a análise comportamental dos mutantes. As idéias foram implementadas em uma ferramenta de teste chamada ValiMPI Mut / Concurrent programming became a popular paradigm for software development. This paradigm is essential to build applications which aim to reduce the computational time in many areas, such as, weather forecast, image processing, among others. These programs present new features such as communication, synchronization, and nondeterminism, which must be considered during the testing activity. Software testing is an activity that looks to ensure quality by identifying faults in the product. Mutation Testing is a criterion based on the most common mistakes that might be made by software developers. However, the mutation testing cannot be applied in concurrent programs the same way as applied in sequential ones due to the peculiarities present in concurrent programs. One of the problems in applying mutation testing in this context is the non-deterministic behavior. This work investigates the definition of mutation testing for concurrent programs implemented in MPI (Message Passing Interface), which perform communication and synchronization using message passing. For this, typical faults in this area were considered in order to model mutation operators addressing the aspects of communication and synchronization of these applications. Also, we are proposing a new procedure to support the behavioral analysis of the mutants. The ideas were implemented in a testing tool called ValiMPI Mut
39

Uma contribuição para determinação de um conjunto essencial de operadores de mutação no teste de programas C. / A contribution for the determination of a sufficient mutant operators set for C-program testing.

Barbosa, Ellen Francine 06 November 1998 (has links)
Estudos empíricos têm mostrado que a Análise de Mutantes – um dos critérios de teste baseado em erros – é bastante eficaz em revelar a presença de erros. Entretanto, seu alto custo, decorrente principalmente do grande número de mutantes gerados, tem motivado a proposição de diversas abordagens alternativas para a sua aplicação. Um estudo relevante nesse sentido resultou na determinação de um conjunto essencial de operadores de mutação para a linguagem Fortran, mostrando-se que é possível reduzir o custo de aplicação do critério, preservando um alto grau de adequação em relação à Análise de Mutantes. Alguns estudos também têm demonstrado que a redução da eficácia não é significativa. Este trabalho tem como objetivo investigar alternativas pragmáticas para a aplicação do critério Análise de Mutantes e, nesse contexto, é proposto um procedimento para a determinação de um conjunto essencial de operadores de mutação para a linguagem C, a partir dos operadores implementados na ferramenta Proteum. Procurando aplicar e validar o procedimento proposto, dois grupos distintos de programas são utilizados. Para ambos os grupos, o conjunto essencial obtido apresenta resultados bastante significativos quanto à redução de custo, com um decréscimo muito pequeno no grau de adequação em relação à Análise de Mutantes. Estratégias para evoluir e refinar um conjunto essencial para diferentes domínios de aplicação também são investigadas. / Mutation Analysis – one of the error based criteria – has been found to be effective on revealing faults. However, its high cost, due to the high number of mutants created, has motivated the proposition of many alternative approaches for its application. In this perspective, a relevant study resulted on the determination of a sufficient mutant operator set for Fortran, indicating that it is possible to have a large cost reduction of mutation testing, preserving a high mutation score. Some studies have also shown that the reduction on the effectiveness is not significant. This work aims to investigate pragmatic alternatives for mutation analysis application and, in this context, a procedure for the determination of a sufficient mutant operators set for C is proposed, using Proteum testing tool. Aiming to apply and validate the proposed procedure, two different groups of programs are used. For both of them, the sufficient mutant operator set presents very significant results in terms of cost reduction, with a very small reduction on the mutation score. Strategies to evolve and refine an essential mutant operator set to different application domains are also investigated.
40

Estudo e definição de mecanismos para redução do custo de aplicação do teste de programas concorrentes / Study and design of mechanisms to reduce the cost of appying the test of concurrent programs

Machado, Mario Cesar da Cunha 13 April 2011 (has links)
Programas concorrentes possuem características que os diferenciam de programas sequenciais, tornando a atividade de teste mais complexa. Questões como definição e uso de variáveis por diferentes processos, comunicação, sincronização e comportamento não-determinístico precisam ser consideradas. Apesar dos avanços obtidos nesse contexto, um problema que ainda persiste é o custo da atividade de teste, relacionado principalmente ao número excessivo de elementos requeridos a serem testados. Neste contexto, este trabalho apresenta duas propostas: a primeira estática, focando na detecção automática de elementos requeridos não-executáveis, para os critérios relacionados a sincronizações; e a segunda dinâmica, aplicando-se o teste de alcançabilidade para apoiar a avaliação da cobertura de sequências de sincronizações, desse modo, usando informações dinâmicas para apoiar o teste de cobertura. Estas propostas foram implementadas na ferramenta ValiMPI e um experimento foi realizado a fim de verificar a eficácia da proposta. Os resultados indicam que as duas propostas implementadas neste trabalho são promissoras e auxiliam a reduzir o custo da atividade de teste / Concurrent programs present new features, such as: nondeterminism, concurrency, synchronization and communication. These features need to be considered during testing activity, making this activity more complex. Despite the results achieved in this context, a problem that still remains is the application cost of the testing, especially the cost related to the high number of required elements generated by the test criteria proposed to concurrent programs. In this context, this work presents two contributions: the first one using a static approach, automatically detecting non-executable elements related to synchronization between process; and the second one using a dynamic approach, applying reachability testing to support the coverage evaluation of the executed sequences, reducing the number of executed sequences and the number of test cases. These contributions were implemented in the ValiMPI tool and experiments were conducted to evaluate them. The results indicate that these contributions can improve the concurrent program testing, reducing the application cost of the testing activity

Page generated in 0.4729 seconds