Questions and Answers
Which of the following statements correctly defines software testing?
Developers are advised to test their own programs to ensure accuracy.
False
To avoid errors in software development, it is important to utilize ______________ techniques.
self-checking
What principle indicates that the probability of locating more errors in a module is proportional to the number of errors already found?
Signup and view all the answers
Match the following levels of testing with their definitions:
Signup and view all the answers
What is the primary role of software testing?
Signup and view all the answers
Debugging is the process of finding faults in the application under test.
Signup and view all the answers
List one of the five distinct levels of testing.
Signup and view all the answers
The formal process of software testing involves a ______ team specialized in quality assurance.
Signup and view all the answers
Match the following levels of testing with their definitions:
Signup and view all the answers
Study Notes
Software Testing Overview
- Software quality assurance (SQA) controls the quality of software products through structured processes.
- Specialized testing teams carry out formal testing, typically at the end of the development phase.
- Testing is defined as executing a product to identify defects.
- Key attributes include:
- A formal process.
- Involvement of a specialized testing unit.
- Running programs on computers to evaluate performance.
- Adhering to approved testing procedures and test cases.
Evolution of Software Testing
- Evolved from simple program checks to comprehensive practices covering the software life-cycle.
- Five distinct levels of testing:
- Debug: Correcting identified failures.
- Demonstrate: Showcasing major features with standard inputs.
- Verify: Identifying as many faults in the Application Under Test (AUT) as possible.
- Validate: Identifying faults in requirements, design, and AUT.
- Prevent: Avoiding development errors through techniques such as "test before design."
Misconceptions About Testing
- Testing does not primarily aim to demonstrate the absence of errors.
- It does not merely show that a program correctly performs its intended functions.
- Establishing confidence in program functionality is a byproduct of thorough testing.
Importance of Testing
- Competent developers are not infallible; requirements may have unforeseen implications.
- System behavior may not be predictable from component specifications.
- Various programming languages, user interfaces, and operating systems can contain bugs that lead to failures.
- Trustworthiness of reusable classes and objects is essential for reliability.
Software Testing Life Cycle (STLC)
- Following basic principles enhances testing effectiveness:
- Specify expected outcomes for each test case.
- Developers should not conduct tests on their own programs.
- Thoroughly inspect all test results.
- Create test cases for invalid or unexpected production conditions.
- Test for unintended behaviors as well as intended functions.
- Avoid creating disposable test cases unless the program itself is disposable.
- Plan for the possibility of errors being present.
Test Automation
- Test automation involves creating software to facilitate testing processes.
- Automates manual testing, enhancing efficiency and reducing costs.
- Automated testing tools vary in their quality, methodology, and user-friendliness.
Manual Testing
- Primarily used for documentation, producing test guides, and measuring results.
- More time-consuming and costly compared to automated testing.
Early Software Testing Tools
- Mothora: Automated mutation testing tool-set for creating and executing test cases, measuring adequacy, and bug tracking.
- NuMega’s Bounds Checker & Rational’s Purify: Tools for runtime checking to prevent memory leaks and pointer issues.
- Ballista: Tool for robustness testing, providing quantitative assessments across different operating systems.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
This quiz introduces the fundamentals of software testing and quality assurance. It covers key concepts, processes, and the role of specialized testing teams in ensuring software product quality. Perfect for beginners in software application testing.