Understanding Manual, Automation,
API, Performance, and Security Testing
Definition: Process of evaluating and verifying that a software application
meets requirements
Importance:
◦ Ensures software quality
◦ Identifies defects early
◦ Improves security and reliability
◦ Enhances user experience
STLC is a systematic process of testing
software to ensure quality and efficiency
Unit Testing
Integration Testing
Manual Testing
Automation Testing
API Testing
Performance Testing
Security Testing
Manual testing includes testing a software manually i.e. without
using any automated tool or any script.
In this type, the tester takes over the role of an end user and tests
the software to identify any unexpected behaviour or bug.
Benefits:
Identifies user experience issues
Effective for small projects
Best for exploratory and usability testing
Effective in finding UI/UX issues
No knowledge of internal program or code is required
Testing happens based on requirements and functionality
White box Testing
Knowledge of internal program design or code is required
Focuses on code logic, paths, and conditions
Typically performed by developers or testers with programming knowledge
Tests individual components or functions of the software
Done at the development stage by developers/Testers
Comes under White box testing (the tester has full knowledge of the internal
workings of the system, including the code, architecture, and logic )
Tests how different units/modules interact with each other
Comes after unit testing and ensures modules work together
correctly
Example: Checking if a login module interacts correctly with a
database
Approaches: Top-down, Bottom-up, Big Bang, and Hybrid
Integration Testing
Tools: Postman (for API integration)
Definition: Automation testing uses scripts and tools to execute test
cases automatically, reducing human effort and improving efficiency.
Why Automation Testing?
◦ Increases test execution speed and accuracy
◦ Allows for frequent and repetitive test execution
◦ Reduces human errors
◦ Supports continuous integration and continuous delivery (CI/CD)
Common Tools: Selenium, Cypress, TestNG, JUnit, Appium (for mobile
testing)
Functional testing is a type of software testing that focuses on verifying
whether the software application functions as intended and meets the
specified functional requirements.
It involves evaluating the software's features, functions, and user
interactions to ensure that it performs correctly and delivers the expected
results.
Testing an application from its non functional attributes
Non functional testing involves testing a software from the
requirements which are non functional in nature.
Types of non functional testing
Performance testing
Load testing
Stress testing
Usability testing
Definition: API testing verifies that an application’s APIs function as expected
by checking request-response behavior, data integrity, and security.
Key Aspects of API Testing:
◦ Validation of API requests and responses
◦ Authentication and Authorization Testing (OAuth, JWT, API keys)
◦ Error handling and status code verification
Definition: Performance testing evaluates an application’s responsiveness,
stability, and scalability under different loads.
Definition: Security testing ensures that an application is protected from
potential security threats and vulnerabilities.
Key Areas of Security Testing:
◦ Authentication Testing: Verifying user identity mechanisms
◦ Authorization Testing: Ensuring users have appropriate access levels
◦ Vulnerability Scanning: Identifying weaknesses in the application
◦ Penetration Testing: Simulating attacks to find security flaw
Incomplete or Ambiguous Requirements
Time Constraints
Resource Limitations
Testing Complex Systems
Dynamic and Changing Environments
Test Data Management
Dependency on External Systems
Reusability of Test Cases
Lack of Test Environment Stability
Defect Management
Early Testing: Start testing as early as possible in the development lifecycle to
catch defects early.
Clear Test Planning: Define objectives, scope, and test strategy before execution.
Use of Test Automation: Automate repetitive and critical test cases to save time.
Comprehensive Test Coverage: Ensure testing covers all functional, non-
functional, and edge cases.
Continuous Testing: Integrate testing into the CI/CD pipeline for faster delivery.
Effective Bug Reporting: Provide clear, detailed bug reports with steps to
reproduce and expected vs. actual results.
Security and Performance Testing: Always include security and load testing in
the testing strategy.