Agile methodology
Q1. describe the differences in between :
smoke and sanity testing :
Smoke testing | Sanity testing |
Smoke Testing is performed to ascertain that the critical functionalities of the program are 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 to proceed with more rigorous testing | The objective of the testing is to verify the rationality of the system 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 usually documented or scripted | Sanity testing is usually not documented and is unscripted |
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 Checkup | Sanity Testing is like a specialized health checkup |
- Verification and validation :
verification | Validation |
It includes checking documents, design, codes and programs. | It includes testing and validating the actual product. |
Verification is the static testing. | Validation is dynamic testing. |
The quality assurance team does verification | Validation is executed on software code with the help of a testing team. |
Methods used in verification are reviews, walkthroughs, inspections and desk-checking. | Methods used in validation are Black Box Testing, White Box Testing and non-functional testing. |
Verification is for the prevention of errors. | Validation is for the detection of errors. |
Verification is about processes, standards and guidelines. | Validation is about the product. |
Qn2. Explain agile methodologies :
Agile methodologies are a set of flexible and iterative approaches to software development and project management that prioritize collaboration, adaptability, and customer satisfaction. Agile methods were developed in response to the limitations of traditional, linear project management approaches, such as the Waterfall model. Agile methodologies aim to address the challenges of rapidly changing requirements, unpredictable environments, and the need for continuous feedback.
Here are some key principles and characteristics of Agile methodologies:
Iterative and Incremental Development: Agile projects are divided into small increments or iterations, typically lasting two to four weeks. Each iteration results in a potentially shippable product increment. This allows for regular inspection and adaptation of the project's direction.
Customer-Centric: Agile methodologies emphasize customer satisfaction and engagement. Customers and stakeholders are encouraged to provide feedback throughout the development process, allowing the project team to make necessary adjustments.
Collaborative Teams: Agile teams are typically cross-functional and self-organizing. Team members work closely together and communicate frequently to solve problems and make decisions collectively.
Continuous Improvement: Agile methodologies encourage teams to regularly reflect on their processes and outcomes to identify areas for improvement. This process is often referred to as a retrospective and is integral to Agile's adaptability.
Prioritization and Focus: Agile teams prioritize work based on the highest value to the customer. They often use techniques like product backlogs and user stories to capture and organize requirements.
Flexibility and Adaptability: Agile embraces change and uncertainty. Requirements can evolve, and new information can be incorporated without disrupting the project's progress.
Working Software/Product: Agile emphasizes the delivery of a working product or software at the end of each iteration. This ensures that stakeholders can see tangible progress and that the product can be potentially released at any point.
Sustainable Pace: Agile methodologies promote a sustainable work pace for team members. They aim to avoid burnout and promote a healthy work-life balance.
Popular Agile methodologies include:
Scrum: A framework that divides work into time-boxed iterations called "sprints." Scrum uses roles (Scrum Master, Product Owner, and Development Team), ceremonies (daily stand-ups, sprint planning, sprint review, and sprint retrospective), and artifacts (product backlog, sprint backlog, and increment) to manage the development process.
Kanban: Focuses on visualizing work on a Kanban board, limiting work in progress, and continuously improving processes. Kanban is often used for managing workflow and optimizing efficiency.
Extreme Programming (XP): Emphasizes engineering practices like test-driven development (TDD), continuous integration, pair programming, and frequent releases. It places a strong emphasis on delivering high-quality software.
Lean Software Development: Draws from lean manufacturing principles to eliminate waste and optimize processes in software development. It aims to deliver value quickly and efficiently.
The choice of Agile methodology depends on the specific project's requirements, team dynamics, and organizational context. Agile methodologies are widely adopted in the software industry but have also found applications in other fields due to their adaptability and customer-centric approach.
Q3. Explain about epic and user stories :
Epic and User Stories are concepts commonly used in Agile project management, particularly in frameworks like Scrum, to help plan and manage the development of software or other products. They are tools for breaking down complex projects into smaller, manageable pieces of work that can be understood, developed, and tested within a shorter timeframe. Let's dive into each concept:
Epic:
An Epic is a large, high-level piece of work that represents a significant feature, requirement, or goal in a project. Epics are typically too big to be completed in a single iteration or sprint (a fixed time period in Agile, usually 2-4 weeks).
Epics help in long-term project planning and provide a big-picture view of what needs to be accomplished. They act as placeholders for major functionalities or themes.
For example, in a software project for an e-commerce website, an Epic could be "Payment System Integration." This Epic encompasses many smaller tasks and features related to integrating different payment methods, and it may take multiple sprints to complete.
User Story:
A User Story is a much smaller and more detailed piece of work compared to an Epic. It's a concise, informal description of a feature or functionality from an end-user's perspective.
User Stories follow a specific template: "As a [type of user], I want [an action] so that [benefit/value]." This format helps clarify who the user is, what they want, and why it's important.
User Stories are meant to be small enough to fit within a single sprint, so they're designed to be achievable in a short timeframe, often 2-4 weeks.
Using our e-commerce example, a User Story related to the "Payment System Integration" Epic might be: "As a customer, I want to be able to pay for my purchases using a credit card so that I can complete my orders quickly and securely."
In summary:
Epics are large, high-level goals or features that provide an overview of what needs to be done in a project. They are too big to complete in one sprint and serve as placeholders for further breakdown.
User Stories are smaller, more detailed tasks or features that are achievable within a single sprint. They describe specific functionality from the user's perspective and serve as the building blocks for implementing the Epic.
In Agile development, Epics are broken down into multiple User Stories to ensure that work is manageable and can be completed incrementally, with each User Story contributing to the completion of the larger Epic. This iterative approach allows teams to adapt to changing requirements and prioritize work based on user needs.