IN4MATX 43 - FINAL EXAM QUESTIONS
(c) Using the basis defined in (b), specify 3 or 4 subdomains.
- Blank Password - Password Scale 1 - Password Scale 2 - Password Scale 3
Describe two ways in which the spiral model improves on the weaknesses and the things that are wrong with the Waterfall process model
- Good for projects with uncertain requirements - Risk driven Wrong with Waterfall: - Very linear - Limited user-input
Describe two ways in which the RUP improves and breaks the rigid mold of the Waterfall process model
- Risk driven - Lots of tool support - Lot of guidance
Oracle
A method of determining whether a test case fails or succeeds.
Version Control
A method of having multiple versions of software. In Git, we can revert back and have history of our software using commits.
White-box testing
A method of testing based on the structure (code).
Agile
Agile process is adaptable, good for unclear requirements and good for small teams.
Imagine you are testing a multiplier function in a piece of software (takes two numbers as input and outputs the product of those two numbers). Specifically, you are testing the correctness of its computation. Give an example of a test oracle you might use. (Your answer should be only one or a few words.) (1 pt.)
Calculator
(b) What is a basis for dividing the set you described in (a) into subdomains?
Input for Password
Conformity
Software needs to conform to its environment. Like interfering with an existing system
Which of the following is not defined by a software process model, according to the textbook? (1 pt.) a. A set of tasks that need to be performed. b. The input to and output from each task. c. The preconditions and postconditions for each task. d. The number of people assigned to each task. e. The sequence and flow of these tasks.
d. The number of people assigned to each task.
In which quadrant of the spiral model does testing take place? a. upper left b. upper right c. lower left d. lower right e. in all quadrants
d. lower right
For each subdomain from (c), give a test case input and the expected output (make a reasonable guess, since you don't know PasswordStrength's precise algorithm)
{ballsack} Expected Output: 1
For each subdomain from (c), give a test case input and the expected output
• June 11, 2015 and June 13, 2015. Expected output: 2 • June 13, 2015 and June 11, 2015. Expected output: 2 • June 11, 2015 and June 11, 2015. Expected output: 0
Which one of the following statements is not true about (the classic version of) Open Source Software Development? (1 pt.) a. Source code is freely available to all people. b. Developers are highly motivated because often they are participating as volunteers. c. Developers are usually paid for their participation. d. Users often become co-developers. e. Developers are usually working together in a distributed manner (not all in the same location)
c. Developers are usually paid for their participation.
.The Rational Unified Process is considered a. Linear / Sequential / Rigid b. Risk-driven c. Heavy with detailed sub-flows for each sub-process d. Light and ideal for one or a small team of developers
c. Heavy with detailed sub-flows for each sub-process
In white-box testing, test cases are chosen based on (1 pt.) a. The type of test oracle that is being used b. The specifications of the software c. The structure of the code d. The current phase of the software process e. The number of defects already found in the software
c. The structure of the code
In white-box testing, edge coverage ensures that: (1 pt.) a. every possible path is taken b. every loop boundary is tested c. every branch is taken d. all possible exceptions are thrown e. all possible inputs are tested
c. every branch is taken
Agile software development is considered a. Linear / Sequential / Rigid b. Risk-driven c. Heavy with detailed sub-flows for each sub-process d. Light and ideal for one or a small team of developers
d. Light and ideal for one or a small team of developers
Suppose a software designer carefully reviews a project's design (consisting of written text, UML diagrams, and sketches) to make sure that it completely matches the Requirements Specification, with nothing modified or omitted. A word to describe this task is a. Verification b. Validation c. Testing d. Modeling e. Prototyping
a. Verification
Scrum is: (1 pt.) a. an agile software process model b. a spiral software process model c. an approach to black-box testing d. an approach to white-box testing e. a software project estimation technique
a. an agile software process model
Usability testing and acceptance testing (1 pt.) a. are examples of validation, not verification b. are examples of white-box testing, not black-box testing c. use test cases that guarantee node coverage, not edge coverage d. are done primarily to test the understandability of the source code e. All of the above
a. are examples of validation, not verification
The following formula was presented in the lecture on project effort estimation: E=0.7 KLOC1.50. In this formula, what does "E" mean? a. effort b. estimate c. ease d. entropy e. elephant
a. effort
The Quality Assurance goal of static analysis is to a. find defects b. improve run-time c. count KLOC d. provide black-box test cases e. prove program correctness
a. find defects
2.The waterfall process model is a. linear and ideal. b. nonlinear and ideal. c. linear and realistic. d. nonlinear and realistic. e. more complex than is usually needed.
a. linear and ideal.
John Carmack, the co-founder of Id Software and a renown game programmer, says that a certain technique has changed his "mindset about the way I view software reliability and code quality." What is this technique? a. static analysis b. black box testing c. the waterfall model d. Brooks' Law e. client server architecture
a. static analysis
Which of the following is not part of the design phase of software development? a.Coding algorithms and data structures. b.Defining modules and their interfaces. c.Selecting programming languages and libraries. d.Developing the specifications in more detail. e.Determining an architectural style.
a.Coding algorithms and data structures.
Recall the excerpt of the Clay Shirky video played in lecture on Tuesday. What is Clay Shirky's term for the extra mental energy that people sometimes have in a society after an advance in technology, the economy, or social organization? a.Cognitive surplus. b.Software smarts. c.Gin and sitcoms. d.Wikipedia. e.Shirky's Law.
a.Cognitive surplus.
Which of the following activities is associated with the upper left hand quadrant of the Spiral model? a.Determining objectives. b.Architecture. c.Prototyping and resolving risks. d.Assigning specific tasks to individuals on the team. e.Software product design.
a.Determining objectives.
Agile processes tend to avoid lengthy design stages. What is more characteristic of the Agile approach? a.Incremental design, where design decisions are delayed as much as possible. b.Standard design, using a fixed UML template. c.No design, where requirements specifying is followed immediately by coding. d.Pair design, where two designers jointly develop the design. e.Object oriented design, where the system is decomposed into classes
a.Incremental design, where design decisions are delayed as much as possible.
6.Which of the following is not a key value of the agile movement, as laid out in the Agile Manifesto? a.Planning ahead is more important than reacting to events. p. 84 b.Individuals and interactions are more important than processes and tools. c.Working software is more important than comprehensive documentation. d.Customer collaboration is more important than contract negotiation. e.Responding to change is more important than following a plan.
a.Planning ahead is more important than reacting to events. p. 84
A software engineer has an idea for a new, super-fast source code compiler. He and one of his friends develop an initial version and post the source code online. Soon, other developers from around the world join in and start evolving the software, adding new functionality, fixing bugs, and adapting it to different environments. What kind of software process is being followed here? (1 pt.) a. Rational Unified Process (RUP) b. Extreme Programming (XP) c. Waterfall d. Open Source Software (OSS) e. Spiral
d. Open Source Software (OSS)
The software process followed by the developers in the Nordstrom Innovation Lab video shown in class (the sunglasses iPad app) was most like: (1 pt.) a. The Waterfall model b. The Rational Unified Process (RUP) c. An agile process d. The Open Source Software (OSS) model e. All of the above
c. An agile process
Imagine you're developing software according to the Extreme Programming process model, and you are now ready to start implementation. What do you do first? (1 pts.) a. Write code b. Write code in pairs c. Create tests d. Refactor code e. Write the requirements document
c. Create tests
Failure
A failure is when expected output does not match the actual output.
What activities are performed in the upper left quadrant of the Spiral Model? Your answer should only be a few words long.
Determine objectives, alternatives, constraints
Edsger Dijkstra said, "Testing can show the presence of bugs, but not their absence." This statement is true for which kinds of testing? (Circle all letters in the Answer Box corresponding to correct answers.) a. White box. b. Black box. c. Beta. d. Regression. e. Acceptance
All 5
KLOC
An outcome for project estimates. Basically, thousand of lines of code
Verification
Implementing the idea properly. So basically, verifying to see if the specification matches the requirements.
Open Source
Open source primarily involves anyone. One of the main benefits of open source is that they are the most motivated, very high quality code.
What is the difference between white-box testing and black-box testing? a. How they select test cases. b. How they determine whether the output is correct. c. Whether they can be used for unit testing. d. White-box testing is used with Agile approaches, and black-box is not. e. White-box testing is done by a Quality Assurance team, and black-box testing is performed by the programmer
a. How they select test cases.
Which one of the following is not a key value of the agile movement? (1 pt.) a. Planning ahead is more important than reacting to events. b. Individuals and interactions are more important than processes and tools. c. Working software is more important than comprehensive documentation. d. Customer collaboration is more important than contract negotiation. e. Responding to change is more important than following a plan
a. Planning ahead is more important than reacting to events.
Which of the following software process models requires a "process expert" in order to utilize it? (1 pt.) a. Rational Unified Process (RUP) b. Extreme Programming (XP) c. Rapid Prototyping d. Open Source Software (OSS) e. All of the above processes require a "process expert"
a. Rational Unified Process (RUP)
The textbook notes that incremental process models can utilize the "divide and conquer" methodology in which a large, complex problem is decomposed into parts. What difficulty with this approach is noted by the textbook? a.The subproblems are too intertwined to be easily decoupled. b.Each subproblem then has to be solved with the waterfall model. c. It does not facilitate evolutionary software development and management. d. Divide and conquer is ineffective due to the essential complexity of software. e. Each subproblem then has to be solved with the spiral model.
a.The subproblems are too intertwined to be easily decoupled. p. 63
.Within the context of requirements engineering, what is the primary purpose of creating a prototype? a.To assist in understanding the user's needs. b.To provide a basis for further design and programming. c. To help the user prioritize different and possibly incompatible requirements. d.To determine the optimal programming language for the desired system. e. To fulfill the structure of the spiral process model
a.To assist in understanding the user's needs.
According to the textbook, the "simplest" process model depicts, from the programmer's point of view, a.the code - compile - unit test cycle. b.the unavoidable risks of software engineering. c.the emphasis on testing promoted by Brooks. d.the contractual nature of a requirements specification. e.the opposite sequence of events than one finds in the Waterfall model.
a.the code - compile - unit test cycle.
Which of the following is not true of black-box testing? (1 pt.) a. An oracle is used to determine whether or not a test case passes. b. A graph model of the source code is built as part of the process. c. Test cases are chosen based on the specifications of the software. d. Equivalence class partitioning is often used to choose test cases. e. All of the above are true of black-box testing.
b. A graph model of the source code is built as part of the process.
Which of the following software process models involves the customer the most throughout the process? (1 pt.) a. Rational Unified Process (RUP) b. Extreme Programming (XP) c. Incremental d. Open Source Software (OSS) e. Spiral
b. Extreme Programming (XP)
Here are the seven steps of the Testing Process Model, listed in alphabetical order and labeled P-V: P. Capture the actual output A. Q. Compare E and A. Different? Inform programmer. R. Decide what to test. S. Determine the expected output E. T. Loop back to steps 1 or 2, if time permits. U. Run the system with the test case input V. Select a test case input What are the first, second, and third steps of the Testing Process Model? (1 pt.) a. S, U, V b. R, V, S c. P, U, T d. U, T, P e. P, S, Q
b. R, V, S
In black-box testing, test cases are chosen based on (1 pt.) a. The type of test oracle that is being used b. The specifications of the software c. The structure of the code d. The current phase of the software process e. The number of defects already found in the software
b. The specifications of the software
Within the context of requirements engineering, what is the primary purpose of creating a (rapid) prototype? (1 pt.) a. To determine the optimal programming language for the desired system b. To assist in understanding the user's needs c. To assist in choosing the most appropriate software life cycle model d. To assist in planning the schedule of the project e. To fulfill the structure of the spiral process model
b. To assist in understanding the user's needs
The primary purpose of unit testing is to (1 pt.) a. test the usability of a software unit b. test the correctness of a software unit c. test that all statements in a software unit are executed at least once d. test that all branches in a software unit are executed at least once e. test that all paths in a software unit are executed at least once
b. test the correctness of a software unit
The purpose of an oracle in testing is a. to provide a database of test cases. b. to determine whether a test case execution succeeded or failed. c. to replace formal specifications. d. to determine when testing can be stopped. e. to help identify the set of all possible inputs.
b. to determine whether a test case execution succeeded or failed.
The terms "error", "failure", and "fault" (listed here in alphabetical order) are given specific definitions in the textbook, and in lecture, to replace the more general term "bug." For the next three questions, match each term with its definition. Error Failure Fault a. An inability to make implicit requirements explicit b. A defect in source code or in another document, such as a requirements specification c. An inconsistency in the test case scenario d. The inability of a system to perform the correct function; an incorrect output e. A mistake made by a software engineer or programmer
e d b
. Which of the following software process models requires that the developers be competent at risk analysis? (1 pt.) a. Rational Unified Process (RUP) b. Extreme Programming (XP) c. Waterfall d. Open Source Software (OSS) e. Spiral
e. Spiral
What is the focus of the fourth iteration in a spiral process? (1 pt.) a. Requirements b. Design c. Implementation d. Testing e. Whatever activity addresses the current biggest risk
e. Whatever activity addresses the current biggest risk
What are the last two steps of the Testing Process Model? (1 pt.) f. Q, T g. V, P h. S, Q i. U, T j. R, U
f. Q, T
John Carmack, the co-founder of Id Software and a renown game programmer, says that a certain technique has changed his "mindset about the way I view software reliability and code quality." What is this technique? a. static analysis b. black box testing c. the waterfall model d. Brooks' Law e. client server architecture
static analysis
(b) What is a basis for dividing the input domain you described into subdomains?
the chronological order of the two dates
What is refactoring? What role does it play in Extreme Programming?
• modifying code to make it more readable/maintainable/flexible/robust • replaces design in advance / done repeatedly / incremental, iterative
(c) Using the basis defined in (b), specify 3 or 4 subdomains.
• the first date is earlier • the first date is later • the two dates are the same