Softwaretesting is a process that authenticate and verify if a softwareapplication or program meets the technical and business requirementsthat steered its development and design. There are various methodsand techniques for software testing. This include black box testing,which identifiesthe test cases based on the definition of what the software productis intended to do. White box testing relies exclusively on codestructure, internal paths, as well as implementation of the softwareunder test. On the other hand, dynamic testing approach involvestesting by executing the program with real inputs. Static testingmanually or uses a set of tools to test the software work products,but are not executed while Visual (GUI) testing is based on imagerecognition mechanism.
Keyword:Software-testingmethods, GUI, dynamic, static, white box, black box, gray box.
Softwaretesting is a process that authenticate and verify if a softwareapplication or program meets the technical and business requirementsthat steered its development and design (Saleh,2013).There are many methods of software testing and this include black boxtesting, white box testing, static testing, dynamic testing, andvisual (GUI) testing.
Black box testing
Itis also known as input/output driven test method orspecification-based testing. It identifies the test cases based onthe definition of what the software product is intended to do. Thetest cases challenge the intended use or functionality of theprogram, and the program’s internal and external interfaces (Saleh,2013).Black box testing can be applied at the system level of softwaretesting. These types of Black Box testing generally involve thefollowing increasing levels of effort:
Normalcase: This is a technique usually based on necessary inputs and justconcentrates on the basic functionality of software build (Saleh,2013).
OutputForcing: this is aimed at evaluating the build to know whethercertain outputs are forcibly produced or not by special inputs.
Robustness:software testing should exhibit that a software product workscorrectly when given unpredicted, invalid inputs
Thecombination of Inputs: The black-box testing methods identifiedabove, stress on single test inputs.
Thetest design techniques in this approach are cause-effect graphing,boundary value analysis, and equivalence portioning (Saleh,2013).
White box testing
Inwhite box testing, test group must have full information concerningthe software’s internal structure (Black, 2011). This is anapproach to testing where the tests are derived from knowledge of thesoftware’s structure as well as implementation. In white boxtesting, test cases are selected based on the code’s examination,instead of the specification. It relies solely on code structure,internal paths, as well as implementing the software under test. Itrequires detailed programming skills. White box testing does codereview, view the architecture, eliminate unethical code practices,and perform component level testing. Test design technique comprisesdata flow testing path testing, branch testing, and control flowtesting (Black, 2011).
Gray box testing
Itis done based on the software’s internal structures as defined bydesigns, requirements, standards, guidelines and coding as well asthe non-functional and functional requirements details. This testingmethod combines verification methods with validation approach wheresoftware is correctly built, and functions (Black, 2011).
Thismethodology manually or uses a set of tools to test the software workproducts, but are not executed (Saleh,2013).Itbegins early in life cycle thus carried out in the verificationprocess. Statistic testing does not require computer since a programtesting is conducted without having to execute the program. Forinstance, inspection, walk through, reviewing, etc. Static testinggenerally involves testing without executing the program. Itcomprises the inspection of the software and some form of softwareanalysis (Saleh,2013).
Ittests the code’s dynamic behavior. It includes working with thesoftware, giving input values as well as checking whether the outputis as anticipated by the executing detailed test cases, which can beconducted manually, or by using an automated process. Dynamic testingis performed during the validation process (Limaye, 2013). Itinvolves testing by executing the program with real inputs. Dynamicrequires something that is executable and a less or more elaboratetest environment and is, therefore, more expensive to perform thanstatic testing. Besides, it requires more preparations in the form ofthe definition of test cases and test procedures. However, dynamictesting is indispensable and complements any static testing done onthe basis documentation and the code (Limaye, 2013). Dynamic testingis the decisive moment. This is the point at which the actualsoftware profit is executed in a mode that is as the same as theactual execution that will be required of it when the real users areusing it—does it work or does it not work?
Visual (GUI) testing
Thistool driven technique is based on image recognition mechanism tointeract as well as assert accuracy of a system being tested usingGUI (bitmap graphical user interface) which is displayed on themonitor of a computer (Limaye, 2009).
Black,R. (2011). PragmaticSoftware Testing: Becoming an Effective and Efficient TestProfessional.Chichester: John Wiley & Sons.
Limaye,M. G. (2013). Softwareengineering: Principles and practice.New Delhi: Tata McGraw-Hill Education.
Saleh,K. A. (2013). Softwareengineering.Ft. Lauderdale, FL: J. Ross Pub.