arrow
返回

Measuring and improving software testability at the design level

delete2024-10-01
delete0
PRE
AI
M
Morteza Zakeri‐Nasrabadi
S
Saeed Parsa *
S
Sadegh Jafari
DOI:10.1016/j.infsof.2024.107511delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
Context: The quality of software systems is significantly influenced by design testability, an aspect often overlooked during the initial phases of software development. The implementation may deviate from its design, resulting in decreased testability at the integration and unit levels. Objective: The objective of this study is to automatically identify low-testable parts in object-orientated design and enhance them by refactoring to design patterns. The impact of various design metrics mainly coupling (e.g., fan-in and fan-out) and inheritance (e.g., depth of inheritance tree and number of subclasses) metrics on design testability is measured to select the most appropriate refactoring candidates. Method: The methodology involves creating a machine learning model for design testability prediction using a large dataset of Java classes, followed by developing an automated refactoring tool. The design classes are vectorized by ten design metrics and labeled with testability scores calculated from a mathematical model. The model computes testability based on code coverage and test suite size of classes that have already been tested via automatic tools. A voting regressor model is trained to predict the design testability of any class diagram based on these design metrics. The proposed refactoring tool for dependency injection and factory method is applied to various open-source Java projects, and its impact on design testability is assessed. Results: The proposed design testability model demonstrates its effectiveness by satisfactorily predicting design testability, as indicated by a mean squared error of 0.04 and an R2 score of 0.53. The automated refactoring tool has been successfully evaluated on six open-source Java projects, revealing an enhancement in design testability by up to 19.11 %. Conclusion: The proposed automated approach offers software developers the means to continuously evaluate and enhance design testability throughout the entire software development life cycle, mitigating the risk of testability issues stemming from design-to-implementation discrepancies.
Keyword:
Software testability
Design for testability
Object-oriented design
Class diagram
Automated refactoring
Design patterns

期刊

Information and Software Technology 封面图
Information and Software Technology
IF:
4.3
论文数:
3.8K
被引数:
7.7K

机构

暂无机构信息
引用论文

引用论文

err分享
err收藏
Microbial Biosurfactants An Eco-friendly Approach for Bioremediation of Contaminated Environments微生物生物表面活性剂——一种用于污染环境生物修复的环保方法
err2022-03-22
err0
PREAI
errShah Ishfaq; Basharat Hamid; Muzafar Zaman; Sabah Fatima; Shabeena Farooq; Rahul Datta; Subhan Danish; Noshin Ilyas; Z R Sayyed
err分享
err收藏
A comparison of conventional versus Islamic banking customers attitudes and judgment
err2021-08-19
err0
PREAI
errLaila Refiana Said; Kanwal Bilal; Shahab Aziz; Ambreen Gul; Malik Shahzad Shabbir; Aysha Zamir; Hummera Abro
err分享
err收藏
Effects of retinoic acid on chick tail bud development
err2005-06-01
err0
PREAI
errC. May Griffith; Michael J. Wiley
err分享
err收藏
Source code metrics: A systematic mapping study源代码度量: 系统映射研究
err2017-06-01
err99
PREAI
errNunez-Varela, Alberto S.; Perez-Gonzalez, Hector G.; Martinez-Perez, Francisco E.; Soubervielle-Montalvo, Carlos
err分享
err收藏
err分享
err收藏
学者 查看更多内容