Unit & Integration Testing

Unit Testing

In computer programming, a unit test is a method of testing the correctness of a particular module of source code.
The idea is to write test cases for every non-trivial function or method in the module so that each test case is separate from the others if possible. This type of testing is mostly done by the developers.
Benefits
The goal of unit testing is to isolate each part of the program and show that the individual parts are correct. It provides a written contract that the piece must satisfy. This isolated testing provides four main benefits:
Encourages change
Unit testing allows the programmer to refactor code at a later date, and make sure the module still works correctly (regression testing). This provides the benefit of encouraging programmers to make changes to the code since it is easy for the programmer to check if the piece is still working properly.
Simplifies Integration
Unit testing helps eliminate uncertainty in the pieces themselves and can be used in a bottom-up testing style approach. By testing the parts of a program first and then testing the sum of its parts will make integration testing easier.
Documents the code
Unit testing provides a sort of "living document" for the class being tested. Clients looking to learn how to use the class can look at the unit tests to determine how to use the class to fit their needs.
Separation of Interface from Implementation
Because some classes may have references to other classes, testing a class can frequently spill over into testing another class. A common example of this is classes that depend on a database; in order to test the class, the tester finds herself writing code that interacts with the database. This is a mistake, because a unit test should never go outside of its own class boundary. As a result, the software developer abstracts an interface around the database connection, and then implements that interface with their own Mock Object. This results in loosely coupled code, thus minimizing dependencies in the system.
Limitations
It is important to realize that unit-testing will not catch every error in the program. By definition, it only tests the functionality of the units themselves. Therefore, it will not catch integration errors, performance problems and any other system-wide issues. In addition, it may not be trivial to anticipate all special cases of input the program unit under study may receive in reality. Unit testing is only effective if it is used in conjunction with other software testing activities.
Integration Testing
It is the phase of software testing in which individual software modules are combined and tested as a group. It follows unit testing and precedes system testing. takes as its input modules that have been checked out by unit testing, groups them in larger aggregates, applies tests defined in an Integration test plan to those aggregates, and delivers as its output the integrated system ready for system testing.
Purpose
The purpose of Integration testing is to verify functional, performance and reliability requirements placed on major design items. These "design items", i.e. assemblages (or groups of units), are exercised through their interfaces using Black box testing, success and error cases being simulated via appropriate parameter and data inputs. Simulated usage of shared data areas and inter-process communication is tested, individual subsystems are exercised through their input interface. All test cases are constructed to test that all components within assemblages interact correctly, for example, across procedure calls or process activations.
The overall idea, is the "building block" approach in which verified assemblages are added to a verified base which is then used to support the Integration testing of further assemblages.

White Box and Black Box Testing

White Box Testing
Testing of a function with knowing internal structure of the program. Also known as glass box, structural, clear box and open box testing. A software testing technique whereby explicit knowledge of the internal workings of the item being tested are used to select the test data. Unlike black box testing, white box testing uses specific knowledge of programming code to examine outputs. The test is accurate only if the tester knows what the program is supposed to do. He or she can then see if the program diverges from its intended goal. White box testing does not account for errors caused by omission, and all visible code must also be readable.
Black Box Testing
Testing of a function without knowing internal structure of the program. Black-box and white-box are test design methods. Black-box test design treats the system as a "black-box", so it doesn't explicitly use knowledge of the internal structure. Black-box test design is usually described as focusing on testing functional requirements. Synonyms for black-box include: behavioral, functional, opaque-box, and closed-box. White-box test design allows one to peek inside the "box", and it focuses specifically on using internal knowledge of the software to guide the selection of test data. Synonyms for white-box include: structural, glass-box and clear-box.

While black-box and white-box are terms that are still in popular use, many people prefer the terms "behavioral" and "structural". Behavioral test design is slightly different from black-box test design because the use of internal knowledge isn't strictly forbidden, but it's still discouraged. In practice, it hasn't proven useful to use a single test design method. One has to use a mixture of different methods so that they aren't hindered by the limitations of a particular one. Some call this "gray-box" or "translucent-box" test design, but others wish we'd stop talking about boxes altogether.

It is important to understand that these methods are used during the test design phase, and their influence is hard to see in the tests once they're implemented. Note that any level of testing (unit testing, system testing, etc.) can use any test design methods. Unit testing is usually associated with structural test design, but this is because testers usually don't have well-defined requirements at the unit level to validate.

Interview Questions

Interview Question Answer By Testing Expert- Dr K.V.V.K. Prasad
Testing Scenarios :
Q: How do you know that all the scenarios for testing are covered? By using the Requirement Traceability Matrix (RTM) we can ensure that we have covered all the functionalities in Test Coverage. RTM is a document that traces User Requirements from analysis through implementations. RTm can be used as a completeness check to verify that all the requirements are present or that there is no unnecessary/extra features and as a maintenance guide to new personnel. We can use the simple format in Excel sheet where we map the Functionality with the Test case ID. 2. Complete Testing with Time Constraints :
Question: How do you complete the testing when you have a time constraint? If i am doinf regression testing and i do not have sufficient time then we have to see for which sort of regression testing i have to go 1)unit regression testing 2)Regional Regression testing 3)Full Regression testing. 3. Given an yahoo application how many test cases u can write? First we need requirements of the yahoo applicaiton. I think test cases are written aganist given requirements.So for any working webapplication or new application, requirements are needed to prepare testcases.The number of testcases depends on the requirements of the application Note to learners : A Test Engineer must have knowledge on SDLC. I suggest learners to take any one exiting application and start pratice from writing requirements. 4. Lets say we have an GUI map and scripts, a we got some 5 new pages included inan application how do we do that? By integration testing. 5. GUI contains 2 fields Field 1 to accept the value of x and Field 2 displays the result of the formula a+b/c-d where a= 0.4*x, b=1.5*a, c=x, d=2.5*b; How many system test cases would you write GUI contains 2 fields Field 1 to accept the value of x and Field 2 displays the result so that there is only one testcase to write

Quality Related Questions

  • 1. Quality means
  • a) conformance to requirements
  • b) meeting customer needs
  • c) both
  • d) none
  • 2. AQL stands for
  • a)Allowable Quality Level
  • b)Allocated Quality Level
  • c) Acceptable Quality Level
  • d) Allowed Quality Level
  • 3. For quality to happen, there must be well-defined standards and procedures which are followed. (True/False)
  • 4. Many technical personnel believe that standards inhibit their creativity. (True/False)
  • 5. Achieving quality (defect-free products and servcices) is easy. (True/False)
  • 6. The challenge of making quality happen is
  • a)a miniscule challenge
  • b)a monumental challenge
  • 7. Accomplishing quality requires "a thought revolution by management.". Who stated as above?
  • a)Dr. Malcolm Baldrige
  • b)Dr. Kaoru Ishikawa
  • c)Bill Gates
  • d)William J Clinton
  • 8. Taylor approach refers to
  • a) Engineers create work standards and specifications. Workers merely follow.
  • b) Engineers create work standards and specifictions. Both engineers and workers follow.
  • c) Engineers create work standards and specifications and follow them.
  • 9. In Zero defect movement all responsibilities and defects are borne by the workers.
  • (True/False)
  • 10. The word "kick-off" is used in
  • a)Zero Defect Movement
  • b)Deming's Circle
  • c)QAI's Quality Improvement Model
  • 11. Dr. W. Edwards Deming has stated that it takes ____________ years to change a culture from an emphasis on productivity to an emphasis on quality.
  • (10 years/20 years/2 to 5 years/none of these)
  • 12. Quality means meeting requirements. This is ____________view.
  • (producer's /customer's )
  • 13. Quality means fit for use. This is ________________view.
  • (producer's /customer's )
  • 14. Which one of the following definitions of quality is more important.
  • a)Quality means meeting requirements.
  • b)Quality means fit for use.
  • 15. Quality control is a ______________ function. (line/staff)
  • 16. Quality assurance is a ____________ function. (line/staff)
  • 17. By what other two names is PDCA process referred to?
  • 18. What does "Going Around the PDCA Circle" connote?
  • 19. The no of principles in Dr. W. Edwards Deming's quality principles is ____________. (8/10/12/14/16)
  • 20. For quality to happen it is not necessary that all the Deming's principles are used concurrently. (True/False)
  • Hi Friends Try To Find Answers give answer in Next Post.