利用產(chǎn)品-測(cè)試代碼共同演化預(yù)測(cè)測(cè)試用例更新?tīng)顟B(tài)
發(fā)布時(shí)間:2025-06-28 02:51
軟件項(xiàng)目中的代碼普遍存在缺陷,這些缺陷可能會(huì)造成巨大的經(jīng)濟(jì)損失,甚至危及人類生命。軟件開(kāi)發(fā)人員一般通過(guò)編寫測(cè)試用例,即單元測(cè)試,的方式來(lái)確保產(chǎn)品程序按預(yù)期的需求運(yùn)行。盡管一般來(lái)說(shuō),測(cè)試代碼被認(rèn)為是沒(méi)有缺陷的,但實(shí)際上并非如此。例如,當(dāng)產(chǎn)品代碼被更改時(shí),若測(cè)試開(kāi)發(fā)者未能及時(shí)更新測(cè)試代碼,就會(huì)引發(fā)錯(cuò)誤。在這種情況下,我們稱這些測(cè)試代碼是。直觀地講,測(cè)試代碼和被測(cè)試的產(chǎn)品代碼應(yīng)該共同演化(Co-Evolution),即兩者應(yīng)該同時(shí)被修改、更新,否則,舊的測(cè)試代碼可能會(huì)在新的產(chǎn)品代碼邏輯中運(yùn)行失敗,造成開(kāi)發(fā)人員的困擾和計(jì)算資源、時(shí)間等的浪費(fèi)。先前的研究[21]指出,共同演化是耗費(fèi)時(shí)間和資源的。也因此,在實(shí)際項(xiàng)目過(guò)程中,開(kāi)發(fā)者很難維護(hù)產(chǎn)品和測(cè)試代碼的共同演化。文獻(xiàn)[8]指出,與編寫產(chǎn)品代碼相比,開(kāi)發(fā)人員通常需要花費(fèi)更多的時(shí)間閱讀并理解測(cè)試用例的代碼,而他們往往傾向于高估自己在維護(hù)測(cè)試代碼時(shí)所花的時(shí)間?偟膩(lái)說(shuō),盡管維護(hù)測(cè)試用例是很重要的工作,但在實(shí)際軟件項(xiàng)目中經(jīng)常沒(méi)有得到重視,F(xiàn)有研究較少關(guān)注過(guò)時(shí)的測(cè)試用例的問(wèn)題。已有的關(guān)于“產(chǎn)品-測(cè)試共同演化”的研究工作主要關(guān)注的是產(chǎn)品代碼和測(cè)試代碼的關(guān)聯(lián)規(guī)則(...
【文章頁(yè)數(shù)】:67 頁(yè)
【學(xué)位級(jí)別】:碩士
【文章目錄】:
摘要
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
本文編號(hào):4054305
【文章頁(yè)數(shù)】:67 頁(yè)
【學(xué)位級(jí)別】:碩士
【文章目錄】:
摘要
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
本文編號(hào):4054305
本文鏈接:http://lk138.cn/kejilunwen/ruanjiangongchenglunwen/4054305.html
最近更新
教材專著