Publications

Detailed Information

Early Defects Detection using Test Cases Prioritization in Iterative Software Development Process : 반복적인 소프트웨어 개발 공정에서의 시험 사례 우선 순위화 기법을 이용한 조기 결함 탐지

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors

황재성

Advisor
조성준; 김성우
Issue Date
2023
Publisher
서울대학교 대학원
Keywords
Defect detectionTest case prioritizationRegression testingMachine Learning
Description
학위논문(석사) -- 서울대학교대학원 : 공학전문대학원 응용공학과, 2023. 2. 조성준
김성우.
Abstract
Large-scale continuous integration environments are increasingly applied to software development in modern industries. Although this environment guarantees high development productivity, it is greatly dependent on
the amount of simultaneous testing. Though this environment is suitable for performing a test cycle as quickly as possible and giving feedback to the developer, the overall software development process can become slow and inefficient as the number of test cases increase. To improve the execution efficiency of software testing, machine learning techniques based on test execution records accumulated through repeated execution were used to derive the test cases that are highly likely to fail in the next test execution In this study, Shift Left, a test method that advances execution through finding and preventing defects early in the software delivery process, was used to increase the efficiency of the software development. Specifically, test case prioritization method was applied to detect defects early and report back to the developers with quicker feedback on the failed test results. The success of the test case prioritization was confirmed by measuring the APFD value. In this study, experiments were executed using test cases that are currently used in the actual industry. As a result of the Test Case priority of machine learning introduced in this study measured to be 1.7 times more effective compared to the test performance, of traditional method that uses a heuristic method strategy.
현대의 산업 현장에서 소프트웨어를 개발하는 데에는 시간이 갈수록 큰 규모의 지속적 통합(Continuous Integration) 환경을 적용하고 있다. 이러한 환경은 높은 개발 생산성을 보장하는 것이지만, 동시에 테스트 수행하는 양에 크게 의존적이다. 가능한 한 빨리 시험 차수(Test Cycle)을 수행하여 개발자에게 결과를 피드백 해주기 위한 환경이지만, 점차적으로 시험사례(Test Case)가 많아지면, 전체 소프트웨어 개발공정은 느리고 비효율적이 된다. 소프트웨어 시험의 수행 효율성을 개선하기 위해서 본 연구에서는 반복 수행되어 축적된 시험 수행 기록을 기반으로 기계 학습(Machine Learning)기법을 이용하여 학습하여 다음 시험 수행에서 실패할 가능성이 높은 시험사례를 도출한다. 우선 수행할 수 있는 시험사례우선순위화(Test Case prioritization)[1]방법을 적용하여, 조기에 결함을 탐지하여 개발자들에게 개선해야 할 실패한 시험사례를 좀 더 빠른 피드백으로 제공, 즉 공정 수행을 앞당기는 효과(Shift-Left)를 통해 소프트웨어 개발공정의 효율성을 높히고자하였다. 시험사례우선순위화가 잘 적용되었는지는 실패한 시험사례의 가중 평균값(Average Percentages of Fail Detection, APFD) 값을 측정하여 확인하였다.현재 사용되는 산업 현장의 시험사례를 이용하여 실험을 진행하였다. 전통적으로 사용되었던 휴리스틱 기법의 시험사례우선순위 전략에 비해 본 연구에서 제시하는 시험수행결과기록을 학습한 기계학습의 시험사례우선순위를 APFD값으로 측정한 결과, 기존 기법에 비해 약 1.7배가 개선된 것을 확인하였다
Language
eng
URI
https://hdl.handle.net/10371/193476

https://dcollection.snu.ac.kr/common/orgView/000000176019
Files in This Item:
Appears in Collections:

Altmetrics

Item View & Download Count

  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Share