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:
Advanced Testing Types
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
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.
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)
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?
- Ask senior for KT (Knowledge Transfer) on application functionality
- If no time for KT, ask for current sprint documentation
- If no current sprint docs, ask for existing sprint documentation, test data, or test cases
- As per documents, explore application and test one by one using Exploratory Testing
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

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
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.