A proprietary software is a mixture of new, legacy and/or bought in program source code. A proprietary system is a system developed by a third-party or a software company. A proprietary system is known as “applications such a word and are not mission critical” (Farrell-Vinay, 2008). There are 2 types of test for a proprietary system. The test in known as functional test or black box test and structural test or the white box test.
2.7.1.1 The Black Box Test or Functional Test
The black box test is testing the program function build by developers for a system. The technique is applied by evaluating users input. There are classes of data to be tested and to ensure the system functions and response accordingly with users input.
The objective of the black box test is to demonstrate whether the system do possess the function features defined in the technical specification documentation. The black box is the central of a system testing phase and also can be implemented in the system integration testing in the unit testing phase. The Figure 2.3 shows the black box testing. The users will test the library system and the test is unknown to users. The developers are aware of the test the feedback from users are the output to developers.
70
Figure 2.3: Black Box Testing
The outcome and findings of the functional test is used to modify the source code for the system. The developer will find the fruitful bugs from user interaction with the system using a standard data. The input process in various classes to ensure the test case developed in the program is workable. The cause and effect graphing, database design and the logic of the data flow is defined the program. Random data is used for the black box testing and to ensure the capability of the system to handle the random quantity of data. This is to ensure the system works accordingly to some information system theory and practice (Farrell-Vinay, 2008; Khan & Khan, 2012).
The types of test in functional test are boundary value analysis, generalizing the boundary value, limitation of boundary value, robustness testing, worse-case testing, special value testing and random testing (Jorgensen, 2013; Khan & Khan, 2012). These test is to ensure that the program input from a domain and output from the range of domain. Therefore, this process of inputting testing is known as functional testing technique. Therefore, the outcome of the black box test has no benefits to users of a system. The users are only the tester of a system to ensure the system functions as required by the work flow of users’ data. In this black box test, the test is bias to developers’ and the users are only given an opportunity to evaluate the system based on the functionality capability and reliability of a system.
71
2.7.1.2 The White Box Test or Structural Test
The white box is testing the structural of a system. The white box test is performed after the black box test is done (Farrell-Vinay, 2008; Jorgensen, 2013; Khan & Khan, 2012). The structural test is performed to test the path or flow of the system. The Figure 2.4 shows the white box testing.
Figure 2.4: White Box Testing
The data flow of the system is observed during the white box test. The white box test is to verify the expected outputs, conditional loops in the source code, check the functionality of the application and verify each section in the system flow. The white box test is more to branch testing, statement testing and decision testing. Both the test has no meaning to users of a system.
The outcome is for further enhancement of the proprietary system. Table 2.5 shows the comparison of the black box and white box test. Both test indicate the system functionalities and capabilities and neither reflecting the user acceptance test in behavioral aspect. Based on the comparison, the UAT and SAT in the black box test are conducted without users’ acknowledgement. This clearly reflects that the UAT and SAT do not capture the need of users as mentioned in Chapter 1, Figure 1.1.
72
Table 2.5: Comparison Test - Black Box and White Box
Black Box Test White Box Test
Functional Test Structural Test
Software Testing Software Testing
Test of function, capability and reliability Test of internal structure, design, implementation
Not known to user Known to user
User Acceptance Test (UAT) and System
Acceptance Test (SAT) Unit Testing and Integration Testing
System User Software Developer
I.T knowledge and skill not required I.T knowledge and skill required Box or data driven testing Clear box or structural testing Trial and error method or pilot test Test on random data
The user acceptance test for the system acceptance is different from user acceptance test used for the behavioral test known as unified theory of acceptance and use of technology (Venkatesh et al., 2003). The user acceptance test for the system acceptance is on the functionalities and capabilities focused to technical aspects and most researchers used the element of a system such as quality of system and information quality for the technical evaluation (DeLone & McLean, 1992, 2002, 2003; Iivari, 2005; McGill, Hobbs, & Klobas, 2003; Petter et al., 2008; Seddon & Kiew, 1996; Seddon, 1997).
It is argued that the focus on system quality and information quality are more favorable to users’ expectations. The librarians are the main entity holder of the library data and system, therefore, the librarians know what they want for a system. The decision is of the librarians and not of the system developers’. In the open source system the users’ are also the developers.
73