CS451 T2
true
(T/F) A test suite contains test cases which contain test data.
true (Many (if not most) software systems have latent defects (faults) that haven't surfaced as failures yet.)
(T/F) According to the strict definitions of the terms error, fault and failure, you can have a fault without a failure?
true
(T/F) As much as possible, acceptance tests are ran with actual user data in an environment that is identical to or nearly identical to the final production environment.
false
(T/F) Automated testing and test-driven development (TDD) are synonymous.
true
(T/F) Boundary value analysis is applicable during both white and black-box testing.
false (Unit tests are white box tests. The author of new code is in the best position to create unit tests for the code. Therefore, the author of of new code is the best person to write unit test cases for the code.)
(T/F) Developers shouldn't create unit tests for their own code.
False
(T/F) Developers shouldn't unit test their own code.
false (Defect correction should be left to the author. The problem with trying to fix defects during an inspection is that it is too easy for the meeting to get bogged down with a seemingly endless debate over how best to fix a defect. During the inspection meeting there usually isn't enough time to both find and fix errors. There is nothing wrong with briefly discussing the problem and solution options, but care must be taken to make sure the inspection meeting remains on track.)
(T/F) During a code inspection the inspector that identifies an error should also provide a solution. If the inspector can't provide a solution then it probably isn't an error.
true
(T/F) For all but the most trivial programs, the universe of potential test cases is infinite or nearly infinite. Defining equivalence classes is one technique of identifying a finite subset of test cases that is both efficient and effective. It is efficient because redundant test cases are avoided and its effective because the test cases that are identified are likely to provide good coverage.
false
(T/F) If a set of test cases achieves path coverage, and all the tests pass, you can be certain there are no errors in the code.
false (Executing every line of a program is statement coverage which provides much weaker coverage than path coverage.)
(T/F) If a suite of tests causes every line of code in a program to execute the test suite has achieved path coverage.
true
(T/F) If a test case in an equivalence class catches an error, all other test cases in the equivalence class are expected to catch the same error.
true (Developers shouldn't be relied on to validate their own work. First, they are going to be writing test cases from their own perspective. It's possible their perspective is wrong. Second, subconsciously developers don't want errors to be found. It would contradict with their own positive self-image of being a programmer that writes defect-free code. This bias could cause them to avoid tests with the greatest probability of finding an error. Whereas the self-image of independent testers is the opposite. The more defects they find the higher their self-image.)
(T/F) Independent testers are likely to do a better job of system testing code than the programmers of the code themselves.
true
(T/F) Inspection data can be used to improve the software development process.
true
(T/F) Inspections and walkthroughs are two different types of product review. In general, inspections are more formal than walkthroughs.
false (It's the other way around. Inspections are a static technique for finding defects and testing is a dynamic technique for finding defects.)
(T/F) Inspections are a dynamic technique for finding defects and testing is a static technique for finding defects.
true
(T/F) One of the benefits of performing inspections is that errors are found earlier when the cost of fixing them is less.
true
(T/F) One program may be structured using two or more architecture styles. In other words, a single program isn't confined to a single architecture style.
false (Philip Krutchen's model does include a use case view, but use cases generally don't include user interface details.)
(T/F) Philippe Kruchten's 4+1 view model of software architecture includes a view that expresses the desired look and feel of the proposed software system.
true
(T/F) Pipe components in the pipes and filter architecture style are one-way. Data is not allowed to flow both ways through a pipe component.
true (Writing test cases before the actual code forces you to think in terms of the interface of a module before becoming biased from experience with the implementation.)
(T/F) Practicing test-driven development may also improve software design.
false (Testing may lead to debugging, but they are separate activities with a separate set of concerns. Testing is about detecting defects and debugging is about finding and removing defects.)
(T/F) Testing and debugging are the same thing.
false (They are two different architecture styles. Argument #1: draw the diagrams. MVC looks more like a triad. 3-tiered is horizontal. Argument #2: with MVC the BL is in the model along with the data/state. With the 3-tiered architecture style, business logic is in the middle tier between the UI and database. With MVC, business logic is in the model or fourth component and the control component has event handling routines.)
(T/F) The 3-tiered architecture style divides a system into three components: UI <--> Business Logic <--> Database. The Model-View-Controller architecture is a particular instance of the 3-tiered architecture style where View = UI, Controller = Business Logic and Model = Database.
true
(T/F) The cost of finding and fixing a defect goes up dramatically the longer it remains in the system during the software life cycle.
false (Verification is about testing against standards of performance, validation is about testing against user expectations. You can test function and non-functional requirements along these two dimensions.)
(T/F) The difference between verification and validation is that validation is about testing functional requirements and verification is about testing non-functional requirements.
false (The focus of test-driver development is writing early test cases. It is not so much about user testing or feedback.)
(T/F) The essence of test-driven development is delivering early and frequent builds in order to put a tangible product in front of the users so that they might provide early feedback which in turn can be used to guide product evolution.
false (Defect prevention is concerned with preventing defects. V&V is concerned with detecting defects that are already present.)
(T/F) The primary concern of verification and validation is preventing defects from being introduced into the product.
false (The typical program/routine/module is likely to be several different sets of equivalence classes that cover the input. For example, given the routine: boolean f(int); One set of equivalence classes: (1) test cases that return false; (2) test cases that return true. Another set of equivalence classes: (1) test cases where input value is negative; (2) test cases where input value is positive. (3) test case with input value is 0.)
(T/F) The typical module (or computer program; ie any unit with input and output) has a unique set of equivalence classes that cover all possible inputs.
false (Using metrics from inspection data to assess the performance of individual developers is likely to diminish the effectiveness of inspections. It creates an incentive not to find errors or openly discuss errors when the exact opposite--open and frank dialog--is what is needed.)
(T/F) The yield or return that comes from performing code inspections is increased when the metrics collected from the inspections is used to assess the performance of individual developers.
False
(T/F) There are no drawbacks to adding more explanatory text to a UI that might be misinterpreted.
false (Other way around.)
(T/F) Verification answers the question "are we building the right thing?" and validation answers the question "are we building the thing right?"
true
(T/F) When comparing the defect density of two different programs in order to judge the relative quality of each program, it is important to consider the extent to which each program has been used in production (number of years in production, number of users and degree to which each program has been used).
false (The mechanism for communication between components isn't considered a layer, tier or component. The assumption you can view the communication protocol as a layer is false.)
(T/F) With a sophisticated enough protocol between client and server, a client server architecture becomes a 3-tiered architecture.
yes
(Y/N) Assume you have a program that has an infinite number of possible inputs. You divide the universe of possible inputs into equivalence classes. Can there be an infinite number of test cases in one or more of these equivalence classes? (By equivalence class I mean the class of potential test cases not the actual ones you will run.)
Yes (as long as the users that can't understand it are not part of the target market)
(Y/N) Can a software product have high usability despite the fact that it is difficult for some users to use?
yes (Yes, this is essentially Conway's "Law".)
(Y/N) Can the organizational structure of a company effect the architecture of the software it produces?
No (Compare Newton's laws of gravity with Einstein's General Theory of Relativity. Einstein's General Theory of Relativity is correct but unless you are dealing with speeds near that of light or immense gravity, Newton's laws work for all practical problems.)
(Y/N) Does the mental model used to understand a system and to make predictions about how the system will work have to be 100% accurate for it to be useful in most situations?
No
(Y/N) Is there a single direct measure for quantifying the absolute usability of a UI?
yes (The answer is yes/yes but for slightly different reasons. It's more efficient for participants in code inspections to work independently when looking for errors. Developers parse and understand code at different rates.)
(Y/N) When doing a code inspection should evaluators first work alone identifying errors before aggregating results among other evaluators?
yes (During heuristic evaluation it is important for inspectors to develop an initial list of potential usability errors in order to ensure independent and unbiased evaluations from each evaluator.)
(Y/N) When doing a heuristic evaluation of a program's user interface should evaluators first work alone identifying usability errors before aggregating results among other evaluators?
use case
4+1 View Model: The ____ _____ view is the 5th or +1 view. It's conceptually separate from the other views because it shows how the other views work together to validate the efficacy and completeness of the architecture.
logical
4+1 View Model: The ______ view typically includes class diagrams and behavior diagrams to make clear that the proposed architecture covers the required functionality. Concerned with functionality provided to end users. Think analysis model (abstraction from problem domain).
physical
4+1 View Model: The _______ view describes the mapping of software onto hardware.
development
4+1 View Model: The _______ view takes into account the _______ environment. Once you have identified all the needed software elements you can begin to map them to deployable modules, ______ teams, etc. Those aspects of the architecture that are driven by practical concerns of the software _________ environment, are addressed by the ________ view. Architecture from the programmer's perspective. Think design model (abstraction of actual or anticipated implementation).
process
4+1 View Model: The ______view describes concurrent threads and processes.
mental model
A ______ ______ is a personal understanding of how something works.
breadcrumb
A ______ is a type of secondary navigation scheme that shows a user's location in a website or application.
low
A high rate of defect detection suggests that product quality is _____.
overview meeting
An optional _______ _______ may be schedule during which time the inspection team is introduced to the work product being inspected. An _______ ________ isn't necessary if the inspection team is familiar with the inspection process and the product under review.
code coverage;
Another important testing metric is ______ _______. How thoroughly have paths through the code been tested.
stakeholders
Architects must consider the needs of all ________.
significant; whole;
Architecture are ______ design decisions, those that impact the system as a ______ .
design
Architecture is a specific type of ______.
non-functional
Architecture is important because it determines the degree to which ____________ requirements are present.
system
Architecture styles = ______ level organization
loops
Basis path coverage: _____ in code make path coverage impractical for most programs
defect detection
Code reviews/inspections are best thought of as ______________.
tier
Common Architecture Styles: 3-_____ or, more generally, N-_____
peer
Common Architecture Styles: _____-to-_____
server
Common Architecture Styles: client/_________
filters
Common Architecture Styles: pipes and _______
domain independent operating system
Companies that are also interested in platform portability or platform independence, will also define a layer for _______ _______ ______ _______ services (file system, database, threading, etc.).
technical review
Compared to inspections, _______ ______ are less formal and have fewer roles. For example, during a _______ ______ the author may also be the reader.
when; how often;
Continuous integration is ____ or ___ _____ you are going to integrate.
removed; latent;
DRE = (defects ____ during phase/defects _____ in phase) * 100
defect removal effectiveness
DRE meaning
one way
Data flows ________ through a pipe
defects; size;
Defect density = total known ______ / ______
1 (Defect removal effectiveness is defects found / defects known to exist. Right after the phase all known defects will be found so DRE will be x/x where x is number of defects found.)
Defect removal effectiveness for phase X (e.g. construction) is normally calculated after the program has been in production for a short time. If you did calculate defect removal effectiveness for phase X right after phase X was completed, what would the defect removal effectiveness be?
acceptance
End users are most likely to be involved with _____ testing
compiler
Example of pipes and filters:
A
For each equivalence class you typically run A) One or more of the test cases defined by each equivalence class B) All of the test cases defined by each equivalence class C) All of the test cases defined by one of the equivalence classes
learnability, efficiency, satisfaction
Several usability sub-factors:
B
Should you test the following routine with invalid non-numeric input such as strings? int absolute(int i) A) Yes, a comprehensive test suite would include invalid as well as valid inputs and a string value is invalid input. B) No, the question doesn't make any sense. The routine can only accept numeric input.
collaborative;
Software reviews are a form of __________ development.
errors; deviations;
Software reviews are the practice of having someone else look over your work for the purpose of finding _______ and/or _______ from standards and specifications.
non-functional
Software systems have non-functional as well as functional requirements. __________ requirements are quality attributes such as security, performance and scalability.
quality
Testing improves product _______ (at least when the defects that are revealed are fixed)
black box
Tests created while practicing test-driven development (TDD) are best characterized as what type of tests?
UI, business logic, database
The 3 components in the typical 3-tiered architecture style:
publish/subscribe
The Android operating system has components called broadcast recievers. A broadcast receiver doesn't have a user interface. A broadcast receiver is a unit of code that respond to specific system-wide events. For example, you might write a broadcast receiver that executes every time the device is connected to a power source. When the Android operating system detects that the phone has been connected to a power source, it will issue an event (ACTION_BATTERY_CHANGED) and your code will wake up and execute. What architecture style do broadcast recievers follow?
layered
The ISO/OSI networking model best resembles which architecture style?
architecture; document; validate;
The Process of Software _________ 1. Identify stakeholders and their needs 2. Identify and prioritize scenarios (architecturally significant use cases) 3. Look for opportunities to apply architecture styles (routine solutions to reoccurring architecture problems, aka patterns) 4. ______ the planned architecture 5. _______ the planned architecture
software; opportunities; styles;
The Process of _______ Architecture 1. Identify stakeholders and their needs 2. Identify and prioritize scenarios (architecturally significant use cases) 3. Look for ______ to apply architecture _____ (routine solutions to reoccurring architecture problems, aka patterns) 4. Document the planned architecture 5. Validate the planned architecture
process; stakeholders; scenarios;
The ______ of Software Architecture 1. Identify _______ and their needs 2. Identify and prioritize _________ (architecturally significant use cases) 3. Look for opportunities to apply architecture styles (routine solutions to reoccurring architecture problems, aka patterns) 4. Document the planned architecture 5. Validate the planned architecture
assess
The fifth step in usability engineering is to _____ usability using heuristic evaluation or user testing.
understand
The first step in usability engineering is to _______ the users and their tasks.
false affordance
The following is an example of....
portion
The fourth step in usability engineering is to Implement a _____ of the UI design.
defects
The main reason for performing software reviews is finding ________.
observable/observer
The publish/subscribe architecture style is most similar to which design pattern?
nature;
The relationships between components includes interaction between components and the _____ of this interaction.
goals
The second step in usability engineering is to Set UI ______ and priorities.
validate
The third step in usability engineering is to Create a conceptual design and ______ it with a prototype.
works; easy; enjoyable;
The three goals definea hierarchy of needs: If it _____ I'll consider it. If it's ____ to use I will be pleased. If it's _____ I'll develop an emotional attachment.
clients; servers;
The two types of components that make up the WWW's architecture style are: _______= browsers such as Firefox ________= Web servers such as Apache
filter; pipes;
There are _____ components that perform some transformation from inputs to outputs and ______ which are the conduits for data traveling between filters.
unit
There is no problem with developers _____ testing their own code
organizational standards
There should be written ________ _______ that authors follow when creating the work and inspectors follow when judging the quality of the work. Otherwise, what is and isn't an error becomes more subjective.
enjoyable, easy to use, effective
Three important goals of UI design are to develop software that is (in order from top to bottom in pyramid):
how
Top-down and bottom-up is ____ you are going to integrate.
non-functional
Type of requirements the software architecture of a system is most likely to address:
direct manipulation
UI Design Principles: Allow the user to feel they are directly controlling the object they are working with.
consistency
UI Design Principles: Allow the user to transfer their knowledge and skill from one application to another.
spatial memory
UI Design Principles: Consciously or unconsciously people tend to use this to find their way back to objects and commands.
safe exploration and forgiveness
UI Design Principles: Encourage, or at least don't do anything to discourage, exploration.
shortcuts and accelerators
UI Design Principles: Expert users are interested in working efficiently. these can facilitate this.
minimize cognitive costs
UI Design Principles: Most people will scan the page looking for obvious clues how to proceed. Users look for visual cues like color and form that can be immediately processed rather than invest the time it takes to read and comprehend text
simple and natural dialogs
UI Design Principles: Speak the user's language. Use words, phrases and concepts familiar to the user.
instant gratification
UI Design Principles: Users should achieve some level of success within the first few seconds of using your software.
tasks; conceptual; user;
Usability Steps 1) Understand the user and ______ 1. Task Analysis 2. Function Analysis 2) Set Goals 3) Create ________ design and validate 4) Implement portion of UI design 5) Assess Usability 1. Heuristic evaluation 2. _____ testing
task; goals; UI;
Usability Steps 1) Understand the user and tasks 1. _____ Analysis 2. Function Analysis 2) Set ______ 3) Create conceptual design and validate 4) Implement portion of ___ design 5) Assess Usability 1. Heuristic evaluation 2. User testing
expectations
Validation is about testing against user ________
dynamic; static;
Verification and validation is accomplished using both ______ testing and ______ evaluation (peer review) techniques.
performance
Verification is about testing against standards of __________
logical, process, physical, development, use case
Views in 4+1 View Model:
logical, process, physical, development
What are the 4 main views in Philippe Kruchten's 4+1 views of software architecture?
C (With testing after a test case causes a failure, you have to search for the defect that caused the failure. With inspections, there is no time spent hunting for the defect. The defect is discovered directly. Also, with testing you might have to run and rerun tests to find multiple defects. With inspections you multiple defects at once.)
What can you say about the amount of effort it takes to find a defect with inspections vs testing? A) It takes the same amount of effort to find a defect with an inspection as it does with testing. B) It takes more effort to find a defect with an inspection than it does with testing. C) It takes more effort to find a defect with testing than it does with an inspection.
it can only go up
What can you say about the defect density for a module over time (assuming there are no code changes)?
it can only go down
What can you say about the defect removal effectiveness for a phase (e.g. design) in the software life cycle over time?
make sure new code doesn't break old code
What is the purpose of regression testing?
moderator; cursory check;
When a work product is ready for review, the author passes is along to the ________ who performs a ______ ______ to verify that the product is ready for inspection.
code inspections (Code inspections make dynamic testing more efficient. Finding errors during dynamic testing slows down the testing process. Remember, the goal is to find defects as early as possible.)
When doing formal code inspections and dynamic testing such as system test, which should be performed first?
When it affects non-functional requirements like performance or maintainability.
When is it acceptable to raise style issues during an inspection?
UI design phase
When should usability testing be performed? Assume your purpose for doing usability testing is to improve the usability of the software under development.
inputs and outputs (Control flow isn't a concern during black box testing. It's easy to understand why testers consider input when doing boundary value analysis because code is usually written in terms of inputs: void f(int x) { if (x < 0) ...}. Code might also have logic that is written in terms of output values as well so you also need to consider outputs when doing boundary value analysis. For example, consider the following function that computes the square of a number: int f(int x) { // return x*x . . .}. SQRT(MAX_INT) would be a good test input. It is at the boundary of the range of the output value.)
Where do you look for boundary conditions when doing boundary value analysis during black box testing?
reader, moderator, author, recorder
Which of the following are roles during a formal software inspection? -reader -moderator -editor -author -recorder -manager
A, B, C
Which of the following are valid uses of inspections? A) defect detection B) cross-training programmers C) training tool for new staff D) performance review
E
Which of the following can be formally inspected? A) design B) code C) test plans D) requirements E) all of the above
non-functional requirements
Which of the following is likely to have the greatest influence on the selection of an architecture? -cost -time available -functional requirements -non-functional requirements
D
Which of the following statements about Philippe Kruchten's 4+1 View Model of Software Architecture is true? A) The model explains how to create one diagram that describes a software architecture from 5 different perspectives. B) The model provides 5 different diagram types, one for each specific type of architecture style. C) The model provides 5 different views at progressive levels of abstraction. D) The model offers 5 different views that capture different architectural perspectives on any software system.
B
Which of the following statements about Philippe Kruchten's 4+1 View Model of Software Architecture is true? A) The model provides 5 different diagram types, one for each specific type of architecture style. B) The model offers 5 different views that capture different architectural perspectives on any software system. C) The model explains how to create one diagram that describes a software architecture from 5 different perspectives. D) The model provides 5 different views at progressive levels of abstraction.
C, F
Which of the following statements about phase containment is/are true? A) Phase containment refers to building in phases. Building in phases reduces the amount and type of detail that has to be dealt with at any one time. B) Phase containment is a technique for reducing complexity. C) Phase containment is finding and fixing a bug in the phase where it is introduced. D) Phase containment is performing each phase of testing separately. E) Phase containment is when each type of testing (unit, integration, etc) is confined to a specific phase in the software life cycle. F) Phase containment improves software quality and development productivity. G) Phase containment is a test that occurs at end end of each phase. H) Phase containment is one way of keeping the testing phases from overlapping.
author
Which role exerts the most control over the review meeting during a walkthrough?
peer to peer (Peer-to-Peer scales better because clients both consume and provide resources. Clients in a Client/Server architecture only consume resources.)
Which scales better, the Client/Server or Peer-to-Peer architecture style? Here scale means adding more clients.
1, 3
Which situation requires new learning?
1
Which situation requires unlearning.
2, 4
Which situation(s) require(s) no new learning. Check all that apply. Only one may apply.
walkthroughs
Which type of software review is more appropriate when the primary goal is to explain the work to other developers rather than look for errors. -desk checking -pair programming -walkthroughs -technical reviews -inspections
inspection
Which type of software review is the most formal?
so they don't use the results in a performance evaluation
Why are managers discouraged from attending software inspections?
inspections; errors;
With ______ you can find types of ______ that would be difficult or impossible to find with dynamic testing.
inspections; testing;
With _______ you can find errors early, closer to their source. With ______ you have to wait for there to be working code.
client/server
With _______, adding clients reduces resources available to each one.
clients; capacity;
With peer-to-peer, adding ______ increases the ______ of the system as a whole.
sequentially
With testing errors usually are discovered and fixed __________.
desk checking
With which type of software review are participants more likely to work alone? -pair programming -walkthroughs -technical reviews -desk checking -inspections
low error rate
____ ____ ____ - few errors and it is easy to recover from errors that are made
basis path
____ _____coverage is the set of all linearly independent paths through a method or section of code.
DRE
____ tells you what percentage of defects that are present are being found (at a certain point in time).
unit
_____ - testing individual cohesive ______s (modules). Usually white-box testing done by the programmer.
black box
_____ _____ - Test cases are derived from external software specifications.
usability testing
_____ _____ is a technique for evaluating a UI design and requires real users or test subjects that fit the profile of real users.
pair programming
_____ _______ is where two programmers work together at one workstation. One controls the keyboard and is in charge of writing the code. The other reviews each line of code as it is entered. One thinks tactically; the other thinks strategically.
task
_____ analysis involves observing users in order to understand their needs.
white box
______ _____ - Test cases are derived from knowledge of the design and/or implementation.
defect density
______ ______ measures can be used to track product quality across multiple releases.
causal analysis
______ _______ is to find causes that you can treat rather than treating symptoms. It provides the real reason why things happen and allows focused change activity.
function
______ analysis looks beyond current work practices to identify the purpose of the observed user activities.
pipes; filters;
______ and _____ are a structure for systems that process a stream of data.
alpha; beta;
______ and ______ testing - limited release of a product to a few select customers for evaluation before the general release. The primary purpose of a ***** test isn't to find defects, but rather, assess how well the software works in the real-world under a variety of conditions that are hard to simulate in the lab. Customers' impressions are starting to be formed during ***** testing so the product should have release-like quality.
tiers; service;
______ are organized by the ______ they provide.
decision
______ coverage is also known as branch coverage. The boolean condition at every branch point (if, while, etc) has been evaluated to both T and F
path
______ coverage is the most comprehensive type of code coverage.
condition
______ coverage: each boolean sub-expression at a branch point has been evaluated to true and false
defect; systems;
______ data from testing may suggest opportunities for process improvement preventing certain type of defects from being introduced into future _______.
relaxed
______ layering - a layer may communicate with any layer below it.
error; mistake;
______ or _______ - human action or inaction that produces an incorrect result
fault; defect;
______ or ________ - the manifestation of an error in code or documentation
smoke
______ test - a very brief test to determine whether or not there are obvious problems that would make more extensive testing futile.
regression
______ test - making sure new code doesn't break the old code
empirical
______ user testing - usability testing with real users.
verification; validation;
______&_______ is concerned with detecting defects that are already present.
learnability
_______ - how easy is it to use for the first time?
efficiency
_______ - once users learn how to accomplish a task how easy is it to perform the task?
heuristic
_______ Evaluation - inspectors review the user interface of a software system and check it for compliance with established usability principles.
Conway's law
_______ _____ predicts: "Any organization that designs a system . . . will inevitably produce a design whose structure is a copy of the organization's communication structure."
boundary value analysis
_______ ______ ______- create test cases with values that are on the edge of equivalence partitions
equivalence partitioning; inputs; outputs;
_______ ________- Tests are divided into groups according to the criteria that two test cases are in the same group if both test cases are likely to find the same error. Classes can be formed based on ______ or _______.
layers; abstraction;
_______ are organized by the level of ________ they provide.
statement
_______ coverage: each line of code is executed.
usability
_______ is a measure of how easy a system is to use.
testing
_______ is the dynamic execution of the software for the purpose of uncovering defects.
strict
_______ layering - each layer is allowed to communicate only the layer directly below it.
affordance
_______ refers to the perceived and actual properties of an object that suggest how it is used.
feedback
_______ shows the state of the system and the effect of user action.
tiers;
_______ tend to represent a physical distribution.
memorability
________ - how easy is it to use the application after not using it for a long period of time?
satisfaction
________ - how pleasant or enjoyable is the application to use?
system
________ - testing the behavior of the ________ as a whole. Testing against the requirements (_________ objectives and expected behavior). Also a good environment for testing non-functional software requirements such as usability, security, performance, etc.
acceptance
________ - used to determine if the system meets its __________ criteria and is ready for release.
integration
________ - verifying the interaction between software components. _________ testing is done on a regular basis during development (possibly once a day/week/month depending on the circumstances of the project). Architecture and design defects typically show up during __________.
affordance
________ - visual clues to an objects function and use
software architecture; components; relationships;
________ ________is the structure and organization of high-level components in a software system. This includes high level ________ and the ________ between them.
subscribers; publishers;
________ register their interest in events from ________. When the event occurs, publishers notify all registered subscribers. Publishers may push items of interest to subscribers or simply notify them data is ready leaving them to query for the data.
constraints
________ restrict allowed behavior. ________ help to avoid user errors.
failure
________- an incorrect result.
walkthrough
_________ are organized and ran by the author of the work. One of the goals of a ________ is to make sure everyone in attendance understands the work.
inspections
__________ have well-defined roles: moderator, reader, recorder, author and inspectors; and a well-define process: planning, overview meeting, preparation, inspection meeting, rework, follow-up and optionally causal analysis.
validation
___________ - Comparing program outcomes against user expectations. "Are we building the right product?"
verification
___________- Comparing program outcomes against a specification. "Are we building the product right?"
deskcheck
________don't require a meeting. With a _______, the author sends the work to one or more reviewers, who read the work independently and send back a list of errors found and general comments. The author is free to ignore the feedback received. There is no requirements for consensus with a ________.
sooner
advantages of incremental/continuous integration: Testing can begin ________. Big bang testing postpones testing until the whole system is ready.
easier; reduces;
advantages of incremental/continuous integration: _______ to find problems. If there is a problem during integration testing it is most likely related to the last component integrated—knowing this usually ______ the amount of code that has to be examined in order to find the source of the problem.
opaque
black-box(_______)
scaffolding
bottom-up integration: _______ code or drivers are used in place of high-level code
dynamic testing
code that doesn't meet standards set for maintainability can't be identified with ______ ______.
what the system should do
functional requirements describe:
correctness, usability, reliability, security, performance
horizontal dimension to testing:
top down;
integration strategies. what does work? ____ _____ - high-level components are integrated and tested before low level components are complete. Example high-level components: life-cycle methods of component framework, screen flow of web application.
bottom up;
integration strategies. what does work? _______ ___ - low-level components are integrated and tested before top-level components. Example low-level components: abstract interface onto database, component to display animated image.
all at once; big bang;
integration strategies. what doesn't work? ______ or ______ - waiting until all of the components are ready before attempting to build the system for the first time. Not recommended.
how the system works
non-functional requirements describe:
test case
testing artifacts/products: ____ _____ specification - specification of actual test cases including preconditions, inputs and expected results.
test log
testing artifacts/products: _____ _____ - results of testing
test plan
testing artifacts/products: _____ _____ - who is doing what when.
test incident report
testing artifacts/products: _____ _____ ______- record and track errors.
test procedure
testing artifacts/products: ______ _________ specification - how to run test cases.
defect density, efficiency, code coverage
testing effectiveness metrics:
dynamic
testing is a _____ technique for finding defects.
stub
top-down integration: A ______ is a unit of code that simulates the activity of a missing component.
mock
top-down integration: _____ objects are stubs that simulate the behavior of real objects.
false, perceived, hidden
types of affordances:
non-functional
usability is a _____ _______ requirement or quality attribute.
unit, integration, system, alpha, beta, acceptance
vertical dimension to testing (bottom to top):
transparent
white-box(_______)
B, D, A, C
In what order are you likely to run the following tests during a project that is practicing continuous integration? A) system testing B) unit testing C) acceptance testing D) integration testing
private; defects;
Inspections - Prep: Inspectors inspect the work product in ______ and make a list of potential _______.
reader
Inspections - Roles: person responsible for narrating during the inspection process
moderator
Inspections - Roles: person responsible for organizing the inspection process and keeping the meeting on track.
recorder
Inspections - Roles: person responsible for recording defects and technical issues during the inspection.
author
Inspections - Roles: person who creates the work product being inspected.
inspectors
Inspections - Roles: persons responsible for inspecting the work product and finding defects.
process owner;
Inspections - after the meeting: Experience during the inspection may suggest ways to improve the standard software development process including the inspection process. Suggestions for improving the standard development process are forwarded to the ______ ______.
rework; complete;
Inspections - after the meeting: If substantial ______ is required a follow-up inspection may be scheduled. Otherwise, the product has passed the inspection and the work is considered _______.
author; correct;
Inspections - after the meeting: The _____ performs any rework necessary to _____ defects found.
moderator;
Inspections - after the meeting: The ______ follows-up with the author to make sure that the rework is performed and decides if another inspection is warranted.
author; moderator;
Inspections - the meeting: At the end of the inspection meeting the list of defects are given to the ______ and the _______.
not; solve;
Inspections - the meeting: It's important ___ to try and _____ errors during the meeting. There isn't enough time during a 2 hour meeting to both find defects and determine their solution.
recorder;
Inspections - the meeting: The ______ documents defects as they are raised. For each defect the _______ should document the location of the defect and its category/type/severity.
recorder
Inspections - the meeting: The ______ should also keep track of suggestions for improving the standard software process.
moderator
Inspections - the meeting: The ________ is responsible for keeping the meeting moving forward in a productive manner.
static
Inspections are a ____ technique for finding defects.
proven technique
Inspections are a ______ _______ for finding errors and improving the quality of work products.
formal
Inspections are a ______ method of review. They are considered _______ because there are well-defined roles and activities.
time; money; cost;
Inspections save ____ and _____ because the reduction in downstream rework that comes from doing inspections is greater than the upstream ____ of performing the inspections.
checklists
Inspectors should have _______ for common errors. _________ may be specific to the type of work product being reviewed. For code inspections ________may be language specific.
black
Most system tests are _____ box tests.
white
Most unit tests are ______ box tests.
find errors early
One benefit of performing inspections is improved product quality that comes from finding defects. Name another benefit of performing inspections.
causal analysis;
Other Benefits of Software Reviews: Continuous process improvement through _____ _______. Performing inspections creates the opportunity to improve the standard development process. If inspection results show the same type of error reoccurring, action can be taken to address the root cause. For example, if errors are repeated found in code copied from stackoverflow, a new rule can be instituted such that any code used from stackoverflow must be coded by two programmers practicing pair programming with both programmers clear on how the copied code works.
quality; maintainability;
Other Benefits of Software Reviews: Improved product _____ and _______
exit criteria; phase;
Other Benefits of Software Reviews: Provides for well-defined and measurable ____ ______ for a _____ in the project life-cycle.
cross-training;
Other Benefits of Software Reviews: _____-______ and skill enhancement. Participants can learn other parts of the system outside their immediate area of responsibility. Also, it provides an opportunity for junior analysts to learn technical skills from more senior analysts.
quality;
Phase containment improves software _____ and development productivity.
fixing; phase;
Phase containment is finding and _____ a bug in the ______ where it is introduced.
Logical
Philippe Kruchten's 4+1 views of software architecture: This view ensures that functional requirements are covered. It will contain class and object diagrams.
Development
Philippe Kruchten's 4+1 views of software architecture: This view is concerned with how the solution is packaged into modules or libraries as well as how work is divided and partitioned among developers
Process
Philippe Kruchten's 4+1 views of software architecture: This view shows the allocation of functionality to tasks and threads within tasks.
Physical
Philippe Kruchten's 4+1 views of software architecture: This view shows the mapping of software elements to the actual machines were the software elements will run.
creates
Prior to an inspection, the author performs the work and ______ a work product according to the organization's procedures, rules, guidelines and standards.
architecture style
An _______ _______ provides principles and guidelines for defining architecture elements, their interfaces, patterns of communication and constraints on the combination and interaction of elements.
-1, 1, 12, 13
Boundary value analysis, given the class: 1<=input<=12 what values would be selected?
worker; positive;
Guiding Principles for Software Reviews: Critique the work not the ______. The atmosphere of an inspection meeting should be _______ with the focus on improving the work product and not the errors of the author.
performance; managers;
Guiding Principles for Software Reviews: Don't use results for ______ evaluation. This is why _______ shouldn't participate in inspections.
culture; criticism;
Guiding Principles for Software Reviews: Make software reviews part of the ______. True professionals are open to constructive ______. (Similar to the idea of Egoless Programming)
programs;
High level components are typically subsystems or _______. Key classes may also be considered architecture components.
5
Ideal number of test subjects in usability tests:
prepares
If the product is ready for inspection, the moderator selects 2 or more qualified reviewers and ________ the materials to be inspected. The moderator makes sure that all inspectors have access to the work product, its source requirements, and applicable procedures, guidelines, standards, etc.
path
In order to achieve ______ coverage you need a set of test cases that executes every possible route through a unit of code.