Answers for Second Opportunity Day

  1. Answer (Section 17.1):
    • Has a high probability of finding an error
    • Not redundant
    • Should be capable of uncovering a whole class of errors
    • Should not be too simple or too complex

  2. Answer (Section 17.6):
    A black-box testing technique in which the input domain is divided into classes of equivalent data items. Test cases are derived from combinations of elements from each equivalence class. Exhaustive testing of all input domain values is not necessary.

  3. lines with no spaces, lines consisting of all spaces, lines starting with spaces, lines ending with spaces, lines of various lengths, lines that are too long, lines terminated early with a return.

  4. User interface layer - contains library for UI management and common presentation protocol
    Tools layer - CASE tools and tool management services
    Object management layer - performs configuration management and provides integration services
    Shared repository layer - CASE database and access control functions

  5. The ability to track the relationships between enterprise entities and processes, among the parts of an application design, between design components and deliverables is one of the most important contributions of the repository concept to the improvement of the software development process. As the design evolves to meet new requirements, the ability to identify all affected objects enables more accurate assessment of costs, downtime and degree of difficulty. It can also reduce the impact of unexpected side effects. Dependency tracking can also provide support for requirements tracing, configuration management, and the establishment of audit trails.

  6. Review OOA and OOD models
    Class testing after code is written
    Integration testing within subsystems
    Integration testing as subsystems are added to the system
    Validation testing based on OOA use-cases

  7. The user tasks described in the use-cases are used to construct the test cases. It is used to uncover errors that occur when actors interact with the software (focus is on user behavior, not product behavior). Generally it is better to spend more time reviewing the use cases as they are created than spending more time on testing.

  8. To define architectures (data, applications, technology infrastructure) that enable a business to use information effectively.

  9. Condition or branch testing -uses test cases that exercise every decision statement in the program.
    Data flow testing - selects test paths (definition use chains) according to the locations of variable definitions and uses in the program
    Loop testing -tests focus on the validity the repetition constructs (making sure that loops start and stop when they are supposed to)

  10. Black-box testing involves testing the functionality of a software component without knowing the details of its internal logic. White-box testing involves testing the independent logic paths with full implementation knowledge.

  11. Data integrity, information sharing, data-tool integration, methodology enforcement, document standardization

  12. State-based partitioning - tests designed so that operations that cause state changes are tested separately from those that do not
    Attribute-based partitioning - for each class attribute, operations are classified according to those that use the attribute, those that modify it, and those that do not use or modify the attribute.
    Category-based partitioning - operations are categorized according to the function performed: initialization, computation, query, or termination

  13. A systems model template is used to initially allocate the system elements to each of the five processing regions (user interface, input, system function and control, output, maintenance and self-test). A system context diagram (SCD) is created to establish the boundary between the system and the environment. A system flow diagram (SFD) is then created from the SCD to define the major subsystems and to show the lines of information (data and control) flow. Writing an SCD and SFD then refines each subsystem, as if it were a stand-alone system. The system specification is developed by writing a narrative description for each subsystem and definitions for the data that flow between subsystems.

  14. For strategic decision making one might recommend a management support system (MSS) consisting of data that can be used for projecting into the future. Statistical reports should be generated by the MSS for upper level management so they can get data in various forms, such as graphs and statistical results, to make long range plans based on possible simulations from the data. For tactical decision making, one might recommend a management information system (MIS) that includes the kinds of data that help lower and middle management people get reports in various forms that give them necessary information to help make short term decisions. A systems engineer should try to make it possible to link these systems to appropriate existing databases for the company and should indicate the necessity of having various levels of security in place for each kind of support system.

  15. When a test reveals a problem, the debugging process should include careful documentation of what the bug was, how it was fixed, when and by whom, as well as what other parts, if any, of the system may have been affected. Additions should be made to the test plan so that the newly revised program can be tested, as a unit and as part of the integrated system. Equally important, the cause of the bug should be documented with the hope of avoiding that class of error in the future.

CS349 Homepage

Last modified: Thursday, 10-Apr-2003 14:47:22 EDT