What is debugging and how is it different from testing ?
What is the difference between software debugging and software testing?
Debugging is the process of locating the fault or defect,repairing the code and retesting the code.
Where as testing is a process used for revealing defects in software,and for establishing that the software has attained a specified degree of quality with respect to selected attributes.
ok thanks a lot.
so how to debug a given problem without having less or no knowledge about the related language?
Interesting question, Gaurav. Software debugging is typically performed by the software developer. Of course, as a software automation engineer, you could be debugging your own test-scripts.
It's typically carried out in the software or script development process where the struggle is to get the code working. Of course as @Aswini Variganji said, the software needs to have a specific degree of quality before it's shipped to the software testing team for analysis.
It's very difficult to debug if you do not have the sufficient knowledge of the related programming or scripting language. You could inspect the logic by observing - which can be done if you have the ability to read the code and understand the conventions followed by the software development team.
@saandeep sreerambatla might help here.
Testing and debugging or altogether different things.
Lets say you have a function which is computing the distance between two objects , the Euclidean distance. For testing purpose you will know the output and you give the inputs. You dont have to know the underlying formula for calculating it, and if the result is incorrect then you just report it in testing.
But for debugging you have to understand the formula , variables if they are correctly used etc. That means you should know the functionality or the language for debugging, there is no other go. For proper debugging you have to understand the language.
The more you are expertise with the language the better debugging you will be able to do.
Testing is process of finding the bugs of software .Debugging is process of fixing the bugs which we found on testing phase. Testing can be done manually or automation .But debugging cannot be automated.
debugging is a term generally used by developers where they find and fix the bugs. ofcourse a tester debugs his own test scripts as @Kaustubh Katdare said. whereas testing is a process to find the bugs in a end product, which has already been developed or when a new version is released. here we don't fix the bugs, as a tester, we just prove that the product is defective.