Exploring the use of call stack depth limits to reduce regression testing costs
Regression testing is performed after existing source code has been modified to verify that no new faults have been introduced by the changes. Test case selection can be used to reduce the effort of regression testing by selecting a smaller subset of the test suite for later execution. Several crit...
Main Authors: | , |
---|---|
Format: | Others |
Language: | English |
Published: |
Mittuniversitetet, Institutionen för data- och systemvetenskap
2021
|
Subjects: | |
Online Access: | http://urn.kb.se/resolve?urn=urn:nbn:se:miun:diva-43166 |
id |
ndltd-UPSALLA1-oai-DiVA.org-miun-43166 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-UPSALLA1-oai-DiVA.org-miun-431662021-09-28T05:23:38ZExploring the use of call stack depth limits to reduce regression testing costsengBogren, PatrikKristola, IsakMittuniversitetet, Institutionen för data- och systemvetenskap2021Regression TestingTest Case SelectionCode CoverageDynamic Program AnalysisExecution MatrixSoftware EngineeringProgramvaruteknik Regression testing is performed after existing source code has been modified to verify that no new faults have been introduced by the changes. Test case selection can be used to reduce the effort of regression testing by selecting a smaller subset of the test suite for later execution. Several criteria and objectives can be used as constraints that should be satisfied by the selection process. One common criteria is function coverage, which can be represented by a coverage matrix that maps test cases to methods under test. The process of generating and evaluating these matrices can be very time consuming for large matrices since their complexity increases exponentially with the number of tests included. To the best of our knowledge, no techniques for reducing execution matrix size have been proposed. This thesis develops a matrix-reduction technique based on analysis of call stack data. It studies the effects of limiting the call stack depth in terms of coverage accuracy, matrix size, and generation costs. Further, it uses a tool that can instrument Java projects using Java’s instrumentation API to collect coverage information on open-source Java projects for varying depth limits of the call stack. Our results show that the stack depth limit can be significantly reduced while retaining high coverage and that matrix size can be decreased by up to 50%. The metric we used to indicate the difficulty of splitting up the matrix closely resembled the curve for coverage. However, we did not see any significant differences in execution time for lower depth limits. Student thesisinfo:eu-repo/semantics/bachelorThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:miun:diva-43166application/pdfinfo:eu-repo/semantics/openAccess |
collection |
NDLTD |
language |
English |
format |
Others
|
sources |
NDLTD |
topic |
Regression Testing Test Case Selection Code Coverage Dynamic Program Analysis Execution Matrix Software Engineering Programvaruteknik |
spellingShingle |
Regression Testing Test Case Selection Code Coverage Dynamic Program Analysis Execution Matrix Software Engineering Programvaruteknik Bogren, Patrik Kristola, Isak Exploring the use of call stack depth limits to reduce regression testing costs |
description |
Regression testing is performed after existing source code has been modified to verify that no new faults have been introduced by the changes. Test case selection can be used to reduce the effort of regression testing by selecting a smaller subset of the test suite for later execution. Several criteria and objectives can be used as constraints that should be satisfied by the selection process. One common criteria is function coverage, which can be represented by a coverage matrix that maps test cases to methods under test. The process of generating and evaluating these matrices can be very time consuming for large matrices since their complexity increases exponentially with the number of tests included. To the best of our knowledge, no techniques for reducing execution matrix size have been proposed. This thesis develops a matrix-reduction technique based on analysis of call stack data. It studies the effects of limiting the call stack depth in terms of coverage accuracy, matrix size, and generation costs. Further, it uses a tool that can instrument Java projects using Java’s instrumentation API to collect coverage information on open-source Java projects for varying depth limits of the call stack. Our results show that the stack depth limit can be significantly reduced while retaining high coverage and that matrix size can be decreased by up to 50%. The metric we used to indicate the difficulty of splitting up the matrix closely resembled the curve for coverage. However, we did not see any significant differences in execution time for lower depth limits. |
author |
Bogren, Patrik Kristola, Isak |
author_facet |
Bogren, Patrik Kristola, Isak |
author_sort |
Bogren, Patrik |
title |
Exploring the use of call stack depth limits to reduce regression testing costs |
title_short |
Exploring the use of call stack depth limits to reduce regression testing costs |
title_full |
Exploring the use of call stack depth limits to reduce regression testing costs |
title_fullStr |
Exploring the use of call stack depth limits to reduce regression testing costs |
title_full_unstemmed |
Exploring the use of call stack depth limits to reduce regression testing costs |
title_sort |
exploring the use of call stack depth limits to reduce regression testing costs |
publisher |
Mittuniversitetet, Institutionen för data- och systemvetenskap |
publishDate |
2021 |
url |
http://urn.kb.se/resolve?urn=urn:nbn:se:miun:diva-43166 |
work_keys_str_mv |
AT bogrenpatrik exploringtheuseofcallstackdepthlimitstoreduceregressiontestingcosts AT kristolaisak exploringtheuseofcallstackdepthlimitstoreduceregressiontestingcosts |
_version_ |
1719485112727371776 |