Podcast
Questions and Answers
What is the main purpose of software testing?
What is the main purpose of software testing?
Which of the following correctly defines a 'fault' in software testing?
Which of the following correctly defines a 'fault' in software testing?
What is the relationship between errors, faults, and failures?
What is the relationship between errors, faults, and failures?
What does software re-engineering primarily focus on?
What does software re-engineering primarily focus on?
Signup and view all the answers
What is program restructuring in the context of software re-engineering?
What is program restructuring in the context of software re-engineering?
Signup and view all the answers
Which statement best describes forward engineering?
Which statement best describes forward engineering?
Signup and view all the answers
What is the primary goal of program restructuring?
What is the primary goal of program restructuring?
Signup and view all the answers
What distinguishes software testing from software re-engineering?
What distinguishes software testing from software re-engineering?
Signup and view all the answers
Study Notes
Software Testing and Software Re-engineering
- Software testing evaluates software against user/system requirements.
- Testing occurs at the software development life cycle phase or program code module level.
- Software testing involves validation and verification.
Software Validation
- Validation examines if the software meets user requirements.
- Validation is done at the end of the Software Development Life Cycle (SDLC).
- If the software matches user requirements, it is validated.
- Validation assesses if the software addresses all user needs.
- Focuses on user requirements.
Software Verification
- Verification confirms if the software adheres to specifications/methodologies and meets business requirements.
- Ensures developed software aligns with design specifications.
- Assesses if the development process followed all design specifications.
- Focuses on design and system specifications.
Targets of Software Testing
- Errors: Actual coding mistakes or discrepancies between actual and expected software output.
- Faults: A fault occurs when an error exists, also known as a bug, which can lead to system failure.
- Failures: Inability of the system to perform the desired task due to a fault.
Fault Handling Techniques
- Fault Avoidance: Utilizes design methodology, verification, and configuration management techniques to prevent faults.
- Fault Detection: Uses reviews, testing (including unit testing, integration testing, system testing).
- Fault Tolerance: Uses atomic transactions, modular redundancy, debugging techniques (correctness debugging, performance debugging) to mitigate fault impacts.
Quality Assurance and Testing
- Quality Assurance encompasses various testing techniques. (e.g., usability, scenario, prototype, product testing).
- It involves fault avoidance, configuration management, fault detection, reviews, walkthrough, inspection, testing, and debugging.
Testing Methodologies
- Black-box testing: Tests functionality without knowing the internal code structure. Users/testers input values and check outputs against expected results.
- White-box testing: Tester knows the internal code structure and tests based on code logic. Primarily used by programmers.
Testing Levels
- Unit Testing: Testing individual program units to ensure they function correctly. Performed during coding by the programmer.
- Integration Testing: Tests how independent units (modules) interact when combined. Ensuring correct data transfer and interactions between the units.
- System Testing: Testing the entire software system as a product to evaluate its functionality, performance (load and stress), security, and portability.
Acceptance Testing
- Alpha testing: Internal testing of the software by developers, simulating a real-world environment. Used to assess user reactions and system responses to inputs.
- Beta testing: Software is released to a limited number of external users for testing in their environment. Used to gather feedback and identify issues that might have been missed in internal testing.
Software Re-engineering
- Software re-engineering modifies existing software to meet current needs without changing functionality.
- This involves changing the software design and restructuring the program code.
- An example is converting software from an older language to a newer one.
Re-Engineering Process
- Reverse Engineering: Obtaining software specifications from existing software
- Re-structuring: Modifying program structure.
- Forward Engineering: Creating new programs based on generated specifications from reverse engineering.
Program Restructuring
- The process of modifying existing software code.
- Can involve code re-arrangement, changing programming languages, or data restructuring.
- Restructuring enhances software reliability and maintainability.
Forward Engineering
- Process of creating new software based on obtained specifications from reverse engineering.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
This quiz covers key concepts in software testing and software re-engineering, including validation and verification processes. It discusses their roles in the Software Development Life Cycle (SDLC) and highlights the importance of meeting user requirements and design specifications.