Automated black-box boundary value detection

被引:0
作者
Dobslaw F. [1 ]
Feldt R. [2 ]
de Oliveira Neto F.G. [3 ]
机构
[1] Department of Communication, Quality Management and Information Systems, Mid Sweden University, Jämtland, Östersund
[2] Department of Computer Science and Engineering, Chalmers University of Technology, Västra Götaland, Gothenburg
[3] Department of Computer Science and Engineering, University of Gothenburg, Västra Götaland, Gothenburg
关键词
Boundary value analysis; Boundary value detection; Boundary value exploration; Program derivative; Software testing;
D O I
10.7717/PEERJ-CS.1625
中图分类号
学科分类号
摘要
Software systems typically have an input domain that can be subdivided into subdomains, each of which generates similar or related outputs. Testing it on the boundaries between these sub-domains is critical to ensure high-quality software. Therefore, boundary value analysis and testing have been a fundamental part of the software testing toolbox for a long time and are typically taught early to software engineering students. Despite its many argued benefits, boundary value analysis for a given software specification or application is typically described in abstract terms. This allows for variation in how testers apply it and in the benefits they see. Additionally, its adoption has been limited since it requires a specification or model to be analysed. We propose an automated black-box boundary value detection method to support software testers in performing systematic boundary value analysis. This dynamic method can be utilized even without a specification or model. The proposed method is based on a metric referred to as the program derivative, which quantifies the level of boundariness of test inputs. By combining this metric with search algorithms, we can identify and rank pairs of inputs as good boundary candidates, i.e., inputs that are in close proximity to each other but with outputs that are far apart. We have implemented the AutoBVA approach and evaluated it on a curated dataset of example programs. Furthermore, we have applied the approach broadly to a sample of 613 functions from the base library of the Julia programming language. The approach could identify boundary candidates that highlight diverse boundary behaviours in over 70% of investigated systems under test. The results demonstrate that even a simple variant of the program derivative, combined with broad sampling and search over the input space, can identify interesting boundary candidates for a significant portion of the functions under investigation. In conclusion, we also discuss the future extension of the approach to encompass more complex systems under test cases and datatypes. © 2023 Dobslaw et al.
引用
收藏
相关论文
共 42 条
[1]  
Afzal W, Torkar R, Feldt R., A systematic review of search-based testing for nonfunctional system properties, Information and Software Technology, 51, 6, pp. 957-976, (2009)
[2]  
Arcuri A, Iqbal MZ, Briand L., Random testing: theoretical results and practical implications, IEEE Transactions on Software Engineering, 38, 2, pp. 258-277, (2011)
[3]  
Baltes S, Diehl S., Usage and attribution of stack overflow code snippets in GitHub projects, Empirical Software Engineering, 24, 3, pp. 1259-1295, (2019)
[4]  
Bastani O, Sharma R, Aiken A, Liang P., Synthesizing program input grammars, ACM SIGPLAN Notices, 52, 6, pp. 95-110, (2017)
[5]  
Borazjany MN, Ghandehari LS, Lei Y, Kacker R, Kuhn R., An input space modeling methodology for combinatorial testing, 2013 IEEE sixth international conference on software testing, verification and validation workshops, pp. 372-381, (2013)
[6]  
BS 7925-2: standard for software component testing (Working draft), pp. 1-67, (2001)
[7]  
Clarke LA, Hassell J, Richardson DJ., A close look at domain testing, IEEE Transactions on Software Engineering, SE-8, 4, pp. 380-390, (1982)
[8]  
Dobslaw F, de Oliveira Neto FG, Feldt R., Boundary value exploration for software analysis, (2020)
[9]  
Eberlein M, Noller Y, Vogel T, Grunske L., Evolutionary grammar-based fuzzing, Search-based software engineering: 12th international symposium, SSBSE 2020, pp. 105-120, (2020)
[10]  
Feldt R., Generating multiple diverse software versions with genetic programming, Proceedings. 24th EUROMICRO Conference (Cat. No. 98EX204), 1, pp. 387-394, (1998)