Testing Environments & Functional Testing
Learn about different testing environments and comprehensive functional testing types including Smoke, Retesting, and Regression Testing
Lesson Overview
Today we'll explore testing environments and dive deep into functional testing types. You'll understand the 5 different environments used in software development and master 13 types of functional testing techniques.
Environments
5 testing environments
Functional Testing
13 testing types
Key Concepts
Smoke, Retesting, Regression
Testing Environments
What are Environments?
Environments are where we configure hardware and software configurations for different stages of development and testing.
Dev Environment
Development environment where developers write and test their code
QA Environment
(Test Environment / SIT Environment)Quality Assurance environment for comprehensive testing by QA team
Client Environment
(UAT Environment)User Acceptance Testing environment where clients validate functionality
Staging Environment
(Pre-Production Environment)Final testing environment that mirrors production for last-minute validation
Live Environment
(Production Environment)Production environment where end users access the live application
Functional Testing
What is Functional Testing?
In Functional Testing, we verify the application functionality works as per the client requirements.
Key Testing Types Explained
Smoke Testing
Also called:
- • Build Verification Testing
- • Day 0 Testing
- • Tester Acceptance Testing
- • Smoke Testing is subset of Acceptance Testing
- • Once we get build from Development team, we verify quickly basic (main/core) functionality works or not
- • Smoke testing is done at day 0 within 10-15 minutes
- • By using Smoke testing we verify build is testable or not
- • Helps not to waste time testing whole application if main functionality is not working
- • If main functionality is not working fine, we reject the build
- • If we found blocker defect in smoke testing, we reject the build instead of logging defect
- • If we found general defect, we accept the build and log defects in future
- • We never write test cases for smoke testing, we pick necessary test cases from existing ones
Interview Question: Have you logged defect in Smoke Testing?
Answer: No, we never log defect in Smoke Testing. If we found critical defect then we reject the build. If defect is minor then we accept the build and in future we will log the defects.
Re-Testing
- • Retesting means retest the same application functionality with multiple positive and negative test data once the defect is resolved by dev team
- • If we found any defect in application, we log defect to development team
- • Development team resolves it and shares modified build with testing team
- • Testing team again checks application functionality is working or not as expected by using retesting
- • We perform retesting on failed test cases
- • By using retesting we verify defect is closed or not [fix or not]
Key Points:
- • Performed on Failed Test Cases
- • Verifies if defect is Fixed
- • Tests same functionality with Multiple Test Data
Regression Testing
Two Definitions:
1. If found any defect in test execution, we log to development team. Due to modified code, we validate if any side effect occurs in existing features or functionality.
2. If we add new functionality or modify existing code, we verify if any side effect occurs in existing functionality as well as new functionality.
- • We perform regression on Pass test Cases
- • By using Regression we check if side effect occurs or not
- • We can perform regression by using manually and automation
Key Points:
- • Performed on Pass Test Cases
- • Checks for Side Effects
- • Can be done Manually or Automated
Visual Examples & Diagrams
Testing Environments & Functional Testing - Diagram 1

Testing Types & Methodologies - Diagram 2

Day 4 Knowledge Check
How many testing environments are mentioned in Day 4?
Key Takeaways
5 Testing Environments
- Dev: Development environment for coding
- QA/SIT: Quality Assurance testing environment
- UAT: User Acceptance Testing by clients
- Staging: Pre-production final validation
- Production: Live environment for end users
Smoke Testing
- • Day 0 testing within 10-15 minutes
- • Verify basic/core functionality works
- • Never log defects - reject or accept build
- • Use existing test cases, don't write new ones
Testing Comparison
Retesting: Failed test cases → Verify defect fix
Regression: Pass test cases → Check side effects
Smoke: Core functionality → Build acceptance
13 Functional Testing Types
- • Core: Smoke, Retesting, Regression, Sanity
- • Exploratory: Adhoc, Exploratory, Monkey
- • Specialized: Risk-based, Integration, UAT
- • Technical: API, Database, Black Box
💡 Understanding environments and testing types is crucial for effective test planning and execution. Master the differences between Retesting (failed cases) and Regression (pass cases) testing.