,

Comprehensive Tutorial on Manual Testing: Types and Techniques

Posted by

Manual testing is a fundamental part of the software development process, where testers manually execute test cases without using automation tools. It involves checking the functionality, usability, and overall quality of the software from an end-user’s perspective. This tutorial explores various types and techniques of manual testing, providing detailed insights into each method.

What is Functional Testing

Functional testing ensures that the software behaves according to the specified requirements. It involves testing the user interface, APIs, databases, security, client/server applications, and the overall functionality of the software application. The primary focus is on verifying that the application functions as intended.

Key Steps in Functional Testing

a. Understand Requirements: Analyze the software requirements and specifications to identify what functionalities need to be tested.
b. Test Case Design: Write detailed test cases that cover all functional aspects of the application.
c. Test Execution: Manually execute the test cases to check if the software meets the functional requirements.
d. Defect Logging: Record any discrepancies or defects found during testing in a defect tracking system.
e. Verification: Re-test defects after fixes to ensure the functionality works as expected.

Functional Testing Techniques

a. Equivalence Partitioning: Divide input data into equivalent partitions and test one representative value from each partition.
b. Boundary Value Analysis: Focus on testing at the boundaries between partitions, as errors often occur at these boundaries.
c. Decision Table Testing: Use decision tables to represent combinations of inputs and their corresponding outputs, ensuring all scenarios are tested.

What is Smoke Testing

Smoke testing is a preliminary testing technique used to verify whether the critical functionalities of a software build are working correctly. It serves as a “build verification test” to ensure the software is stable enough for further testing.

Smoke Testing Key Characteristics

a. Conducted on initial builds to ensure stability.
b. Focuses on testing critical functionalities.
c. Quick and simple checks to verify stability.
d. Can be automated or performed manually.

Example

In a login application, smoke testing would verify that the login screen loads accepts user input, and successfully navigates to the main page after the correct login credentials are entered.

What is Sanity Testing

Sanity testing is a subset of regression testing performed after receiving a software build with minor changes. It verifies that specific functionality or bug fixes work as expected without introducing further issues.

Sanity Testing Key Characteristics

a. Focused testing on specific functionality or bug fixes.
b. Ensures changes have not adversely affected existing functionality.
c. Quick and narrow regression check.

Example

If a new button is added to a form, sanity testing will ensure that clicking the button performs the expected action without affecting other parts of the application.

What is Regression Testing

Regression testing involves re-testing a software application after changes have been made to ensure that existing functionality still works as intended. It is crucial when enhancements or bug fixes are implemented.

Regression Testing Key Characteristics

a. Ensures new changes don’t adversely affect existing functionality.
b. Comprehensive testing of related areas.
c. Often automated for efficiency, but manual regression testing is essential for specific scenarios.

Regression Testing Techniques

a. Retest All: Re-execute all test cases from the beginning to ensure comprehensive coverage.
b. Selective Regression Testing: Re-run only a subset of test cases affected by recent changes.
c. Automated Regression: Use automated tools to execute regression test suites for faster and more efficient testing.

What is User Acceptance Testing (UAT)

User Acceptance Testing (UAT) is the final phase of testing before software is released to production. It is performed by end-users or clients to validate that the software meets business needs and requirements.

Key Steps in User Acceptance Testing (UAT)

a. Plan UAT: Define UAT objectives, scope, and participants.
b. Design UAT Scenarios: Create test scenarios that reflect real-world use cases.
c. Execute UAT: Conduct testing sessions with end-users to evaluate the software.
d. Document Issues: Record any discrepancies between expected and actual results.
e. Feedback and Sign-off: Gather feedback and obtain approval for production deployment.

Example

In an e-commerce application, UAT might involve a user completing a purchase, ensuring all steps from product selection to payment processing function correctly.

What is Non-Functional Testing

Non-functional testing focuses on aspects of the software not related to specific behaviors or functions. It evaluates attributes like performance, usability, reliability, and security.

Key Areas of Non-Functional Testing

Performance Testing: Assess speed, responsiveness, and stability under various conditions.
Usability Testing: Evaluate the user interface and overall user experience.
Security Testing: Identify vulnerabilities and ensure data protection.
Compatibility Testing: Verify software compatibility across different devices, browsers, and platforms.

What is Performance Testing

Performance testing determines the speed, scalability, and stability of a software application under a specific workload. It identifies performance bottlenecks and ensures the application meets performance criteria.

Performance Testing Key Types

a. Load Testing: Simulates multiple users accessing the application simultaneously to check its behavior under expected user load.
b. Stress Testing: Tests the application beyond its limits to see how it handles extreme conditions.
c. Endurance Testing: Assesses the application’s performance over an extended period to ensure it can handle prolonged use.

Example

Testing an e-commerce website to ensure it can handle high traffic during a sale event without performance degradation.

What is Load Testing

Load testing evaluates an application’s performance under expected user loads. It checks how the application behaves when multiple users access it simultaneously.

Load Testing Objectives

a. Identify performance bottlenecks that may impact user experience.
b. Ensure the application can handle anticipated user loads without crashing.
c. Validate response times and throughput under load.

Example

Testing an online banking application to ensure it can handle high volumes of transactions during peak hours.

What is Stress Testing

Stress testing involves testing the application beyond its normal operational capacity to identify its breaking point and ensure it can recover gracefully from failure.

Stress Testing Objectives

a. Determine the application’s stability under extreme conditions.
b. Identify system limitations and failure thresholds.
c. Validate the application’s ability to recover from failure.

Example-

Increasing the load on a social media platform to see how it handles unexpected surges in user activity and whether it can recover smoothly after a crash.

What is Usability Testing

Usability testing evaluates how easily end-users can interact with a software application. It focuses on user-friendliness, navigation, and overall user experience.

Usability Testing Key Areas:

a. Ease of Use: Assess how easily users can complete tasks without confusion.
b. Navigation: Evaluate the intuitiveness of the user interface and menu structure.
c. User Satisfaction: Gather user feedback on their experience and satisfaction with the application.

Example

Testing an online booking system to ensure users can easily search for flights, select options, and complete a booking without confusion.

What is Security Testing?

Security testing identifies vulnerabilities in a software application to ensure its data and resources are protected from potential threats and unauthorized access.

Security Testing Key Objectives

a. Identify security vulnerabilities and weaknesses that could be exploited.
b. Ensure data protection and integrity by implementing robust security measures.
c. Validate authentication and authorization mechanisms to prevent unauthorized access.

Security Testing Techniques

a. Penetration Testing: Simulate attacks to identify security weaknesses and vulnerabilities.
b. Vulnerability Scanning: Use tools to scan for known vulnerabilities and ensure they are addressed.
c. Security Audits: Review security policies, practices, and codes to identify potential security risks.

Example

Conducting security testing on a financial application to ensure sensitive data is encrypted and protected against unauthorized access.

Conclusion

These manual testing types and techniques ensure that software applications meet functional and non-functional requirements, providing a high-quality user experience while maintaining security and performance standards. By applying these testing methods, testers can identify and resolve issues early in the development cycle, ultimately delivering robust and reliable software.

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x