A Review on Software Testing and Its Methodology

Jannat Ahmad *  Abu Ul Hassan **  Tahreem Naqvi ***  Tayyaba Mubeen ****
*,***-**** BS, Department of Computer Science, Superior College, Lahore, Pakistan.
** Faculty Member, Department of Computer Science, Superior College, Lahore, Pakistan.

Abstract

Software Testing is very important and time intense portion of the software development life cycle as its persistence is to perceive failures in software, so that flaws may be improved and adjusted at the initial stage. Software Testing is a practice for approving that the product/software/program, that has been developed by programmers/coder, is an excellent or quality creation and to guarantee that the synthetic product is functioning and agreeing to the requirement, satisfying the consumer/client needs. There are many approaches to software testing. Testing is a procedure of training a program with precise intent of discovering errors before preceding its delivery to end user. Software Testing is the method of performing a program to locate an error. This paper defines generally used software testing techniques for identifying error and they are white box testing, black box testing and grey box testing. Software testing, in cooperation in terms of quality excellence and consistency, is very essential. In this article, authors describe the testing software and its objectives and testing altered software, debugging software. After a full explanation of software testing, test methods include Black Box and White Box and Gray Box delivered and the variances and advantages and disadvantages of the three methods calculated. And well methods have acknowledged three methods of software testing.

Keywords :

Introduction

Software play a very important role in our daily life. For example, there are some applications that we used in our daily life like alarm clock, emails, etc., so it is important to test the software. Software testing is the main activity of executing software with the point of view to find out the errors (Hooda & Chhillar, 2015). Software testing can be define as process of executing the program in order to find the errors (Babbar, 2017). Software is done either internally or outsourced to software service providers. It also verifies or validates the program is running without any error. Software testing is used to find out the problems and solutions (Rana, Rawat, & Bijalwan, 2017).

Software testing has several types like unit, integration, system and acceptance testing. These tests are performed one after the other following is strong process (Alsayed, Bilgrami, & Foster, 2017; Villalón, Agustin, Gilabert & Puello, 2016). The important point during the testing is that the testers should understand how to reduce large numbers of test and make a bold decision on the risk that will be necessary to be addressed (Jamil, Arif, Abubakar & Ahmad, 2016).

There is many test cases, for both small and larger programs. Testing could take a lot of time even months. How we choose a test selection, which test is to be performed, selecting a test case, to be done in random way or in a systematic way are some problems in software testing. To develop a software without error or bug, is the main objective of the software testing (Mahajan, 2016).

1. Literature Review

Software testing can be defined as set of process for executing a program in order to find the bugs or errors. Developers have been testing the software since World War II (Jamil, Arif, Abubakar & Ahmad, 2016). Software testing consumed a lot of time, so it is important to know that which testing methods are the best to test the software. 25%-50% of the budget that is spent on the software testing (Lee, Kang & Keum, 2018). The different testing methods are discussed in further sections.

2. Software Testing Method

There are three major types of software testing method.

1. White box testing

2. Black box testing

3. Grey box testing

2.1 Black Box Testing

Black Box Testing or behavioral testing or functional testing is a type of testing or technique in which the tester donot know the internal design or its implementation is tested (Jampani, Talasu, & Manjula, 2016); without knowing the internal components of the program or system the test is done (Notes & Bieman, 2016).

Various types of black box testing strategy are as follows:-

These are used to find out the errors great number of (Pahwa & Miglani, 2015).

Figure 1. Techniques used for Black Box Testing (Software Testing, 2015)

2.1.1 Equivalence Class Testing

By maintaining the coverage of the test, it lessen the numbers of the possible test cases and reduces the time to test.

2.1.2 Boundary Value Testing

This method is used to define that the system will accept the assertive range of values.

2.1.3 Decision Table Testing

In this strategy, by using or drawing matrix, all the sources or causes and their effects are tabulated, their called as casus and effect tables.

2.1.3.1 Cause-Effect Graph Technique

In this testing, external behavior is considered. This test is used by drawing a graph between the causes and their effect, it creates the relationship (Bhasin & Kumar, 2015).

2.1.4 Black Box Testing Types

The two major types of black box testing are:

2.1.4.1 Advantages

2.1.4.2 Disadvantages

2.2 White Box Testing

White Box Testing technique is also called Code Based, Structural, Open Box, Clear Box, Transparent Box, and Glass Box Testing. A full evolution of internal structure of the system is done by the white box testing (Jan, Shah, Johar, Shah, & Khan, 2016; Meenu & Navita, 2015). White box testing has focused on internal structure and on the flow or movement of inputs and outputs via the application (Meenu & Navita, 2015; Shikha, 2015). So, white box testing is extremely capable in resolving and detecting issues and problems before they occur. Therefore, white box testing can ind bugs and resolves them (Kaur, 2018). Hence, white box testing method is used to test the software, cod and internal structure (Thakur & Sanjay, 2017).

For using white box testing technique, the tester needs knowledge and information of source code (Jan et al., 2016). Disregarding of the working and behavior of the software, instruction level of software is tested. Each instruction of software is tested and analyzed for bugs. Various types of this tests, are pointer test, code coverage, logical and arithmetic operations test, API testing, memory leakage test, etc. (Nouman, Pervez, Hasan, & Saghar, 2016).

2.2.1 Techniques Used for White Box Testing

2.2.1.1 Static White Box Testing

The Static testing is done without the execution of code. This form typically find errors and remove errors in documents like test cases, design, etc. Testing involves in static white box testing are as followings:

On code, desk checking is the necessary testing. Before launching of program, programmers can use desk checking to verify algorithm logic and coding.

In code walkthrough, the specialized programmer or designer of development team reviews the software product and code.

Formal inspections are encapsulated in product developing process and are done at the beginning of development of each product.

2.2.1.2 Structural White Box Testing

It is a form of white box testing that done by testing the code and structure of system. Structural testing can be done on various levels of white box testing.

It uses the control flow of program like model. code, design, and full structure of software have to be observed in control flow testing.

It is the oldest technique of structural testing and done on the control structure of software. The tester should have the knowledge of implementing the code to make test cases (Madhavi, 2016).

Data flow testing is worked on selecting path strategy through the control flow of program in order to analyze events. It involves that how the system is utilized.

Loop testing technique to validity of loops within the perform.

2.3 Grey Box Testing

Grey Box Testing is a blend of both black box testing and white box testing. It is a way to test a program internal working with little knowledge program structure (Ghasemiyan, Babaeian, & Nourmandi-Pour, 2015). As in black box testing, it has no concern of internal programing or structure and in white box testing the tester needs complete knowledge on the programming of software. But in grey box testing the tester has the knowledge to some extend about the internal working of a program as it enables the access to real data structure and algorithm for test case design (Ghasemiyan et al., 2015). In this testing, as the tester has knowledge about internal code, they it for designing the tests cases. Moreover, it is not compulsory that the tester has full access to the source code (Yadav & Kumari, 2015).

Both structural and functional information is used for driving a set of test cases as grey box testing has benefits of both structure and functional approaches Grey Box Testing includes the understanding of the internal structure and structural documentation of the program that allows the access to data, so that it can be used to develop a good algorithm for designing better test cases (Ghasemiyan et al., 2015). Test cases for grey box may contain GUI association, security association, database association, browser association, operational system association, etc. The models of grey box testing are used even in the social housing and building thermal performence, etc. apart from testing software (Terés-Zubiaga, Escudero, García- Gafaro, & Sala, 2015).

Grey Box Testing is a process in which context particular errors are predicted that are associated with web systems; it rises the testing coverage by considering all layers of complicated systems. Grey Box Testing gives the complete assessment from the perceptive of development and malevolent hacker and it covers a wide variety of liabilities and possible risks (Ghasemiyan et al., 2015).

2.3.1 Example of Grey Box Testing

While during testing a website characteristics like a link, if the tester detects any problem in this link they can directly manipulate the code of HTML and can do check it real time.

Basically, the strategy of grey box testing is that it is not compulsory for testing a program that the tester should have full knowledge or control to source code. The designing of the test is depended on awareness about procedure, architecture, internal conditions or program behavior. Grey Box Testing is used mostly in the web based applications.

3. Techniques Used for Grey Box Testing

3.1 Regression Testing

It is a testing that checks and ensure that modulation or manipulation in the previous version has lapsed or retreated with other features of the program in new version. This testing allows a tester to check for new bugs that might arise by the chang in the previous version. It is very costly, but is compulsory as it confirms the modulation, which means the changes that are done in the previous version, are correct and do not affect other parts of the system. This testing ensure this that functional requirements are fulfilled in new version and program will work properly and accurately. It is performed on wide areas of the program. It also ensures that new changes will not generate any new error or bug. Regression testing is done by rerunning programs, retest all, use cases of a program, and retest the firewall of the program.

Table 1. Comparison of Existing Literatures

3.2 Orthogonal Array Testing

This testing gives more coverage of code by using less number of test cases. This technique is enhanced for integration testing of software modules. It is also useful where testing is configurable, like a webpage that allows the user to select the background color, font style, font color etc., of the urser’s choice. Array size depends on the number of values and parameters that are used in experiment. Columns represent the number of values to be given in experiment and rows represent the number of test configuration.

3.3 Matrix Testing

This tests all values, variables in the whole program defined by the developer they which may include kind of severe risks; mostly relating to the business and technical risks linked with these values. Every variable defined in the program, can have the basic risk. These risks can be examined through matrix testing.

3.4 Pattern Testing

This test is used to predict the defects carried from the previous version. It also describes the reason why this defect occurs in it. This helps in designing better test cases in future. Generally, Gray Box approach is used in tool based computerized software testing.

3.4.1 Advantages of Grey Box Testing

3.4.2 Disadvantages of Grey Box Testing

Conclusion

Software testing is an approach to benefit engineers to create high quality systems, and the methods, has now progressed from small group of programmers to a systematized discipline in software engineering. Though, the growth of testing systems has been productive, its not satisfactory. Burden to generate high quality software at lesser price is growing, but present techniques are not enough for this resolution. To bring out software testing in a further operational manner, this paper labels and compare main software. Nowadays, testing is the greatest challenge and building momentum in industry. Consequently, enhancement in the efficiency, with respect to both time and cost, is regarded as a main aspect by many scholars. The persistence of testing can guarantee quality, confirmation, and authentication or consistent valuation. There are numerous methods to test software. In this article three ways had been discussed. In Black Box testing the construction of the program is not known and tester validate the system with a sequence of data as a input and output. And when the expected outcomes in the terms of these inputs are found then the software is accurate. On the other hand, the white-box testing completely checks the inner structure. Having access to the source code the tested data confirms accuracy with the code. White Box Black Box Testing needs different programming knowledge. Gray Box testing comprises access to inner data constructions and procedures for planning test cases. Gray Box provides a comprehensive system review from both the perception of developer and hacker.

References

[1]. Alaqail, H., & Ahmed, S. (2018). Overview of Software Testing Standard ISO/IEC/IEEE 29119. International Journal of Computer Science and Network Security (IJCSNS), 18(2), 112-116.
[2]. Alsayed, A. O., Bilgrami, A. L., & Foster, W. A. (2017). Improving Software Quality Management: Testing, Review, Inspection and Walkthrough. International Journal of Latest Research in Science and Technology, 6(1), 7-12.
[3]. Babbar, H. (2017). Software Testing: Techniques and Test Cases. International Journal of research In Computer applications and Robotics, 5(3), 44-53.
[4]. Barus, A. C., Hutasoit, D. I. P., Siringoringo, J. H., & Siahaan, Y. A. (2015, August). White box testing tool prototype development. In 2015 International Conference on Electrical Engineering and Informatics (ICEEI) (pp. 417-422). IEEE.
[5]. Bhasin, A., & Kumar, M. (2015). Study of white box, black box and grey box testing techniques. International Journal of Research in Engineering & Advanced Technology, 3(3), 23-27.
[6]. Babaeian, M., Ghasemiyan, V., & Nourmandi-Pour, R. (2015). Comparison of software testing review Black Box and White Box and Gray Box. International Journal of Mathematics and Computer Science, 43, 1442-1447.
[7]. Henard, C., Papadakis, M., Harman, M., Jia, Y., & Traon, Y, L. (2016, May). Comparing white-box and black-box test prioritization. In 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE) (pp. 523-534). IEEE.
[8]. Hooda, I., & Chhillar, R. S. (2015). Software test process, testing types and techniques. International Journal of Computer Applications, 111(13), 10-14.
[9]. Hussain, T., & Singh, S. (2015). A Comparative Study of Software Testing Techniques Viz. White Box Testing Black Box Testing and Grey Box Testing. International Journal of Allied Practice, Research and Review, 2(5), 1-8.
[10]. Jacob, P. M., & Prasanna, M. (2016). A Comparative analysis on Black box testing strategies. In 2016 International Conference on Information Science (ICIS) (pp. 1-6). IEEE.
[11]. Jamil, M. A., Arif, M., Abubakar, N. S. A., & Ahmad, A. (2016). Software Testing Techniques: A Literature Review. In 2016 6th International Conference on Information and Communication Technology for The Muslim World (ICT4M) (pp. 177-182). IEEE.
[12]. Jampani, R., Talasu, N., & Manjula, R. (2016). Survey of Software Testing Techniques. International Journal for Research in Applied Science & Engineering Technology (IJRASET), 4(4), 924-929.
[13]. Jan, S. R., Shah, S. T. U., Johar, Z. U., Shah, Y., & Khan, F. (2016). An innovative approach to investigate various software testing techniques and strategies. International Journal of Scientific Research in Science, Engineering and Technology (IJSRSET), 2(2), 682-689.
[14]. Jat, S., & Sharma, P. (2017). Analysis of Different Software Testing Techniques. International Journal of Scientific Research, 5(2), 77-80.
[15]. Kaur, P. (2018). A Research Paper on White Box Testing. World Wide Journal of Multidisciplinary Research and Development, 4(2), 384-387.
[16]. Khalili, A., Narizzano, M., Tacchella, A., & Giunchiglia, E. (2015). Automatic test-pattern generation for grey-box programs. In Proceedings of the 10th International Workshop on Automation of Software Test (pp. 33-37). IEEE Press.
[17]. Khannur, A. (2011). Software Testing: Techniques and Applications. Pearson Education India.
[18]. Komargodski, I., Naor, M., & Yogev, E. (2017). Whitebox vs. black-box complexity of search problems: Ramsey and graph property testing. In 2017 IEEE 58th Annual Symposium on Foundations of Computer Science (FOCS) (pp. 622-632). IEEE.
[19]. Lee, J., Kang, S., & Keum, C. (2018). Architecture- Based Software Testing. International Journal of Software Engineering and Knowledge Engineering, 28(1), 57-77.
[20]. Madhavi, D. (2016). A White Box Testing Technique in Software Testing: Basis Path Testing. Journal for Research, 2(4), 12-17.
[21]. Mahajan, P. (2016). Different types of testing in software testing. International Research Journal of Engineering and Technology (IRJET), 3(4), 1661-1664.
[22]. Meenu & Navita. (2015). Study and Analysis of Software Testing. International Journal on Recent and Innovation Trends in Computing and Communication, 3(12), 6674-6678,
[23]. Notes, C. S., & Bieman, J. M. (2016). Focus: Evaluating Software Quality V & V Techniques V & V Terminology V & V Terminology, pp. 1-15.
[24]. Nouman, M., Pervez, U., Hasan, O., & Saghar, K. (2016). Software testing: A survey and tutorial on white and black-box testing of C/C++ programs. In 2016 IEEE Region 10 Symposium (TENSYMP) (pp. 225-230). IEEE.
[25]. Pahwa, P., & Miglani, R. (2015). Test Case Design using Black Box Testing Techniques for Data Mart. International Journal of Computer Applications, 109(3),18-22.
[26]. Rana, A., Rawat, A. S., & Bijalwan, A. (2017). Process of finding defects in software testing. Annals of Computer Science and Information Systems, 10, 297-300.
[27]. Sharma, M. K. (2018). Ph. D Course Work (Computer Science & Engineering).
[28]. Shikha, K. B. (2015). Software Testing Tools & Techniques for Web Applications. International Journal of Engineering and Technical Research (IJETR), 3(5), 315-318.
[29]. Sivakumar, B., & Srilatha, K. (2016). A Novel Method to Segment Blood Vessels and Optic Disc in the Fundus Retinal Images. Research Journal of Pharmaceutical Biological and Chemical Sciences, 7(3), 365-373.
[30]. Software Testing Fundamentals (2018). Black box testing. Retrieved from http://software testing fundamentals.com/black-box-testing/
[31]. Syaikhuddin, M. M., Anam, C., Rinaldi, A. R., & Conoras, M. E. B. (2018). Conventional Software Testing Using White Box Method. Kinetik: Game Technology, Information System, Computer Network, Computing, Electronics, and Control, 3(1), 65-72.
[32]. Terés-Zubiaga, J., Escudero, C., García-Gafaro, C., & Sala, J. M. (2015). Methodology for evaluating the energy renovation effects on the thermal performance of social housing buildings: Monitoring study and grey box model development. Energy and Buildings, 102, 390-405.
[33]. Thakur, M., & Sanjay. (2017). Review on Structural Software Testing Coverage Approaches. International Journal of Advance research, Ideas and Innovations in Technology, 3(3), 281-286.
[34]. Vilkomir, S., Baptista, J., & Das, G. (2017). Using MC/DC as a black-box testing technique. 2017 IEEE 28th Annual Software Technology Conference (STC), pp. 1-7.
[35]. Villalón, J. C. M., Agustin, G. C., Gilabert, T. S. F., & Puello, J. D. J. J. (2016). A review of software project testing. Journal of Information Systems Engineering & Management, 1(2), 141-148.
[36]. Yadav, P., & Kumari, P. (2015). Review paper on software testing. International Journal of Innovative Research in Technology, 1(12), 588-592.