### What is Software Testing?
Software Testing is the process of verifying whether the developed application meets the
client's required functionalities and identifying any defects to ensure quality and reliability.
---
### Types of Software Testing
#### 1. Manual Testing
- **Explanation**: Involves manually checking the application without automated tools.
Testers simulate the role of end-users and verify if the application behaves as expected.
- **Process**: Testers execute test cases and scenarios manually, documenting results and
reporting any defects found.
- **When to Use**: Useful in early development stages, exploratory testing, or when
automation is not cost-effective.
#### 2. Automation Testing
- **Explanation**: Involves using automated tools and scripts to execute test cases, compare
results with expected outcomes, and log discrepancies.
- **Process**: Testers create and execute test scripts using tools like Selenium, QTP, or
LoadRunner, simulating user actions to ensure correct application behavior.
- **When to Use**: Ideal for repetitive tasks, regression testing, performance testing, and
large-scale applications.
---
### What is SDLC (Software Development Life Cycle)?
The Software Development Life Cycle is a framework outlining stages for developing and
maintaining software.
#### Roles
- **Business Analyst (BA)**: Found in service-based companies.
- **Product Owner (PO)**: Found in product-based companies.
#### Stages of SDLC
1. **Requirement Gathering**: Collecting software requirements from stakeholders.
2. **Designing Phase**: Creating architecture and design for the software.
3. **Implementation/Development Phase**: Writing code and developing the application.
4. **Testing Phase**: Verifying the software’s functionality and quality.
5. **Deployment Phase**: Deploying the software to a production environment.
6. **Maintenance Phase**: Providing ongoing maintenance and updates post-deployment.
---
### What is STLC (Software Testing Life Cycle)?
The Software Testing Life Cycle is a sequence of activities conducted during testing to
ensure software quality.
#### Verification Scenarios
A) Verify the application with valid credentials.
B) Verify the application with a valid user and invalid password.
C) Verify the application with invalid user and password.
D) Verify the application with blank username and password fields.
#### Phases of STLC
1. **Requirement Gathering**: Collect testing requirements from stakeholders.
2. **Test Case Creation**: Write detailed test cases based on requirements.
3. **Test Environment Setup**: Prepare the testing environment.
4. **Test Case Execution**: Execute test cases to identify defects.
5. **Defect Logging**: Document defects for developer resolution.
6. **Test Cycle Closure**: Conclude testing after resolving all defects.
---
### Bug/Defect Life Cycle
The Bug/Defect Life Cycle tracks a defect’s journey from identification to closure.
#### Example: Bug Report
- **Project Name**: Flipkart
- **Summary**: “Add to Cart” functionality not working.
- **Interface**: Add to Cart
- **Version**: 1.2
- **Environment**: Testing
- **Steps to Reproduce**:
1. Open the app.
2. Select a product.
3. Click the "Add to Cart" button.
- **Problem Statement**: Error occurs when adding product to cart.
- **Assignee**: Developer’s name
#### Defect Stages
1. **New**: Defect identified for the first time.
2. **Assign to Developer**: Assigned for resolution.
3. **Open**: Developer starts fixing the defect.
4. **Deferred**: Postponed for future release.
5. **Duplicate**: Marked as duplicate if already raised.
6. **Rejected**: Marked invalid by developer.
7. **Fixed**: Defect resolved by developer.
8. **Retesting**: Tester verifies the fix.
9. **Verified**: Fix confirmed and defect resolved.
10. **Closed**: Defect closed after final verification.
---
### Functional & Non-Functional Testing
#### Functional Testing
1. **Unit Testing**: Performed by developers to verify individual components.
2. **Smoke Testing**: Verifies basic application functionality.
3. **Sanity Testing**: Focuses on critical functionality when time is limited.
4. **Re-Testing**: Validates fixed issues.
5. **Regression Testing**: Ensures new changes don’t affect existing features.
6. **Integration Testing**: Verifies interactions between modules.
7. **Component Testing**: Checks each functionality in detail.
8. **GUI Testing**: Validates the application’s look and feel.
#### Non-Functional Testing
1. **Performance Testing**: Assesses application performance.
2. **Load Testing**: Checks behavior under expected loads.
3. **Stress Testing**: Evaluates behavior under extreme conditions.
4. **Security Testing**: Identifies vulnerabilities to ensure security.
5. **Usability Testing**: Checks user-friendliness.
6. **Scalability Testing**: Evaluates ability to handle traffic fluctuations.
7. **Accessibility Testing**: Ensures usability for people with disabilities.
8. **Volume Testing**: Assesses performance under simultaneous user actions.
---
### What is Agile?
Agile is a methodology emphasizing continuous iteration between development and testing
for adaptive progress.
#### Frameworks in Agile
1. **Scrum Framework**: Service-based, iterative framework.
2. **Kanban Framework**: Workflow-focused framework for product/service-based
projects.
3. **Extreme Programming (XP)**: Development-focused framework prioritizing high-
quality code.
#### What is a Sprint?
A Sprint is a fixed period during which specific user stories are completed.
#### Example
- Sprint 1.0: User Story 1, User Story 2 (Spill Over)
- Sprint 1.1: User Story 3, User Story 4, User Story 5
- Sprint 1.2: User Story 6, User Story 7
- Sprint 1.3: User Story 8, User Story 9, User Story 10
#### Spill Over Definition
Spill over refers to user stories or tasks from a sprint that could not be completed within the
sprint timeline and are carried forward to the next sprint.
#### Scrum/Agile Ceremonies
1. **Sprint Planning**: Discuss user stories and resources at sprint start.
2. **Daily Scrum (Stand-Up)**: Daily updates on tasks, progress, and blockers.
3. **Sprint Review**: Mid-sprint evaluation of progress and adjustments.
4. **Sprint Retrospective**: End-of-sprint reflection on successes and improvements.
#### Who is a Scrum Master?
The Scrum Master facilitates Agile practices and Scrum ceremonies, ensuring process
adherence.
---
### Product Backlog vs. Sprint Backlog
- **Product Backlog**: Comprehensive list of work remaining for the product.
- **Sprint Backlog**: Work prioritized for completion during a specific sprint.
---
### Burn Down vs. Burn Up Charts
- **Burn Down Chart**: Tracks remaining work.
- **Burn Up Chart**: Tracks completed work.
---
### What is Velocity?
Velocity measures the amount of work completed in a sprint, helping forecast future
performance.