Software Engineering Test2 Flashcards
list out the typical design errors in an interface
Lack of consistency;
Too much memorization;
No guidance / help;
No context sensitivity;
Poor response;
Arcane / unfriendly;
What does Interface analysis mean
understanding of:
The people (end-users) who will interact with the
system through the interface
The tasks that end-users must perform to do their
work
The content that is presented as part of the interface
The environment in which these tasks will be
conducted
List out the Interface Design Issues
Response Time
Help Facilities
Error Handling
Menu and Command Labeling
Application Accessibility
Internationalization
state the basic design principles
The Open-Closed Principle (OCP). “A module [component] should be open for extension but closed for modification.
The Liskov Substitution Principle (LSP). “Subclasses should be substitutable for their base classes.
Dependency Inversion Principle (DIP). “Depend on abstractions. Do not depend on concretions.”
The Interface Segregation Principle (ISP). “Many client-specific interfaces are better than one general purpose interface.
The Release Reuse Equivalency Principle (REP). “The granule of reuse is the granule of release.”
The Common Closure Principle (CCP). “Classes that change together belong together.”
The Common Reuse Principle (CRP). “Classes that aren’t reused together should not be grouped together.”
list out the level of cohesion
- Functional
- Layer
- Communicational
- Sequential
- Procedural
- Temporal
- Utility
list out the Level of Coupling
- Content
- Common
- Control
- Stamp
- Data
- Routine call
- Type use
- Inclusion or import
- External
What is a component? What is the difference between an OO component and a conventional component?
a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces.
OO View - A component contains a set of collaborating
classes.
Conventional View - A component contains processing logic,
the internal data structures that are required to implement the processing logic, and an interface that enables the component to be invoked and data to be passed to it.
Describe conventional and OO Cohesion
OO View - A component contains a set of collaborating
classes.
Conventional View - A component contains processing logic,
the internal data structures that are required to implement the
processing logic, and an interface that enables the component to
be invoked and data to be passed to it.
Describe conventional and OO Coupling
Conventional View - The degree to which a component is connected to other components and to the external world
OO View - A qualitative measure of the degree to which classes are connected
Describe Designing Conventional Components
The design of processing logic is governed by the
basic principles of algorithm design and structured
programming
The design of data structures is defined by the data
model developed for the system
The design of interfaces is governed by the
collaborations that a component must effect
What is a “Good” Test?
A good test has a high probability of finding an error
A good test is not redundant.
A good test should be “best of breed”
A good test should be neither too simple nor too complex
what does Black-box testing attempts to find
Black-box testing attempts to find errors in the
following categories :
Incorrect or missing functions
Interface errors
Errors in data structures or external databases
Behavior or performance errors
Initialization or termination errors
State the Black-Box Testing Methods
Graph-based testing methods
Equivalence partitioning
Boundary value analysis
State the OO Testing Methods
Fault-based testing
The tester looks for plausible faults. Test cases are designed to exercise the design or code.
Class Testing and the Class Hierarchy
Inheritance does not obviate the need for thorough testing of all derived classes. In fact, it can actually complicate the testing
process.
Scenario-Based Test Design
Scenario-based testing concentrates on what the user does. This means capturing the tasks (via
use-cases) that the user has to perform, then applying them and their variants as tests.
List the steps of Random Testing
- Identify operations applicable to a class.
- Define constraints on their use.
- Identify a minimum test sequence
- Generate a variety of random test sequences