利用產(chǎn)品-測試代碼共同演化預(yù)測測試用例更新狀態(tài)
發(fā)布時間:2025-06-28 02:51
軟件項目中的代碼普遍存在缺陷,這些缺陷可能會造成巨大的經(jīng)濟損失,甚至危及人類生命。軟件開發(fā)人員一般通過編寫測試用例,即單元測試,的方式來確保產(chǎn)品程序按預(yù)期的需求運行。盡管一般來說,測試代碼被認為是沒有缺陷的,但實際上并非如此。例如,當產(chǎn)品代碼被更改時,若測試開發(fā)者未能及時更新測試代碼,就會引發(fā)錯誤。在這種情況下,我們稱這些測試代碼是。直觀地講,測試代碼和被測試的產(chǎn)品代碼應(yīng)該共同演化(Co-Evolution),即兩者應(yīng)該同時被修改、更新,否則,舊的測試代碼可能會在新的產(chǎn)品代碼邏輯中運行失敗,造成開發(fā)人員的困擾和計算資源、時間等的浪費。先前的研究[21]指出,共同演化是耗費時間和資源的。也因此,在實際項目過程中,開發(fā)者很難維護產(chǎn)品和測試代碼的共同演化。文獻[8]指出,與編寫產(chǎn)品代碼相比,開發(fā)人員通常需要花費更多的時間閱讀并理解測試用例的代碼,而他們往往傾向于高估自己在維護測試代碼時所花的時間?偟膩碚f,盡管維護測試用例是很重要的工作,但在實際軟件項目中經(jīng)常沒有得到重視。現(xiàn)有研究較少關(guān)注過時的測試用例的問題。已有的關(guān)于“產(chǎn)品-測試共同演化”的研究工作主要關(guān)注的是產(chǎn)品代碼和測試代碼的關(guān)聯(lián)規(guī)則(...
【文章頁數(shù)】:67 頁
【學(xué)位級別】:碩士
【文章目錄】:
摘要
ABSTRACT
Chapter 1 Introduction
Chapter 2 Preliminaries
2.1 Java Ecosystem
2.1.1 Integrated Development Environment
2.1.2 Project Management
2.1.3 Apache Software Foundation
2.2 Software Testing
2.3 JUnit Framework
2.4 Abstract Syntax Tree
Chapter 3 Empirical Study
3.1 Motivating Examples
3.1.1 Challenges in Test Update Prediction
3.1.2 Application Scenario
3.2 Data Source
3.3 Production-Test Co-Evolution
3.3.1 Co-Evolution in Single Commit
3.3.2 Cross-Commits Co-Evolution
3.3.3 Reasons for Co-Evolution
Chapter 4 Workflow Design
4.1 Overview
4.2 Matcher
4.3 Feature Extractor
4.3.1 Code Difference
4.3.2 Syntax Trees Traversal
4.3.3 Feature Extraction
4.4 Classifier
Chapter 5 Experiments
5.1 Setup
5.2 Metrics
5.2.1 Multiclass Metrics
5.3 Binary Classification v.s. Multiclass Classification
5.4 Balanced v.s. Imbalanced Training Data
5.5 Comparison of Classifiers
5.6 Contribution of Features
Chapter 6 Related Work
6.1 Source-Test Co-Evolution
6.2 Empirical Studies
6.3 Software Defect Prediction
6.4 Regression Testing
6.5 Test Repair on Java
Conclusions
References
Acknowledgements
本文編號:4054305
【文章頁數(shù)】:67 頁
【學(xué)位級別】:碩士
【文章目錄】:
摘要
ABSTRACT
Chapter 1 Introduction
Chapter 2 Preliminaries
2.1 Java Ecosystem
2.1.1 Integrated Development Environment
2.1.2 Project Management
2.1.3 Apache Software Foundation
2.2 Software Testing
2.3 JUnit Framework
2.4 Abstract Syntax Tree
Chapter 3 Empirical Study
3.1 Motivating Examples
3.1.1 Challenges in Test Update Prediction
3.1.2 Application Scenario
3.2 Data Source
3.3 Production-Test Co-Evolution
3.3.1 Co-Evolution in Single Commit
3.3.2 Cross-Commits Co-Evolution
3.3.3 Reasons for Co-Evolution
Chapter 4 Workflow Design
4.1 Overview
4.2 Matcher
4.3 Feature Extractor
4.3.1 Code Difference
4.3.2 Syntax Trees Traversal
4.3.3 Feature Extraction
4.4 Classifier
Chapter 5 Experiments
5.1 Setup
5.2 Metrics
5.2.1 Multiclass Metrics
5.3 Binary Classification v.s. Multiclass Classification
5.4 Balanced v.s. Imbalanced Training Data
5.5 Comparison of Classifiers
5.6 Contribution of Features
Chapter 6 Related Work
6.1 Source-Test Co-Evolution
6.2 Empirical Studies
6.3 Software Defect Prediction
6.4 Regression Testing
6.5 Test Repair on Java
Conclusions
References
Acknowledgements
本文編號:4054305
本文鏈接:http://www.lk138.cn/kejilunwen/ruanjiangongchenglunwen/4054305.html
最近更新
教材專著