Testing and Debugging : What, Who does it, Differences

What do you mean by Software Testing?
Tester tests the AUT (application under testing) and if the output deviates from the expected output then the tester raises the defect and passes it back to the development team.
Along with the nature of defect, testers also have to report the point at which the defect occurred and what happened due the occurrence of that defect. All this information will be used by development team to DEBUG the defect.
Testing can be done by a tester, programmer or developer who has developed the application. Sometimes testing is done through testing automation tools which saves time and provide accurate results.
Testing can be done once the partial development or complete development has been done.

There are different stages in which testing can be done:
  • Unit testing: Small modules of the application can be tested, once it is completely developed by the development team.
  • Integration testing: Integration testing is used to check whether the different modules are compatible to get integrated and form complete application
  • System testing: System testing is used to check whether the system is working properly once the complete application has been developed.
  • User Acceptance testing: In user acceptance testing, the testing of the application is done in live environment with the help of friendly customers or business customers.

Testing can be done either manually or by automation testing. It is generally preferred to use manual testing if a small application is there and rigorous testing is required but if the application is large and the organization is time bounded then automation testing is preferred.


What do you mean by Debugging?
Debugging is the activity carried out by the development team when the tester gives them a report about the defects. The developer tries to find the reason behind the defect with the help of debugging. With the help of debugging, the developer tries to examine line of code of the module to identify the cause of the defect. Once the root cause for the defect has been identified, developers fix it and send the software back to tester for retesting.
Debugging is done by the programmers or developers. It is done to identify the root cause of any defect by examining the code suspected. Debugging can be done with help of debugger tools. When a program crashes, the debuggers show the exact position of error in the target program. Most debuggers are capable of running the programs step by step. They can even modify the state of the program while execution. The execution of the debugger is basically handled by the simulator which is used to achieve a higher degree of control over the execution of the debugging process. This allows the debugger to halt or stop the program according to defined pre conditions

Difference between debugging and testing

Testing
  1. Testing starts with known conditions, user defined procedures and predictable outcomes.
  2. Testing is usually planned, designed and scheduled
  3. Testing can be done without having the design knowledge
  4. It can be done by outsiders who do not have any functional knowledge of the application
  5. Test design and execution can be automated
  6. Procedure or way through which testing is done is available.
  7. The aim is to find as many defects as possible
  8. It is done by testing team.

Debugging
  1. Through debugging, the initial condition or end condition cannot be known
  2. Debugging cannot be constrained i.e. it cannot be designed, planned or scheduled.
  3. Through debugging , programmers identifies the cause of the bug
  4. Debugging is impossible, if we don’t have functional knowledge.
  5. Debugging is done by a person who has complete knowledge of the application and has experience in the development also.
  6. Debugging can never be automated.
  7. There is no fixed procedure to do debugging.
  8. Intention is to remove as many as defects as possible.
  9. It is done by programmers.

Copyright © ianswer4u.com