4 - Types of Testing
Enroll to start learning
Youβve not yet enrolled in this course. Please enroll for free to listen to audio lessons, classroom podcasts and take practice test.
Interactive Audio Lesson
Listen to a student-teacher conversation explaining the topic in a relatable way.
Manual Testing vs Automation Testing
π Unlock Audio Lesson
Sign up and enroll to listen to this audio lesson
Today, we're diving into Manual Testing versus Automation Testing. Manual Testing, as the name suggests, involves humans testing software without automated tools. Can anyone tell me where you might prefer to use Manual Testing?
I guess when we need to validate the user interface or when the project is still in early development?
Exactly right! Manual Testing shines in UI testing and exploratory endeavors. Now, let's compare that with Automation Testing. Who can define what Automation Testing is?
Itβs when tests are executed using scripts or tools, right?
Correct! Automation Testing is great for repetitive tasks, like regression testing. Remember the acronym 'FAR'? It stands for Fast, Accurate, Reusable. Can someone summarize the pros and cons of both types?
Manual Testing is flexible but slow, while Automation is fast and reusable but challenging to set up.
Spot on! Reviewing this helps us understand their usage contexts better.
Functional vs Non-Functional Testing
π Unlock Audio Lesson
Sign up and enroll to listen to this audio lesson
Now, let's shift our focus to Functional vs Non-Functional Testing. What do you think Functional Testing aims to verify?
I believe it verifies what the system is supposed to do, like its business logic and expected outputs?
Great answer! Functional Testing includes things like Unit Testing and User Acceptance Testing. In contrast, what about Non-Functional Testing?
It checks how the system performsβlike speed, usability, security!
Exactly! Non-Functional Testing focuses on those quality attributes. Remember this: "What vs How". Can someone provide examples for both?
Functional Testing could include checking login functionality, while Non-Functional Testing might involve performance testing to assess load speed.
Common Types of Testing
π Unlock Audio Lesson
Sign up and enroll to listen to this audio lesson
Let's explore some common types of testing. First, can someone explain what Regression Testing does?
It checks that new code changes haven't unintentionally broken existing functionality?
Correct! Itβs vital after every code change. What about Smoke Testing?
Smoke Testing is a quick set of tests to ensure stability, right?
Exactly! Itβs like checking if the build 'smokes' when turned on. Lastly, what about User Acceptance Testing?
It's done to confirm that the system meets business needs and is ready for production.
Great! Each of these testing types has its critical role in QA, especially understanding when to apply them.
Introduction & Overview
Read summaries of the section's main ideas at different levels of detail.
Quick Overview
Standard
In this section, we categorize testing types into manual and automation, functional and non-functional, and explore various specific types like regression, smoke, and performance testing. Each category has its defining characteristics, use cases, advantages, and disadvantages, aiding QA professionals in selecting the appropriate testing strategy.
Detailed
Types of Testing
This section categorizes testing into various types based on methodology and focus. Understanding these categories is crucial for QA professionals to select the best approach for their project needs.
1. Manual Testing vs Automation Testing
Manual Testing refers to human-led testing endeavors without automated tools, ideal for early-stage projects or infrequently repeated tests. It benefits from human intuition but can be slow and unscalable for repetitive tasks.
Automation Testing, on the other hand, incorporates scripts to automate tests, suitable for repetitive testing needs like regression or performance tests, offering speed and accuracy at the cost of initial setup time and scripting knowledge.
2. Functional vs Non-Functional Testing
Functional Testing focuses on validating the business logic of the applicationβwhat it does. It includes unit testing, integration, system, and UAT.
Non-Functional Testing assesses the system's performance attributes such as speed and usability. Variants include performance, security, and usability testing.
3. Common Types of Testing
Describes specific testing approaches such as Regression, Smoke, Sanity, UAT, and Performance Testing. Each type has unique purposes and triggers, essential to ensure application stability and performance as part of the overall quality assurance strategy. These include:
- Regression Testing: Validates that new changes donβt break existing functionalities.
- Smoke Testing: Ensures core functionalities are stable.
- Sanity Testing: Verifies specific bug fixes.
- UAT: Ensures product meets business needs.
- Performance Testing: Measures system behavior under diverse scenarios.
Final Takeaways
Choosing the appropriate testing type is pivotal, balancing the context, criticality, and test frequency. Manual and automated tests complement each other. Functional testing qualifies the application's actions, whereas non-functional tests define the application's quality under varying conditions.
Audio Book
Dive deep into the subject with an immersive audiobook experience.
Manual Testing vs Automation Testing
Chapter 1 of 4
π Unlock Audio Chapter
Sign up and enroll to access the full audio experience
Chapter Content
Manual Testing
Definition: Testing conducted manually by humans without using automated scripts or tools.
When to Use:
- UI testing, exploratory testing, early-stage projects
- One-time or rarely repeated tests
Pros:
- Human intuition, flexibility
- Better for UI/UX validation
Cons:
- Time-consuming
- Not scalable for repetitive tasks
Automation Testing
Definition: Using scripts or tools to execute tests automatically.
When to Use:
- Regression, performance, data-driven tests
- Repetitive or time-consuming tests
Common Tools: Selenium, Cypress, JUnit, TestNG, Postman (API), JMeter (Performance)
Pros:
- Faster execution, reusable scripts
- High accuracy, better coverage
Cons:
- Requires initial setup and scripting skills
- Not ideal for frequently changing UI
Detailed Explanation
In this chunk, we differentiate between two main types of testing: manual testing and automation testing. Manual testing is where a human tester conducts tests without any tools or scripts, making it suitable for tasks requiring human judgment such as UI/UX validation. It is ideal for early-stage projects or tests that are infrequent. However, it can be time-consuming and not feasible for repetitive tasks.
On the other hand, automation testing employs scripts and tools to automate the execution of tests. This method is well-suited for regression and performance testing, as it allows for faster execution of repetitive tasks with high accuracy. However, it requires technical skills for setup and may not adapt well to frequently changing user interfaces.
Examples & Analogies
Think of manual testing as a chef who prepares a dish from scratch. While they can create a unique taste and adjust the recipe based on their intuition, it takes time and effort. Conversely, automation testing is like using a high-tech kitchen gadget that can mix ingredients and cook automatically. While it speeds up the process and maintains consistency, the gadget needs to be set up correctly and may not adapt well to every recipe change.
Functional vs Non-Functional Testing
Chapter 2 of 4
π Unlock Audio Chapter
Sign up and enroll to access the full audio experience
Chapter Content
Functional Testing
Definition: Verifies what the system doesβits business logic and expected outputs.
Examples:
- Login functionality
- Form submissions
- Payment processing
Types Included:
- Unit Testing
- Integration Testing
- System Testing
- User Acceptance Testing (UAT)
Non-Functional Testing
Definition: Verifies how the system performs, focusing on attributes like speed, security, usability.
Examples:
- Page load speed
- System under stress
- Accessibility for users with disabilities
Types Included:
- Performance Testing
- Load Testing
- Security Testing
- Usability Testing
- Compatibility Testing
Detailed Explanation
This chunk introduces two major categories of testing: functional and non-functional testing. Functional testing checks the core functionalities of the system, ensuring that it behaves as expected under various scenarios. It covers different types, such as unit testing and user acceptance testing, assessing specific functions like login and payments.
In contrast, non-functional testing focuses on how well the system performs, assessing aspects such as speed and security. This type includes performance and usability tests to see how the system behaves under stress or how accessible it is to different users.
Examples & Analogies
Imagine functional testing as a vehicle inspection where you check if the car starts, the lights work, and the brakes function correctly. Non-functional testing, however, is like taking that car for a test drive to see how smoothly it accelerates, handles sharp turns, or how comfortable it is for passengers. Both are crucial, but they focus on different aspects of the vehicle.
Common Types of Testing
Chapter 3 of 4
π Unlock Audio Chapter
Sign up and enroll to access the full audio experience
Chapter Content
Regression Testing
Purpose: Verify that new changes havenβt broken existing functionality.
When: After every code change, bug fix, or release
Tools: Selenium, TestNG, QTP
Smoke Testing
Purpose: A quick set of tests to ensure the core system is stable enough for further testing.
Example: Can users log in? Can the homepage load?
Analogy: βDoes the build smoke when turned on?β
Sanity Testing
Purpose: A focused test to check if a specific function or bug fix works.
Example: A defect in the cart page is fixed β test the cart flow only
Note: Sanity = βAre we sane to proceed with deeper testing?β
UAT (User Acceptance Testing)
Purpose: Ensure the system meets business needs and is ready for production.
Performed By: Business users, stakeholders, sometimes Business Analysts
Focus Areas:
- Real-world workflows
- Usability and behavior
- Business rule validation
Performance Testing
Purpose: Measure how the system behaves under load or stress.
Subtypes:
- Load Testing: Normal expected user load
- Stress Testing: Beyond normal limits
- Spike Testing: Sudden increase in load
- Soak Testing: Sustained usage over time
Tools: Apache JMeter, LoadRunner, Gatling
Detailed Explanation
In this segment, we list some common types of testing encountered in QA processes. Regression testing ensures that changes to the code do not disrupt existing features, performed after any updates. Smoke testing provides a preliminary check to see if critical functionalities are working before further tests are conducted, likened to ensuring a device doesnβt smoke when powered on.
Sanity testing is narrower in focus, confirming that specific fixes are sound before deeper testing proceeds. User Acceptance Testing (UAT) is a pivotal examination to ensure the system fulfills the business requirements and is ready for market introduction, involving actual users or stakeholders. Performance testing assesses the system under various loads to ensure that it can handle real-world usage effectively.
Examples & Analogies
Consider regression testing as checking if a newly painted wall still has no cracks before painting another layer. Smoke testing can be likened to checking if the lights turn on and the engine starts before taking a long trip. Sanity testing is similar to quickly checking if your recently repaired phone can make calls before further testing its other features. UAT is like getting feedback from users who will drive the car to ensure it meets their needs, while performance testing is like stress-testing the engine by driving at high speeds or on steep roads to ensure it doesnβt overheat.
Final Takeaways
Chapter 4 of 4
π Unlock Audio Chapter
Sign up and enroll to access the full audio experience
Chapter Content
Final Takeaways
- Choose testing type based on context, criticality, and frequency
- Manual and automation complement each other
- Functional testing verifies what the app does, non-functional testing verifies how well
- QA should align testing goals with business and technical priorities
βThereβs no one-size-fits-all in testingβchoose the right test at the right time for the right outcome.β
Detailed Explanation
This final chunk summarizes the key points of the section on testing types. It emphasizes that the choice of testing should depend on various factors such as the project's context, how critical particular aspects are, and how often tests need to be performed. It underscores that manual and automated testing strategies can work together effectively and that QA should align testing with both business needs and technical requirements to achieve optimal results.
Examples & Analogies
Think about selecting the right tool for a home improvement project. Just as you wouldn't use a hammer to tighten a screw, in testing, you need to choose the appropriate type of testing based on the specific requirements of your projectβwhether it demands the hands-on approach of manual testing or the efficiency of automation. This ensures the best possible outcome and guarantees the quality of the final product.
Key Concepts
-
Manual Testing: Human-led testing without automation tools, Ideal for ad-hoc scenarios.
-
Automation Testing: Uses scripts for automated testing, best for repetitive tasks.
-
Functional Testing: Validates the application's functional requirements.
-
Non-Functional Testing: Assesses performance attributes of the application.
-
Regression Testing: Ensures code changes don't introduce new bugs.
-
Smoke Testing: Initial testing to verify system stability.
-
Sanity Testing: Focused testing on specific functionalities.
-
User Acceptance Testing: Validation by end-users for business needs.
-
Performance Testing: Evaluates system responsiveness under various conditions.
Examples & Applications
Manual Testing example: Analyzing a new user interface design for responsiveness.
Automation Testing example: Running a suite of tests using Selenium for regression testing.
Functional Testing example: Checking if a user can successfully log in to an application.
Non-Functional Testing example: Measuring how fast a webpage loads under high traffic using JMeter.
Regression Testing example: Testing a shopping cart functionality after a new payment gateway integration.
Smoke Testing example: Quick checks on key features like login or homepage loading after deployment.
Memory Aids
Interactive tools to help you remember key concepts
Rhymes
Manual testing's human flair, automation runs scripts everywhere.
Stories
Imagine a manual tester walking through the application, checking each button like a detective examining clues. Meanwhile, an automation script swiftly runs through the tests like a robot, catching errors in the blink of an eye.
Memory Tools
Remember 'FAR' for Automation: Fast, Accurate, Reusable.
Acronyms
Use 'FANTA' for Functional and Non-Functional Testing
Functional
Automated
Non-functional
Test
and Assess.
Flash Cards
Glossary
- Manual Testing
Testing performed by human testers manually evaluating the application's functionality.
- Automation Testing
Testing where automated tools and scripts are used to execute test cases.
- Functional Testing
Testing that verifies the functional behavior of the system according to requirements.
- NonFunctional Testing
Testing that evaluates how well the system performs its functions.
- Regression Testing
Testing that ensures recent code changes did not adversely affect existing features.
- Smoke Testing
A preliminary test to check the basic functionality before further testing.
- Sanity Testing
A focused test to confirm that a specific function or bug fix is working properly.
- User Acceptance Testing (UAT)
Testing performed by end-users to validate that the system meets their needs and requirements.
- Performance Testing
Testing that assesses how a system performs under heavy usage or stress.
Reference links
Supplementary resources to enhance your learning experience.