Software testing: A survey and tutorial on white and black-box testing of C/C++ programs

Over the past couple of decades, we have been witnessing an ever increasing dependency of humans on computers and consequently software. Some of these software are governing the working of very safety-critical domains, like medicine and military. This transition has brought up software testing to ensure that the software behave as intended. With the growing complexity of software, software testing has also revolutionized in the past couple of decades. This paper surveys the recent trends in software testing and provides comprehensive tutorial about black and white-box testing. Moreover, an analysis of different commercial tools in this domain is also presented.

[1]  Xuejun Yang,et al.  Testing Static Analyzers with Randomly Generated Programs , 2012, NASA Formal Methods.

[2]  Boundary values and automated component testing , 1999 .

[3]  Jeffrey S. Foster,et al.  Understanding source code evolution using abstract syntax tree matching , 2005, MSR.

[4]  A. J. Offutt,et al.  Testing object-oriented software using the category-partition method , 1995 .

[5]  Michael R. Lyu,et al.  Achieving software quality with testing coverage measures , 1994, Computer.

[6]  Michael R. Lyu,et al.  Reliability and maintainability related software coupling metrics in C++ programs , 1992, [1992] Proceedings Third International Symposium on Software Reliability Engineering.

[7]  Priyanka Kulkarni,et al.  Generating and Analyzing Test cases from Software Requirements using NLP and Hadoop , 2014 .

[8]  LI Wei-li Design and Implementation of Testing Case of Black Box Based on Equivalence Partitioning , 2012 .

[9]  Patrick Cousot,et al.  A static analyzer for large safety-critical software , 2003, PLDI.

[10]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[11]  Daniel Hoffman,et al.  State generation and automated class testing , 2000 .

[12]  Patrice Godefroid,et al.  Automated Whitebox Fuzz Testing , 2008, NDSS.

[13]  Thomas J. Ostrand,et al.  White‐Box Testing , 2002 .

[14]  Bogdan Korel,et al.  Black-box test reduction using input-output analysis , 2000, ISSTA '00.

[15]  John C. Cherniavsky,et al.  Validation, Verification, and Testing of Computer Software , 1982, CSUR.

[16]  Bruno Legeard,et al.  A taxonomy of model‐based testing approaches , 2012, Softw. Test. Verification Reliab..

[17]  Doron Drusinsky,et al.  Verifying Distributed Protocols using MSC-Assertions, Run-time Monitoring, and Automatic Test Generation , 2007, 18th IEEE/IFIP International Workshop on Rapid System Prototyping (RSP '07).

[18]  W. Eric Wong,et al.  Coverage testing software architectural design in SDL , 2003, Comput. Networks.

[19]  James A. Whittaker,et al.  An API Testing Method , 2000 .

[20]  Yuanfang Cai,et al.  A value-oriented theory of modularity in design , 2005, ACM SIGSOFT Softw. Eng. Notes.

[21]  Andy Schürr,et al.  Model-based pairwise testing for feature interaction coverage in software product line engineering , 2011, Software Quality Journal.

[22]  Gregg Rothermel,et al.  Regression test selection for C++ software , 2000 .

[23]  Boris Beizer,et al.  Black Box Testing: Techniques for Functional Testing of Software and Systems , 1996, IEEE Software.

[24]  Kiumi Akingbehin Towards Destructive Software Testing , 2006, 5th IEEE/ACIS International Conference on Computer and Information Science and 1st IEEE/ACIS International Workshop on Component-Based Software Engineering,Software Architecture and Reuse (ICIS-COMSAR'06).

[25]  Andreas Zeller,et al.  Fuzzing with Code Fragments , 2012, USENIX Security Symposium.

[26]  Joseph Robert Horgan,et al.  Data flow coverage and the C language , 1991, TAV4.

[27]  Natalia Juristo Juzgado,et al.  Comparing the Effectiveness of Equivalence Partitioning, Branch Testing and Code Reading by Stepwise Abstraction Applied by Subjects , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[28]  Andreas S. Andreou,et al.  Automatic, evolutionary test data generation for dynamic software testing , 2008, J. Syst. Softw..

[29]  Xu Huayu Research on Code Analysis and Instrumentation in Software Test , 2007 .