Task 4 :Agile Methodology
Describe the Differences in between:
1) Smoke & Sanity testing
2) Validation & Verification
Ans:
1) Smoke Testing vs. Sanity Testing:
| Smoke Testing | Sanity Testing |
| Smoke Testing is performed to find the critical functionalities of the program is working fine | Sanity Testing is done to check the new functionality/bugs have been fixed |
| The objective of this testing is to verify the “stability” of the system in order to proceed with more rigorous testing | The objective of the testing is to verify the “rationality” of the system in order to proceed with more rigorous testing |
| This testing is performed by the developers or testers | Sanity testing in software testing is usually performed by testers |
| Smoke testing is a subset of Acceptance testing | Sanity testing is a subset of Regression testing |
| Smoke testing exercises the entire system from end to end | Sanity testing exercises only the particular component of the entire system |
| Smoke testing is like a General Health Check Up | Sanity Testing is like specialized health check up |
Validation vs. Verification:
| Verification | Validation |
| The verifying process includes checking documents, design, code, and program | It is a dynamic mechanism of testing and validating the actual product |
| It does not involve executing the code | It always involves executing the code |
| Verification uses methods like reviews, walkthroughs, inspections, and desk- checking etc. | It uses methods like Black Box Testing, White Box Testing, and non-functional testing |
| Whether the software conforms to specification is checked | It checks whether the software meets the requirements and expectations of a customer |
| It finds bugs early in the development cycle | It can find bugs that the verification process can not catch |
| Target is application and software architecture, specification, complete design, high level, and database design etc. | Target is an actual product |
| QA team does verification and make sure that the software is as per the requirement in the SRS document. | With the involvement of testing team validation is executed on software code. |
| It comes before validation | It comes after verification |
Explain about Agile Methodology
Agile methodology is the type of methodology in which a user can see something quickly.
It is an iterative as well as incremental process. which means it’s known for breaking a project into smaller parts and adjusting to changing requirements.
It prioritizes user collaboration, responding to change and delivering the software product in short time.

1. Requirement Gathering
-->In this stage, the project team identifies and documents the needs and expectations of various stakeholders, including clients, users, and subject matter experts.
-->It involves defining the project’s scope, and objectives.
-->Establishing a budget and schedule.
-->Creating a project plan and allocating resources.
2. Design
-->Developing a high-level system architecture.
-->Creating detailed specifications, which include data structures, algorithms, and interfaces.
-->Planning for the software’s user interface.
3. Development (Coding)
-->Writing the actual code for the software. Conducting unit testing to verify the functionality of individual components.
4. Testing
This phase involves several types of testing:
Integration Testing: Ensuring that different components work together.
System Testing: Testing the entire system as a whole.
User Acceptance Testing: Confirming that the software meets user requirements.
Performance Testing: Assessing the system’s speed, scalability, and stability.
5. Deployment
-->Deploying the software to a production environment.
-->Put the software into the real world where people can use it.
-->Make sure it works smoothly in the real world.
-->Providing training and support for end-users.
6. Review (Maintenance)
-->Addressing and resolving any issues that may arise after deployment.
-->Releasing updates and patches to enhance the software and address problems.
Key Concepts and Practices in Agile:
Sprints:
Agile projects are typically divided into short, time-boxed iterations called "sprints." Each sprint typically lasts two to four weeks, during which a set of features or user stories is developed, tested, and delivered.
User Stories:
Requirements are often captured in the form of user stories, short narratives that describe a specific feature from an end-user perspective. User stories are used to prioritize and plan development efforts.
Scrum:
Scrum is a specific Agile framework that provides a set of roles, ceremonies, and artifacts to structure and manage the development process. It includes roles like Scrum Master, Product Owner, and Development Team.
Daily Stand-ups:
Daily stand-up meetings, or "Daily Scrums," are brief, focused meetings where team members discuss progress, challenges, and plans for the day. They promote communication and collaboration within the team.
Backlog:
The product backlog is a prioritized list of features, enhancements, and fixes. It serves as a dynamic roadmap for the development team, and items are pulled into sprints based on priority and capacity.
Retrospectives:
At the end of each sprint, the team conducts a retrospective to reflect on what went well, what could be improved, and how to adjust processes for the next sprint.
Benefits of Agile:
Customer Satisfaction:
Agile encourages frequent customer collaboration, leading to a product that better meets customer needs and expectations.
Flexibility and Adaptability:
Agile's iterative approach allows teams to adapt to changing requirements and priorities, promoting flexibility and responsiveness.
Early and Continuous Delivery:
Agile promotes the delivery of small, working increments of software in short cycles, allowing stakeholders to see tangible progress early and often.
Improved Collaboration:
Agile emphasizes communication and collaboration within cross-functional teams, breaking down silos and fostering a collaborative work environment.
Better Quality:
Continuous testing, integration, and delivery practices in Agile contribute to higher overall software quality.
Empowered Teams:
Agile promotes self-organizing and empowered teams, allowing team members to make decisions and contribute to the project's success.
Agile has become widely adopted across various industries due to its ability to deliver value quickly, accommodate changing requirements, and foster a collaborative and adaptive development culture. The specific implementation of Agile practices may vary based on the chosen Agile framework or methodology (e.g., Scrum, Kanban, Extreme Programming).
Explain about Epic and User stories ?
In Agile development, particularly within the Scrum framework, Epics and User Stories are two essential concepts used to manage and prioritize work. They help break down larger tasks into smaller, more manageable pieces, allowing for incremental development and better collaboration between teams and stakeholders.
1. Epic:
Definition:
-->An Epic is a large body of work that can be broken down into smaller tasks or user stories. It represents a significant, high-level initiative or feature that provides value to the end-user or the customer.
Characteristics:
-->Epics are typically too large to be completed in a single iteration or sprint.
-->They often span multiple teams or involve cross-functional collaboration.
-->Epics provide a way to capture and organize high-level business requirements or features.
Example:
-->In the context of a project management tool, an Epic could be "Enhance Task Management" or "Implement Reporting Dashboard."
2. User Story:
Definition:
--> A User Story is a small, discrete piece of functionality that delivers value to the end-user. It is a concise description of a feature or requirement from the user's perspective.
Characteristics:
-->User stories are small enough to be completed within a single iteration or sprint.
-->They are written in a simple, non-technical language, often following the template: "As a [type of user], I want [an action] so that [benefit/value]."
-->User stories help prioritize work based on user needs and business value.
Example:
Using the project management tool example, a User Story could be "As a project manager, I want to create and assign tasks to team members so that work is organized and delegated efficiently."
By using the Epic and User Story framework, Agile teams can efficiently plan, prioritize, and deliver software increments that align with business goals and provide tangible value to end-users.