Skip to main content

Command Palette

Search for a command to run...

Agile Methodology

Published
6 min readView as Markdown
  1. (i) Difference between smoke testing and sanity testing

Purpose**: Smoke testing, also known as build verification testing, is conducted to verify whether the critical functionalities of a software application are working correctly after a new build or release. It ensures that the most important features of the application are operational and that the build is stable enough for further testing.

  • Scope: Smoke testing is broad and focuses on checking major functionalities of the software. It typically covers basic functionalities or core features of the application without diving deep into detailed testing.

  • Timing: Smoke testing is performed early in the testing process, usually right after a new build is deployed.

  • Depth: It is not exhaustive and does not aim to test all functionalities in detail. Instead, it aims to identify show-stopping issues quickly.

  1. Sanity testing:

Purpose**: Sanity testing, also known as subset testing or sanity check, is conducted to verify whether specific functionalities or bugs have been fixed after a new build or changes are made to the code. It ensures that the reported bugs are fixed and that no new issues have been introduced.

  • Scope: Sanity testing is narrow in scope and focuses on specific areas of the application that have undergone changes or fixes since the last round of testing. It does not aim to test all features comprehensively but rather to check whether the recent changes have addressed the reported issues.

  • Timing: Sanity testing is performed after smoke testing and focuses on a subset of functionalities to ensure that they are working as expected after modifications or bug fixes.

  • Depth: While not as exhaustive as comprehensive testing, sanity testing dives deeper into specific functionalities or areas of the application to ensure that the recent changes have been effective and have not introduced new issues

1 (ii) Difference between Validation and verification:

  1. Validation:
  • Definition: Verification is the process of evaluating whether a software system or component meets the specified requirements and fulfills its intended purpose.

  • Focus: It focuses on checking whether the software is being built correctly according to the requirements and specifications provided.

  • Activities: Verification activities include reviews, inspections, walkthroughs, and testing at various stages of the software development lifecycle.

  • Objective: The main objective of verification is to ensure that the software is developed according to the specified design and requirements, without necessarily considering whether it solves the intended problem effectively.

  1. Verification:
  • Definition: Validation is the process of evaluating whether a software system or component meets the needs and expectations of the stakeholders and is fit for its intended use.

  • Focus: It focuses on checking whether the software meets the user's needs and expectations and solves the intended problem effectively.

  • Activities: Validation activities include user acceptance testing (UAT), system testing, and beta testing, where the software is tested in the context of its intended environment and usage scenarios.

  • Objective: The main objective of validation is to ensure that the software satisfies the customer's requirements and is capable of delivering the desired business value

Q2. Agile methodology:

Agile methodology is an iterative and incremental approach to software development that emphasizes flexibility, collaboration, and customer feedback. It aims to deliver high-quality software products in a more adaptive and responsive manner compared to traditional waterfall methods. Here are key aspects of Agile methodology:

  1. Iterative Development: Agile projects are divided into small iterations or time-boxed cycles, typically lasting one to four weeks (known as sprints). Each iteration results in a potentially shippable product increment, with features added incrementally over multiple iterations.

  2. Incremental Delivery: Agile teams deliver working software in small increments, allowing stakeholders to see tangible progress and provide feedback throughout the development process. This incremental delivery enables early value realization and reduces the risk of project failure.

  3. Flexibility and Adaptability: Agile methodologies prioritize responding to change over rigidly following a predefined plan. Teams embrace changes in requirements, priorities, and technology, allowing for quick adaptation to evolving customer needs and market conditions.

  4. Collaborative Approach: Agile encourages close collaboration among cross-functional teams, including developers, testers, designers, and business stakeholders. Communication is frequent and transparent, with daily stand-up meetings (daily scrums) to synchronize activities and address any obstacles.

  5. Customer Involvement: Agile methodologies emphasize customer collaboration throughout the development process. Customers, end-users, or product owners actively participate in defining requirements, providing feedback on iterations, and validating the delivered features to ensure alignment with their needs and expectations.

  6. Emphasis on Individuals and Interactions: Agile values individuals and interactions over processes and tools. Team members are empowered to make decisions collaboratively, and face-to-face communication is preferred to foster shared understanding and trust.

  7. Continuous Improvement: Agile teams regularly reflect on their processes and seek ways to improve efficiency, productivity, and product quality. Retrospectives at the end of each iteration enable teams to identify strengths, weaknesses, and areas for enhancement.

  8. Use of Agile Frameworks: Agile is not a single methodology but a set of principles and values outlined in the Agile Manifesto. Various Agile frameworks, such as Scrum, Kanban, Extreme Programming (XP), and Lean Agile, provide specific guidelines and practices for implementing Agile principles effectively.

Q3. User creation and user stories

  1. User Creation in Jira:

    • In Jira, user creation refers to the process of adding individuals as users to the Jira instance so they can participate in projects, interact with issues, and collaborate with team members.

    • User creation in Jira typically requires administrative privileges. Jira administrators can add new users manually by navigating to the User Management section of Jira Administration and entering the necessary user details such as username, email address, full name, and optionally assigning them to specific groups or roles.

    • Jira also supports user management through integration with external identity providers such as LDAP, Active Directory, or OAuth, allowing organizations to synchronize user accounts and permissions with their existing systems.

    • Once users are created in Jira, they can be assigned roles, permissions, and project access levels based on their responsibilities and requirements within the organization.

  2. User Stories in Jira:

    • In Jira, user stories are captured as issues within a project and are used to represent individual units of work or desired functionality from the perspective of end-users.

    • User stories in Jira can be created within a specific project using the Issue creation functionality. Users with appropriate permissions can create new issues and select the appropriate issue type, such as "Story" or "User Story," to represent user-centric requirements.

    • When creating a user story in Jira, users typically provide essential details such as a concise description of the feature, acceptance criteria (conditions that must be met for the story to be considered complete), priority, and any relevant attachments or links.

    • Jira allows users to link user stories to other related issues, such as epics, tasks, or bugs, creating a hierarchical structure that helps organize and track the progress of work items within the project.

    • User stories in Jira can be assigned to specific team members, prioritized, estimated, and tracked through various project management features such as Agile boards (Scrum or Kanban boards), backlogs, and sprint planning.