White box testing

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Q1. Discuss the concept of structural & path testing. Elaborate about the differences in both type of testing.

Sol 1: White box testing (Glass box testing) is a test case design method that uses the control structure of the procedural design to derive test cases. Structural testing technique comes under White box testing technique and therefore it is not the opaque one but fully transparent, because of this it is also known as clear box testing technique. It mainly focuses on the internal working of the software and checks the code which is to be tested. There are three types of testing comes under testing structural testing technique, they are listed as follows:

  • Box Level test: The tests cover design aspects such as thick / large cfc skins, complicated spars, liquid shimming, special fasteners. the specimens tested are fuel tank sealing, buckling, outboard pressure, wing root fitting test boxes.
  • Component level test: static tests are conducted on wing, fin, rudder, drop tanks, under carriage, main landing gear door, etc and the results are used for flight clearance. a self-equilibrating loading system is used to simulate inertial and aerodynamic/aero elastic loads. a whiffle tree arrangement is used to distribute the loads appropriately
  • Half wing test: it specially designed for flexibility. In this there are 1000 channels of data is aquired.

Now lets talk about path testing. It is a testing in which all paths in the program source code are tested at least once. It is also a white box testing technique which was developed firstly but it is also used in black box testing techniques. It works according to some steps and that are: first of all a certain path is chosen, possible inputs and the correct result are written down. Then the program is executed by hand, and its result is compared to the predefined. Possible faults have to be written down at once. There are different strategies about how to choose the path. The optimum would certainly be to follow each path through the module once, but this is not possible.

Q2. "Process of Debugging provides a convenient way to find and clear bugs in a software". Justify

Sol 2) Debugging is a process of locating and fixing errors. It is such a process which helps in reducing the number of bugs which means errors may be in a computer program or in an electronic hardware. Debugging tends to be harder when various subsystems are tightly coupled, as changes in one may cause bugs to emerge in another. To debug a program or hardware device, we start with a known problem, isolate the source of the problem, and then fix it. When someone says they have debugged a program, or "removed the bugs" in a program, they imply that they have fixed the program, so that the bugs no longer exist in it. Debugging is a necessary process in almost any new software, or hardware development process, whether a commercial product, an enterprise, or personal application program. For complex products, debugging is done periodically throughout the development, and again during the customer beta test stages. Because most computer programs and many programmed hardware devices contain thousands of lines of code, almost any new product is likely to contain a few bugs. Invariably, the bugs in the functions that get the most use, are found and fixed first. An early version of a program that has lots of bugs is referred to as "buggy." Debugging tools help identify coding errors at various stages of development. Some programming language packages include a facility for checking the code for errors as it is being written.

Q3. What makes integration testing difficult, elaborate about process how this type of testing is performed.

Sol 3) Integration Testing is also known as I&T as firstly integration and then testing. It is such a software testing technique in which small and individual modules are combined and then tested as a group. It is done after unit testing and before system testing. Integration testing collects the modules which are tested in unit testing and then integrates them and further perform various tests on them. It verifies functionality, reliability and performance requirements which are to be used in our software.

It mainly focuses on the construction of software architecture. There is often a tendency to attempt non incremental integration; that is, to construct the program using a "big bang" approach. All components are combined in advance. The entire program is tested as a whole. And chaos usually results! A set of errors is encountered. Correction is dif?cult because isolation of causes is complicated by the vast expanse of the entire program. Once these errors are corrected, new ones appear and the process continues in a seemingly endless loop. Incremental integration is the antithesis of the big bang approach. The program is constructed and tested in small increments, where errors are easier to isolate and correct interfaces are more likely to be tested completely; and a systematic test approach may be applied.

Different types of integration testing are : big bang, top-down and bottom-up.

BIG BANG: This approach saves a lot of time in integration testing. In this, all or most of the developed modules are coupled together to form a complete software system or major part of the system and then used for integration testing. It is also known as Usage Model Testing.

TOP DOWN AND BOTTOM UP: Top Down Testing is an approach to integrated testing where the top integrated modules are tested and the branch of the module is tested step by step until the end of the related module and Bottom Up Testing is an approach to integrated testing where the lowest level components are tested first, then used to facilitate the testing of higher level components. The process is repeated until the component at the top of the hierarchy is tested.

Q4. Discuss about the concept of Alpha testing and beta testing, also on which point both these differs.

Sol 4) Alpha testing is simulated or actual operational testing by potential users/customers or an independent test team at the developers' site. Alpha testing is often employed for off-the-shelf software as a form of internal acceptance testing, before the software goes to beta testing whereas Beta testing comes after alpha testing. Versions of the software, known as beta versions, are released to a limited audience outside of the programming team. The software is released to groups of people so that further testing can ensure the product has few faults or bugs. Sometimes, beta versions are made available to the open public to increase the feedback field to a maximal number of future users.

The basic difference between these two lies in the fact that in alpha testing software product is not final and This software does not have to necessarily contain the full functionality required for an application however core functionality to accept input an generate output is required whereas in Beta testing is the very last stage of testing where the product is sent outside the company or offer the product for free trial to the people at their own site.

Q5. Why do we require test cases & why they play a crucial role?

Sol 5) Test cases are the set of the conditions containing some variables in it. under test cases, a tester determines whether a software program or any application is working correctly or not. Test cases are most of the time collected in test suites and when written on some piece of paper then they are often referred to as scripts. It has a component that describes an input, action or event and an expected response, to determine if a feature of an application is working correctly or not.

Test cases play a crucial role in the development of the software because with the help of these test cases, developer would easily come to know about the error or bugs in his software. Lets say if these test cases were not done then our softwares would be prone to errors to a large extent. The basic funda to write these test cases is that it validates the testing coverage of an application. Moreover, writing test cases brings a sort of standardization and minimize the ad-hoc approach in the testing which is much more error prone.