In today’s article we are going to understand the simple and interesting topic difference between Testing vs Checking. Before start with actual topic guys I know many of you had question in you mind “What is testing and checking?” and why is testing and checking are important?
In this tutorial I will answer your all queries. So let’s understand each topic one by one.
What is Software Testing?
The process of evaluation of product by learning about it through exploration and experimentation which include all lifecycle activities, both static and dynamic, concerned with planning, preparation and evaluation of software products and related work products to determine that they satisfy specified requirements, to demonstrate that they are fit for purpose and to detect defects.
By testing we find out the presence, quality and genuineness of the product. Testing does not tell us whether the program works or not but it can give us strong judgement on whether there is a problem or not. Testing is a process of checking out whether the checks have been effective and good enough. When any defect is found through testing we write one or more checks to ensure that the problem does not arise again. Testing requires a human and thus it is called as sapient process.
Testing process is not a quality assurance process, it is acting as a service to quality assurance. Through testing we provide information to the managers and programmers to take their decision. Testing is a process which informs the quality assurance. Testing is a process of gathering information to process the decision and questioning the product in order to evaluate it. By evaluating a product, it quality is not ensured but it will help in informing decisions which can help in find out impact on quality. Testing involves a good amount of checking.
When a programmer writes assertion to check the code and the overall process, the main focus is on learning. So we can say that the programmer is testing as he she is programming, Although testing requires some amount of checking but if the program is only checked it is likely to be poorly tested as it ignores the sapient process which gives a deeper information on questions of value.
What is Checking?
Checking is a process of making evaluations on observations of a product. Checking is done as a part of confirmation of the existing beliefs. For checking we require 3 types of elements.
- An observation of product
- A decision rule
- Output bit.
Checking is done to investigate or verify in terms of correctness. When a check passes, we just come to know that the program is working according to our expectations, we donot come to know how it is working. The program might have some major problems even if the checks are passed by it. It can only recognize the presence of defects. Machines can only find out problems for which they are programmed and not new issues.
In checking we may or may not automate the process, we put a question according to machine language and give a assertion to it as an answer.
When talking about tests in which the machines processes pass or fail, we are talking about automated checks. Thus the tests which are called unit tests should be called as unit checks. The automated acceptance tests are called automated acceptance checks. Checking is a quality assurance which when done by the programmers who when writes his code, checks it. The programmer might check his code by debugging his code or by directly running and observing his code. Generally the programmers write a test routine to perform unit testing and provide some assertions to it. What we call unit testing is actually check. When a check fails it gives any indication to programmer to check his code and make it work as expected. This is how checking is a quality assurance process as it helps the programmer to run his code by checking it.
When a programmer writes a new set of code, he has certain ideas and questions on how to proceed. For this he/she writes an assertion- that is a check. Then he writes a code to pass the assertion. If the assertion does not pass then he changes the code. If the code still does not pass then the programmer understands that his initial assertion was wrong. So he writes a new assertion and a new set of code. If this time the assertion passes that means the code and the assertion are in agreement.
Difference between Testing vs Checking:
Testing is a method of checking the quality, correctness of anything .Using testing we can determine what the software does. For example, we can determine the amount of money paid for a transaction, how many transactions are done in 1 hour. Testing can also be defined as a process for assessing something. For example, if we test our code to check the behaviour of class after implementing the first cut implementation that compiles.
Checking is to verify or investigate as to correctness. For example, to check if the application is complying with the standards. Checking can also be termed as searching or making query into the system. For example we can write a piece of code to find out how much money was transferred into account as exam fee.
Checking can also be done be manual methods and observation of results.
We can also check our software by using test code and creating automation test suite.
Many times we want to access our software without actually verifying its correctness. When the software are checked against some standard or expected behaviour they are also regarded as checks. Testing is a larger category that covers checking
|1. Testing is finding new information||1. Checking is confirmation of existing beliefs|
|2. Testing is a process of exploration, discovery, investigation and learning||2. Checking is a process confirmation, validation and verification .|
|3. Testing is done when the product is configured, operated and evaluated or to find out a problem which was not expected to happen.||3. Checking is done to ensure that , if any changes are done to the code, the things which were working before are still intact. If anything is assumed we make sure that the assumption still holds.|
|4. Testing focuses on understanding everything about how the program works and how it will not work.||4. Checking ensures that the program doesnot fail.|
|5. In testing we find out the scope and limitations of the product , when are occupied by questions which are not been answered.||5. In Checking the developers make automated code and scripts which they run frequently to check that nothing is broken when code changes are made.|
|6. In testing, the outcome is actual result which is compared with expected result||6. However in checking, the outcome is a binary value either yes or no.|
|7. Testing is a process to find out whether our tests and checks have passed.||7. Checking tells us about the presence of the bugs and not absence.|
|8. Testing gives an answer to the question “ Is there any problem in this ”||8. Checking gives us an answer to question “ Does this pass or fail”|
|9. Testing is a process which required human intervention and thus it is known as sapient process.||9. Checking can be done through machines and it is self decidable. It value is not affected by human intervention|
|10. Testing is a service to quality assurance which helps the developers, project managers to decide about the project||10. Checking is a quality assurance practice. It is done by programmers to help them check the quality assurance of the work done by them.|
|11. The person performing testing is known as testers||11. The persons performing checking are known as checkers.|
|12. Testers does not require up to date, unambiguous specification to make observations and useful decisions about the project.||12. Checkers need a clear, up to date and unambiguous specification to proceed in the project.|
|13. When a programmer is performing testing it is a process of validation and verification, the developer needs to observe the product for many risks||13. In checking, while the programmer is coding, he may find a point where some question arise. He writes any assertion to it. This assertion is called a cheque.|
Why is testing and checking important?
When a new code is written, it is checked to meet the expectations. When the code is checked repeatedly as a part of test suite, it is checked to make sure that the software continues meets the expectation. This process is of value especially when the code keeps on changing at a faster pace.
It is beneficial to run checks on code repeatedly which has a potential to break. If the code is stable then there is no value for running the same automated test again and again. Instead one should write a new set of test cases to execute automated tests.
If the tests are frequently breaking, one needs to recheck its checks. The test code written for some detail that is not used or required is not essential for the software. If the check don’t break easily then it is easier to change the software design. It also helps in building the software easily.
If you are not regular reader of this website then highly recommends you to Sign up for our free email newsletter!! Sign up just providing your email address below: