BASICS OF SOFTWARE TESTING AND AUTOMATION TESTING
🔶 1. What is Software Testing?
Definition:
Software testing is the process of evaluating and verifying that a software application or system does
what it is supposed to do.
Purpose:
To find defects
To ensure quality
To validate user requirements
To ensure performance and security
🔶 2. Goals of Software Testing
Identify bugs and errors
Improve software quality
Validate user requirements
Reduce risk of software failure
🔶 3. Principles of Software Testing
1. Testing shows presence of defects
2. Exhaustive testing is impossible
3. Early testing saves time and money
4. Defect clustering
5. Pesticide paradox (same tests won’t find new bugs)
6. Testing is context-dependent
7. Absence of errors is a fallacy
🔶 4. Levels of Testing
Level Description
Unit Testing Test individual modules
Integration Testing Test combined modules
Level Description
System Testing Test complete system
Acceptance Testing Done by client/user
🔶 5. Types of Testing
Type Description
Black Box Testing Test without knowing code
White Box Testing Test with internal code knowledge
Functional Testing Validates system functions
Non-Functional Testing Performance, security, usability
Regression Testing After updates to ensure stability
Smoke Testing Basic functionality check
Sanity Testing Specific functionality check after changes
🔶 6. Manual Testing vs Automation Testing
Manual Testing Automation Testing
Performed by humans Performed by scripts/tools
Time-consuming Fast execution
Prone to errors Accurate and reliable
Good for UI/Usability testing Good for regression, load testing
No programming required Requires scripting knowledge
🤖 Automation Testing
🔶 7. What is Automation Testing?
Definition:
Automation testing uses special software tools to control test execution, compare actual outcomes
with expected results, and report bugs.
🔶 8. Benefits of Automation Testing
Faster execution
Reusability of test scripts
Reliable and repeatable
Cost-effective in long-term
Useful for large projects
🔶 9. Popular Automation Testing Tools
Tool Use
Selenium Web application testing
JUnit/TestNG Unit testing in Java
QTP/UFT Functional GUI testing
LoadRunner Performance testing
Appium Mobile application testing
🔶 10. Limitations of Automation Testing
High initial cost
Not suitable for short-term or UI testing
Requires skilled resources
Can miss unexpected issues that a human might catch