Regression Test Selection för snabb återkoppling när utveckling görs för Androidplatformen
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.
AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)