Ch 1 Introduction Flashcards
What is a test engineer?
IT proffesional in charge of one or more technical test activities, including designing test inputs, producing test case values, running test scripts, analyzing results, and reporting results
What is a test manager?
They are in charge of one or more Test Engineers
What are the two benefits of formal coverage criteria?
- give test engineers ways to decide what test inputs to use during testing, making it more likely that the tester will find problems in the program
- provide stopping rules for the test engineers
What is Acceptance Testing?
Determine whether the completed software meets these customer needs and requirements.
What is System Testing?
Assumes inidividual components work, and test to see if system as a whole meets specifications.
What is Integration Testing?
Assess whether the interfaces between modules in a given subsystem have consistent assumptions and communicate correctly
What is Module Testing?
Assess individual modules in isolation, including how the component units interact with each other and their associated data structures.
What is Unit Testing?
Assess the units produced by the implementation phase and is the �lowest� level of testing.
What is the purpose of Requirements Analysis Phase?
To capture customer needs.
What is the purpose of Architectural Design Phase?
To choose components and connectors that create a system that meet the requirements identified in Requirements Analysis
What is the purpose of Subsystem Design Phase?
Specifies the structure and behavior of subsystems that make up the architecture.
What is the purpose of Detailed Design Phase?
determines the structure and behavior of individual modules.
What types of testing pairs best with each of the software development phases?
- Requirements > Acceptance Test
- Architectural > System Test
- Subsystem Design > Integration Test
- Detailed Design > Module Test
- Implementation > Unit Test
What is Regression Testing?
Ensuring that the updated software still possesses the functionality it had before the updates
When is Regression Testing done?
after changes are made to the software
What is a Unit?
One or more contiguous program statements, with a name that other parts of the software use to call it
What is a module?
A collection of related units that are assembled in a file, package, or class.
Given that Object Oriented software blurs the lines between units and modules,
what are the variations of testing levels in OO programming?
- Intramethod testing
- Intermethod testing
- Intraclass testing
- Interclass testing
What are Beizer Testing Levels?
Categorization of levels based on the test process maturity level of an organization.
Each level is characterized by the goal of the test engineers, and is numbered 0 - 4.
What characterized Beizer Testing Level 0?
The view that testing is the same as debugging
What characterized Beizer Testing Level 1?
The purpose of testing is to show correctness. (An impossibility)
What characterized Beizer Testing Level 2?
The purpose of testing is to show failures (Puts developers and testers in an adversarial relationship, and no real stopping rules)
What characterized Beizer Testing Level 3?
The realization that testing can show the presence, but not the absence, of failures. Acceptance of the factthat whenever we use software, we incur some risk.
What characterized Beizer Testing Level 4?
Defining testing as a mental discipline that increases quality.
What is the difference between revenue tasks and excise tasks?
Revenue tasks contribute directly to the solution of a problem, while excise tasks do not.
What type of tasks are best for automation?
Excise tasks
What are the benefits of automation?
- Elimination of drudgery
- Free up Testing Engineer time for Revenue Tasks
- Eliminate errors of ommission
- Eliminate some test quality variance caused by engineers abilities.
What is validation?
The process of evaluating software at the end of software development to ensure compliance with intended usage.
What is verification?
The process of determining whether the products of a given phase of the software development process fulfill the requirements established during the previous phase.
What is a software fault?
A static defect in the software.
What is a software error?
An incorrect internal state that is the manifestation of some fault.
What is a software failure?
External, incorrect behavior with respect to the requirements or other description of the expected behavior.
What is the formal definition of debugging?
The process of finding a fault given a failure
What does the acronym IV&V stand for?
Independent Verification and Validation, Independent meaning the evaluation is done by nondevelopers.
What is an Error State?
A state is in error simply if it is not the expected state, even if all of the values in the state, considered in isolation, are acceptable.
What is the RIP Model?
states that three conditions must be present for a failure to be observed;
- Reachability (Location(s) in the program that contain the fault must be reached
- Infection (the state of the program must be incorrect)
- Propogation (The infected state must propagate to cause some output of the program to be incorrect )
What is the formal definition of Test Requirement?
A specific element of a software artifact that a test case must satisfy or cover.
What is the formal definition of Coverage Criteria?
A rule or collection of rules that impose test requirements on a test set.
What is the formal definition of Coverage?
Given a set of test requirements T R for a coverage criterion C, a test set T satisfies C if and only if for every test requirement tr in T R, at least one test t in T exists such that t satisfies tr.
What is a Recognizer?
A coverage analysis tool, it is a procedure that decides whether a given set of test case values satisfies a criterion.
What is a Generator?
A procedure/tool that automatically generates test case values to satisfy a criterion
What is Criteria Subsumption?
A coverage criterion C1 subsumes C2 if and only if every test set that satisfies criterion C1 also satisfies C2.
Assuming that software can be viewed as a tree of software procedures, what is top down testing?
Test the main procedure, then go down through procedures it calls, and so on.
Assuming that software can be viewed as a tree of software procedures, what is bottom-up testing?
Test the leaves in the tree (procedures that make no calls), and move up to the root.