Software Testing

The concept
This software testing approach dissects an application’s functionality without delving into the software’s internal structure or its working mechanism. The testing is versatile in the sense that its applicability spreads across every domain of testing with the spectrum spanning integration testing, acceptance and system testing to lower level unit testing.
The testing is done on the premise that the programming of the software has been done in a robust manner flawlessly. The tester possesses knowledge of the outputs returned by typical inputs but usually is in the dark when it comes to knowing the specific programming constructs that yield the outcome. Test cases are developed based on specifications/ needs pertaining to the performance expected out of the software. The application’s extraneous characteristics provide assumptive data for the test with the gamut encompassing needs, specifications and design codes. Non-functional testing is also allowed. The tester picks inputs that may be valid or invalid and then ascertain the correct or desired output.


Various techniques involved
The different types of testing parameters employed include decision table, error guessing, boundary value analysis, all-pairs, equivalence partitioning, state transition, and cause effect graphing.

Penetration testing is done with the explicit aim of replicating the mindset and thought process of a hacker who intends to break into a system whose programming knowledge is unknown to him.

In graph based testing, the identification of objects that form the basis of the software application is done. Once the objects have been shortlisted, necessary graphs are prepared. The internal relationship of objects is then established and accordingly test cases are devised for unearthing the inherent errors.

In error guessing method, the experience, prudence and incisive temperament of the tester come into play. The test is premised on the fact that the discerning tester is capable of identifying the lacunas in the application and even recognizes errors that may evade the eyes of the common person. No specific tools exist for writing test cases.

In the Boundary Value Analysis test, the tester picks up extreme boundary values to assess the flexibility of the software and whether it exhibits the tendency of falling apart when confronted by extreme cases. All typical values are chosen and errors accordingly identified.

Tools employed
The tools are primarily related to recording and playing back. This mode of regression testing ascertains the creation/ presence of bugs in the application’s functionality when a switch over to a new version occurs.

The tester need not possess sound programming/ technical knowledge or be well versed with the intricacies of the software. The test unearths contradictions that may exist between the specifications and the final product. Once the functional specifications have been done away with, test cases can be prepared.