What Is Software Testing? 100+ Free Manual Testing Tutorials

By Vijay

By Vijay

I'm Vijay, and I've been working on this blog for the past 20+ years! I’ve been in the IT industry for more than 20 years now. I completed my graduation in B.E. Computer Science from a reputed Pune university and then started my career in…

Learn about our editorial policies.
Updated March 4, 2024

Here is the Complete Software Testing Guide with 100+ Manual Testing Tutorials with Testing Definition, Types, Methods, and Process Details:

What is Software Testing?

Software testing is a process of verifying and validating the functionality of an application to find whether it satisfies the specified requirements. It is the process of finding defects in an application and checking where the application functions according to the end user’s requirements.

What is Manual Testing?

Manual Testing is a process in which you compare the behavior of a developed piece of code (software, module, API, feature, etc.) against the expected behavior (Requirements).

List of Manual Software Testing Tutorials

This is the most in-depth series of tutorials on Software Testing. Go through the topics mentioned in this series carefully to learn the basic and advanced testing techniques.

This series of tutorials will enrich your knowledge and will, in turn, enhance your testing skills.

Practice End-to-End Manual Testing Free Training on a Live Project:

Tutorial #1: Basics of Manual Software Testing
Tutorial #2:
Live Project introduction 
Tutorial #3: Test Scenario Writing
Tutorial #4: Write a Test Plan Document from Scratch 
Tutorial #5: Writing Test Cases from SRS Document 
Tutorial #6: Test Execution
Tutorial #7: Bug Tracking and Test Sign off
Tutorial #8: Software Testing Course 

Software Testing Life-Cycle:

Tutorial #1: STLC

Web Testing:

Tutorial #1: Web Application Testing 
Tutorial #2: Cross Browser Testing

Test Case Management:

Tutorial #1: Test Cases
Tutorial #2: Sample Test Case Template
Tutorial #3: Requirements Traceability Matrix (RTM)
Tutorial #4: Test Coverage 
Tutorial #5: Test Data Management

Test Management:

Tutorial #1: Test Strategy
Tutorial #2: Test Plan Template
Tutorial #3: Test Estimation
Tutorial #4: Test Management Tools
Tutorial #5: HP ALM Tutorial
Tutorial #6: Jira
Tutorial #7: TestLink Tutorial

Test Techniques:

Tutorial #1: Use Case Testing
Tutorial #2: State Transition testing
Tutorial #3: Boundary Value Analysis
Tutorial #4: Equivalence Partitioning
Tutorial #5: Software testing methodologies
Tutorial #6: Agile Methodology

Defect Management:

Tutorial #1: Bug Life Cycle
Tutorial #2: Bug Reporting
Tutorial #3: Defect Priority
Tutorial #4: Bugzilla Tutorial

Functional Testing

Tutorial #1: Unit Testing
Tutorial #2: Sanity and Smoke Testing
Tutorial #3: Regression Testing
Tutorial #4: System Testing
Tutorial #5: Acceptance Testing
Tutorial #6: Integration Testing
Tutorial #7: UAT User Acceptance Testing

Non-Functional Testing:

Tutorial #1: Non-Functional Testing 
Tutorial #2: Performance Testing
Tutorial #3: Security Testing
Tutorial #4: Web Application Security Testing
Tutorial #5: Usability Testing
Tutorial #6: Compatibility Testing
Tutorial #7: Installation Testing
Tutorial #8: Documentation Testing

Software Testing Types:

Tutorial #1: Types of Testing 
Tutorial #2: Black box Testing
Tutorial #3: Database Testing 
Tutorial #4: End to end Testing 
Tutorial #5: Exploratory Testing 
Tutorial #6: Incremental Testing
Tutorial #7: Accessibility Testing
Tutorial #8: Negative Testing
Tutorial #9: Backend Testing
Tutorial #10: Alpha Testing
Tutorial #11: Beta Testing
Tutorial #12: Alpha vs Beta Testing 
Tutorial #13: Gamma Testing
Tutorial #14: ERP Testing
Tutorial #15: Static and Dynamic Testing
Tutorial #16: Adhoc testing 
Tutorial #17: Localization and Internationalization Testing
Tutorial #18: Automation Testing
Tutorial #19: White box testing

Software Testing Career:

Tutorial #1: Choosing a Software Testing Career 
Tutorial #2: How to Get QA Testing Job – Complete Guide 
Tutorial #3: Career options for Testers
Tutorial #4: Non-IT to Software Testing Switch
Tutorial #5: Kick Start Your Manual Testing Career
Tutorial #6: Lessons Learned from 10 Years in Testing
Tutorial #7: Survive and Progress in Testing Field 

Interview Preparation:

Tutorial #1: QA Resume Preparation
Tutorial #2: Manual Testing Interview Questions
Tutorial #3: Automation Testing Interview Questions
Tutorial #4: QA Interview Questions
Tutorial #5: Handle Any Job Interview 
Tutorial #6: Get Testing Job as a Fresher

Testing Different Domain Applications:

Tutorial #1: Banking Application Testing
Tutorial #2: Health Care Application Testing
Tutorial #3: Payment Gateway Testing
Tutorial #4: Test Point of Sale (POS) System
Tutorial #5: eCommerce Website Testing

Testing QA Certification:

Tutorial #1: Software Testing Certification Guide
Tutorial #2: CSTE Certification Guide
Tutorial #3: CSQA Certification Guide
Tutorial #4: ISTQB Guide
Tutorial #5: ISTQB Advanced

Advanced Manual Testing Topics:

Tutorial #1: Cyclomatic Complexity
Tutorial #2: Migration Testing
Tutorial #3: Cloud Testing
Tutorial #4: ETL Testing
Tutorial #5: Software Testing Metrics
Tutorial #6: Web Services 


Get ready to take a look at the 1st tutorial in this Manual Testing series !!!

Introduction to Manual Software Testing

Manual Testing is a process in which you compare the behavior of a developed piece of code (software, module, API, feature, etc.) against the expected behavior (Requirements).

And how will you know what is the expected behavior?

You will know it by reading or listening to the requirements carefully and understanding it completely.  Remember, understanding the requirements completely is very, very important.

Think of yourself as an end-user of what you are going to test. After that, you are not bound, to the software requirement document or words in it anymore. You can then understand the core requirement and not just check the system’s behavior against what is written or told but also against your own understanding and against things which are not written or told.

At times, it can be a missed requirement (incomplete requirement) or implicit requirement (something which doesn’t need separate mention but should be met), and you need to test for this too.

Furthermore, a requirement need not necessarily be documented. You can very well have knowledge of the software functionality or you can even guess and then test one step at a time. We generally call it ad-hoc testing or exploratory testing.

Let’s have an In-Depth Look:

First, let’s understand the fact – Whether you are comparing testing a software application or something else (let’s say a vehicle), the concept remains the same.  Approaches, tools, and priorities might differ, but the core objective remains the SAME and it is SIMPLE i.e. comparing the actual behavior with the expected behavior.

Second – Testing is like an attitude or mindset that should come from within. Skills can be learned, but you will become a successful tester only when you have a few qualities within you by default. When I say testing skills can be learned, I mean focused and formal education around the software testing process.

But what are the qualities of a successful tester? You can learn about them at the link below:

Click here => Qualities of Highly Effective Testers

I highly recommend going through the above article before continuing with this tutorial. This will help you compare your characteristics against the ones that are expected in the Software Tester’s role.

For those who don’t have time to go through the article, here is a synopsis:

“Your curiosity, attentiveness, discipline, logical thinking, passion for work and ability to dissect things matters a lot to be a Destructive and Successful Tester. It worked for me and I strongly believe that it will work for you as well. If you have these qualities already, then indeed it’s got to work for you too.”

We have talked about the core pre-requisites of becoming a software tester. Now let’s understand why Manual Testing has and will always have its independent existence with or without Automation Testing growth.

Why Is Manual Testing Required

Do you know what is the best thing about being a Tester, that too a Manual Tester?

It is a fact that you can’t depend only on skillset here. You’ve got to have/develop and enhance your thought process. This is something you can’t really buy for a few bucks. You yourself have to work on it.

You will have to develop the habit of asking questions and you will have to ask them every minute when you are testing. Most of the time you should be asking these questions to yourself rather than to others.

I hope that you have gone through the article that I recommended in the previous section (i.e the quality of highly effective testers). If yes, then you would know that testing is considered a thought process and how successful you will be as a tester completely depends on the qualities that you possess as a person.

Let’s see this simple flow:

  • You do something (perform actions) while you observe it with some intent (comparing against the expected). Now your observation skills and discipline to perform things comes into the picture here.
  • Voila! What was that? You noticed something. You noticed it because you were giving perfect attention to the details in front of you. You won’t let it go because you are curious. This was not in your plan that something unexpected/strange will happen, you will notice it and you will investigate it further. But now you are doing it. You can let it go. But you shouldn’t let it go.
  • We are happy that you found out the cause, steps, and the scenario. You will now communicate this properly and constructively to the development team and other stakeholders in your team. You might do it via some defect tracking tool or verbally, but you’ve got to make sure that you are communicating it constructively.
  • Oops! What if I do it that way? What if I enter proper integer as input but with leading white spaces? What if? What if? What if? It doesn’t end easily, it shouldn’t end easily. You will imagine a lot of situations & scenarios and indeed you will be tempted to perform them as well.

The diagram given below represents the Life of a Tester:

Life of a Tester

Read the four bullet points mentioned above once again. Did you notice that I kept it very short but still highlighted the richest part of being a manual tester? Also, did you notice the bold highlighting over a few words? Those are precisely the most important qualities that a manual tester needs.

Now, do you really think that these acts can be completely replaced by anything else? And the hot trend today – can it ever get replaced with automation?

In SDLC with any development methodology, a few things always remain constant. As a tester, you will consume the requirements and convert them into Test Scenarios/Test cases. You will then execute those test cases or directly automate them (I know a few companies do it).

When you automate it, your focus is steady, which is automating the steps written.

Let’s go back to the formal part i.e. executing the test cases written manually.

Here, you not only focus on executing the written test cases, but you also perform a lot of exploratory testing while doing so. Remember, are you curious? And you would imagine. And you won’t be able to resist, you will indeed do what you imagined.

The image given below depicts how Test Case writing is simplified:

Test Case Writing Simplified

I am filling out the form and I’m done filling out the first field. I am too lazy to go for the mouse to shift focus to the next field. I hit the ‘tab’ key. I am done filling up the next and last fields too, now I need to click on the Submit button, the focus is still on the last field. 

Oops, I accidentally hit the “Enter” key. Let me check what happened. OR there is a submit button, I am going to double click it. Not satisfied. I clicked it multiple times, too fast.

Did you notice? There are so many possible user actions, both intended and unintended ones.

You won’t succeed in writing all the test cases which cover your application under test 100%. This has to happen in an exploratory way.

You can continue adding new test cases as you test the application. These will be test cases for bugs that you encountered for which previously there were no test cases written. Or, while you are testing, something triggered your thought process and you got a few more test cases which you would like to add to your test case suite and execute.

Even after all this, there is no guarantee that there are no hidden bugs. Software with zero bugs is a myth. You can only target to take it close to Zero but that just can’t happen without a human mind continuously targeting the same, similar to but not limited to the example process we saw above.

At least as of today, there is no software that will think like a human mind, observe like a human eye, ask questions and answer like a human and then perform intended and unintended actions. Even if such a thing happens, whose mind, thoughts and eyes will it mimic? Yours or mine? We, humans, are also not in the same right. We are all different. And then?

Need for Manual Testing when Automation is Around:

Automation Testing has its own share of glory these days and will have even more in the upcoming years but, it simply can’t replace manual QA testing (read human/exploratory testing).

You must have heard this before: “You don’t automate testing, you automate checking.” This sentence speaks a lot about where manual QA testing stands with Automation testing around. Many big names across the globe have written and spoken about this topic, so I won’t stress much about this.

Automation can’t replace Human Testing because:

  • It demands runtime judgments about everything that happens in front of your eyes (while you test) and in few cases behind the scenes too.
  • It demands clear and constant observation.
  • It demands questioning.
  • It demands an investigation.
  • It demands reasoning.
  • This demands unplanned action as required during testing.

Testing can be replaced by a tool/machine which will be able to absorb the details, process them, command actions and perform them like a human mind and human, and all this at runtime and in all possible contexts. This tool again has to be like all possible humans.

So in short, human testing can’t be replaced. Maybe some Hollywood sci-fi flick in a few years will look close to it, but in real life, I can’t see it coming for a few hundred years, that I can imagine. I won’t write it off forever as I believe in endless possibilities.

On a separate note, even if it really happens after a few hundred years, the picture I can imagine is that of a scary world for sure. Age of Transformers. 🙂

=>> Recommended Reading – Best Manual Testing Service Companies

How Automation Compliments Manual Testing

As I said before, I’m saying again that Automation can’t be ignored anymore. In a world where continuous integration, continuous delivery, and continuous deployment are becoming mandatory things, continuous testing can’t sit idle. We have to find ways on how to do it.

Most of the time, deploying more and more workforce doesn’t help in the long run for this task. Hence, the Tester (Test Lead/Architect/Manager) has to decide cautiously on what to automate and what should still be done manually.

It is becoming extremely important to have very precise tests/checks written so that they can be automated without any deviation to the original expectation and can be used while regressing the product as a part of ‘Continuous Testing’.

Note: The word continuous from the term “Continuous Testing” is subjected to conditional and logical calls similar to the other terms that we used above with the same prefix. Continuous in this context means more and more often, faster than yesterday. While in meaning, it can very well mean every second or Nano-second.

Without having a perfect match between Human Testers and automated checks (tests with precise steps, expected results and exit criteria of said tests documented), achieving Continuous Testing is very difficult and this, in turn, will make continuous integration, continuous delivery and continuous deployment more difficult.

I purposely used the term exit criteria for the test above. Our automation suits can’t be similar to the traditional ones anymore. We have to make sure that if they fail, they should fail fast. And to make them fail fast, exit criteria too should be automated.

Example:

Let’s say there is a blocker defect wherein I am unable to login to Facebook.

Login functionality then has to be your first automated check and your automation suite should not run the next check where login is a pre-requisite, like posting a status. You very well know it is bound to fail. So make it fail faster, publish the results faster so that the defect can be resolved faster.

The next thing is again something that you must have heard before – you cannot and should not try to automate everything.

Select test cases which, if automated, will benefit considerably from Human Testers and have a good Return on Investment. For that matter, there is a general rule which says that you should try to automate all your Priority 1 test cases and if possible then Priority 2.

Automation is not easy to implement and is time-consuming, so it is advised to avoid automating low priority cases at least till the time you are done with the high ones. Selecting what to automate and focusing on it improves the application quality when used and maintained continuously.

Conclusion

I hope by now you must have understood why and how badly manual/human testing is required to deliver Quality Products and how Automation compliments it.

Accepting the importance of QA Manual Testing and knowing why it is special, is the very first step towards being an excellent manual tester.

In our upcoming manual testing tutorials, we will cover a generic approach for doing Manual Testing, how it will co-exist with Automation and many other important aspects as well.

I’m sure that you will gain immense knowledge of Software Testing once you go through the entire list of tutorials in this series.

We would love to hear from you. Feel free to express your thoughts/suggestions in the comments section below.

Was this helpful?

Thanks for your feedback!

Recommended Reading

45 thoughts on “What Is Software Testing? 100+ Free Manual Testing Tutorials”

  1. I read the entire blog and gained an understanding of the uses of testing in the software field. It’s very useful for newbies to understand.

    Reply
  2. Apply equivalence partition & boundary value analysis for below scenario:
    – Withdraw 2000 rs from ATM and 500 rs note only available in ATM

    Reply
  3. You are not a manual tester, unless you are testing manuals. You are a tester. You DO use tools. You may not be writing automated checks.- Micheal bolton

    Reply
  4. Nice way to put or describe the importance of Manual Testing. I have about 15 years of experience in Testing both manual and automation. I can strongly say from my heart, I always found complex (high priority) bugs using manual testing. Automation testing will help to save your schedule by burning the normal test cases quickly, so the remaining time can spend on finding quality bugs by applying all the qualities mentioned here. This is what I’m doing in all these years in industry and it earned me lot of respect from others and quick identification for me whichever project I land. So I will again re-iterate there is no replacement for manual testing (fully? even after robots come to testing in near future) and the complexity bugs (I mean which will really come after product or application is launched for end users) will be found only by applying above mentioned qualities “curiosity, attention to details, discipline, logical thinking, passion for work and ability to dissect things”

    Reply
  5. Thanks for sharing your view. Last 3-4 paragraphs are really very interesting.

    But these days most of the companies have jobs more and more in automation testing even if we know most of the work is done manually in most of the companies.

    Reply
  6. Hii Mahesh!
    Thanks for such a valuable information about software testing and I agree with you that automation cant replace human testing. I am currently a beginner in this field and would love to gain more knowledge about this in depth.

    In today’s world software testing helps in software adaptability, identify errors, avoid extra costs, accelerates software development, avoid risks and to optimise business which is so important. I know that many of the beginners in this field would love to gain more knowledge, also would have questions regarding it and it is not possible for everyone to get their answers.

    Reply
  7. Explained it is in genuine and open straight way to the Testers,
    But every manual tester should have any other expertise lie automation/API testing or other ETL testing along with technical knowledge(LINUX/ XML configuration testing). I just give sample as per my knowledge.

    Reply
  8. Much appreciated! This current one’s a decent perused! Manual testing expects us to be inventive in making experiments to ensure we cover however much situations as could reasonably be expected. It likewise enables us to better comprehend the application, programming, API, or highlight and upgrade our specialized abilities too. Computerization then again is similarly vital to spare us time doing manual and tedious tests.

    Reply
  9. Hi,

    After clicking on the “Gamma Testing” under Software Testing Types, It shows only the image of Gamma Testing and not the content.

    Reply
  10. Very much useful article for me as I am an Electrical Engineer and working in the Software company by holding the position of Software Tester.
    I am the one who not had deep knowledge of Computer field. But I planned to do some courses for software languages which will be useful to me to be a Great Tester.

    Reply
  11. softwaretestinghelp.com/what-is-software-testing-life-cycle-stlc/

    In the below link SDLC phases are provided instead of STLC or provided one is correct..?

    Reply
  12. The content is very useful to us and gathering for more knowledge in the domain. we provding the manual software testing training in trichy for all streaming of students.

    Reply
  13. Thanks Vijay!
    I agree with Naga Sekhar that one technical knowledge should be here along with manual function testing.
    But expecting a blog of steps for manual tester to learn Automation without any knowledge of any language.

    Reply
  14. “Automated testing” is usually just a bunch of scripts running continuously doing regression checks.

    It’s not like replacing manual labour in manufacturing, where the term “automation” probably comes from.

    You really haven’t automated anything. But it’s understandable why sales agents likes the term.

    Reply
  15. Best place for software testing course online, Providing software testing tools, courses, certification, tutorials online. software testing tools.
    software testing

    Reply
  16. Hi i want to know, ether i am eligible for software testing coz i completed Bsc Chemistry and i want to switch in IT field

    Reply
  17. I need some guidance on this course. Actually I am design engineer with 8 yrs of experience in machine design and after that 5 yrs of break. Can I join this course and change my field?

    Reply
  18. As a manual tester in the age of automation I’m hitting a brick wall in the work search. Automation has it’s place but it only looks where you tell it. If I’m doing a functional test opening a screen and half the screen turns blue or audio starts screeching I know it’s an issue. If the automation is looking for the page to come up without looking for these other issues it would pas.
    I’m an old hand tester having been in the industry since 1990.

    Reply
    • Hello @Roger, first of all respect to your so many years of service to community. Wish you luck. Agree with what you said.

      Reply
  19. Very Helpful in self motivation and interview point of view. i found that i an inbuilt tester. thank you soo much..

    Reply
  20. Thanks! This one’s a good read! Manual testing requires us to be creative in creating test cases to make sure we cover as much scenarios as possible. It also allows us to better understand the application, software, API, or feature and enhance our technical skills as well. Automation on the other hand is equally important to save us time doing manual and repetitive tests.

    Although automation is the current trend, it can never replace manual testing.

    Reply

Leave a Comment