Manual Testing Tutorial (Free Course with 100+ Tutorials)

The Complete List of 100+ Manual Testing Tutorials.

This is going to be the most in-depth series of tutorials on the manual software testing topic. Go through the topics in this series to learn the basic and advanced testing techniques.

I will explain it in my own way and try to keep this manual testing tutorial series as simple as possible. 

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

Tutorial #1: Basics of Manual 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

Tutorial #6: 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 Testing

Tutorial #3: Smoke Testing

Tutorial #4: Regression Testing

Tutorial #5: System Testing

Tutorial #6: Acceptance Testing

Tutorial #7: Integration Testing

Tutorial #8: 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: Accessibility Testing 

Tutorial #11: Alpha Testing

Tutorial #12: Beta Testing

Tutorial #13: Alpha vs Beta Testing 

Tutorial #14: Gamma Testing

Tutorial #15: ERP Testing

Tutorial #16: Static Testing

Tutorial #17: Dynamic Testing 

Tutorial #18: Adhoc testing 

Tutorial #19: Localization Testing

Tutorial #20: Internationalization Testing

Tutorial #21: Automation Testing

Tutorial #22: White box testing

Software Testing Career:

Tutorial #1: Choosing 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 Application:

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 

************************************************************************

Let’s begin with the 1st tutorial in the series.

What You Will Learn:

Tutorial #1: Basics of Manual Testing

Well, what does the word ‘Manual Testing’ tell you? Any testing which you do manually right? Though it be manual functional testing or measuring the response time of a web page manually or a security test which you perform manually. Same is not the case with our Testing industry. :)

Here when anyone says ‘Manual Software Testing’, it strictly means ‘Manual Functional Testing‘.



Yes, that’s what we are going to talk about in this series – ‘Manual Functional Testing‘ or you can say Manual Testing as you can better relate to this term.

You must be thinking why STH and I want to revisit this topic which is very basic of Software Testing and there might be many articles already floating in the internet space.

The reason is simple – It deserves much more than what we all have talked about. It deserves for being the very base of almost every Tester’s career. I do not have specific data about how many testers started their career as Manual Tester, but we all know right, the majority of us started there and the majority of our future testers will start there probably.

Hence, it is very important that we the existing Testers, understand it perfectly so as to educate future testers. It is even more important for people who are looking forward to choosing Testing as a career.

I am of opinion that understanding, execution, and experience of manual Software testing will play a big role in your overall career if you are starting your journey with it.

I can frame this topic in industry style words and definitions, but I guess that won’t keep it easy to understand and relate for entry level testers, someone who is a novice.

So I will explain it in my own way and try to keep this manual testing tutorial series as simple as possible.

What is QA Manual Testing?

Manual Testing (Manual Functional Testing) is a process in which you compare the behavior of a developed piece of code (software, module, API, feature, etc.) against expected behavior (Requirement). And how do you know what is the expected behavior? By reading or listening to the requirement and understanding it fully.

Remember, understanding the requirement completely is very very important. Think of yourself as a consumer of what you are going to test. After that, you are no more bound to some requirement document or words in it. You then understand the core requirement and not only check system behavior against what is written or told but also against your own understanding and against things which are not written or told.

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

To further add, a requirement we talked about need not necessarily should be documented one. You can very well have knowledge of software functionality or you can even guess and then test it one step at a time. You can call it ad-hoc testing or exploratory testing (totally different topic to talk on).

Let’s understand it further

First of all, let’s face one fact. If you compare testing a software versus testing something else (vehicle let’s say), the concept (as stated above) remains same.  Approach, tools, priorities might differ. At the core it remains ONE and SIMPLE – comparing actual behavior with expected behavior (I mean the understood expected behavior as explained in above paragraph).

The second thing may be best or worst part- Testing skill is something which should be within you. It can be learned, but only when you have few qualities by default in you. When I say it can be learned, I just mean focused and formal education around that particular testing.

I said best or worst because I don’t know if you have those needed qualities in you. You got to figure it out. I will try to help. I highly recommend you going through this before continuing. It will help you compare your qualities against the ones expected in Software Tester role.

Read it here => Qualities of Highly Effective Testers

If you are in a hurry, read this.

“Your curiosity, attention to details, discipline, logical thinking, passion for work and ability to dissect things is all what matters to be a Destructive and Successful Tester. It worked for me and I strongly believe it will work for You. If you have these qualities, it got to work for you.”

Now as we have talked about the core and pre-requisites of becoming a software tester, let’s understand why it has and would always have its independent existence without or with Automation testing growth.

The Need for Manual Software Testing

You know what is the best and richest part of being a Tester and particularly Manual Tester? It is the fact that you can’t run only on skillset here. You got to have/develop and enhance your thought process. This is something you can’t really buy for few bucks. You yourself have to work on it.

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

I hope you have gone through the article I recommended in the previous section (i.e the qualities of highly effective testers). It will give you much clarity over how testing is a thought process and how successful you will be as a tester depends on the qualities you have as a person.

Let’s see this simple flow:

Life of a Tester

Read these four bullet points again. You noticed I kept it very short and still highlighted richest part of being a manual tester? And did you noticed the bold highlighting over few words? Those are precisely the most important qualities a manual tester needs.

Now, do you really think these acts can be replaced by anything completely? And the hot topic, will it get replaced with automation?

In Software Testing Life Cycle with any development methodology, few things always remain constant. As a tester, you will consume the requirements, convert them into Test Scenarios/Test cases. You will then execute those test cases or directly automate them (I know few companies do it). When you automate it, your focus is steady, that is automating the steps written.

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

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

Test Case writing simplified

I am filling up a form, done with filling 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 with filling up the next and last field too, now I need to click on Submit button, the focus is still on the last field. Ohh shit, I accidentally hit the ‘Enter’ key. Let me check what happened. OR there is a submit button, I am gonna double click it. Not satisfied. I click it multiple times, too fast.

Do you see? There are so many possible user actions, both intended and non-intended 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 will go on adding your new test cases as you test application. These will be test cases for bugs you encountered for which previously there was no test case written. Or, while you are testing, something triggered your thought process and you got few more test cases which you will like to add to your test case suite and execute.

Even after all this, there is no guaranty 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 same, similar to but not limited to example process we same above.

At least as of today, there is no software which will think like a human mind, observe like a human eye, ask questions and answer them like a human and then perform intended and non-intended actions. Even if let’s say such thing comes (can’t imagine), whose mind, thoughts and eye it will mimic? Yours or mine? We humans are also not same right. We all are different. Then?

Need of Manual Testing when Automation is around

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

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

Automation can’t replace Human Testing because:

If I am allowed to be sarcastic- 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, all this at run time 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 few years will look close to it, but in real life, I can’t see it coming for few hundred years I can imagine of. I won’t write it off forever as I believe in endless possibilities. On a separate note, if it really happens even after few hundred years, the picture I can imagine that world is scary for sure. Age of Transformers. :)

How Automation compliments Manual Testing

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

Most of the time, deploying more and more workforce doesn’t help in the wrong run for this task. Hence, a Tester (Test Lead/Architect/Manager) in this case have to decide cautiously on what to automate and what to do still do manually.

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

Note: The word continuous from the term ‘Continuous Testing’ is subjected to conditional and logical calls similar to other terms 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 of Human Testers and automated checks (tests with precise steps, expected result and exit criteria of said test documented) achieving Continuous Testing is very difficult and which in turn will make continuous integration, continuous delivery and continuous deployment more difficult.

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

E.g.: Let’s say, there is a blocker 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 checks where login is 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 defect can be resolved faster.

Next thing is again something you must have heard before – You cannot and should not try to automate everything. Select test cases which if automated will benefit considerably to Human Testers and has good Return on Investment. For that matter, there is a general rule which says you should try to automate all your Priority 1 test cases and if possible then Priority 2.

Automation is not very easy and fast activity so it is advised to avoid automating low priority cases at least till the time you are done with high ones. Selecting what to automate and focusing on it benefits very nicely to application quality when used and maintained continuously.

Conclusion

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

I will be more than happy if I was able to take you with me till this point. 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 the coming 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.

Stay tuned.

About the author: This article is written by STH team member Mahesh C. He is currently working as Senior Quality Assurance Manager having experience of leading testing front for multiple complex products and components.

Thank you for reading. Will love to hear from you.