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.