413 Midexam

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

This approach assumes that the seeded faults are the same kind and complexity as actual faults in the program. But we do not know what the typical faults are before we have found them, so it is difficult to make the seeded faults representative of the actual ones

1. Describe one problem with fault/error seeding that reduces its effectiveness

1. requirements consistent 2. requirements unambiguous 3. requirements complete

10. List three desirable characteristics of requirements.

all components are tested in isolation, mix them together as the final system and see if it works the first time. Why: 1. it requires both stubs and drivers to test the independent components 2. all components are merged at once, it is difficult to find the cause of any failure. 3. interface faults cannot be distinguished easily from other types of faults.

11. What is meant by big-bang testing and why is it generally not recommended?

precondition: list all assumption that our unit makes about its usage, so that other developers know under what condition the unit is guaranteed to work correctly. postcondition: we document all visible effects, like return values, output files, so that the calling code can react appropriately to the function's output invariants: consistency constraints.

12. When using a design by contract approach, describe what is meant by preconditions, postconditions, and invariants.

The requirements definition is a record of the requirements expressed in the customer's terms. The requirements specification covers exactly the same ground as the requirements definition, but from the perspective of the developers. Where the requirements definition is written in terms of the customer's vocabulary, referring to objects, states, events, and activities in the customer's world, the requirements specification is written in terms of the system's interface.

13. What is the difference between a requirements definition and a requirements specification?

1. Reduce Risk 2. Reduced time and costs 3. Improved and increased user involvement and easy make modifications. rapid prototype: is a partial solution that is built to help us understand the requirements or to evaluate design alternatives.

14. List three advantages of prototyping and describe what is meant by rapid prototyping.

active design review: for evaluating the quality of SAD and determining whether it contains the right information. passive review process: reviewers are given or devise questions that they must answer by looking up information in the SAD.

15. Describe in terms of activities performed, how an active design review and a passive review process are different from each other.

1. Stubs are the fake pieces of the code while drivers are the ones that are calling programs. 2. Stubs and drivers are used to replace the missing software and simulate the interface between the software components in a simple manner

16. What are stubs and drivers and how are they used in top-down and bottom-up testing?

1: software architecture: The overall architecture of a system is important not only to the ease of implementing and testing it but also to the speed and effectiveness of maintaining and changing it. 2: Software design is a process of problem-solving and planning for a software solution.

17. How are software architecture and software design different from each other.

We say that the requirements are externally complete if all states, state changes, inputs, products, and constraints are described by some requirement.

18. What does it mean for requirements to be externally complete?

conferring with the customer to make certain that the system works according to customer expectations. We join the customer to perform an acceptance test, where the system is checked against the customer's requirements description. Upon completion of acceptance testing, the accepted system is installed in the environment in which it will be used; a final installation test is run to make sure that the system still functions as it should.

19. Indicate how an acceptance test and an installation test are similar and how they are different.

a. Expert Judgment: Some are informal techniques, based on a manager's experience with similar projects. Thus, the accuracy of the prediction is based on the competence, experience, objectivity, and perception of the estimator. b. Algorithmic Methods: Researchers have created models that express the relationship between effort and the factors that influence it. The models are usually described using equations

2. List and provide a description of two different techniques for estimating effort.

A design pattern codifies design decisions and best practices for solving particular design problem according to design principles. The main goal of design patterns is to improve a design's modularity.

20. What are design patterns and what is one benefit or reason to use them in a project?

rigid/ change averse this model doesn't provide guidance to managers and developer on how to handle change of products and activities during development no iteration the model doesn't tell us back-and-forth activities that lead to creating a final product.

21. List two different problems with the traditional waterfall model of software development.

(Developers) the first step is meeting with the customer to determine the requirements. descriptions that will explain how users will interact with the completed system.

22. Describe the relationship between users, developers, and customers in software development

Professional testers organize and run the tests. They are involved from the beginning, designing test plans and test cases as the project progresses. Analysts who were involved in the original requirements definition and specification are useful in testing because they understand the problem as defined by the customer. the test team includes users. They are best qualified to evaluate issues dealing with appropriateness of audience, ease of use, and other human factors.

23. List three different members of a software test team and provide a description of their roles.

Coupling. We say that two modules are tightly coupled when they depend on a great deal on each other. Loosely coupled modules have some dependence, but their interconnections are weak. Uncoupled modules have no interconnections at all; they are completely unrelated Content Coupling Common Coupling Control Coupling Cohesion. In contrast to measuring the interdependence among multiple modules, cohesion refers to the dependence within and among a module's internal elements i. Coincidental ii. •Logical iii. •Temporal iv. •Procedural v. •Communicational vi. •Functional vii. •Informational

24. Describe what is meant by the terms coupling and cohesion and indicate to what extent they are desirable in software systems.

white box: execute all the control paths within the components to be sure the test object is working properly, can view the structure of the code black box: the test goal is to be sure the every kind of input is submitted, and that the output observed matches the output expected. cannot see the code

25. Indicate two ways in which white box and black box testing are different.

Single responsibility principle a class should have only a single responsibility Open/closed principle: objects or entities... should be open for extension, but closed for modification.

26. List two of the SOLID principles of software design and provide a brief description of what they mean.

Performance: response time Usability: how easy it is to use, which often includes how easy it is to learn. Reliability: how reliable is the system and can I depend on it to work.

27. Describe three different types of nonfunctional (quality) requirements.

ln the requirements process, use case diagrams describe the system to be built by describing the general processes that the system must perform, like how the users will interact with the system. Sequence diagrams, show how messages from one object to another, formalizing the informal descriptions of events in the requirements If the system is large, its software architecture can be modeled using UML component diagrams, to show the runtime components and their interactions

28. Specify at which stages of development UML use case diagrams, sequence diagrams, and component diagrams are most commonly used.

First, each program component is tested on its own, isolated from the other components in the system. Such testing, known as unit testing, test individual components, objects, and classes as well as method. Integration testing is the process of verifying that the system components work together as described in the system and program design specifications system testing. In these later steps, the system is viewed and tested as a whole rather than as separate pieces.

29. Provide a brief description of system testing, unit testing, and integration testing. Also, indicate the order in which the different phases are typically performed.

1. A tool is an instrument or automated system for accomplishing something in a better way. 2. A method or technique is a formal procedure for producing some result. 3. A procedure is like a recipe: a combination of tools and techniques that, in concert, produce a particular product. 4. A paradigm is like a cooking style; it represents a particular approach or philosophy for building software.

3. Describe the relationship between tools, procedures, techniques, and paradigms.

the specific case of loose coupling. i. Each unit should have only limited knowledge about other units: only units "closely" related to the current unit. ii. Each unit should only talk to its friends; don't talk to strangers. iii. Only talk to your immediate friends. In general, designs that obey the Law of Demeter have fewer class dependencies, and classes with fewer dependencies tend to have fewer software and are easier to change.

30. Provide a brief (~15 word) description of the Law of Demeter and specify two benefits that designs which obey this law tend to have.

Risk: is an unwanted event that has negative consequences Two example: personnel shortfalls, unrealistic schedules, and budgets.

31. Define what is meant by risk and provide two examples of potential risks in a software project.

Clients, who are the ones paying for the software to be developed Customers, who buy the software after it is developed Users, who are familiar with the current system and will use the future system Market researchers, who have conducted surveys to determine ftt1ure trends and potential customers' needs

32. List four different stakeholders who can contribute to the requirements process and one benefit their inclusion can provide.

Configuration tests analyze the various software and hardware configurations specified in the requirements. Security tests ensure that the security requirements are met. Documentation tests ensure that we have written the required documents

33. List and provide a brief description of three types of performance tests.

i. Uncoupled ii. Data Coupling iii. Stamp Coupling

34. List three types of coupling and rank them in order from loosest to tightest.

all execution errors, .Slips relate to observable actions and are commonly associated with attentional or perceptual failures. Lapses are more internal events and generally involve failures of memory.

35. When using the Human Error Taxonomy what do a slip and a lapse have in common and how are they different?

code inspection: formal and planned code walkthrough: informal and unplanned

36. Describe two differences between a code inspection and a code walkthrough.

Interfaces allow us to develop loosely coupled systems Interfaces make unit testing and mocking easier

37. List two benefits of using interfaces or abstract classes in object-oriented systems.

A functional requirement describes required behavior in terms of required activities, such as reactions to inputs, and the state of each entity before and after an activity occurs. The nonfunctional requirement, describes some quality characteristic that the software solution must possess, such as fast response time, ease of use, high reliability, or low maintenance costs. A design constraint is a design decision, such as choice of platform or interface components, that has already been made and that restricts the set of solutions to our problem. A process constraint is a restriction on the techniques or resources that can be used to build the system.

38. List the four different categories of software requirements and provide a brief description of each.

A fault occurs when a human makes a mistake, called an error, in performing some software activity. A failure is a departure from the system's required behavior.

39. Provide a description of the relationship between errors, failures, and faults.

1. Waterfall model: is a sequential development approach, in which development is seen as flowing steadily downwards through several phases. 2. Agile: software development processes iteration and the continuous feedback to successively refine and deliver a software system. 3. transnational model: tries to reduce the opportunity for error by eliminating several major development steps. Using automated support, the transformational process applies a series of transformations to change a specification into a deliverable system

4. List and provide a brief (2-3 sentences) description of three different software process models.

Coincidental cohesion Logical cohesion communicational cohesive

6. List three types of cohesion and rank them in order from low to high.

Traceability is the ability to verify the history, location, or application of an item by means of documented recorded identification. Traceability aids verification and validation.

40. What is meant by traceability and why is it desirable?

In a client-server, the design is divided into two types of components: clients and servers. Server components offer services, and clients access them using a request/reply protocol. P2P• Each component acts as its own process and acts as both a client and a server to other peer components. Any component can initiate a request to any other peer component.

41. How are the client-server and peer-to-peer architecture styles similar? How are they different?

Requirement gathering and analysis System analysis System design Coding Testing Implementation

42. List six different activities commonly undertaking during software development

Functional Decomposition: functions as modules Show how modules interact with each other Feature-oriented Decomposition: Features assigned to Modules Describe system in terms of Services Data-oriented Decomposition Partition data into Modules. Describe conceptual data structures

43. List three different types of design methods or decompositions. Provide a brief (~20 words) description of each.

Regression testing is the process of testing changes to computer programs to make sure that the older programming still works with the new changes The regression tests guarantee that the new system's performance is at least as good as that of the old.

44. What is regression testing and why is it beneficial to perform?

formal methods are a particular kind of mathematically-based techniques for the specification, development, and verification of software and hardware systems. Formal methods require highly trained mathematicians Formal methods sometimes increase the cost of development

45. What are formal methods and why are they typically not used in real-world software projects?

Extreme programming (XP) Scrum

46. List (you do not need to describe) two different types of agile methods.

entities, attributes, and relations entity---class in UML relationship---association in UML attributes----same in UML

47. What are the three parts of an ER diagram and how do that relate to a UML class diagram.

The configuration management team is responsible for ensuring that each version or release is correct and stable before it is released for use, and that changes are made accurately and promptly. The configuration management team works closely with the test team to control all aspects of testing.

48. What is the purpose of a configuration management team and how do they interact with other members of a software development team?

Software Reliability is the probability of failure-free software operation for a specified period of time in a specified environment. in a period of time, the failures occur rate

49. What is meant by software reliability and how is it typically measured?

1. Verification is the process of checking that the software meets the specification. 2. Validation is the process of checking whether the specification captures the customer's needs To summarize, verification ensures that we build the system right, whereas validation ensures that we build the right system!

5. Define the terms verification and validation and indicate how they are different.

immunity, high immunity means can defend an attempted attack. high resilience if can recover quickly and easily from a successful attack.

50. In terms of software security, how are immunity and resilience different from each other?

the process of hiding details of an object or function. Information hiding is a powerful programming technique because it reduces complexity. hiding information is encapsulation -- combining elements to create a larger entity. The programmer can then focus on the new object without worrying about the hidden details.

51. What is information hiding and how does it make software easier to maintain.

.1. what your component is called 2. who wrote the component 3. when the component was written and revised

52. What are three pieces of information that should be included in a header comment block?

When the documentation does not match what the program actually does, we say that the program has documentation faults. capacity or boundary faults occur when the system's performance becomes unacceptable as system activity reaches its specified limit. Recovery faults can occur when a failure is encountered and the system does not behave as the designers' desire or as the customer requires.

53. List and provide a brief description of three different types of faults.

provides us with a formal understanding of the program, because we examine its underlying logical structure. it takes more time to prove the code correct than to write the code itself.

54. What is one advantage and one disadvantage to using formal correctness proofs?

Execute all possible control flow paths through the program. Execute enough tests to assure that every branch alternative has been exercised at least once under some test.

55. What is the difference between path testing and branch testing?

Static analysis is performed when the program is not actually executing. Code analyzer Data analyzer

56. Describe what is meant by static analysis and list two different types of static analysis.

• The user view: quality is fitness for purpose • The manufacturing view: quality is consistent to specification • The product view: quality tied to inherent product characteristics

57. List three different perspectives on software quality and describe how they perceive quality.

The requirements are testable if they suggest acceptance tests that would clearly demonstrate whether the eventual product meets the requirements.

58. What benefit is there to ensuring that all requirements are testable?

What did you do yesterday? What will you do today? Is there any trouble in your way?

59. Provide a short (3 - 5 sentences) description of how a daily scrum operates.

1. function testing 2. performance testing 3. acceptance testing 4. installation testing

60. List three different steps of systems testing.

The development team includes one or more requirements analysts to work with the customer, breaking down what the customer wants into discrete requirements. Once the requirements are known and documented, analysts work with designers to generate a system-level description of what the system is to do. the designers work with programmers to describe the system in such a way that programmers can write lines of code that implement what the requirements specify. After the code is generated, it must be tested. sometimes, additional testers are also used to help catch faults that the programmers overlook. When units of code are integrated into functioning groups, a team of testers works with the implementation team to verify that as the system is built up by combining pieces, it works properly and according to specification.

7. List and provide a brief (~15 word) description of the roles of four different members of a software development team.

customers and programmers

8. List (you do not need to describe) the two types of participants in extreme programming.

1. boundary value analysis: it is used to find the errors at boundaries of input domain rather than finding those errors in the center of input. 2. The process of taking all possible test cases and placing them into classes. One test value is picked from each class while testing.

9. Describe how boundary value analysis and equivalence class partitioning are used in unit testing.


Ensembles d'études connexes

Chapter 12: The Postpartum Woman

View Set

Sheerpath Quiz 7 Parenteral and Syringe

View Set

NUR 3010 - Week 8 Content (Hypertension)

View Set