Advanced

Regression Test Selection för snabb återkoppling när utveckling görs för Androidplatformen

Mahmoud Muthanna, Ali and Hellgren Winblad, Ludwig (2018)
Computer Science and Engineering (BSc)
Abstract
The work for this thesis was conducted at a department of Sony Mobile Communications, with the purpose of incorporating regression testing into the daily workflow of developers. Today regression testing is conducted by executing a test suite of approximately 58 000 tests to verify modifications done to code. Because of the long runtime, execution occurred during the night after modifications were done throughout the day. The problem was that developers had to wait until the next day to receive feedback on their changes. To be able to evaluate a possible solution, Empiricist was developed with the ability to recommend a smaller subset of the test suite given specific source code modifications. Empiricist is based on a regression test... (More)
The work for this thesis was conducted at a department of Sony Mobile Communications, with the purpose of incorporating regression testing into the daily workflow of developers. Today regression testing is conducted by executing a test suite of approximately 58 000 tests to verify modifications done to code. Because of the long runtime, execution occurred during the night after modifications were done throughout the day. The problem was that developers had to wait until the next day to receive feedback on their changes. To be able to evaluate a possible solution, Empiricist was developed with the ability to recommend a smaller subset of the test suite given specific source code modifications. Empiricist is based on a regression test selection approach: the history-based approach, where the basic outline is that historical data from previous test runs is used to construct a database of links between tests and source entities. Empiricist can then, given one or several source code modifications, query the database to recommend several tests to be run for verification. The history-based approach that was used was extended to support multiple granularities when linking tests to modifications: • very fine-grained where tests are linked to files • fine-grained where tests are linked to directories • coarse-grained where tests are linked to projects Additionally, three approaches to recommending tests are supported: 1) Connection-Based Recommendation (CBR) where tests are recommended if a link exist between them and the modification; 2) Normalized Connection-Based Recommendation (NCBR), with the same functionality as CBR but weights on links are normalized and subsequently subject to a cutoff criterion within the interval [0,1] in order to further reduce the subset; 3) Recommend All Flipped (RAF) where all the previously flipped tests are recommended. The evaluation of the results of Empiricist show that it is possible to verify modification with relatively high certainty while only a small portion of the tests in the test suite is chosen for execution. Faster feedback is therefore achieved. For example, using CBR with coarse granularity the test suite was reduced by up to 99% while a large portion of all the tests that would have failed were recommended. (Less)
Please use this url to cite or link to this publication:
author
Mahmoud Muthanna, Ali and Hellgren Winblad, Ludwig
organization
year
type
M2 - Bachelor Degree
subject
keywords
regression test selection (rts), android, regression testing
language
English
id
8949264
alternative location
https://portal.ch.lu.se/Campus.NET/Services/Publication/Export.aspx?id=3153&type=doc
date added to LUP
2018-06-14 03:45:27
date last changed
2018-06-14 03:45:27
@misc{8949264,
  abstract     = {The work for this thesis was conducted at a department of Sony Mobile Communications, with the purpose of incorporating regression testing into the daily workflow of developers. Today regression testing is conducted by executing a test suite of approximately 58 000 tests to verify modifications done to code. Because of the long runtime, execution occurred during the night after modifications were done throughout the day. The problem was that developers had to wait until the next day to receive feedback on their changes. To be able to evaluate a possible solution, Empiricist was developed with the ability to recommend a smaller subset of the test suite given specific source code modifications. Empiricist is based on a regression test selection approach: the history-based approach, where the basic outline is that historical data from previous test runs is used to construct a database of links between tests and source entities. Empiricist can then, given one or several source code modifications, query the database to recommend several tests to be run for verification. The history-based approach that was used was extended to support multiple granularities when linking tests to modifications: • very fine-grained where tests are linked to files • fine-grained where tests are linked to directories • coarse-grained where tests are linked to projects Additionally, three approaches to recommending tests are supported: 1) Connection-Based Recommendation (CBR) where tests are recommended if a link exist between them and the modification; 2) Normalized Connection-Based Recommendation (NCBR), with the same functionality as CBR but weights on links are normalized and subsequently subject to a cutoff criterion within the interval [0,1] in order to further reduce the subset; 3) Recommend All Flipped (RAF) where all the previously flipped tests are recommended. The evaluation of the results of Empiricist show that it is possible to verify modification with relatively high certainty while only a small portion of the tests in the test suite is chosen for execution. Faster feedback is therefore achieved. For example, using CBR with coarse granularity the test suite was reduced by up to 99% while a large portion of all the tests that would have failed were recommended.},
  author       = {Mahmoud Muthanna, Ali and Hellgren Winblad, Ludwig},
  keyword      = {regression test selection (rts),android,regression testing},
  language     = {eng},
  note         = {Student Paper},
  title        = {Regression Test Selection för snabb återkoppling när utveckling görs för Androidplatformen},
  year         = {2018},
}