Manual Testing

Advanced Functional Testing Types

Deep dive into Sanity, Risk-based, Adhoc, Exploratory, and Monkey Testing with practical scenarios and interview questions

Lesson Overview

Today we'll explore advanced functional testing types that are crucial for real-world testing scenarios. You'll learn when and how to apply different testing strategies based on time constraints and project requirements.

Testing Types

5 advanced techniques

Interview Questions

Common scenarios

Practical Applications

Real-world examples

Functional Testing Overview

What is Functional Testing?

In Functional Testing, we verify the application functionality works as per the client requirements.

There are 13 different types of functional testing techniques:

1. Smoke Testing
2. Retesting
3. Regression Testing
4. Sanity Testing
5. Adhoc Testing
6. Exploratory Testing
7. Monkey Testing
8. Risk Based Testing
9. Integration Testing
10. User Acceptance Testing
11. API Testing
12. Database Testing
13. Black Box Testing

Advanced Testing Types

4

Sanity Testing

  • • Sanity is done at release level
  • • Sanity Testing is subset of Regression Testing
  • • We quickly validate current sprint main (core/basic) functionality works as per client requirements
  • • We don't write test cases for sanity testing, we pick necessary test cases from already written ones
  • • If found any defect in sanity testing, we log defect to development team and do retesting once resolved
  • • Most of the time due to time constraints we don't get enough time for regression testing, so we choose sanity testing
  • • Can be performed manually or automation

When to Use Sanity Testing:

  • • Time constraints in Agile model
  • • Pressure from Product Owner or Scrum Master to complete testing before EOD
  • • Need to test current sprint functionality quickly
5

Risk Based Testing / Priority Based Testing

  • • Identify the critical functionality of the application and provide priority to test cases
  • • First test high priority test cases, then medium priority, then low priority if time remaining
  • • If can't complete high priority test cases within time, convince Scrum Master/Product Owner to extend Sprint Life Cycle
  • • If completed high priority but medium and low priority remaining, release sprint functionality and test remaining in next release

Interview Question: 100 Test Cases Before EOD?

What do you do if you have 100 test cases and need to execute before EOD or within hours?

Answer: Use Risk Based Testing - prioritize and execute high priority test cases first, then medium and low priority if time permits.

6

Adhoc Testing

  • • Adhoc Testing is type of informal testing with aim to find defects by doing negative testing
  • • Adhoc Testing is unplanned activity
  • • Does not follow any process and test cases technique to find defects
  • • Done when tester has higher knowledge about the application functionality
  • • Does not follow any documentation, no planning, and no process
  • • Means test the known [domain] application

Example:

Test Gmail Application → Adhoc Testing (known application)

7

Exploratory Testing

  • • Exploratory Testing means explore the application functionality and test it
  • • Understand application current sprint requirements documents or refer existing sprint documentations
  • • When we are not aware about application functionality and test it with help of documentation and test data
  • • Test level by level application functionality
  • • Test unknown application functionality as per requirement documents, test data, or existing documentation

Example:

Test Cogmento CRM application → Exploratory Testing (unknown application)

Interview Scenario: Testing Unknown Functionality

Q: How to test unknown functionality without documentation?

  1. Ask senior for KT (Knowledge Transfer) on application functionality
  2. If no time for KT, ask for current sprint documentation
  3. If no current sprint docs, ask for existing sprint documentation, test data, or test cases
  4. As per documents, explore application and test one by one using Exploratory Testing
8

Monkey Testing

  • • Monkey testing is also called Speed Testing or Gorilla Testing
  • • Monkey Testing is conducted to find tricky defects in applications

Alternative Names:

  • • Speed Testing
  • • Gorilla Testing

Visual Examples & Comparisons

Testing Types Comparison - Visual Guide

Testing Types Comparison Diagram

Detailed Differences Document

Important Comparisons

Smoke Testing vs Sanity Testing

Smoke Testing

  • • Day 0 testing (10-15 minutes)
  • • Build verification
  • • Subset of Acceptance Testing
  • • Never log defects - reject/accept build

Sanity Testing

  • • Release level testing
  • • Current sprint functionality validation
  • • Subset of Regression Testing
  • • Log defects and do retesting

Adhoc Testing vs Exploratory Testing

Adhoc Testing

  • • Test known applications (e.g., Gmail)
  • • No documentation needed
  • • Unplanned activity
  • • Higher domain knowledge required

Exploratory Testing

  • • Test unknown applications (e.g., Cogmento CRM)
  • • Requires documentation/test data
  • • Systematic exploration
  • • Level by level functionality testing

Day 5 Knowledge Check

Question 1 of 5

Sanity Testing is a subset of which testing type?

Key Takeaways

Advanced Testing Types

  • Sanity: Release level, subset of Regression, time constraints
  • Risk-based: High → Medium → Low priority testing
  • Adhoc: Known apps, no documentation, unplanned
  • Exploratory: Unknown apps, with documentation, systematic
  • Monkey: Speed/Gorilla testing, find tricky defects

Key Comparisons

  • Smoke vs Sanity: Build verification vs Release validation
  • Adhoc vs Exploratory: Known vs Unknown applications
  • Retesting vs Regression: Failed vs Pass test cases

Interview Scenarios

  • 100 Test Cases EOD: Use Risk-based Testing approach
  • Unknown Functionality: Ask for KT → Documentation → Exploratory Testing
  • Time Constraints: Choose Sanity over full Regression

Practical Applications

  • Agile Environment: Sanity testing for sprint releases
  • Domain Knowledge: Adhoc for familiar applications
  • New Projects: Exploratory with documentation
  • Critical Issues: Risk-based prioritization

💡 These advanced testing techniques are essential for handling real-world testing challenges, especially in Agile environments with tight deadlines and varying project requirements.

SDET Mastery

Master Test Automation

Home
CurriculumPracticeQ&ACheatsheet
🍵Buy me a Chai

Automation Testing Course

Comprehensive course covering Manual Testing, Java Programming, and Selenium WebDriver

🍵Buy me a Chai
Privacy Policy•GitHub
© 2024 Automation Testing Course. All rights reserved.