STLC & QA TESTING
Published: 2024-04-20 05:30:28

Q1)**MODELS OF SDLC:**

1. Waterfall Model.
2. V-Shaped Model.
3. Prototype Model.
4. Spiral Model.
5. Iterative Incremental Model.
6. Big Bang Model.
Q2) WHAT IS STLC?
STLC stands for Software Testing Life Cycle. STLC is a sequence of different activities performed by the testing team to ensure the quality of the software or the product. STLC is an integral part of SDLC. But, STLC deals only with the testing phases.
 STAGES OF STLC"
Phase 1: Requirement Analysis.
Phase 2: Test Planning.
Phase 3: Test Case Development.
Phase 4: Test Environment Setup.
Phase 5: Test Execution.
Phase 6: Test Cycle Closure.
1) REQUIREMENT ANALYSIS"
    Requirement Analysis is the first step of the Software Testing Life Cycle. In this phase quality assurance team understands the requirements like what is to be tested. If anything is missing or not understandable then the quality assurance team meets with the stakeholders to better understand the detailed knowledge of requirements.  
2) TEST PLANING:
  Test Planning is the most efficient phase of the software testing life cycle where all testing plans are defined. In this phase manager of the testing, team calculates the estimated effort and cost for the testing work. This phase gets started once the requirement-gathering phase is completed.
3) TEST CASE DEVELOPMENT:
       The test case development phase gets started once the test planning phase is completed. In this phase testing team notes down the detailed test cases. The testing team also prepares the required test data for the testing. When the test cases are prepared then they are reviewed by the quality assurance team.

4) TEST ENVIROINMENT SETUP:
Test environment setup is a vital part of the STLC. Basically, the test environment decides the conditions on which software is tested. This is independent activity and can be started along with test case development. In this process, the testing team is not involved. either the developer or the customer creates the testing environment
5) TEST EXECUTION:
After the test case development and test environment setup test execution phase gets started. In this phase testing team starts executing test cases based on prepared test cases in the earlier step
6) TEST CLOSURE:
  Test closure is the final stage of the Software Testing Life Cycle (STLC) where all testing-related activities are completed and documented. The main objective of the test closure stage is to ensure that all testing-related activities have been completed and that the software is ready for release.

Q3)The list of potential risk factors and their explanations that you might include:

1. Performance and Scalability Risk:
This risk relates to the application’s ability to handle a high volume of concurrent users or large datasets efficiently. It includes concerns about response times, load balancing, and database performance.

2. Security Risk:
Security risks involve vulnerabilities that could lead to data breaches, unauthorized access, or other security issues. This includes concerns about authentication, authorization, and data encryption.

3. Compatibility Risk:
Compatibility risks involve the application’s ability to function correctly on various browsers, devices, and operating systems. Ensure compatibility testing covers different combinations.

4. Integration Risk:
This risk pertains to the integration of the web application with other systems or third-party services. Issues may arise related to data exchange, API compatibility, or version conflicts.

5. Data Loss and Recovery Risk:
There’s a risk of data loss due to system failures or unexpected errors. A plan for data backup, recovery, and disaster response should be in place.

6. Usability Risk:
Usability risks involve the user-friendliness of the application. Issues like poor navigation, unclear instructions, or unintuitive user interfaces can negatively impact user satisfaction.

7. Regression Risk:
Changes or updates to the application may introduce unintended side effects or regressions in existing functionality. Regression testing should be comprehensive to mitigate this risk.

8. Network and Connectivity Risk:
Issues related to network latency, dropped connections, or unreliable network conditions can affect the application’s performance and user experience.

9. Compliance and Regulatory Risk:
If the application must adhere to specific industry regulations or compliance standards (e.g., GDPR, HIPAA), non-compliance can result in legal consequences and fines.

10. **Resource and Budget Risk**:
— **Explanation**: There’s a risk of exceeding the allocated resources or budget for testing. This includes personnel, tools, and infrastructure.

Q4)
Quality Assurance (QA):
Preventive in Nature: QA is a proactive approach aimed at preventing defects and ensuring that processes are designed and executed correctly from the beginning. It’s focused on improving processes and methodologies.

Process-Oriented: QA involves defining and implementing standards, guidelines, and best practices for the entire development or production process. This includes establishing process documentation, training, and process improvement initiatives.

Continuous Improvement: QA teams work on optimizing processes to reduce the likelihood of defects or issues occurring in the first place. They may conduct process audits and reviews to identify areas for improvement.

Long-Term Focus: QA is concerned with the long-term stability and consistency of the process, which helps maintain product quality over time.

2. Quality Control (QC):
Detective in Nature: QC is a reactive approach primarily concerned with identifying defects or issues in the final product or output. It involves inspecting and testing the end product to ensure it meets the predefined quality standards.

Product-Oriented: QC activities are focused on the end result, such as products, services, or deliverables. This can include testing, inspections, and reviews of the final output.
Immediate Feedback: QC provides immediate feedback on the quality of the product and helps in making decisions about whether it meets the required quality standards or needs rework.

Short-Term Focus: QC is concerned with ensuring that the current output is of acceptable quality. It doesn’t necessarily address the root causes of defects in the process.

 Q5) 
The key differences between manual and automation testing are

1. Execution Process:

Manual Testing: In manual testing, human testers interact with the software application, following test cases and using various inputs to evaluate its behavior. Testers perform actions like clicking buttons, inputting data, and validating results manually.

Automation Testing: In automation testing, testing tools and scripts are used to execute predefined test cases automatically. Testers write scripts to automate repetitive and time-consuming test scenarios, and testing tools execute these scripts.

2. Speed and Efficiency:

Manual Testing: Manual testing can be time-consuming and less efficient, especially for repetitive and regression testing. Testers may spend a significant amount of time executing test cases manually.

Automation Testing: Automation testing is faster and more efficient for repetitive test cases. Once automation scripts are created, they can be executed quickly and repeatedly, allowing for rapid feedback on changes to the application.

3.Human Judgment:

Manual Testing: Manual testers can use their creativity and judgment to identify unexpected issues, usability problems, and visual defects. They can adapt to changing test scenarios on the fly.

Automation Testing: Automation is rigid and follows predefined scripts. It cannot detect issues that are not explicitly programmed into the scripts. Human judgment and intuition are not a part of automated testing.

4. Exploratory Testing:

Manual Testing: Manual testers can perform exploratory testing to discover new issues or to investigate complex scenarios that are difficult to automate. This is particularly valuable for uncovering usability and edge-case issues.

Automation Testing: Automation is not well-suited for exploratory testing, as it requires predefined test cases. Exploratory testing relies on a tester’s creativity and adaptability, which automation lacks.

5. Initial Investment:

Manual Testing: Manual testing typically requires lower initial investment as it doesn’t involve the creation of automation scripts and the setup of testing tools. Testers need domain knowledge and testing skills.

Automation Testing:Automation testing requires an initial investment in terms of time and resources to develop and maintain automation scripts and infrastructure. However, it can yield significant long-term benefits in terms of regression testing and repetitive tasks.

6. Maintenance:

Manual Testing: Test cases are executed manually, so there’s minimal maintenance effort. Testers need to update test cases as the application evolves or requirements change.

Automation Testing: Automated scripts require regular maintenance to keep them up-to-date with changes in the application. Maintenance can be time-consuming, especially for complex applications.