What is Manual Testing?
Manual Testing is software testing conducted manually to test the software for it correctness, completeness and quality. Manual Testing does not use any automation tools, scripts for testing. Manual Testing is conducted even before automation testing to check the feasibility of automation on the software. The manual tester has a very vital role in Manual Testing. He performs the testing taking in view the end user. To maintain the comprehensiveness of testing, a testing plan is created which records the test cases executed unlike in automation testing where the automation tools has all the details of the test cases executed. Manual Testing can be of various types depending upon the nature of the project. It can also be ad- hoc testing or exploratory testing where the requirements are not defined.
When the manual test cases are executed, the actual and the expected results are matched to find out the defects. Regression Testing is also a type of manual testing. It involves retesting of the application to find out the impact of the changes or enhancements done in the software. It is quite common that after defects fixed the emergence of new faults or re emergence of old faults arise. Regression testing does not only check the fixation but also it helps in finding out the quality of the product. Regression testing is also an integral part of extreme programming software development method.
Following are the testing techniques used in manual testing:
- Acceptance Testing
- White box testing
- Black Box testing
- Unit Testing
- System Testing
- Integration Testing
What is Regression Testing?
Regression Testing is a type of software testing performed to verify the bug fixations and check if the old functionality is not impacted with the fixations. Regression testing is retesting the unmodified functionality of the application. The test cases are executed again to check the previous functionality and see if the bug fixations have not introduced any new bugs in the application. Regression testing is a part of software testing life cycle and its effort is counted in testing estimation. It is generally performed after the verification of the software bugs but if the software release takes couple of months the regression testing is performed on daily basis using regression pack.
Why Is Regression Testing Required?
Regression Testing is performed to check:
- The new features added to the software.
- To check the defect resolution.
- Changes made in the code due to any changes in the requirement
- The resolution of performance issues.
How Much Regression Testing Is Performed?
Regression testing is performed to check if the newly added feature has not impacted the old functionality. The impact of the new feature on the application determines the amount of regression testing required. If the new feature is a large portion of software then more regression testing is required.
Types Of Regression Testing?
Regression Tests can be performed manually or through automation. Since regression testing involved re- running of the test cases, automation is performed on the set of test cases so that the test cases can be executed easily on the new build. The tests cases in regression suite should be selected very vigilantly such that these cover maximum functionality in minimum number of test cases. Also these test cases should be updated as new functionalities are added to the application. If the application is continuously updated and has large scope then the regression test cases may also increase, in this case the test cases are executed selectively to save efforts and time.
Regression Testing Manual or Automated?
At each cycle of development performing regression testing takes too long. If the functionality does not have any changes then it means the defects would also be low. In such cases, we decide to automate the regression testing and not perform it manually. Performing automated regression in such cases would be beneficial as:
- It does not require any human intervention
- It can be performed anytime
- The results of automation testing are very precise.
- Automation testing tools can generate reports for the testing team.
The automation of regression test cases is not always possible. Automation has its own cons as well.
Approach Towards Regression Testing?
To find out what is the better approach to perform Regression Testing, we should find out the answers for the following questions:
- What functionality we want to cover in the testing
- The tool to be used for Automation of regression tests.
Some points to be kept in mind for performing regression testing manually or automated are as follows:
- The automation should first be performed on the most repeated test cases. These test cases need to run after each build of the software.
- If the test scripts become too long it should be executed manually rather than automated way. It takes long time to write the test scripts for such cases and quite often these test cases might fail due to small errors in the following steps.
- The automation should be performed till the build is not stable. If the build is unstable or is changing frequently it would fail all the tests causing a lot of inconvenience.
- Using pointers is very beneficial in testing as if there are any changes on later stage it can easily be found using the pointers.
Both automation and manual testing has its own pros and cons. It cannot be said that manual testing is not good and automation testing is better. Both of these types of testing are complementary. If you are thinking of performing regression testing, he/she should think about the time spent on writing the scripts of those test cases and also the time spent on support for automation of those cases.
If automation is saves our time and money without any compromise on quality of product, we can increase the coverage of automation regression testing.
What Are The Various Regression Testing Tools?
The extent of automation on the regression test depends on the test cases which would be same over the long time. Most of the regression testing tools are record and play back type testing tools. In such tools the recording of the test cases is performed by running the steps on application under test. Some of the regression testing tools are:
Selenium: Selenium can be used for browser based regression testing. It is used for automation of web applications.
Rational Functional Tester: It is a java tool to automate the test cases for applications. It is used for automation of regression test cases.
Quick Test Professional: It uses VB Script for writing the automated test cases. It is automated tool for performing the functional and regression testing. It is keyword based tool.
Other tools for performing regression testing are Win runner, Skill Test. All the automation testing tools are functional and regression test cases. An automation testing tool should be selected such that it is easier to update and add more test cases to it.
How To Select Regression Test Cases?
Re- execution of complete test suite is not recommended in regression testing. It is always to select few test cases from the test suite on the following basis:
- Reusable Test Cases: Test Cases which can be used in further regression test cycles.
- Obsolete Test Cases: Test Cases which cannot be used in further cycles.
Prioritizing And Selecting The Test Cases For Regression Testing?
Prioritizing the test case can help is reducing the number of test cases in test suite. The test cases can be prioritized on the basis of frequently used functionalities, business and criticality.
Effective regression testing is not so easy and requires careful selection of test cases:
- Test cases which verify the main functions of the software should be present under regression tests.
- The functionalities which are more visible to the user should be performed under regression tests.
- The test cases which have defects found frequently should be included in regression tests.
- The test cases made using boundary value analysis techniques should be present in the regression pack
- The complex test cases should be included in the regression part.
- Regression test suite should also have integration test cases.
Automated regression tests are not always powerful way to test. Automated regression tests are very fragile implies that if there is any change in the application be it very slight change, the automated tests will fail which means that those tests now need to be automated. It takes much of an effort and time to maintain these regression automated tests. Whereas it would be easier to manually execute the test cases. If in the application, the features are stable and the application relatively stable then investing automation regression testing would be wise decision while if our motive is to find as many defects possible in minimum time then manual testing would be a good choice.