{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,20]],"date-time":"2025-12-20T22:28:28Z","timestamp":1766269708575,"version":"3.41.2"},"reference-count":42,"publisher":"Emerald","issue":"1","license":[{"start":{"date-parts":[[2020,11,12]],"date-time":"2020-11-12T00:00:00Z","timestamp":1605139200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.emerald.com\/insight\/site-policies"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["DTA"],"published-print":{"date-parts":[[2020,11,12]]},"abstract":"<jats:sec><jats:title content-type=\"abstract-subheading\">Purpose<\/jats:title><jats:p>The purpose of this study is to reduce the number of mutations and, consequently, reduce the cost of mutation test. The results of related studies indicate that about 40% of injected faults (mutants) in the source code are effect-less (equivalent). Equivalent mutants are one of the major costs of mutation testing and the identification of equivalent and effect-less mutants has been known as an undecidable problem.<\/jats:p><\/jats:sec><jats:sec><jats:title content-type=\"abstract-subheading\">Design\/methodology\/approach<\/jats:title><jats:p>In a program with <jats:italic>n<\/jats:italic> branch instructions (if instruction) there are 2<jats:italic>n<\/jats:italic> execution paths (test paths) that the data and codes into each of these paths can be considered as a target of mutation. Given the role and impact of data in a program, some of data and codes propagates the injected mutants more likely to the output of the program. In this study, firstly the error-propagation rate of the program data is quantified using static analysis of the program control-flow graph. Then, the most error-propagating test paths are identified by the proposed heuristic algorithm (Genetic Algorithm [GA]). Data and codes with higher error-propagation rate are only considered as the strategic locations for the mutation testing.<\/jats:p><\/jats:sec><jats:sec><jats:title content-type=\"abstract-subheading\">Findings<\/jats:title><jats:p>In order to evaluate the proposed method, an extensive series of mutation testing experiments have been conducted on a set of traditional benchmark programs using MuJava tool set. The results depict that the proposed method reduces the number of mutants about 24%. Also, in the corresponding experiments, the mutation score is increased about 5.6%. The success rate of the GA in finding the most error-propagating paths of the input programs is 99%. On average, only 7.46% of generated mutants by the proposed method are equivalent. Indeed, 92.54% of generated mutants are non-equivalent.<\/jats:p><\/jats:sec><jats:sec><jats:title content-type=\"abstract-subheading\">Originality\/value<\/jats:title><jats:p>The main contribution of this study is as follows: Proposing a set of equations to measure the error-propagation rate of each data, basic-block and execution path of a program. Proposing a genetic algorithm to identify a most error-propagating path of program as locations of mutations. Developing an efficient mutation-testing framework that mutates only the strategic locations of a program identified by the proposed genetic algorithms. Reducing the time and cost of mutation testing by reducing the equivalent mutants.<\/jats:p><\/jats:sec>","DOI":"10.1108\/dta-03-2020-0073","type":"journal-article","created":{"date-parts":[[2020,11,11]],"date-time":"2020-11-11T01:36:48Z","timestamp":1605058608000},"page":"118-148","source":"Crossref","is-referenced-by-count":17,"title":["An error-propagation aware method to reduce the software mutation cost using genetic algorithm"],"prefix":"10.1108","volume":"55","author":[{"given":"Seyed","family":"Mohammad Javad Hosseini","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5202-6315","authenticated-orcid":false,"given":"Bahman","family":"Arasteh","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ayaz","family":"Isazadeh","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Mehran","family":"Mohsenzadeh","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Mitra","family":"Mirzarezaee","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"140","reference":[{"edition":"1st ed.","volume-title":"Introduction to Software Testing","year":"2018","key":"key2021011307020249800_ref001"},{"issue":"19","key":"key2021011307020249800_ref002","first-page":"971","article-title":"Programming guidelines for improving software resiliency against soft-errors without performance overhead","volume":"100","year":"2018","journal-title":"Springer Journal of Computing"},{"issue":"3","key":"key2021011307020249800_ref003","first-page":"193","article-title":"Developing inherently resilient software against soft-errors based on algorithm level inherent features","volume":"30","year":"2014","journal-title":"Journal of Electronic Testing"},{"volume-title":"Heuristics for Determining Equivalence of Program Mutations","year":"1979","key":"key2021011307020249800_ref004"},{"issue":"2","key":"key2021011307020249800_ref005","doi-asserted-by":"crossref","first-page":"8","DOI":"10.1145\/1217295.1217297","article-title":"An empirical study of static program slice size","volume":"16","year":"2007","journal-title":"ACM Transaction on Software Engineering and Methodology"},{"first-page":"327","volume-title":"Comparison of Data Mining Techniques in the Cloud for Software Engineering, Software Engineering in the Era of Cloud Computing","year":"1999","key":"key2021011307020249800_ref006"},{"issue":"4","key":"key2021011307020249800_ref007","doi-asserted-by":"crossref","first-page":"205","DOI":"10.1002\/(SICI)1099-1689(199912)9:4<205::AID-STVR186>3.0.CO;2-X","article-title":"Effciency of mutation operators and selective mutation strategies: an empirical study","volume":"9","year":"1999","journal-title":"Software Testing, Verification and Reliability"},{"issue":"1","key":"key2021011307020249800_ref008","first-page":"31","article-title":"Two notions of correctness and their relation to testing","volume":"19","year":"1982","journal-title":"Acta Informatica"},{"first-page":"129","article-title":"Mutation analysis: ideas, examples, problems and prospects","year":"1981","key":"key2021011307020249800_ref009"},{"year":"(2008)","key":"key2021011307020249800_ref010","article-title":"A characterization of instruction level error derating and its implications for error detection"},{"volume-title":"Genetic Algorithms in Search, Optimization, and Machine Learning","year":"1989","key":"key2021011307020249800_ref011"},{"issue":"9","key":"key2021011307020249800_ref012","doi-asserted-by":"crossref","first-page":"900","DOI":"10.1109\/32.92910","article-title":"Constraint-based automatic test data generation","volume":"17","year":"1991","journal-title":"IEEE Transactions on Software Engineering"},{"issue":"2","key":"key2021011307020249800_ref013","doi-asserted-by":"crossref","first-page":"109","DOI":"10.1145\/151257.151258","article-title":"Experimental results from an automatic test case generator","volume":"2","year":"1993","journal-title":"ACM Transactions on Software Engineering and Methodology"},{"first-page":"80","article-title":"Empirical evaluation of the statement deletion mutation operator","year":"2013","key":"key2021011307020249800_ref014"},{"key":"key2021011307020249800_ref015","unstructured":"gmu (2015), available at: https:\/\/cs.gmu.edu\/\u223coffutt\/mujava."},{"first-page":"192","article-title":"The impact of equivalent mutants","year":"2009","key":"key2021011307020249800_ref016"},{"issue":"4","key":"key2021011307020249800_ref017","first-page":"279","article-title":"Testing programs with the aid of a compiler","volume":"3","year":"1977","journal-title":"IEEE Transactions on Software Engineering"},{"issue":"4","key":"key2021011307020249800_ref018","doi-asserted-by":"crossref","first-page":"233","DOI":"10.1002\/(SICI)1099-1689(199912)9:4<233::AID-STVR191>3.0.CO;2-3","article-title":"Using program slicing to assist in the detection of equivalent mutants","volume":"9","year":"1999","journal-title":"Software Testing, Verification and Reliability"},{"volume-title":"Weak Mutation Is Probably Strong Mutation","year":"1993","key":"key2021011307020249800_ref019"},{"issue":"4","key":"key2021011307020249800_ref020","first-page":"371","article-title":"Weak mutation testing and completeness of test sets","volume":"8","year":"1982","journal-title":"IEEE Transactions on Software Engineering"},{"key":"key2021011307020249800_ref021","unstructured":"Hussain, S. (2008), \u201cMutation clustering\u201d, Master's thesis, King's College London."},{"first-page":"55","article-title":"Parallel firm mutation of Java programs","year":"2001","key":"key2021011307020249800_ref022"},{"year":"2009","key":"key2021011307020249800_ref023","article-title":"A novel method of mutation clustering based on domain analysis"},{"issue":"10","key":"key2021011307020249800_ref024","doi-asserted-by":"crossref","first-page":"1379","DOI":"10.1016\/j.infsof.2009.04.016","article-title":"Higher order mutation testing","volume":"51","year":"2009","journal-title":"Information and Software Technology"},{"issue":"7","key":"key2021011307020249800_ref025","first-page":"685","article-title":"A fortran language system for mutation-based software testing","volume":"21","year":"1991","journal-title":"Software: Practice and Experience"},{"year":"2016","key":"key2021011307020249800_ref026","article-title":"Effective methods to tackle the equivalent mutant problem when testing software with mutation"},{"key":"key2021011307020249800_ref027","unstructured":"Marketplace (2006), available at https:\/\/marketplace.eclipse.org\/content\/kaveri-java-program-slicing-plugin."},{"issue":"1","key":"key2021011307020249800_ref028","doi-asserted-by":"crossref","first-page":"9","DOI":"10.1002\/stvr.4370040104","article-title":"An empirical comparison of data flow and mutation-based test adequacy criteria","volume":"4","year":"1994","journal-title":"Software Testing, Verification and Reliability"},{"volume-title":"The Art of Software Testing","year":"1979","key":"key2021011307020249800_ref029"},{"first-page":"200","article-title":"How strong is weak mutation","year":"1991","key":"key2021011307020249800_ref030"},{"issue":"5","key":"key2021011307020249800_ref031","doi-asserted-by":"crossref","first-page":"337","DOI":"10.1109\/32.286422","article-title":"An empirical evaluation of weak mutation","volume":"20","year":"1994","journal-title":"IEEE Transactions on Software Engineering"},{"first-page":"100","article-title":"An experimental evaluation of selective mutation","year":"1993","key":"key2021011307020249800_ref032"},{"issue":"2","key":"key2021011307020249800_ref033","doi-asserted-by":"crossref","first-page":"99","DOI":"10.1145\/227607.227610","article-title":"An experimental determination of sufficient mutant operators","volume":"5","year":"1996","journal-title":"ACM Transactions on Software Engineering and Methodology"},{"first-page":"45","article-title":"Mutation 2000: uniting the orthogonal","year":"2001","key":"key2021011307020249800_ref034"},{"first-page":"90","article-title":"An empirical evaluation of the first- and second-order mutation testing strategies","year":"2010","key":"key2021011307020249800_ref035"},{"issue":"4","key":"key2021011307020249800_ref036","doi-asserted-by":"crossref","first-page":"691","DOI":"10.1007\/s11219-011-9142-y","article-title":"Automatically performing weak mutation with the aid of symbolic execution, concolic testing and search-based testing","volume":"19","year":"2011","journal-title":"Software Quality Journal"},{"issue":"2","key":"key2021011307020249800_ref037","first-page":"111","article-title":"Decreasing the cost of mutation testing with second-order mutants","volume":"19","year":"2008","journal-title":"Software Testing, Verification and Reliability"},{"edition":"3rd ed.","volume-title":"Software Engineering: A Practitioner's Approach","year":"1992","key":"key2021011307020249800_ref038"},{"volume-title":"Exploiting Large Ineffectual Instruction Sequences","year":"1999","key":"key2021011307020249800_ref039"},{"year":"2003","key":"key2021011307020249800_ref040","article-title":"Y-branches: when you come to a fork in the road, take it"},{"year":"1988","key":"key2021011307020249800_ref041","article-title":"From weak to strong, dead or alive? an analysis of some mutation testing issues"},{"key":"key2021011307020249800_ref042","doi-asserted-by":"crossref","first-page":"18","DOI":"10.1016\/j.jss.2016.01.007","article-title":"Mutation testing cost reduction by clustering overlapped mutants","volume":"115","year":"2016","journal-title":"Journal of Systems and Software"}],"container-title":["Data Technologies and Applications"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.emerald.com\/insight\/content\/doi\/10.1108\/DTA-03-2020-0073\/full\/xml","content-type":"application\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/www.emerald.com\/insight\/content\/doi\/10.1108\/DTA-03-2020-0073\/full\/html","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,7,24]],"date-time":"2025-07-24T23:15:02Z","timestamp":1753398902000},"score":1,"resource":{"primary":{"URL":"http:\/\/www.emerald.com\/dta\/article\/55\/1\/118-148\/44621"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,11,12]]},"references-count":42,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2020,11,12]]}},"alternative-id":["10.1108\/DTA-03-2020-0073"],"URL":"https:\/\/doi.org\/10.1108\/dta-03-2020-0073","relation":{},"ISSN":["2514-9288"],"issn-type":[{"type":"print","value":"2514-9288"}],"subject":[],"published":{"date-parts":[[2020,11,12]]}}}