0% found this document useful (0 votes)
12 views4 pages

Exam-Oriented Software Testing Notes

The document provides detailed notes on software testing, covering key concepts such as faults, errors, and failures, as well as testing objectives and principles. It explains verification and validation, types of testing (white box and black box), test case design, and the software testing life cycle. Additionally, it distinguishes between testing and debugging, and discusses agile and automated testing methodologies.

Uploaded by

armanmohd50584
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views4 pages

Exam-Oriented Software Testing Notes

The document provides detailed notes on software testing, covering key concepts such as faults, errors, and failures, as well as testing objectives and principles. It explains verification and validation, types of testing (white box and black box), test case design, and the software testing life cycle. Additionally, it distinguishes between testing and debugging, and discusses agile and automated testing methodologies.

Uploaded by

armanmohd50584
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Software Testing - Detailed Exam-Oriented Notes

1. Basics of Software Testing - Faults, Errors, and Failures

- **Software Testing:** The process of executing a program to find defects and ensure it meets user
requirements.
- **Faults:** A defect in the system that may cause incorrect behavior.
- **Errors:** Mistakes in logic or coding by developers.
- **Failures:** When a system does not function as expected during execution.

**Example:** A login form accepts incorrect passwords due to improper validation.


- **Error:** Developer forgot to implement proper validation.
- **Fault:** Incorrect password check logic.
- **Failure:** User logs in with a wrong password.

**Exam Questions:**
- Define fault, error, and failure. (April 2022)
- Write two differences between bugs, faults & failures. (April 2022)

2. Testing Objectives & Principles

- **Objectives of Testing:**
1. Finding defects before deployment.
2. Ensuring software meets user requirements.
3. Improving software reliability and security.
4. Preventing future defects.

- **Principles of Testing:**
1. Testing shows the presence of defects, not their absence.
2. Exhaustive testing is impossible; focus on key areas.
3. Early testing saves cost and time.
4. Defect clustering: Most defects occur in small modules.
5. Repeating the same tests reduces effectiveness.

**Exam Questions:**
- List two objectives of software testing. (Nov 2023)
3. Verification and Validation (V&V)

- **Verification:** Are we building the product right? (Focus on processes)


- Example: Code reviews, design reviews, inspections.
- **Validation:** Are we building the right product? (Focus on actual testing)
- Example: Running the software to see if it meets requirements.

**V-Model:**
1. Requirement Analysis -> Acceptance Testing
2. Design -> System Testing
3. Coding -> Unit & Integration Testing

**Exam Questions:**
- Define verification and validation. (Nov 2022)
- Explain V-model with a diagram. (April 2022, Nov 2023)

4. White Box & Black Box Testing

- **White Box Testing:** Internal structure is tested (Path Testing, Code Coverage).
- Example: Testing all possible loops and conditions in a login system.
- **Black Box Testing:** Functionality-based testing without looking at code.
- Example: Checking if a login form accepts correct credentials.

**Boundary Value Analysis (BVA):** Testing at extreme input values.


- Example: Age field (Valid: 18-60), test values: 17, 18, 60, 61.

**Equivalence Partitioning (EP):** Dividing input into valid and invalid sets.
- Example: Password length (Valid: 8-16 characters), test groups:
- Below 8 (invalid), 8-16 (valid), Above 16 (invalid).

**Exam Questions:**
- Explain Equivalence Partitioning. (April 2022)
- Difference between Black Box & White Box Testing. (Nov 2022, Nov 2023)
5. Test Case Design & Testing Life Cycle

- **Test Case:** A document with input, execution steps, expected result, and actual result.
- Example Test Case for Login Form:
1. Input: Username & Password.
2. Expected Result: Successful login.
3. Actual Result: Login failed.

**Software Testing Life Cycle (STLC):**


1. Requirement Analysis
2. Test Planning
3. Test Case Development
4. Test Execution
5. Test Closure

**Exam Questions:**
- What is a test case? Explain with an example. (April 2022, Nov 2023)
- Write a test plan for Flipkart login page. (April 2023)

6. Differences Between Testing & Debugging

- **Testing:** Identifies defects but does not fix them.


- **Debugging:** Developers fix defects found during testing.

| Feature | Testing | Debugging |


|---------------|------------------------|-----------------------|
| Who Performs | Testers | Developers |
| Purpose | Finds defects | Fixes defects |
| Process | Execution of test cases | Analyzing & fixing |

**Exam Questions:**
- Differentiate between testing and debugging. (Nov 2022)

7. Agile Testing & Automated Testing

- **Agile Testing:** Continuous testing during development.


- **Automated Testing:** Uses scripts & tools (Selenium, JUnit) to speed up testing.
- **Agile Testing Quadrants:**
1. Unit & Component Testing
2. Functional Testing
3. Non-Functional Testing (Performance, Security)
4. User Acceptance Testing

**Exam Questions:**
- Write short note on Agile Testing Quadrants. (Nov 2023)
- Explain different layers of automated testing. (Nov 2022)

Common questions

Powered by AI

The distinction between testing and debugging is crucial because they serve different purposes and are performed by different roles. Testing is the process of executing an application to identify defects, which is typically the responsibility of testers, while debugging involves developers locating and fixing the identified defects. Understanding this distinction helps in efficiently allocating tasks and resources, ensuring that issues are identified and resolved promptly, and maintaining a clear division of responsibilities .

The objectives of software testing, such as finding defects, ensuring compliance with user requirements, enhancing software reliability and security, and preventing future issues, align with key testing principles. For instance, the principle that testing shows the presence of defects aligns with the objective of defect detection. The principle of early testing saving time and cost complements the objective of improving reliability and security. These alignments ensure that testing is not just a box-ticking exercise but a strategic activity that enhances software quality .

Equivalence Partitioning involves dividing inputs into equivalent classes that are expected to exhibit similar behavior, reducing the number of test cases needed by testing just one input from each class. Boundary Value Analysis focuses on testing at the edges of input ranges, identifying defects at the boundaries. These techniques complement each other by ensuring comprehensive input coverage—Equivalence Partitioning covers general cases, while Boundary Value Analysis catches edge case errors, thus improving test efficiency and defect detection .

The V-Model, or Verification and Validation model, establishes a parallel relationship between each development stage and its corresponding testing phase, emphasizing verification before validation. Unlike the traditional Waterfall Model, which follows a linear, sequential flow, the V-Model provides early detection of issues by linking each development stage with a corresponding test plan, enabling iterative refinement and reducing the risk of late-stage defects. This approach ensures effective testing and quality assurance early in the lifecycle .

The principles of software testing guide the process by emphasizing key aspects such as finding defects, acknowledging the impossibility of exhaustive testing, utilizing early testing to save time and cost, and understanding defect clustering and diminishing returns on repetitive tests. Exhaustive testing is considered impossible because testing all possible input combinations and execution paths is practically unfeasible due to time, resource constraints, and the complex nature of modern software systems .

A test case is structured as a document outlining specific test inputs, execution steps, expected results, and actual results. Its significance lies in providing a detailed blueprint for testing individual functionalities, ensuring that testing is systematic and repeatable. Well-designed test cases facilitate the identification of defects by clearly defining what aspect of the software is being tested, under which conditions, and what outcome is expected, thereby enhancing overall testing effectiveness .

Boundary Value Analysis (BVA) is a testing technique that involves creating test cases that target the boundaries of input ranges. It is important because defects often occur at the boundaries of input values. By specifically testing these edge cases, BVA helps identify and resolve boundary-related errors, thus enhancing the reliability and robustness of software applications .

White Box Testing focuses on the internal logic of the code, testing paths, branches, conditions, and loops, making it useful for ensuring the robustness of code. In contrast, Black Box Testing evaluates the functionality of the software against requirements without inspecting internal code structure. These approaches complement each other as White Box Testing ensures the internal workings are correct, while Black Box Testing validates the external outputs, together providing a comprehensive evaluation of software quality .

Agile Testing Quadrants provide a structured framework for managing various testing activities across the Agile development process. They offer advantages such as clarity in understanding types of tests needed, helping teams plan and execute them efficiently at appropriate times. The quadrants, covering unit tests, functional tests, non-functional tests, and user acceptance tests, ensure that all aspects of software quality are considered simultaneously, supporting continuous testing and feedback. This approach aligns with Agile's iterative nature, enhancing adaptability and responsiveness .

The Software Testing Life Cycle (STLC) ensures a systematic approach by following a sequence of well-defined steps that guide testers through the testing process. The key stages include 1) Requirement Analysis, where testers determine what needs to be tested; 2) Test Planning, which involves creating a strategy and resources allocation; 3) Test Case Development, where test cases are designed, documented, and reviewed; 4) Test Execution, which is the actual running of test cases and logging defects if any; and 5) Test Closure, which involves evaluating cycle completion criteria based on test coverage, quality, cost, time, critical business objectives, etc. This structured approach helps in delivering quality software efficiently .

You might also like