New Semester
Started
Get
50% OFF
Study Help!
--h --m --s
Claim Now
Question Answers
Textbooks
Find textbooks, questions and answers
Oops, something went wrong!
Change your search query and then try again
S
Books
FREE
Study Help
Expert Questions
Accounting
General Management
Mathematics
Finance
Organizational Behaviour
Law
Physics
Operating System
Management Leadership
Sociology
Programming
Marketing
Database
Computer Network
Economics
Textbooks Solutions
Accounting
Managerial Accounting
Management Leadership
Cost Accounting
Statistics
Business Law
Corporate Finance
Finance
Economics
Auditing
Tutors
Online Tutors
Find a Tutor
Hire a Tutor
Become a Tutor
AI Tutor
AI Study Planner
NEW
Sell Books
Search
Search
Sign In
Register
study help
business
software testing and quality assurance
Software Engineering Theory And Practice 4th Edition Shari Pfleeger - Solutions
Consider the following four specifications to insert an element val into a list l i st. For e ach pair of specifications, state whether one is substitutable for the other. Defend your answer.(a) require: val is not in list ensure: list contains all of its previous values plus val(b) ensure: if val
An alternate version to specification 18(a) would be (a') below, which declares an exception rather than requiring that the list not already contain the element to be inserted:(a') exception: throws Dupl i cateElem if val is already in 1 ist ensure: 1 i s t contains all of its previous values plus
Rewrite the specifications in Section 6.8 (on design documentation) to use exceptions.
You are about to choose between two modules to use in your design, both of which compute the minimum value in an array of integers. One module returns the smallest representable integer if the input array is empty. The other module requires a nonempty array.Which module is better, and why?
Consider a simplified 00 design, shown in Figure 6.47, for a banking system. Accounts can be created at the bank, and money can be deposited and withdrawn from the account.An account is accessed by its account number. Use the Decorator design pattern to add two new banking features to the
A bank must report to the government's tax institution all transactions (deposits and withdrawals) that exceed $10,000. Building on the initial design of the banking system from question 22, use the Observer design pattern to construct a class that monitors all Account transactions.
Does the component perform the function or provide the data you need?
If minor modificatjon is required, is it Jess modification than buiJding the component from scratch?
Is the component well-documented, so you can understand it without having to ve rify its implementation line by line?
Is there a complete record of the component's test and revision history, so you can be certain that it contains no fa ults?
lden1ifying a related problem: Are there d ata, algorithms, libraries, or me thods that we can use to attack our problem?
Restating the problem: What are the key definitions? Cao the problem be generalized or made more specific to make it more tractable? Can simplifying assumptio ns be made?
Decomposing the problem: What are the essential elements of the problem? Can the data be partitioned into categories, so that each category can be processed separately?
D efine the features that the programmers wiU implement, using stories to describe the way the system wiU work
Describe detailed tests that they will run when the software is ready, to verify that the stories were implemented properly
We call a statement in any language a compute d case type of statement if it branches to one of several areas in the program, depending on the value of a variable. Discuss the positive and negative aspects of a computed case statement. In particular, how does it affect control How? Maintainability?
If one person has written a component but others have revised it, who is responsible if the component fails? What are the legal and ethical implications of reusing someone else's component?
A list is a data structure that can be defined recursively. Give a recursive definition of a list. If you are familiar with a programming language that has recursive procedures(such as LISP or PUI), explain how elements are added to and deleted from a list in that language.
Give an example to show how a language designed for recursion makes list handling easier to understand than a language without such provision.
You are asked to write a program to print out a yearly calendar. The user enters the year desired, and the output is a calendar for that year. Discuss how the representation of internal data will affect the way in which the program is written. Give several examples of data structures that might be
The common algorithm for calculating the roots of a quadratic equation by the quadratic formula requires considering several special cases in your code. Write appropriate comments for this algorithm so that the comments make it easy to see the different cases and how they are handled. Write
Find out the paging algorithm for a computer operating system with which you are familiar. Write external documentation for the algorithm, explaining to a user how paging is done.
Look at a program you have submitted as a project in another class. Can it be improved by using the suggestions in this chapter? If so, how? Does incorporating these suggestions make your program more or less efficient?
What are the advantages and disadvantages of using the same standardized language or tools across all applications in your organization?JO. When code components are generated automatically by a tool or reused from a repository, how should coding, documentation, and design standards be en forced?
How can control flow be documented for an object-oriented program?
When your code expects a unique value, is there a path that generates a unique result?
When there are many possible values, is there a way to select a unique resuJt?
Are there useful cases that are not handled?
Examine the fault categories in Hewlett-Packard's classification scheme, shown in Figure 8.1. Is this an orthogonal classification? If not, explain why, and suggest ways to make it orthogonal.
Let P be a program component that reads a list of N records and a range condition on the record key. The first seven characters of the record fonn the record key. P reads the key and produces an output file that contains only those records whose key falls in the prescribed range. For example, if
Complete the proof of the example in the text illustrated by Figure 8.5. In other words, write assertions to correspond to the flow diagram. Then, find the pa ths from input condition to output. Prove that the paths are theorems.
Suppose a program contains N decision points, each of which has two branches. How many test cases are needed to perform path testing on such a program? If there are M choices at each decision point, how many test cases are needed for pa th testing? Can the program's structure reduce this number?
Consider a program How diagram as a directed graph in which the diamonds and boxes of the program a re nodes, and the logic How arrows between them a re di.reeled edges. For example, the program in Figure 8.7 can be graphed as shown in Figu.re 8.21. Prove that statement testing of a program is
Programmable problem: Write a program that accepts as input the nodes and edges of a directed graph and prints as output all possible paths through the graph. What are the major design considerations for you.r program? How does the complexity of the graph (in terms of number of branches and cycles)
Figure 8.22 illustrates the component hierarchy in a software system. Describe the sequence of tests for integrating the components using a bottom-up approach,a top-down approach, a modified top-down approach, a big-bang approach, a sandwich approach, and a modified sandwich approach.
Explain why the graph of Figure 8.19 can be interpreted to mean that if you find many faults in your code at compile time, you should throw away your code and write it again.
What are some possible explanations for the behavior of the graph in Figure 8.19?
A program is seeded with 25 faults. During testing, 18 faults are detected, 13 of which are seeded faults and 5 of which are indigenous faults. What is Mills's estimate of the number of indigenous faults remaining undetected in the program?
You claim that your program is fault-free at a 95% confidence level. Your test plan calls for you to test until you find all seeded faults. With how many faults must you seed the program before testing in order to substantiate your claim? If for some reason you do not intend to find all seeded
Discuss the differences in testing a business-critical system, a safety-critical system, and a system whose failure would not seriously affect lives, health, or business.
Give an example of an object-oriented system where synchronization problems require careful testing.
If an independent test team does integration testing and a critical fault remains in the code after testing is complete, who is legally and ethically responsible for the damage caused by the fault?
Suppose you are building a tax preparation system that has three components. The first component creates forms on the screen, allowing the user to type in name, address, tax identification number, and financial information. The second component uses tax tables and the input information to calculate
Is the system using actual input from users o r devices, or are special cases generated by a program or surrogate device?
What are the test coverage criteria?
How will data be recorded?
Are there timing, interface, equipment, personnel, database, or other limitations on testing?
If the test is a series of smaller tests, in what order are the tests to be performed?
Consider the development of a two-pass assembler. Outline its functions and describe bow you might test it so that each function is tested thoroughly before the next function is examined. Suggest a build plan for the development, and explain how the build plan and testing must be designed together.
Certification is an outside source's endorsement of a system's correctness. It is often granted by comparing the system to a predefined standard of performance. For example, the U.S. Department of Defense certifies an Ada compiler after testing it against a long list of functional specifications.
When you develop a build plan, you must take into account the resources available to both developers and customers, including time, staff, and money. Give examples of resource constraints that can affect the number of builds defined for system development.Explain how these constraints affect the
Suppa;e a mathematician's calculator has a function that computes the slope and intercept of a line.The requirement in the definition document reads:"The calculator shall accept as input an equation of the form Ax + By + C = 0 and print out the slope and intercept."The system implementation of this
In Chapter 4, we discussed the need for requirements to be testable. Explain why testability is essential for performance testing. Use examples to support your explanation.
What kinds of performance tests might be required for a word processing system? A payroll system? An automated bank teller system? A water-quality monitoring system? A powe r plant control system?
An air traffic control system can be designed to serve one user or many. Explain how such a system can have a variety of configurations, and outline how a set of configuration tests might be designed.
A navigation system is about to be installed on an airplane. What issues must be conside red as you design the installation test?
The following news release from CNN describes a software feature whose proper implementation might have prevented the crash of Korean Air Lines Hight 801 in Guam in August 1997. What type of testing could have ensured that the feature was working prope rly in an appropriately sized area around Guam
Give an example to show tha t testing is sometimes impossible without using a device simula tor. Give another example to show the need for a system simulator.
Comment on the discrepancy report form in Figure 9.15 in light of the questions that we should be able to answer about the failure by reading the form.
A payroll system is designed so that there is an employee information record for each pe rson who works for the company. Once a week, the employee record is updated with the numbe r of hours worked by the employee that week. Once every two weeks, summary reports are printed to display the number of
Willie's Wellies PLC has commissioned Robusta Systems to develop a computer-based system for testing the strength of its complete Line of rubber footwear. Willie's bas nine factories in various locations throughout the world, and each system will be configured according to factory size. Explain why
Write a test script for testing the LEVEL function described in this chapter.
In this chapter, we have proposed a reliability measures in terms of mean time to failure, availability in terms of mean time between failures, and maintainability in terms of mean time to repair. Are these measures consistent with the definitions presented in this chapter? That is, if reliability,
A safety-critical system fails and several lives are lost. When the cause of the failure is investigated, the inquiry commission discovers that the test plan neglected to consider the case that caused the system failure. Who is responsible for the deaths: The testers for not noticing the missing
If a system's ultra-high-reliability requirement means that the reliability can never be verified, should the system be used anyway?
Sometimes, customers hire an independent organization (separate from the development organization) to do independent verification and validation (V & V). The V & V staff examines all aspects of development, including process and product, to ensure the quality of the final prcxiuct. If an
In this chapter, we introduced two functions: the distribution function, F(t), and the reliability function, R(t). If the reliability of a system improves as we test and fix it, what happens to the graphs of these functions?
Sidebar 9.6 describes two versions of VxWorks software, one for a 68000 chip and one for an R6CXX> chip. Explain the configuration management issues related to building one system for two different chips. Could the configuration management strategy have helped the vendor to port the 68000 version
A test oracle is a hypothetical person or machine that can tell when actual test results are the same as expected results. Explain the needl for including a test oracle in developing testing theory.
Outline a build plan for testing the Piccadilly system.
Prototyping allows the users to try out a working model of a system before the actual system is complete. Explain how prototyping can be counterproductive if it creates task interference during training.
Give an example of a system for which user training and operator training are the same.
The user of an automated system need not be familiar with computer concepts. However, knowledge of computers is beneficial for most operators. In what cases should the user of am automated system be unaware of the underlying computer system? Is this lack of awareness a sign of good system design?
Examine the user docwnentation for a computer system at your school or job. Is it clear and easy to understand? Would it be understandable to a user who knows little about computers? Are the failure messages easy to interpret? Is there a listing of failure mess.ages separate from the user's manual?
Suppose a system's failure philosophy is to mediate the problem behind the scenes, without the user's knowledge. In a safety-critical system, what are the legal and ethical implications of not telling the user that a failure has occurred? Should the system report the failure and its corrective
Table 10.3 contains some of the failure messages in a reference guide for an actual BASIC interpreter. Comment on the clarity, amount of information, and appropriateness for user or operator.
Categorize the following systems as S-, P-, or E-systems. For each one, explain why it belongs in that category. Identify those aspects of the system that may change.(a) an air traffic control system(b) an operating system for a microcomputer(c) a floating-point acceleration system(d) a database
Explain why a high degree of coupling among components can make maintenance very difficult.
Explain why the success of a system depends heavily on the quality of the documentation gene rated during system development.
Some computer science classes involve building a term project that begins as a small system and is continually enhanced until the result is complete. If you have worked on such a project, review your notes. How much time was spent defining and understanding the problem? How much time was spent
Explain why maintenance programming may be more challenging than new development. Why must a good maintenance programmer have good "people skills"? What are other desirable characteristics of a maintenance programmer?
Examine a large program from one of your class projects. How must you add to the documentation so that someone else can maintain it? Discuss the pros and cons of writing this supplementary documentation as the program is developed.
Borrow a copy of a large program (more than 1000 lines of code) from a friend. Try to choose a program with which you are not at all familiar. How useful is the documentation? Compare the code with the documentation; how accurate is the documentation? If you were assigned to maintain this program,
As with the previous problem, examine a friend's program. Suppose you want to make a change to the code, and you must perform regression testing on the result to ensure that the program still runs properly. Are test data and a test script available for your use? Discuss the need to retain formal
Explain why single-entry, single-exit components make testing easie r during maintenance.
Review the characteristics of good software design. For each one, explain whether it will he lp or hinde r software rejuvenation.
Is the Ariane-5 software an S-, P-, or E-system?
Does the McCabe cyclomatic number allow us to form an ordering of components according to quality? That is, can we a lways say that one compone nt is more complex than anothe r? Name some aspects of software complexity that a re not captured by the cyclomatic number.
Suppose you are maintaining a large safety-critical softwa re system. You use a model, such as Porter and Selby's, to predict which components are most Likely to fail. Then, you examine those ide ntified components carefully and perform perfective and preventive maintenance on each one. Soon after.
The following is a list of the version a nd configuration control functional crite ria for configuration ma nagement tools for a British agency. Explain how each factor contributes to the ease of maintenance.(a) Record versions or references to them.(b) Retrieve any version on demand.(c) Record
The facets of a faceted classification scheme must be orthogonal. That is, the characteristic described by one facet cannot be described by using a combination of one or more other facets. Define a set of facets to classify the books in a software engineering library. How many facets do you need?
Explain why a cost model for reusing software must include costs for more than one project.
List some information that may be useful in recording the reuse history of a component.Be sure to include a rationale for each element in your list.
Suppose a postmortem analysis reveals that a particula r developer is responsible for the major system problems. Wha t kinds of improvement activities should be included in the recommendations to address this?S. Pe rfonn a postmortem on one of your own projects. What would you have done differently
Examine the quality models described in this chapter: Boehm, ISO 9126, and Dromey. For each contributing characte ristic of quality, discuss possible ways to measure the characte ristic, and describe whether the measure is subjective or objective.
Examine the quality models in Figures 1.5, 12.2, and 12.3. H ow can models like these be used to prevent problems with product quality? Can measurement help to avoid such problems?
Compare and contrast the McCall, Boehm, and ISO 9126 quality models. How do they differ from the developer's point of view? From the user's point of view?
ISO 9126 is meant to be a general model of software quality that can be used by anyone involved with software. Is it sensible to have a general model? How does it help in comparing the quality of two different products? Are some products so unusual that ISO 9126 does not apply?
Compute r security is usually considered necessary for a high-quality software product.How can compute r security be defined in terms of the ISO 9126 model of quality?
Suppose you have implemented a new review technique during your requirements process.How could you evalua te its effectiveness? How would you control variables so that you are sure it is the new technique tha t is responsible for differences in quality or productivity?
Showing 1300 - 1400
of 3990
First
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Last
Step by Step Answers