Database testing
Manual testing is the process in which QA analysts execute tests one-by-one in an individual manner. The
purpose of manual testing is to catch bugs and feature issues before a software application goes live.
Automated testing is the process in which testers utilize tools and scripts to automate testing efforts.
Manual Testing Techniques:
1. Exploratory Testing: Testers explore the application without predefined test cases. They
use their experience and intuition to uncover defects.
2. Ad-hoc Testing: Testers perform tests based on their knowledge of the application
without a formal test plan.
3. Functional Testing: Verify that the software functions according to the specified
requirements. Techniques include:
o Smoke Testing: Execute a subset of test cases to check if the basic functionality
is working.
o Regression Testing: Re-test existing functionality to ensure that new changes do
not introduce defects.
o User Acceptance Testing (UAT): End-users validate the software's usability and
functionality.
4. Non-functional Testing: Assess non-functional aspects like performance, security, and
usability.
o Performance Testing: Evaluate the application's speed, responsiveness, and
scalability.
o Security Testing: Identify vulnerabilities and ensure data protection.
o Usability Testing: Assess the user-friendliness of the application.
5. Compatibility Testing: Ensure the software functions correctly across different devices,
browsers, and operating systems.
6. Boundary Value Analysis: Test input values at the boundaries of defined ranges to
uncover defects related to boundary conditions.
7. Equivalence Partitioning: Divide input data into classes or partitions to test
representative values from each class.
8. Error Guessing: Testers use their intuition and domain knowledge to identify potential
error-prone areas.
Automation Testing Techniques:
1. Test Automation Frameworks: Use established frameworks (e.g., Selenium, Appium,
JUnit, TestNG) to structure and organize automated test cases.
2. Data-Driven Testing: Separate test data from test scripts to run the same test with
multiple data sets.
3. Keyword-Driven Testing: Create test scripts using keywords and actions, allowing non-
technical team members to write and execute tests.
4. Behavior-Driven Development (BDD): Use tools like Cucumber or SpecFlow to write
tests in a human-readable format and promote collaboration between developers and non-
technical stakeholders.
5. Test Scripting: Write automated scripts to perform repetitive tasks and validate
application functionality.
6. Continuous Integration (CI) and Continuous Testing: Integrate automated tests into
CI pipelines to run tests automatically with code changes.
7. Parallel and Distributed Testing: Execute tests concurrently on multiple environments
or devices to save time.
8. Cross-Browser and Cross-Platform Testing: Automate tests to verify compatibility
across various browsers and platforms.
9. Performance Testing Automation: Use tools like JMeter or Gatling for automated load
and performance testing.
10. API Testing Automation: Automate API testing using tools like Postman, RestAssured,
or SoapUI.
11. Code Analysis: Use static code analysis tools to identify potential issues in the test
automation code.
12. Test Maintenance: Regularly update and maintain automated test scripts to keep them
aligned with changing application functionality.