Showing posts with label Manual Testing. Show all posts
Showing posts with label Manual Testing. Show all posts

Wednesday, 27 July 2016

What Is Manual Testing?

Manual Testing




In simplest terms, manual testing is the process in which a tester physically checks any new or improved product or software for defects and discrepancies. The tester, in this case, is a person who acts as an end-user to check and validate all the features. These checks are usually carried out on a test platform so that bug fixes can be done before the actual launch.
Manual testing is the first stage of testing that is done prior to launching or updating an existing product. It is also known as the primary testing stage as it sets course for the feasibility of automated testing.

Why Is Manual Testing Required?

Automation is a brainchild of human development. As such, it too suffers from certain restrictions that the human brain could not have thought of. Suffice to say it is impossible to do a 100% automatic testing. In order to make up for this deficit, manual testing is a more reliable tool. Depending on the size of business a company might undertake automated testing once it successfully completes manual testing.

Steps in Manual Testing

Manual testing is always conducted in a set format so as to reduce any chances of overlooking minor details. The 2 most commonly followed steps in manual testing are:
  • Manual Testing By Developer – This is normally the starting point of manual testing wherein the developer himself or any of his peers checks the internal working and the structure of the product or software. Any defects or discrepancies detected at this stage will involve revisiting the product or code in order to take corrective action.
  • Manual Testing by Tester – This is the second step, where a tester puts on the cap of an end user so as to see how the product works as a complete entity. In this step, the complete functionality of the product is examined closely so that the end user experience can be judged.

Advantages of Manual Testing

Manual testing is considered to be the least expensive and relatively less time-consuming way of authenticating the specifications and other requirements of the product or software before customer sign off can be gained. This is because automated testing involves the development of a test program which is an expensive task and time-consuming activity. Not only that but developing a test program is also subject to errors that need to be tested and corrected before it can be used.

Drawback of Manual Testing

In the absence of a comprehensive test plan, manual testing can give unreliable results due to human error at the testing stage. Overlooking even a small iota of information can give erratic outcomes. At such times, preference is given to a combination of manual and automated testing.

Future of Manual Testing

The point to remember is that no matter whatever course of action you decide to undertake, manual testing is and should be an integral part of your test plan. This is because automated testing follows a set plan and the results are expected within set variables, but manual testing gives that touch of the human element wherein the behavior of end-user guides the decisions. To eliminate manual testing is to one's own peril. After all, the reputation of your company and the success of your product depend on it.

Non-functional testing


Apart from proper and desirable functioning of the software, its performance under different and unexpected conditions, to meet the needs of the customers, is also a matter of concern. This, then arises the need of non-functional testing.

What is Non-functional testing?

Non-functional testing is a type of testing, performed, to check the non-functional traits and requirements of the software. It is done, to evaluate the effectiveness of the software, under variant and unforeseen conditions. It is the one common solution for the questions, related to software like:
  • How quickly, can it response?
  • How many users can simultaneously login into it?
  • If, it can be easily and quickly, adapted by new user? and many more…

What may be tested?

Unlike, functional testing, which is based on pre-defined requirements and specifications, non-functional testing focuses on customer's perspectives, like compatibility, maintainability, load capability, etc. This may includes:
  • Recovery of lost data or application.
  • Reliability and Scalability on different platforms, Operating systems, under variant environment.
  • Performance under stress.
  • Shortage of resources, such as memory.
  • Effectiveness, on simultaneous access to application by multiple users.
  • Security features.

Sub-Categories

Non-functional testing may be sub-classified under various testing methods as under:
  1. Availability Testing Availability Testing is an approach of testing the integrated system testing, contrary to, what is available for its operational requirements.
  2. Compatibility testing This type of testing is executed, to examine the compatibility features of the software, on multiple platforms, under variant environments, like operating system compatibility of the software.
  3. Configuration Testing It has to be seen, that the final product work seamlessly with the supported software and different hardware configuration available. Configuration testing takes care of that aspect.
  4. Compliance testing It is performed to check, whether the software product's performance doesn't deviates from the company's established standards.
  5. Installation Testing Also known as "implementation testing", is used to check desired functioning of the software, after its successful installation, along with, all necessary requirements.
  6. Documentation testing To examine the documentation artifacts, prepared before and during the testing phase, in order to assess the testing requirements, covers under documentation testing.
  7. Load testing It is, the simplest type of performance testing, that evaluates the performance & response of the software, under variant load factors.
  8. Endurance testing This involves, the testing of software's capability or durability to endure the huge and constant load, over a longer period of time.
  9. Localization and Internationalization testing The purpose of localization testing is to verify the quality of the software's local attributes, targeted for a particular population/culture/region, to ensure that the localized version works well for a particular region and meets the need of the targeted audience, whereas Internationalization testing, takes care of the uniform functionality of the software, across all geographical regions.
  10. Performance testing It is done, to examine the response, stability, scalability, reliability and other quality metrics of the software, under different workloads.
  11. Maintainability Testing Maintainability testing ensures the capability of the software, to get upgraded or modified, to meet the needs of the customer.
  12. Recovery testing It involves, wilful failure or crash of the software, to evaluate its ability of getting recovered, quickly.
  13. Security testing The intend of this testing, is to validate the security features of the software, so as to ensure, protection, authenticity, confidentiality and integrity of the information and data.
  14. Reliability Testing Covering load and feature testing under its belt, software reliability gives a measure of the lifecycle of the product, between two failures, and the time it takes to repair.
  15. Volume testing It is a type of performance testing, where software response and effectiveness is measured, by burdening it, with huge amount of data.
  16. Scalability testing Software should be scalable, along with the increase in load, number of concurrent users, data size, etc. This, arises the need of scalability testing, which is conducted to take care of scalability related issues, with the software.
  17. Usability testing It is performed, to ensure that software is user-friendliness and end-users, faces no issues, while using and handling the software product.
  18. Stress testing A type of performance testing, which emphasizes on robustness feature of the software product, by taking operational activities, beyond the boundaries.
Non-functional testing is important, as without verifying the interoperability across multiple platforms, maintainability, security, portability and other miscellaneous features, we cannot guarantee the readiness of software for its use.