Dec 24

Software Testing is an activity being part of the software development process aimed at evaluating a software item (system, subsystem, unit etc.) features (functionality, performance etc.) against the given set of system requirements.

Types of Testing: Manual and Automation Testing

Manual testing is the process of manually testing software for defects. It requires a tester to play the role of an end user, and use most of all features of the application to ensure correct behavior. To ensure completeness of testing, the tester often follows a written test plan that leads them through a set of important test cases.

Automation testing is the use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions. Commonly, test automation involves automating a manual process already in place that uses a formalized testing process

Automation testing can be performed on following types of testing:

  • Functional – Functional testing tests a system to verify that it meets its requirements.
  • Regression - testing that the behavior of the system has not changed after a major code change has occurred
  • Exception or Negative - forcing error conditions in the system.
  • Stress - determining the absolute capacities of the application and operational infrastructure. In short to test the reliability of the software
  • Performance - Performance testing is executed to determine how fast a system or sub-system performs under a particular workload.
  • Load - determining the points at which the capacity and performance of the system become degraded to the situation that hardware or software upgrades would be required. Load testing is a way to test performance.

Areas where Automation Testing should be prioritized:

1. Highly redundant tasks or scenarios 
2. Repetitive tasks that are boring or tend to cause human error 
3. Well-developed and well-understood use cases or scenarios first 
4. Relatively stable areas of the application over volatile ones must be automated.

 Advantages of Manual Testing

 1. Manual testing can be use in both small and big projects

 2. Number of test cases can be easily added/reduced according to change in requirement.

 3. Manual Testing is cheap as compared to Automated testing

 4. Easy to learn for new people who are entered in Software testing.

 5. Manual is more reliable then automated (in many cases automated not cover all cases)

 6. More bugs are found via Exploratory Testing. As, the more time a tester spends playing with the feature of the software the more bugs are found, which is not possible in case of Automation.

 Disadvantages of Manual Testing:

 1. User Interface testing is difficult to perform, especially when to test the color combinations.

 2. Actual load and performance is not possible to cover in manual testing for large number of users.

 3. Executing test cases manually is very time consuming.

 Advantages of Automation Testing:

 1. Test cases can be executed in limited time period.

 2. Load and Performance testing can be performed with no hurdles.

 3. It is best used in case of Regression testing (Repeatedly testing), where few test cases need to be executed repeatedly.

 4. Automated testing can be performed on different operating systems simultaneously.

 5. Automated tools are easy for volume testing. Volume testing is a way to test functionality.

 Disadvantages of Automation Testing:

 1. Every test case is to be converted to test script, so it is a time consuming task.

 2. Automation testing is more expensive as comparing with manual testing. Automated tools are very expensive that cannot be used by small organizations.

 3. Test Scripts are written in different languages and also all tools do not support all language of software. And moreover, the test script writer should be familiar with the all the languages (in which test scripts are to be written)

 4. The method/way of displaying the result is not user friendly. Information that is conveyed is hard to figure out.

 5. Automated tool may not identify missing heading tags since it cannot read the content.

 6. If there is a minor change in the requirement, or minor change in requirement, then whole script need to be changed and need to re-do all the things, whereas in case of Manual testing, only the required test case is modified.

 7. Not all tests can be automated and most times is difficult to decide what to automate and what to manually test.

 Some of the above disadvantages often cause damage to the benefit gained from the automated scripts. Though the automation testing has pros and corns, it is adapted widely all over the world. assignment help

preload preload preload