Q1 - Difference between Smoke and Sanity Testing

  • Smoke Testing:

    • Purpose: Performed to check the basic functionalities of the software after each build to ensure it is stable enough for more in-depth testing.

    • Scope: Broad and shallow; covers major functionalities.

    • Execution: Conducted early in the development process.

    • Focus: Detects critical issues that may prevent further testing.

    • Depth: Minimal, doesn't go into detailed testing.

    • Automation: Can be automated.

    • Frequency: Executed for every build.

  • Sanity Testing:

    • Purpose: Performed to verify specific functionalities after changes, additions, or bug fixes.

    • Scope: Narrow and deep; focuses on specific functionalities.

    • Execution: Conducted after a specific change or addition.

    • Focus: Ensures that the specific functionalities work as intended.

    • Depth: More detailed than smoke testing.

    • Automation: Can be automated but often involves manual testing.

    • Frequency: Executed for specific test cases.

Difference between validation and verification

  • Validation:

    • Definition: The process of evaluating a system or component during or at the end of the development process to determine whether it satisfies the specified requirements.

    • Focus: Concerned with the end product's overall acceptability.

    • Timing: Performed towards the end of the development process.

    • Question: "Are we building the right product?"

  • Verification:

    • Definition: The process of evaluating a system or component during the development process to determine whether it meets the specified requirements.

    • Focus: Concerned with the intermediate work products and their compliance with requirements.

    • Timing: Performed throughout the development process.

    • Question: "Are we building the product right?"

  • Q3 - Agile Methodology:

    • Iterative and Incremental: Develops software in small, incremental cycles (iterations).

    • Collaborative: Emphasizes teamwork, communication, and collaboration among team members.

    • Adaptive: Allows for changes and adjustments even late in the development process.

    • Key Principles:

      • Individuals and Interactions over Processes and Tools

      • Working Software over Comprehensive Documentation

      • Customer Collaboration over Contract Negotiation

      • Responding to Change over Following a Plan

    • Key Practices:

      • Scrum: Popular framework within Agile, involving roles like Scrum Master, Product Owner, and Scrum Team.

      • Kanban: Visualizes the workflow, emphasizing continuous delivery and limiting work in progress.

      • Pair Programming, Test-Driven Development (TDD), Continuous Integration: Techniques to enhance code quality and collaboration.

Q4 - Epic and User Stories:

  • Epic:

    • Definition: A large and high-level body of work that can be broken down into smaller tasks or user stories.

    • Scope: Encompasses a broad set of functionalities.

    • Example: "Implement the user authentication system."

  • User Story:

    • Definition: A small, specific unit of work that represents a piece of functionality from an end user's perspective.

    • Scope: Focused on a single, well-defined functionality.

    • Example: "As a user, I want to be able to log in using my email and password."

  • Relationship:

    • Epics are decomposed into smaller user stories during the planning and implementation phase.

    • User stories collectively contribute to fulfilling the requirements outlined in an epic.