Software testing:
In every industry Quality testing is the most important phase, once the product cleared from this phase it will be sent for customer. In most of the companies, quality function is considered as the customer face in the business. In software development, testing is also one of the crucial phases, before releasing the developed product to users. In manufacturing, products are checking using some sampling method, which represent the population. In any software product the life cycle is very high, hence it has been rigorously tested against the user requirement, the quality of code and the external access (penetration test) etc. Here the testing done for each requirement in multiple ways. Here sampling cannot be considered as the client might have use the products in various ways in their day-to day business.
White box, Black box and grey box three kind of testing techniques used in software testing. All these types of tests are important to verify the functionality & integrity of the software.
Black box testing: This test is performed by the software testers. The code internal structure is unknown to the tester. The focus more about the user requirement, functionalities are fulfilled or not. This test can be carried out easily(quick) and it can be performed by testers with no knowledge of the code. This is sometimes performed by the independent teams (out sourced). It is also called as behavioral testing. In this test we only focus on input and Output. This test doesn’t consider about the how the it is processing.
The tests performed are broadly categories into function & non-functional. The details are as below.
Function testing – Smoke testing, sanity testing, Integration testing, System testing, Regression testing, user acceptance testing
Non-functional testing – Usability test, load test, performance test, compatibility test, stress testing, scalability testing.
The black box testing techniques are mentioned below
Graph based testing - All objects(node) have the expected relationship to one another.
Equivalence partitioning – In this step, divides the input domain into classes of data
Boundary value analysis -Not completely clear, a more no. of errors will occur at the boundaries
Comparison testing – To minimize the redundant errors occurs in hardware or software
Orthogonal array test – which the input domain is relatively limited
White Box testing: This test performed by the developers with detailed knowledge of codebase itself. The code internal structure is known to the tester. It is about to comparing how the system actually functioning against the how the systems should function. It is very comprehensive testing (more time & high cost). If this is done during development, the bugs can be avoided during deployment. (Preventive). As it is very technical test, there may be chance of missing simple bugs (low level). This tests sometimes referred as clear test, transparent testing.
Testing process include the below steps:
Identify the which features to be tested
Plot all possible paths in the flowgraph
Identify all possible paths
Create test cases
Execute the test cases
Repeat the cycle as necessary.
The White box testing techniques are mentioned below
Decision coverage – This is the most important once in white box, because it provides data on the true of false results of Boolean expressions in the source code.
Condition coverage – It covers the expressions
Multiple condition coverage – This verifies the different combinations of conditions and evaluate the decision that the code make for each combination
Finite state machine coverage
Control flow testing – Seeks to establish the execution of the program by using a simple control structure.
Statement coverage – The testers should cover as much as possible of the source code
Branch coverage – This part basically talks about how wide the coverage of particular elements of the cod
Path coverage – Assess paths within a software application
Grey Box testing: It is a combination of black and white box testing, where the internal structure of the code is partially known. The focus more about the how the system is working and whether this meets the end-user requirement.
The Grey box testing techniques are mentioned below
Matrix testing – States the port of the project
Regression testing – Re running of test cases, if any new changes made in code
Pattern testing – Re running of test cases, if any new changes made in code
Orthogonal array testing – subset of all possible combination
Based on the above detailed understanding, if any DMAIC project is associated with digital/tech solution, then as a business excellence professional, we should focus on black box, grey box testing to ensure that the given solution is giving the correct output also fulfilling the project outcome. But we need to take help of company IT team to go through the white box testing. By Black box, grey box testing, we will ensure that the solution is delivering the value to the business. But the underlaying model design, language used in the code, structure of the code should be flexible enough for the upgradation of IT systems as well as aligned with the company IT guidelines & futuristic scenarios. To ensure that the solution is sustainable for long term, we should do the white box testing.
For example, we are working a project which predicts the sheet break in the paper machine, which is resulting into low productivity & low OEE. After doing the historical analysis & found the root cause at multiple places, which is very difficult to monitor & control by the shop floor operators. Then the team come up with the tech solution, which identify the variation in the critical causes and suggest operator about the adjustment of the parameters. In this case, as BE professional, we will ensure that the tech solution is properly identifying the variation of critical causes and timely giving the alerts to operators (Black box). But this prediction tool is designed and developed by the third-party vendor. Hence it is very difficult to know, what language they write the code, what are logic they built inside the code. Then we should involve the IT/SF professional to understand the technical details (such as conditions, logics, version control, scalability, performance) which refers as white box. As BE professional, we can play role, while building the models and at the end we should also focus on the in what condition, the crucial KPIs are identifying (Grey Box).
In Summary, if any DMAIC project associated with tech solution, BE professional will do the Black box, grey box testing to ensure the projects out come are matching with the business expectation. Also take help of IT/SF professional to carry out the white box testing, to ensure that the developed solution is sustainable, capable enough.