TASK 3
Tags: softwaredevelopment, java, selenium, testing
Published: 2024-03-13 09:36:06

## Question: 1 -> List down all models of SDLC

**<u>Answer:</u>**

**Models of SDLC:**
--------------
1. Waterfall Model
2. V-Model (Verification and Validation Model)
3. Prototype Model
4. Spiral Model
5. Iterative Model
6. Incremental Model
7. Big Bang Model
8. Agile Model (Includes various methodologies/Frameworks such as Scrum, Kanban, etc.)
9. Rapid Application Development (RAD) Model
10. DevOps Model

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

## Question: 2 -> What is STLC ? Also, Explain all stages of STLC.

**<u>Answer:</u>**

STLC (Software Testing Life Cycle) is a process performed by Testing team to validate and ensure the software Quality.

**Stages in STLC:**
--------------

_<u>1. Requirement Analysis:</u>_
-> In Initial stage, Testing team will work with Product Owner to understand the requirement of application.
-> Requirement will be done from testers point of view. Like, Checking whether the requirement can be tested or not.
-> Main objective is to understand the requirement specifications of software and making sure whether we can able to perform testing in all fields.

_<u>2. Test Planning:</u>_
-> Test planning is a stage where we do planning on how to conduct test, and what kind of tools required and, also how many resources needed.
-> Also, we will decide to choose which approach of testing technique has to be implemented for each requirement.
-> Test Estimation , deciding the test approach and techniques also entry and exit criteria.

_<u>3. Test case preparation:</u>_
-> Test cases will be developed with test steps for each and every scenario.
-> Test case will be developed with following contents,
   Test case ID, Scenario headline, Test case title, Preconditions, Test steps, Expected result, Actual result, Status(pass/fail), comments.
-> Test case will be reviewed and approved by PO.

_<u>4. Test Environment setup:</u>_
-> We need a test environment to test the application, which will be similar to production environment.
-> Environment setup has to be made with respective configuration and infrastructure that is required for testing.
-> If needed test data also prepared and loaded in this environment.

_<u>5. Test Execution:</u>_
-> Test execution is stage where we actually performs the testing actions we wrote in test cases.
-> As per test case and requirement, all the field will be validated and if any discrepancy found we need to raise a defect and report it.
-> We have to make sure that test results are recorded and documented.

_<u>6. Defect logging and tracking:</u>_
-> We will raise a defect if we found any issues or discrepancy in software application.
-> We will use a tool to log a defect and track it, like JIRA.
-> We have yo prioritize the defects as per severity and priority.
-> In JIRA or other defect tracking tool, we can track the defect status and to get resolution from developers.
-> Once defect is fixed, we do retest and validate it.

_<u>7. Test Reporting:</u>_
-> Test reporting involves generating test reports to communicate the progress, results, and quality of the testing effort to stakeholders.
-> Based on testing report the stakeholders will take a decision on software release.
-> Test report will include Test coverage, defect density and execution report.

_<u>8. Test Closure:</u>_
-> Test closure marks the end of the testing phase.
-> It involves evaluating the testing process, identifying lessons learned, and documenting best practices and areas for improvement.
-> Test closure also includes obtaining sign-off from stakeholders indicating that testing is complete and the software is ready for release.

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

## Question: 3 -> Risk factors that need to include in test plan

**<u>Answer:</u>**

When creating a test plan for a web-based application, it's important to consider various risk factors that could affect the functionality, security, performance, and usability of the application.
Risks factors called as RAID block. Risks Assumptions issues dependencies

-If we depend on any team if they did not deliver the work this will affect our schedule
-If we need any equipment's or tools from client or management, then we depend on that, If its not delivered on time that will affect our execution.
-Also we need to plan resources, if anyone is not available means that will also affect the deliver
-If there is sudden requirement change has been told means, we need to plan such cases also.
-And Natural Disaster also a risk factor in test planning.
Like above we can assume lot of list factors depends on our application

Some of the common risk factors we need to take care every time.

-> _<u>Functional Risks:</u>_

Misunderstanding the requirement, we need to ensure that we understand the requirement completely.

-> _<u>Security Risks:</u>_
Unauthorized access to sensitive data or resources due to security vulnerabilities. we should plan a clear strategy and risks factors when it comes to security testing.

-> _<u>Performance Risks:</u>_
There might be performance issues like slow down, late response due to inadequate server.
There might be a chance of environment failure, then we should plan to do testing in different environment

-> _<u>Compatibility Risks:</u>_
Need to check in all browsers and platforms to make sure application functions as expected in all areas

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

## Question: 4 -> What is QA & QC ? Distinction between QA and QC responsibilities

**<u>Answer:</u>**

**Quality Assurance (QA):**
-----------------------

Quality Assurance (QA) is a process of ensuring that the processes, procedures, approaches, techniques and standards used to develop and deliver products meet predefined quality requirements. Assurance will be given by organization management, giving a positive declaration on product which obtains confidence outcome.

-> QA focuses on preventing defects by following and implementing processes, standards, and guidelines throughout the product development lifecycle.
-> Responsibilities include defining quality objectives, designing quality management systems, establishing quality standards and metrics, and ensuring compliance with industry regulations and best practices.
-> QA ensures that processes are in place to identify potential issues early in the development process, thereby minimizing the likelihood of defects in the final product.
-> QA activities involve continuous monitoring, evaluation, and improvement of processes to enhance efficiency, effectiveness, and overall product quality.
-> Examples of QA responsibilities include developing quality assurance plans, conducting process audits, providing training and support to team members, and promoting a culture of quality within the organization.

**Quality Control (QC):**
---------------------

Quality Control (QC) refers to the set of activities and techniques used to evaluate and verify that a product meets specified quality requirements and standards.

-> QC focuses on identifying defects and deviations from quality standards through inspections, testing, and analysis of the final product or service.
-> Responsibilities include conducting product inspections, performing tests to verify compliance with specifications, analyzing defects.
-> QC ensures that the final product meets specified quality requirements and satisfies customer expectations by detecting and rectifying defects before delivery.
-> QC activities involve both manual and automated testing processes, including functional testing, regression testing, performance testing, and usability testing.
-> Examples of QC responsibilities include executing test cases, analyzing test results, reporting defects, collaborating with development teams to resolve issues, and ensuring the overall quality of the final product.

In summary, QA sets the standards and guidelines for product development, whereas QC validates whether those are satisfied. In other words QC activities focus on identifying defects in the actual products, QA responsibilities aim to prevent defects by establishing and maintaining effective processes, standards, and guidelines.

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

## Question: 5 -> Difference between manual and automation testing

**<u>Answer:</u>**

**Manual Testing:**
--------------

Manual testing is the process of manually testing the software application and executing test cases to identify defects or errors in software without using any automated testing tools or techniques.

-> Test cases are executed manually by human testers, who interact with the software application's user interface (UI) to perform various tests, validate functionality, and verify expected behavior.
-> Manual testing allows testers to adapt test cases and test scenarios dynamically based on their intuition, domain knowledge, and exploratory testing techniques. where testers explore the software application dynamically to uncover defects and identify potential areas of improvement.
-> Manual testing is effective testing as human eye can catch more defects and also we can test scenarios that involve subjective evaluation, and real time user experience validation.
-> Manual testing offers flexibility and adaptability in test execution, allowing testers to make real-time decisions and adjustments.

**Automation Testing:**
-------------------

Automation testing is the process of using automated testing tools and scripts to execute test cases, validate software functionality, and compare actual results against expected results.

-> Test cases are automated using specialized testing frameworks, scripting languages, and test automation tools, allowing for the automated execution of repetitive test scenarios and regression testing.
-> Automation testing ensures repeatability and consistency in test execution by eliminating human errors and variability in testing processes.
-> Automation testing is ideal for regression testing, where repetitive test cases are executed to verify that new changes or enhancements do not adversely affect existing functionality.
-> Automation testing is scalable and efficient for testing large and complex software applications, enabling faster test execution and broader test coverage.

In summary, Both Manual and Automation are effective in market. We can go with manual testing in initial phase of software testing and can convert it to automation in future for doing large amount of testing. If the application is more dynamic we can adopt manual testing, if application is stable then lets go with Automation approach. Manual testing needs more resources and time, But Automation testing need only tools and script for execution. Manual testing is suitable for exploratory testing, usability testing, and scenarios requiring subjective evaluation, while automation testing is suitable for regression testing, performance testing, and scenarios requiring repetitive test execution.

=== = * = === = * = === = * = === = * = === = * = === = * = === = * = === = * = === = * = === = * = === = * = === = * = === = * = = = *