Testing is the process of checking the functionality of an application to ensure it runs as per requirements. Unit testing comes into picture at the developers’ level; it is the testing of single entity (class or method). Unit testing plays a critical role in helping a software company deliver quality products to its customers.
Unit testing can be done in two ways − manual testing and automated testing.
|Manual Testing||Automated Testing|
|Executing a test cases manually without any tool support is known as manual testing.||Taking tool support and executing the test cases by using an automation tool is known as automation testing.|
|Time-consuming and tedious − Since test cases are executed by human resources, it is very slow and tedious.||Fast − Automation runs test cases significantly faster than human resources.|
|Huge investment in human resources − As test cases need to be executed manually, more testers are required in manual testing.||Less investment in human resources − Test cases are executed using automation tools, so less number of testers are required in automation testing.|
|Less reliable − Manual testing is less reliable, as it has to account for human errors.||More reliable − Automation tests are precise and reliable.|
|Non-programmable − No programming can be done to write sophisticated tests to fetch hidden information.||Programmable − Testers can program sophisticated tests to bring out hidden information.|
JUnit is a unit testing framework for Java programming language. It plays a crucial role test-driven development, and is a family of unit testing frameworks collectively known as xUnit.
JUnit promotes the idea of "first testing then coding", which emphasizes on setting up the test data for a piece of code that can be tested first and then implemented. This approach is like "test a little, code a little, test a little, code a little." It increases the productivity of the programmer and the stability of program code, which in turn reduces the stress on the programmer and the time spent on debugging.
JUnit is an open source framework, which is used for writing and running tests.
Provides annotations to identify test methods.
Provides assertions for testing expected results.
Provides test runners for running tests.
JUnit tests allow you to write codes faster, which increases quality.
JUnit is elegantly simple. It is less complex and takes less time.
JUnit tests can be run automatically and they check their own results and provide immediate feedback. There's no need to manually comb through a report of test results.
JUnit tests can be organized into test suites containing test cases and even other test suites.
JUnit shows test progress in a bar that is green if the test is running smoothly, and it turns red when a test fails.
A Unit Test Case is a part of code, which ensures that another part of code (method) works as expected. To achieve the desired results quickly, a test framework is required. JUnit is a perfect unit test framework for Java programming language.
A formal written unit test case is characterized by a known input and an expected output, which is worked out before the test is executed. The known input should test a precondition and the expected output should test a post-condition.
There must be at least two unit test cases for each requirement − one positive test and one negative test. If a requirement has sub-requirements, each sub-requirement must have at least two test cases as positive and negative.