Agile Methodology.

Q.NO.1.Describe the differences in between,

1.Smoke and Sanity Testing:

Smoke testing:

Smoke testing is also called build verification testing. It is a type of software testing, that is performed at the beginning of the development process to check the basic functionality of the build. It is a series of test cases that are run before the commencement of more rigorous tests. The goal of smoke testing is to verify that an application’s main features work properly. A smoke test suite can be automated or a combination of manual and automated testing.

Sanity Testing:

A sanity check is a basic validation to ensure a claim, decision, or calculation is plausible, free from basic errors, and not based on flawed logic. It's a fundamental test of rationality across various contexts, not just in programming or software. It verifies that the proposed functionality operates as intended, validating that recent code modifications function correctly without bugs.

Sanity testing is usually performed after receiving a fairly stable software build or sometimes when a software build might have undergone minor changes in the code or functionality. It decides if end-to-end testing of a software product shall be carried out further or not.

Sanity testing is also a Surface Level Testing**,** which helps decide if the software build is good enough to pass to the next level of testing.

Difference between Smoke and Sanity:

Smoke Testing has a goal to verify “stability” whereas Sanity Testing has a goal to verify “rationality”.

Smoke is done by both Developer and Tester, whereas, Sanity done by tester only.

Smoke Testing verifies the critical functionalities of the system whereas Sanity Testing verifies the new functionality like bug fixes

Smoke testing focuses on critical functionalities of the system, where as Sanity testing checks that the proposed functionality works roughly as expected.

Smoke testing is usually documented or scripted and It verifies the entire system from end to end.

\>In summary, smoke testing focuses on critical stability, while sanity testing checks for rationality in the proposed functionality.

B. Difference between Validation and Verification:

Verification and Validation is the process of investigating whether a software system satisfies specifications and standards and fulfils the required purpose. In this article, we will learn the difference between Verification and Validation. Verification and validation are two important aspects of software quality assurance, but they are often confused or used interchangeably.

\>Verification focuses on checking whether the software conforms to specifications and whether it has been built correctly, whereas, Validation checks whether the software meets the actual requirements and expectations of the customer.

\>Verification It involves examining documents, designs, codes, and programs to ensure they align with the specified requirements and Methods includes Reviews, walkthroughs, inspections, and desk-checking are commonly used for verification., whereas Validation involves dynamic testing by executing the code and assessing its behaviour, and Methods includes the Black Box Testing, White Box Testing, and non-functional testing are used for validation.

\>Verification is a static process, meaning it doesn’t involve executing the code. Validation is a dynamic process that evaluates the actual product.

In short, Validation ensures that we are building the right product according to customer expectation and Verification checks whether we are building the product correctly.

Q.NO.2. Explain about Agile Methodology?

  • Agile methodology is a project management framework that breaks projects down into several dynamic phases, commonly known as sprints. The Agile framework is an iterative methodology. After every sprint, teams reflect and look back to see if there was anything that could be improved so they can adjust their strategy for the next sprint.

  • Agile methodologies are iterative and incremental, which means it’s known for breaking a project into smaller parts and adjusting to changing requirements.

    1. They prioritize flexibility, collaboration, and customer satisfaction.

    2. Major companies like Facebook, Google, and Amazon use Agile because of its adaptability and customer-focused approach.

The main advantage and disadvantage of agile methodology are:

  • Advantage : Agile methodologies allow for flexibility and adaptability in responding to changes. Teams can easily adjust their plans and priorities based on evolving requirements or feedback during the project.

  • Disadvantage: The iterative and adaptive nature of agile can sometimes lead to uncertainty, especially in projects with unclear or rapidly changing requirements. This may pose challenges in estimating timelines and costs accurately.

  • Q.No.3. Explain about Epic and User Stories?

  • EPIC:

  • Epics is a hierarchy of work, composed of smaller to-dos and user stories, that your team completes over multiple sprints. Within the Agile paradigm, epics are crucial because they give teams a useful, shared vocabulary and method to utilize when organizing their work.

    • The tasks are completed in short bursts of time called sprints.

    • The goals within an epic are called stories and within the stories are tasks called objectives.

    • The epic hierarchy is a way of dividing large goals into smaller units to allow for rapid iterative revisions.

    • The development backlog can have many future epics identified and prioritized and, just in time, we break them down only when we’re nearing the time that we’re getting ready to deliver them.

    • Agile epics break your stories down into more manageable chunks, collecting those tasks and splitting the workload into a more realistic flow.

User story:

User stories give the team important context and associate tasks with the value those tasks bring. During a sprint or iteration planning meeting, the team decides what stories they’ll tackle during that sprint. These are a way to communicate and manage user requirements.

  • A user story is the smallest unit of work in an Agile, a short, informal explanation of a software feature, written from the perspective of the end user.

  • User stories describe the why and the what behind the day-to-day work of development team members.

  • A good structure helps the Agile team to have a common understanding.

  • User stories put the voice of the customer at the centre and keep every member of the team focused on their needs. It outlines the desired outcome of a task.