• 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.
71

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.

Ellen Francine Barbosa 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.
72

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

José Dario Pintor da Silva 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.
73

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

Rafael Alves Paes de Oliveira 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.
74

RAModelTI: agregando informações de teste de software no Modelo para Arquiteturas de Referência (RAModel) / RAModelTI : towards embodying test information into the Reference Architecture Model (RAModel)

Nilton Mendes de Souza 12 September 2017 (has links)
Arquitetura de software e teste de software são importantes áreas com o objetivo comum de prover meios para que sistemas de software sejam desenvolvidos com alta qualidade. Foi constatado, por meio de um mapeamento sistemático, que existem poucos estudos relacionando essas duas áreas de modo que uma possa contribuir para a outra, principalmente em arquiteturas de referência e teste de software. Esse projeto tem por objetivo estender o modelo para arquiteturas de referência (RAModel), para que arquiteturas de referência sejam estabelecidas com informações de teste de software. Assim, além de promover padronização, uniformização e reúso a informações relacionadas a arquiteturas de software, promove-se também o reúso, a padronização e a uniformização das informações de teste de software no desenvolvimento das soluções para um dado domínio de aplicação. Para isso, elementos de teste relacionados ao planejamento de teste foram extraídos do TMMi e da norma ISO/IEC/IEEE 29119 e inseridos no RAModel, definindo, assim, o RAModelT . Dessa forma, a atividade de teste é incorporada aos estágios iniciais do desenvolvimento de software. Um estudo de viabilidade realizado para avaliar a extensão do RAModelT e um exemplo de aplicação são apresentados. / Software architecture and software testing are important areas with the common goal of providing the means to develop high-quality software systems. It was found through a systematic mapping that there are few studies relating these two areas so that one can contribute to the other, especially in reference architectures and software testing. This project aims at extending the Reference Architecture Model (RAModel), so that reference architectures are established with software test information. Thus, in addition to promoting standardization, standardization, and reuse of information related to software architectures, it is also promoted the reuse, standardization, and standardization of software test information in the development of solutions for a given application domain. For this, test elements related to the test planning were extracted from the TMMi and the ISO/IEC/IEEE 29119 standard and inserted into the RAModel, thus defining the RAModelT . In this way, the test activity is incorporated into the early stages of software development. A feasibility study performed to evaluate the extent of the RAModelT and an application example are presented.
75

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

Jorge Francisco Cutigi 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
76

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

Draylson Micael de Souza 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
77

Uma abordagem de predição de falhas de software no contexto de desenvolvimento ágil / A fault prediction approach in the contexto of agile development

Ricardo Fontão Verhaeg 24 March 2016 (has links)
A atividade de teste é essencial para a garantia de qualidade do software e deveria ser empregada durante todo o processo de desenvolvimento. Entretanto, o esforço para a sua aplicação e o alto custo envolvido, comprometem sua utilização de maneira adequada. Durante o processo de desenvolvimento ágil, onde o tempo é um fator crítico, otimizar a atividade de testes sem afetar a qualidade é uma tarefa desafiadora. Apesar do crescente interesse em pesquisas sobre testes no contexto de métodos ágeis, poucas evidências são encontradas sobre avaliação do esforço para elaboração, evolução e manutenção dos testes nesse contexto. Este trabalho propõe uma abordagem para predição de defeitos desenvolvida para o contexto do desenvolvimento ágil e, portanto, considerando as características deste processo de desenvolvimento. Essa abordagem pode ser aplicada quando se considera ou não o desenvolvimento dirigido a testes. A abordagem permite priorizar a execução dos testes com base em uma lista de arquivos que apresentam maior probabilidade de apresentarem defeitos. A abordagem proposta foi avaliada por meio de um estudo de caso conduzido em um ambiente real de desenvolvimento. Como resultado obtido, observou-se que a abordagem melhorou a qualidade do projeto desenvolvido, sem aumentar o esforço durante a atividade de teste de software. / The testing activity is essential to ensure the software quality and should be applied during all steps of the developing process. However the required effort to do this and the high cost involved, compromises its proper usage. During the agile development process, in which time is a critical factor, optimizing the testing activity without affecting quality is a challenge. Despite the growing interest in research based agile method testing, few works are found on the evaluation of the effort to prepare, develop and maintain test cases in this context. This paper proposes an approach for fault prediction in the context of agile development and therefore considering the characteristics of this development process. This approach can be applied both when considering test-driven development or not. It allows prioritizing the execution of tests based on a list containing files most likely to fail. The proposed approach was evaluated by a case study conducted in a real development environment. The results indicate that the approach can improve the quality of the projects without increasing the effort during the testing activity.
78

[en] AN EFFECTIVE ANALYSIS OF EXECUTABLE ASSERTIVES AS INDICATORS OF SOFTWARE FAILS / [pt] UMA ANÁLISE DA EFICÁCIA DE ASSERTIVAS EXECUTÁVEIS COMO OBSERVADORA DE FALHAS EM SOFTWARE

FISCHER JONATAS FERREIRA 17 February 2016 (has links)
[pt] A confiabilidade absoluta do software é considerada inatingível, pois mesmo quando confeccionado seguindo regras rígidas de qualidade, o software não está livre da ocorrência de falhas durante a sua vida útil. O nível de confiabilidade do software está relacionado, entre outros, à quantidade de defeitos remanescentes que serão exercitados durante seu uso. Contendo menos defeitos remanescentes, espera-se que o software falhe menos frequentemente, embora muitos desses defeitos sejam exercitados nenhuma vez durante a vida útil do software. Mas desenvolvedores, além de redigir programas, utilizam cada vez mais bibliotecas e serviços remotos que muitas vezes possuem qualidade duvidosa. Na tentativa de tornar o software capaz de observar erros em tempo de execução, surge a hipótese que o uso dos Métodos Formais Leves, por meio do emprego sistemático de assertivas executáveis, pode ser eficaz e economicamente viável para assegurar a confiabilidade do software, tanto em tempo de teste como em tempo de uso. O objetivo principal desta pesquisa é avaliar a eficácia de assertivas executáveis para prevenção e observação de falhas em tempo de execução. As avaliações da eficácia foram feitas por intermédio de uma análise quantitativa utilizando experimentos. Estes, utilizam, implementações de estruturas de dados instrumentadas com assertivas executáveis, submetidas a testes baseados em mutações. Os resultados mostraram que todos os mutantes não equivalentes foram identificados pelas assertivas, embora os testes não foram capazes disso. Também é apresentada uma estimativa do custo computacional relativo ao uso de assertivas executáveis. Com base na infraestrutura criada para realização dos experimentos é proposta uma política de instrumentação de programas utilizando assertivas executáveis a serem mantidas ativas tanto durante os testes como durante o uso produtivo. / [en] Absolute reliability of software is considered unattainable, because even when it is build following strict quality rules, software is not free of failure occurrences during its lifetime. Software s reliability level is related, among others, to the amount of remaining defects that will be exercised during its use. If software contains less remaining defects, it is expected that failures will occur less often, although many of these defects will never be exercised during its useful life. However, libraries and remote services of dubious quality are frequently used. In an attempt to enable software to check mistakes at runtime, hypothetically Lightweight Formal Methods, by means of executable assertions, can be effective and economically viable to ensure software s reliability both at test time as well as at run-time. The main objective of this research is to evaluate the effectiveness of executable assertions for the prevention and observation of run-time failures. Effectiveness was evaluated by means of experiments. We instrumented data structures with executable assertions, and subjected them to tests based on mutations. The results have shown that all non-equivalent mutants were detected by assertions, although several of them were not detected by tests using non-instrumented versions of the programs. Furthermore, estimates of the computational cost for the use of executable assertions are presented. Based on the infrastructure created for the experiments we propose an instrumentation policy using executable assertions to be used for testing and to safeguard run-time.
79

SBSTFrame: um framework para teste de software baseado em busca / SBSTFrame: a framework to search-based software testing activity

Machado, Bruno Nunes 01 September 2016 (has links)
Submitted by Luciana Ferreira (lucgeral@gmail.com) on 2016-10-04T12:46:23Z No. of bitstreams: 2 Dissertação - Bruno Nunes Machado - 2016.pdf: 954291 bytes, checksum: 2b4b0a80a709d8803e7d0857e9aad0dd (MD5) license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) / Approved for entry into archive by Luciana Ferreira (lucgeral@gmail.com) on 2016-10-04T12:46:59Z (GMT) No. of bitstreams: 2 Dissertação - Bruno Nunes Machado - 2016.pdf: 954291 bytes, checksum: 2b4b0a80a709d8803e7d0857e9aad0dd (MD5) license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) / Made available in DSpace on 2016-10-04T12:46:59Z (GMT). No. of bitstreams: 2 Dissertação - Bruno Nunes Machado - 2016.pdf: 954291 bytes, checksum: 2b4b0a80a709d8803e7d0857e9aad0dd (MD5) license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) Previous issue date: 2016-09-01 / Fundação de Amparo à Pesquisa do Estado de Goiás - FAPEG / The software testing is an important component of software development life cycle, that directly affects quality of software products. Some problems in software testing phase can not be optimized only with traditional Software Engineering techniques. It is possible to do the mathematical modelling of those problems in an attempt to optimize them through the search techniques. However, the use of optimization approaches tend to incorporate more and more activities decisions to the tester, making more complex test activity. So, in order that optimization techniques are in fact employed at the Software Test solutions, the ability to abstract the details of optimization are required. Thus, the objective of this research is to propose a framework for search-based software testing (SBST). The proposed framework works as a top-level layer over generic optimization frameworks and testing software tools, it's target is supporting software testers that are not able to use optimization frameworks during a testing activity due to short deadlines and limited resources or skills, also supporting expert or beginners users from optimization area that need or want to compare their metaheuristics with ones from literature and offered by the proposed framework. The framework was evaluated in a case study of software testing scenario. This scenario was modeled as test case selection problem in which experiments were executed with different metaheuristics and benchmarks offered by framework. The results indicate it's capability to support the SBST area with emphasis on the test cases selection. The framework was evaluated and compared with other SBST frameworks in terms of quality metrics, that indicated its extensibility and flexibility as framework. / O Teste de Software é uma parte essencial do processo de desenvolvimento de software, com impacto direto na qualidade do produto de software. Alguns problemas detectados durante a fase de teste de software não são possíveis de serem resolvidos apenas com as técnicas tradicionais da Engenharia de Software. Nestes casos é possível realizar a modelagem matemática desses problemas e tentar otimizá-los por meio das técnicas de busca. Entretanto, a utilização de abordagens de otimização tende a incorporar mais decisões e mais atividades para o testador, tornando a atividade de teste mais complexa. Assim, para que as técnicas de otimização sejam de fato empregadas no Teste de Software, soluções com a capacidade de abstrair detalhes da otimização são necessárias. Diante disso, o objetivo desta pesquisa consiste em propor um framework para apoiar o Teste de Software Baseado em Busca. O framework proposto funciona como uma camada de alto nível sobre os frameworks genéricos de otimização e as ferramentas de teste de software, apoiando testadores de software que não são capazes de utilizar os frameworks de otimização durante uma atividade de teste devido a prazos curtos e recursos ou habilidades limitadas, além de apoiar usuários iniciantes ou especialistas da área de otimização que precisam ou desejam comparar suas metaheurísticas ou heurísticas com as da literatura e as oferecidas pelo framework proposto. O framework foi avaliado em um estudo de caso no cenário de teste de software. Tal cenário foi modelo como um problema de seleção de casos de teste, em que experimentos foram executados com diferentes metaheurísticas e benchmarks oferecidos pelo framework. Os resultados indicaram a capacidade do framework em apoiar a aréa de SBST, com destaque para o problema de seleção de casos de teste. Além disso, o framework também foi avaliado e comparado com outro framework SBST em termos de métricas de qualidade, que indicaram a extensibilidade e flexibilidade do framework proposto.
80

Contribuições ao ensino de teste de software com o modelo flipped classroom e um agente conversacional / Contributions to software testing education with the flipped classroom model and a conversational agent

Paschoal, Leo Natan 20 March 2019 (has links)
Teste de software é uma atividade do processo de desenvolvimento de software que busca revelar os defeitos presentes no software. Apesar dos constantes avanços e surgimento de diferentes modelos pedagógicos, este assunto continua sendo ensinado com o modelo tradicional de ensino. A comunidade de educação em computação vem investigando a aplicação de diferentes modelos pedagógicos e, nessa perspectiva, emerge o modelo pedagógico flipped classroom como uma interessante solução. Estudos mencionam sobre a necessidade de investigá-lo, buscando reconhecer seu potencial no ensino de um determinado conteúdo. Além disso, implementar o modelo exige uma intensificação de esforços para o professor, pois ele precisará planejar atividades e mecanismos de apoio ao ensino para cada um dos momentos previstos pelo modelo. Trabalhos relatam que os alunos durante o momento de estudo antes da aula podem ter dificuldade em entender aspectos teóricos sobre o conteúdo, pois esse pode ter conceitos que podem gerar dupla interpretação. Este trabalho de mestrado tem o propósito de contribuir com o ensino de teste de software, investigando o impacto do modelo flipped classroom no ensino de teste de software. O projeto também propõe uma abordagem de apoio ao planejamento e implantação desse modelo e analisa o uso de um agente conversacional como mecanismo de apoio ao flipped classroom. Estudos experimentais foram realizados visando entender o impacto do modelo no processo de aprendizado de teste de software. Na sequência, foram analisados conteúdos de teste de software ensinados em cursos de computação no Brasil, definidos objetivos de aprendizagem para esses conteúdos, selecionados mecanismos de apoio e atividades para contemplar os três momentos previstos pelo modelo e implementado um mecanismo para apoiar a implantação do modelo flipped classroom no ensino de teste. Por fim, um agente conversacional foi proposto e investigado no contexto de uma aula de teste de software em que o modelo flipped classroom foi utilizado. Os resultados deste trabalho indicam que o modelo flipped classroom permite que os alunos tenham melhores resultados no aprendizado, especialmente quando há realização de atividades práticas. Os alunos revelaram que preferem este modelo em detrimento ao tradicional. No entanto, o modelo produz uma carga de trabalho maior para o aluno. Por fim, o uso do agente conversacional como um mecanismo de apoio durante o momento antes da aula indica sua relevância para o flipped classroom. / Software testing is an activity of the development process that aims to reveal the faults present in the software. Despite of constant progress and emergence of different pedagogical models, this subject is still taught with strategies based mainly on the traditional model. Although software testing is considered a relevant subject, some students are not very motivated to learn it. The computer education community has investigated the use of different teaching models and, from this perspective, the Flipped Classroom pedagogical model has emerged as an interesting solution. Several studies mention that is required to investigate this model in order to identify its potential in teaching a specific subject and/or teaching area. In addition, the implementation of this model demands an intensification of efforts from the teacher because he/she needs to plan activities and support mechanisms for all phases of this model: before the class, during the class, and after the class. Results from the literature indicate that students may present difficulties in understand the theory during the phase before the classbecause studying alone can lead to many doubts and misunderstandings. Therefore, this masters thesis investigates the impact of the Flipped Classroom model on teaching of testing techniques and criteria. Experimental studies were initially undertaken aiming to understand the models impact in the learning process of software testing. Following, we analyzed what subjects of software testing are taught in Computer courses in Brazil. Based on the results, we defined learning objectives for these subjects, selected support mechanisms and activities to contemplate the three phases of the Flipped Classroom model. An approach, named FlipClass-STT, to support the implementation of this model was defined and experimentally evaluated. Finally, the conversational agent TOB-STT was proposed and evaluated in context of a software testing class, in which the Flipped Classroom model was employed. The results of this work indicate that Flipped Classroom allows the students to have better learning outcomes, especially when performing practical activities. The students have revealed that they prefer this model against the traditional one. However, it is also observed that model produces a greater workload for the student. The use of TOB-STT how a support mechanism during the phase before the class indicate its relevance and impact for learning software testing.

Page generated in 0.0913 seconds