Task-1 Testing methodologies & SDLC
Tags: testing, whiteboxtesting, blackboxtesting, typo3
Published: 2024-04-28 14:21:22

## What are different types of Testing?

1. Unit Testing: This involves testing individual units or components of the software to ensure they work correctly in isolation. It's usually automated and focuses on small sections of code.
2. Integration Testing: Integration testing verifies that different modules or components of the software work together as expected. It tests the interactions between these units.
3. Functional Testing: Functional testing checks whether the software meets the specified requirements and functions correctly from the end user's perspective. It focuses on what the software does.
4. Non-functional Testing: Non-functional testing evaluates aspects of the software that are not related to its specific behavior or functionality. This includes performance, security, usability, reliability, and other quality attributes.
5. Regression Testing: Regression testing ensures that changes or updates to the software haven't introduced new defects or broken existing functionality. It involves re-running previous tests to validate that everything still works as expected.
6. Acceptance Testing: Acceptance testing involves verifying that the software meets the acceptance criteria and is ready for release. It's typically performed by end users or stakeholders to ensure it meets their needs and expectations.
7. Load Testing: Load testing assesses the software's performance under expected and peak load conditions. It helps determine how the system behaves under various levels of stress.
8. Stress Testing: Stress testing pushes the software beyond its normal operating conditions to evaluate its robustness and stability. It tests the system's behavior under extreme loads or unfavorable conditions.
9. Usability Testing: Usability testing evaluates how user-friendly and intuitive the software is. It involves observing real users interacting with the system to identify any usability issues or areas for improvement.
10. Security Testing: Security testing assesses the software's ability to protect data and resources from unauthorized access, vulnerabilities, and threats. It includes various techniques such as penetration testing, vulnerability scanning, and code review.

## What are different STLC phases?

1. **** In this phase, testers analyze the requirements documentation to understand the expected behavior of the software, identify testable components, and create a test plan.
2. Test Planning: Test planning involves defining the overall testing strategy, objectives, scope, resources, and timelines. Test plans are created detailing what will be tested, how it will be tested, and who will perform the testing.
3. Test Case Development: Test cases are designed based on the requirements and test plan. These test cases outline the steps to be executed, the expected results, and any preconditions or dependencies.
4. Test Environment Setup: A suitable test environment is set up to replicate the production environment as closely as possible. This may involve configuring hardware, software, networks, and other infrastructure components.
5. Test Execution: Testers execute the test cases prepared during the test case development phase. They run the software under test, input data, and compare actual results with expected results.
6. Defect Tracking and Reporting: Any discrepancies between actual and expected results are logged as defects. Defects are tracked throughout the testing process, and detailed reports are generated to communicate the status and severity of each defect.
7. Test Closure: Once testing is complete, a formal evaluation of the testing process and deliverables is conducted. Test closure activities include finalizing test reports, archiving test artifacts, and gathering feedback for process improvement.

## As a Manual Tester, what qualities  do you possess? Provide examples to illustrate your points?

As a manual tester, possessing certain qualities is essential to excel in the role. Here are some key qualities along with examples to illustrate each point:

1. Attention to Detail: Manual testers need to meticulously review software functionality and identify even the smallest of defects. Example: While performing functional testing on a web application, a manual tester notices that a button supposed to submit a form is not functioning when clicked. Upon further investigation, they find that the button's JavaScript event is not properly linked, leading to the defect's identification.
2. Analytical Skills: Manual testers should be able to analyze complex software systems, understand user requirements, and devise effective test scenarios.Example: During requirement analysis, a manual tester identifies potential ambiguity in the specifications provided by the development team. They raise questions to clarify these ambiguities and ensure that the test cases cover all possible scenarios.
3. Communication Skills: Effective communication is crucial for manual testers to convey defects, testing progress, and any obstacles encountered to stakeholders.Example: After finding a critical defect during regression testing, a manual tester promptly reports the issue to the development team. They provide clear steps to reproduce the defect and suggest possible solutions, facilitating a quick resolution.
4. Problem-Solving Abilities: Manual testers should possess strong problem-solving skills to identify root causes of defects and propose appropriate solutions.Example: While performing compatibility testing on a mobile application, a manual tester discovers that the app crashes on certain devices. They investigate the issue, identify a memory management issue in the code, and suggest implementing optimized memory allocation techniques to resolve the problem.
5. Adaptability: Manual testers often encounter changing requirements and evolving project dynamics, requiring them to adapt quickly to new scenarios and challenges.Example: In an agile environment, a manual tester adjusts their testing approach to accommodate frequent changes in requirements. They collaborate closely with the development team, prioritize testing tasks based on user stories, and provide feedback during daily stand-up meetings.
6. Persistence and Patience: Testing can be repetitive and require patience to ensure thorough coverage of all test scenarios.Example: During performance testing of a web application, a manual tester encounters intermittent network issues causing inconsistent results. Despite the challenges, they persist in troubleshooting the issues, retrying test cases, and eventually isolate the root cause for resolution.

## What is the difference between Waterfall and Agile Methodologies in SDLC?


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/emthy12m10f9bfbvilus.png)