1 |
Interactive Search-Based Software Testing : Development, Evaluation, and DeploymentMarculescu, Bogdan January 2017 (has links)
No description available.
|
2 |
Solving the Vehicle Routing Problem : using Search-based Methods and PDDLAgerberg, Gösta January 2013 (has links)
In this project the optimization of transport planning has been studied. The approach was that smaller transport companies do not have the capability to fully optimize their transports. Their transport optimization is performed at a company level, meaning that the end result might be optimal for their company, but that potential for further optimization exists. The idea was to build a collaboration of transport companies, and then to optimize the transports globally within the collaboration. The intent was for the collaboration to perform the same driving assignments but at a lower cost, by using fewer vehicles and drivers, or travel shorter distance, or both combined. This should be achieved by planning the assignments in a smarter way, for example using a company's empty return journey to perform an assignment for another company. Due to the complexity of these types of problems, called Vehicle Routing Problem (VRP), shown to be NP-complete, search methods are often used. In this project the method of choice was a PDDL-based planner called LPG-td. It uses enforced hill-climbing together with a best-first search to find feasible solutions. The method was tested for scaling, performance versus another method and against time, as well as together with a real-life based problem. The results showed that LPG-td might not be a suitable candidate to solve the problem considered in this project. The solutions found for the collaboration were worse than for the sum of individual solutions, and used more computational time. Since the solution for the collaboration at most should be equal to the sum of individual solutions, in theory, this meant that the planner failed.
|
3 |
Search-based methods for computer-aided controller design improvementFrazier, William Garth January 1993 (has links)
No description available.
|
4 |
User directed search based reverse engineeringSchmidt, Frederik January 2009 (has links)
The current research represents the planning, design, implementation and evaluation of a user directed software clustering approach that utilizes Search Based Software Engineering (SBSE). The aim of this research is to examine if a user directed software clustering approach contributes to the quality of software clustering. Because of the explorative and constructive character this research project utilises the System Development Research Methodology. This research is enabled by the implementation of the Search Based Reverse Engineering (SBRE) component. The SBRE component features multiple similarity measurements and the inclusion of user constraints in the clustering process to create different implementation perspectives of the software system depending on the requirements and preferences of the stakeholders. These similarity measurements are based on software metrics, which measure different software-attributes. The SBRE component utilizes a greedy and tabu search algorithm for the identification of the cluster landscape of the analyzed software systems. The evaluation showed that a user controlled SBSE cluster approach is able to adapt to different user configurations and derive corresponding cluster landscapes from software systems. Different measures are introduced to control the cluster process. It has been shown how these measures contribute to the quality of the clustering. It is demonstrated that tabu search is applicable in the field of software clustering. Finally, it has been examined that a multiple metric approach allows adapting the clustering process to the requirements of the stakeholders and the design of the software system to optimize the clustering result.
|
5 |
User directed search based reverse engineeringSchmidt, Frederik January 2009 (has links)
The current research represents the planning, design, implementation and evaluation of a user directed software clustering approach that utilizes Search Based Software Engineering (SBSE). The aim of this research is to examine if a user directed software clustering approach contributes to the quality of software clustering. Because of the explorative and constructive character this research project utilises the System Development Research Methodology. This research is enabled by the implementation of the Search Based Reverse Engineering (SBRE) component. The SBRE component features multiple similarity measurements and the inclusion of user constraints in the clustering process to create different implementation perspectives of the software system depending on the requirements and preferences of the stakeholders. These similarity measurements are based on software metrics, which measure different software-attributes. The SBRE component utilizes a greedy and tabu search algorithm for the identification of the cluster landscape of the analyzed software systems. The evaluation showed that a user controlled SBSE cluster approach is able to adapt to different user configurations and derive corresponding cluster landscapes from software systems. Different measures are introduced to control the cluster process. It has been shown how these measures contribute to the quality of the clustering. It is demonstrated that tabu search is applicable in the field of software clustering. Finally, it has been examined that a multiple metric approach allows adapting the clustering process to the requirements of the stakeholders and the design of the software system to optimize the clustering result.
|
6 |
Munch : an efficient modularisation strategy on sequential source code check-insArzoky, Mahir January 2015 (has links)
As developers are increasingly creating more sophisticated applications, software systems are growing in both their complexity and size. When source code is easy to understand, the system can be more maintainable, which leads to reduced costs. Better structured code can also lead to new requirements being introduced more efficiently with fewer issues. However, the maintenance and evolution of systems can be frustrating; it is difficult for developers to keep a fixed understanding of the system’s structure as the structure can change during maintenance. Software module clustering is the process of automatically partitioning the structure of the system using low-level dependencies in the source code, to improve the system’s structure. There have been a large number of studies using the Search Based Software Engineering approach to solve the software module clustering problem. A software clustering tool, Munch, was developed and employed in this study to modularise a unique dataset of sequential source code software versions. The tool is based on Search Based Software Engineering techniques. The tool constitutes of a number of components that includes the clustering algorithm, and a number of different fitness functions and metrics that are used for measuring and assessing the quality of the clustering decompositions. The tool will provide a framework for evaluating a number of clustering techniques and strategies. The dataset used in this study is provided by Quantel Limited, it is from processed source code of a product line architecture library that has delivered numerous products. The dataset analysed is the persistence engine used by all products, comprising of over 0.5 million lines of C++. It consists of 503 software versions. This study looks to investigate whether search-based software clustering approaches can help stakeholders to understand how inter-class dependencies of the software system change over time. It performs efficient modularisation on a time-series of source code relationships, taking advantage of the fact that the nearer the source code in time the more similar the modularisation is expected to be. This study introduces a seeding concept and highlights how it can be used to significantly reduce the runtime of the modularisation. The dataset is not treated as separate modularisation problems, but instead the result of the previous modularisation of the graph is used to give the next graph a head start. Code structure and sequence is used to obtain more effective modularisation and reduce the runtime of the process. To evaluate the efficiency of the modularisation numerous experiments were conducted on the dataset. The results of the experiments present strong evidence to support the seeding strategy. To reduce the runtime further, statistical techniques for controlling the number of iterations of the modularisation, based on the similarities between time adjacent graphs, is introduced. The convergence of the heuristic search technique is examined and a number of stopping criterions are estimated and evaluated. Extensive experiments were conducted on the time-series dataset and evidence are presented to support the proposed techniques. In addition, this thesis investigated and evaluated the starting clustering arrangement of Munch’s clustering algorithm, and introduced and experimented with a number of starting clustering arrangements that includes a uniformly random clustering arrangement strategy. Moreover, this study investigates whether the dataset used for the modularisation resembles a random graph by computing the probabilities of observing certain connectivity. This thesis demonstrates how modularisation is not possible with data that resembles random graphs, and demonstrates that the dataset being used does not resemble a random graph except for small sections where there were large maintenance activities. Furthermore, it explores and shows how the random graph metric can be used as a tool to indicate areas of interest in the dataset, without the need to run the modularisation. Last but not least, there is a huge amount of software code that has and will be developed, however very little has been learnt from how the code evolves over time. The intention of this study is also to help developers and stakeholders to model the internal software and to aid in modelling development trends and biases, and to try and predict the occurrence of large changes and potential refactorings. Thus, industrial feedback of the research was obtained. This thesis presents work on the detection of refactoring activities, and discusses the possible applications of the findings of this research in industrial settings.
|
7 |
Application of Search-based Software Testing toNon-functional system properties : A Validated FrameworkParasa, Nitin January 2016 (has links)
Context: The importance of testing non-functional properties of the system is growing steadily. Complexity factor of the software is growing proportionally with the growing demands and hence attributes like performance, energy consumption and reliability are proving to be very crucial. Optimizing the software with respect to these properties simultaneously with the functional properties has been found to be a challenge. Search-based Software testing automates this process by using different meta-heuristic techniques. It assures the generation of large number of test cases at a minimal cost. Carrying out testing in this context requires lot of expertise and the aid of a highly flexible approach. There is a strong need of a guide that helps the practitioners(testers) and researchers optimize the non-functional properties using Search-based software testing. Objectives: The objective of the work presented in this thesis is to, first, investigate the non-functional properties, challenges encountered and approaches/suggestions by the practitioners on the application of Search-based software testing in academia and industry. Second objective is to map all the information into a conceptual/ theoretical framework that could be used by Search-based software testing practitioners for optimizing the non-functional system properties. Methods: A qualitative approach has been employed for this thesis work. A literature review with snowball sampling as the search approach was conducted to collect the information regarding the different kinds of systems being tested, the non-functional system properties being optimized, challenges encountered and the tools used for this purpose. Semi-structured interviews are conducted as a part of the validation process and generalizing the results obtained. A total of 9 interviews were conducted. Thematic analysis technique has been used to analyze the collected data. Results: As a result of conducting this research, different dimensions forming the framework have been investigated. The overall result of this study is the formulation fo a framework and that has been validated by conducting interviews. The framework consists of 16 challenges related to the field of Non-functional Search-based software testing. Conclusions: It is found out that Search-based testing for non-functional properties has not been extensively applied in the industry. It has been suggested, used and applied in academia for the most part. Several factors influence the selection of non-functional properties for optimization. Most of the challenges being faced in this subject are inclined towards three areas in Search-based testing. Performance, execution time and energy consumption are three most popularly tested attributes. Further research could be done wherein the framework generated could be put to use by different practitioners and researchers to find out interesting things.
|
8 |
Uma abordagem evolucionária para o teste de instruções select SQL com o uso da análise de mutantes / An evolutionary approach to test SQL select statements using the mutation analysisMonção, Ana Claudia Bastos Loureiro 02 August 2013 (has links)
Submitted by Marlene Santos (marlene.bc.ufg@gmail.com) on 2014-10-15T17:49:53Z
No. of bitstreams: 2
Dissertacao - Ana Claudia Bastos Loureiro Monção - 2013.pdf: 4213405 bytes, checksum: 3bbe190ae0f4a45a2f8b4e71026f5d2e (MD5)
license_rdf: 23148 bytes, checksum: 9da0b6dfac957114c6a7714714b86306 (MD5) / Approved for entry into archive by Jaqueline Silva (jtas29@gmail.com) on 2014-10-16T17:59:00Z (GMT) No. of bitstreams: 2
Dissertacao - Ana Claudia Bastos Loureiro Monção - 2013.pdf: 4213405 bytes, checksum: 3bbe190ae0f4a45a2f8b4e71026f5d2e (MD5)
license_rdf: 23148 bytes, checksum: 9da0b6dfac957114c6a7714714b86306 (MD5) / Made available in DSpace on 2014-10-16T17:59:00Z (GMT). No. of bitstreams: 2
Dissertacao - Ana Claudia Bastos Loureiro Monção - 2013.pdf: 4213405 bytes, checksum: 3bbe190ae0f4a45a2f8b4e71026f5d2e (MD5)
license_rdf: 23148 bytes, checksum: 9da0b6dfac957114c6a7714714b86306 (MD5)
Previous issue date: 2013-08-02 / Software Testing is an important area of Software Engineering to ensuring the software
quality. It consists of activities that involve long time and high costs, but need to
be made throughout the process of building software. As in other areas of software
engineering, there are problems in the activities of Software Testing whose solution
is not trivial. For these problems, several techniques of optimization and search
have been explored trying to find an optimal solution or near optimal, giving rise
to lines of research textit Search-Based Software Engineering (SBSE) and textit
Search-Based Software Testing (SBST). This work is part of this context and aims
to solve the problem of selecting test data for test execution in SQL statements.
Given the number of potential solutions to this problem, the proposed approach
combines techniques Mutation Analysis for SQL with Evolutionary Computation
to find a reduced data set, that be able to detect a large number of defects in
SQL statements of a particular application. Based on a heuristic perspective, the
proposal uses Genetic Algorithms (GA) to select tuples from a existing database
(from production environment) trying to reduce it to a set of data relevant and
effective. During the evolutionary process, Mutation Analysis is used to evaluate
each set of test data selected by the AG. The results obtained from the experiments
showed a good performance using meta-heuristic of Genetic Algorithms, and its
variations. / Teste de Software é uma área da Engenharia de Software de fundamental importância
para a garantia da qualidade do software. São atividades que envolvem tempo
e custos elevados, mas que precisam ser realizadas durante todo o processo de
construção de um software. Assim como em outra áreas da Engenharia de Software,
existem problemas nas atividades de Teste de Software cuja solução não é trivial.
Para esses problemas, têm sido exploradas várias técnicas de busca e otimização
tentando encontrar uma solução ótima ou perto da ótima, dando origem às linhas
de pesquisa Search-Based Software Engineering (SBSE) e Search-Based Software
Testing (SBST). O presente trabalho está inserido neste contexto e tem como
objetivo solucionar o problema de seleção de dados de teste para execução de
testes em instruções SQL. Dada a quantidade de soluções possíveis para este
problema, a abordagem proposta combina técnicas de Análise de Mutantes SQL
com Computação Evolucionária para encontrar um conjunto de dados reduzido que
seja capaz de detectar uma grande quantidade de defeitos em instruções SQL de uma
determinada aplicação. Baseada em uma perspectiva heurística, a proposta utiliza
Algoritmos Genéticos (AG) para selecionar tuplas de um banco de dados existente
(de produção) tentando reduzi-lo em um conjunto de dados relevante e efetivo.
Durante o processo evolucionário, a Análise de Mutantes é utilizada para avaliação
de cada conjunto de dados de teste selecionado pelo AG. Os resultados obtidos com
a realização dos experimentos revelaram um bom desempenho utilizando a metaheurística
dos Algoritmos Genéticos e suas variações.
|
9 |
Improved Trajectory Planning for On-Road Self-Driving Vehicles Via Combined Graph Search, Optimization & Topology AnalysisGu, Tianyu 01 February 2017 (has links)
Trajectory planning is an important component of autonomous driving. It takes the result of route-level navigation plan and generates the motion-level commands that steer an autonomous passenger vehicle (APV). Prior work on solving this problem uses either a sampling-based or optimization-based trajectory planner, accompanied by some high-level rule generation components.
|
10 |
Search-based software testing and complex test data generation in a dynamic programming languageMairhofer, Stefan January 2008 (has links)
Manually creating test cases is time consuming and error prone. Search-based software testing (SBST) can help automate this process and thus to reduce time and effort and increase quality by automatically generating relevant test cases. Previous research have mainly focused on static programming languages with simple test data inputs such as numbers. In this work we present an approach for search-based software testing for dynamic programming languages that can generate test scenarios and both simple and more complex test data. This approach is implemented as a tool in and for the dynamic programming language Ruby. It uses an evolutionary algorithm to search for tests that gives structural code coverage. We have evaluated the system in an experiment on a number of code examples that differ in complexity and the type of input data they require. We compare our system with the results obtained by a random test case generator. The experiment shows, that the presented approach can compete with random testing and, for many situations, quicker finds tests and data that gives a higher structural code coverage.
|
Page generated in 0.0542 seconds