se question bank

Upload: sakthigeeth

Post on 04-Apr-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 SE Question bank

    1/29

    ANNA UNIVERSITY OF TECHNOLOGY, COIMBATORE

    B.E./B.TECH. DEGREE EXAMINATIONS: APRIL/ MAY2011 REGULATIONS: 2008

    FOURTH SEMESTER - INFORMATION TECHNOLOGY

    080250013 - SOFTWARE ENGINEERING AND QUALITY ASSURANCE

    Batch: 2008

    Date of Examination: 21.04.11 Regulation of Syllabus: 2008

    PARTA

    Answer ALL Questions

    1. What does System engineering model accomplish?System Engineering is a modeling process. It accomplishes following things

    1. The process that needs a view of consideration is defined2. Behaviour of the system is represented3. Exogenous and endogenous input are defined4. All linkages for understanding each view must be represented2. Differentiate between verification and validation

    Verification Validation

    Are we building the product right? Are we building the right product?The Software should conform to itsspecification

    The software should do what the user reallyrequires

    The inputs of verification are checklists, issues

    list, walkthroughs and inspection meeting,

    reviews and meetings

    The input of validation is the actual testing of

    an actual product

    The output of verification is a nearly perfect set

    of documents, plans, specification and

    requirements document

    The output of validation is a nearly perfect,

    actual product

    3. Define Software engineeringDefinition by Fritz BallerSoftware engineering is the establishment and use of sound engineering principles in order toobtain economically software that is reliable and works efficiently on real machines.

    IEEE Definition

    Software Engineering is the application of a systematic, disciplined, quantifiable approach tothe development, operation, and maintenance of software; that is, the application of

    engineering to software.

    Definition by Sommerville

    Software engineering is concerned with software systems developed by teams rather thanindividual programmers, user engineering and is made up of both technical and non-technical

    aspects.

    4. How does project risk factor affect the spiral model of software development?The spiral model demands considerable risk assessment because if a major risk is notuncovered and managed, problem will occur in the project and then it will not be acceptable

    by end user.

    5. Compare the product engineering and process engineering

  • 7/29/2019 SE Question bank

    2/29

    Product engineering Process engineering

    The goal of product engineering is to translate

    the customers desire for a set of defined

    capabilities into a working product.

    The goal of process engineering is to define

    architectures that will enable a business to use

    information effectively

    The various views used here is Requirementsengineering, Component engineering, Analysis

    and Design modeling and Construction and

    Integration

    The various view used here is InformationStrategy Planning, Business Area Analysis,

    Business System Design and Construction and

    Integration

    6. Identify ambiguities and omissions in the functional requirements, What questionswould you ask to clarify these functional requirements

    Following are the questions that must be asked to clarify the functional requirements

    Is the reqiurement specification clear?Can it be misinterpreted? What are the sources of requirements? Is the final requirement specification as per the

    original source?

    Is there any requirements violation for domain constructs? What are the other related requirements of the current requirements? And are they cross

    verified?

    For tracing the requirements is there any system model? Is the requirements testable? Has an index specification created for the requirements? Is the requirement satisfying the system objective?7. How to select the appropriate prototyping approach?

    There are two prototyping approaches namely throwaway and evolutionary. The selection

    among these prototyping is based on certain questions namely as follows

    Questions Evolutionary

    prototyping

    Throwaway

    prototyping

    Is Application domain understood? Yes Yes

    Can the problem be modeled? Yes Yes

    Are the requirements established and stable? Yes No

    Is the customer knows the basic requirements? Yes/No Yes/No

    Are there some ambiguous requirements? No Yes

    Are there Contradictions in requirements? No Yes

  • 7/29/2019 SE Question bank

    3/29

    8. What is data dictionary? Where it is used in software engineering?The data dictionary represents all of the names used in the system models. Thedescription of the entities, relationships and attributes are also included in data dictionary.

    The data dictionary is used during the structured analysis for providing the detail

    information of the data objects being used in DFD. Nowadays, the data dictionary is

    implemented as a part of CASE.

    9. What do you mean by horizontal and vertical partitioning?Horizontal partitioning defines separate branches of the modular hierarchy for each majorprogram function.

    Vertical partitioning, often called factoring, suggests that control (decision making) and

    work should be distributed top-down in the program structure.

    10.Brief the importance of user interfaceAn experienced user can use the system easily with the user interface.

    The users can switch from one task to another very easily. He can also interact with manyapplications simultaneously. The application information remains visible in its own

    window.

    Fast and full screen interaction is possible with user.

    11.Justify the term: design is not coding and coding is not designThis is one of the design principles that are to be applied while designing the software

    systems. This means that level of abstraction o design model should be higher than the

    source code. At the time of coding, whatever design decisions are made can beimplemented. Hence design should be such that it can be transformed into source code.

    Similarly, during coding it is not desired to do design to fulfill the requirements.

    12.State the guidelines for modular designThe Guidelines for modular design can be given as

    Achieve the functional independence

    High level of cohesion should be achieved

    There should be minimum number of coupling

    13.Why testing is important with respect to software?The software testing is an important activity carried out in order to improve the quality ofthe software. A testing process focuses on logical internals of software ensuring that all

    statements have been tested and all are functional externals. While testing, we execute the

    entire program before it gets to the customer with specific indent of finding and removingall errors. In order to find the highest number of errors, test must be conducted

    systematically and test cases must be designed using disciplined techniques.

    14.How regression and stress tests are performed?

  • 7/29/2019 SE Question bank

    4/29

    Regression testing is used to check for defects propagated to other modules by changesmade to existing program. Thus regression testing is used to reduce the side effects of the

    changes.

    Stress testing determines breakpoints of a system to establish maximum service level. In

    stress testing the system is executed in a manner that demands resources in abnormal

    quantity, frequency or volume.

    15.What is cyclomatic complexity? How to calculate this?Cyclomatic complexity is software metric that provides a quantitative measure of thelogical complexity of a program. Cyclomatic complexity can be calculated using the

    formula

    V(G)=E-N+2Where E= Number of egdes in a graph

    N=Number of nodes in a graph

    16.When do you stop testing? Justify your answer with two illustrationsSome factors which decide when to stop testing is as follows:

    When the testing cost is increasing and if it is more than the project cost then it isenough to test

    If the project deadline and testing deadline is already crossed After completion of critical or key test cases one can stop testing If the project is meeting functional coverage, code coverage or satisfying the

    client requirements at some point

    When high priority bugs are resolved and defect rates fall below certain specifiedlevel.

    Examples

    1. For sorting a list of elements typical test cases can be like testing unsorted list, testingwhen equal elements are present, testing empty list and testing with negative

    numbers. This much testing is sufficient because it satisfies the major requirements of

    the function.

    2. In the development of Windows OS the IE is a famous web browser that we use.There are many security patches that need to be applied. Some patches are already

    introduced with newer versions of OS. But still this product specially shows how

    testing is an endless process

    17.Define SQASoftware Quality Assurance (SQA) is the process of defining how software quality can

    be achieved and how the development organisation knows that the software has the

    required level of quality

  • 7/29/2019 SE Question bank

    5/29

    18.What are the parameters used for software configuration?The various parameters used for software configuration are

    identification, version control, change control, configuration auditing, and reporting

    19.What is the need for SCM?The SCM is concerned with managing the changes in the evolving software. If the

    changes are not controlled at all then this stream of uncontrolled changes can cause the

    well running project into chaos. Hence it is essential to identify, control, implement and

    report these changes.

    20.Define the term product qualityThe Conformance to explicitly stated functional and performance requirements, explicitly

    documented development standards, and implicit characteristics that are expected of all

    professionally developed software is known as Software Quality. The quality of a

    developed product is influenced by the quality of the production process. This means

    Product quality is related to the development process.

    PART B

    ANSWER ANY FIVE QUESTIONS

    21.a) Explain about system engineering concepts and briefly describe on Productengineering

    System Engineering is the activity of Specifying, designing, implementing, validating,

    deploying and maintaining socio-technical systems.

    System engineers are not just concerned with the services provided by the system, but

    they must think about the constraints on its construction and operation and the ways in

    which it is used.

    The Various activities in system engineering are

    System Requirement analysis

    System Design

    Sub-System Deveoplment

    System integration

    System Installation

    System Evolution

  • 7/29/2019 SE Question bank

    6/29

    System Decomissiong

    System Requirement analysis

    Three types of requirement defined at this stage Abstract functional requirements. System functions are defined in an abstract way System properties. Non-functional requirements for the system in general are

    defined

    Undesirable characteristics. Unacceptable system behaviour is specified Should also define overall organisational objectives for the systemSystem Design Process

    System design is concerned with how the system functionality is to be provided by the

    components of the system. The activities involved in this process are

    1. Partition requirements Organise requirements into related groups.

    2. Identify sub-systems Identify a set of sub-systems which collectively can meet the system

    requirements.

    3. Assign requirements to sub-systems Causes particular problems when COTS are integrated.

    4. Specify sub-system functionality.5. Define sub-system interfaces

    System Modeling

    An architectural model presents an abstract view of the sub-systems making up a system.

    They may include major information flows between sub-systems. The system architecture

    may be presented as a block diagram. They may identify different types of functional

    component in the model.

    Sub-system development

    Partition

    Re uirement

    Identify Sub

    s stems

    Define sub system

    interface

    Specify Sub sytem

    Functionalit

    Assign Requirements to

    sub s stem

  • 7/29/2019 SE Question bank

    7/29

    During sub-system development, the sub-systems identified during system design areimplemented. This may involve starting another system engineering process for individual

    sub-systems.

    System integration

    During system integration process, you take the independently developed sub-systems and

    put them together to make up a complete system

    System Evolution

    Large systems have a long lifetime. They must evolve to meet changing requirements

    Evolution is inherently costly because

    Changes must be analysed from a technical and business perspective Sub-systems interact so unanticipated problems can arise The reason for original design decisions are often unrecorded. System structure is corrupted as changes are made to it

    System decommissioning

    System decommissioning means taking the system out of service after the end of its useful

    operational lifetime.

    Product engineering

    The goal of product engineering is to translate the customers desire for a set of defined

    capabilities into a working product.

    To achieve this goal, product engineeringlike business process engineeringmust derive

    architecture and infrastructure.

    In case of product engineering , the views used are discussed below

    Requirements engineeringworld view Component engineeringdomain view Analysis and Design modelingelement view (software engineers) Construction and Integrationdetailed view (software engineer)

  • 7/29/2019 SE Question bank

    8/29

    b) Compare and contrast the Waterfall model with spiral model

    Waterfall Model Spiral Model

    It requires well understanding of

    requirements and familiar Technology

    It is developed in iterations. Hence therequirements can be identified at new

    iterations

    Difficult to accommodate changes after theprocess has started.

    The required changes can be made at everystage of new version

    Can accommodate iteration but indirectly It is iterative model

    Risks can be identified at the end which

    may cause failure to the product

    Risks can be identified and reduced before

    they get problematic

    The customer can see the working model of

    the project only at the end. After reviewingof the working model, if the customer gets

    The customer can see the working product

    at certain stages of iterations

  • 7/29/2019 SE Question bank

    9/29

    dissatisfied then it causes serious problem

    Customers prefer this model Developers prefer this model

    This model is good for small systems This model is good for large systems

    It has sequential nature It has evolutionary nature

    22.a) What are the necessities of life cycle model? Elaborate on the various issues ofsoftware life cycle

    The process model is chosen based on the nature of software project and application and

    then to obtain deliverable product method and tools are applied.

    Using problem solving loop the software development can be done. The problem solving

    loop includes

    The existing status that represents current state of affairs

    In the problem identification phase particular problem is identified

    The technical development stage is for solving the identified problem using anappropriate technology

    Finally solution integration is responsible for delivering the result.But applying such problem solving loop in software development process is very difficult

    because we cannot strictly categorize the development in these phases. There may be arequirement of cross talk within and across stages. Hence some software process models

    are suggested depending upon the nature of software. Such models are called generic

    software models.

    b) write short note on data modeling

    Data modeling answers What are the primary data objects to be processed by the system? What is the composition of each data object and what attributes describe the object? Where do the the objects currently reside? What are the relationships between each object and other objects? What are the relationships between the objects and the processes that transform them?

    The ERD, enables a software engineer to identify data objects and their relationships using a graphical

    notation. In the context of structured analysis, the ERD defines all data that are entered, stored,

    transformed, and produced within an application.

    Data objects

    A data object is a representation of almost any composite information that must be understood by

    software. By composite information, we mean something that has a number of different properties or

    attributes.

  • 7/29/2019 SE Question bank

    10/29

    Attributes.

    Attributes define the properties of a data object and take one of three differentcharacteristics. They can be used to

    (1) name an instance of the data object,

    (2) describe the instance, or

    (3) make reference to another instance in another table.

    In addition, one or more of the attributes must be defined as an identifierthat is, the identifierattribute becomes a "key" when we want to find an instance of the data object.

    Relationships

    Data objects are connected to one another in different ways. Consider two data objects, book and

    bookstore.

    We can define a set of object/relationship pairs that define the relevant relationships. For example,

    A bookstore orders books. A bookstore displays books. A bookstore stocks books.

    A bookstore sells books.

    A bookstore returns books.

    Relationships. Data objects are connected to one another in different ways. Consider twodata objects, book and bookstore.

    Cardinality: The data model must be capable of representing the number of occurrencesobjects in a

    given relationship.

    One-to-one (l:l) One-to-many (l:N). Many-to-many (M:N)

    Modality. The modality of a relationship is 0 if there is no explicit need for the relationship to occur or

    the relationship is optional. The modality is 1 if an occurrence of the relationship is mandatory.

  • 7/29/2019 SE Question bank

    11/29

    23. a) Draw an ER diagram for the relationship of manufacturer and dealership. Also specifythe association, cardinality and modality

    b) What is Requirement Engineering? State its process and explain requirement

    elicitation problem?

  • 7/29/2019 SE Question bank

    12/29

    Requirements engineering is the process of establishing the services that the customer

    requires from a system and the constraints under which it operates and is developed.

    The above diagram shows the requirements engineering process showing the various steps in it.

    The processes used for RE vary widely depending on the application domain, the people

    involved and the organisation developing the requirements.

    However, there are a number of generic activities common to all processes

    Requirements elicitation; Requirements analysis; Requirements validation; Requirements management.

    Requirements elicitation problems

    Stakeholders may have unrealistic expectations

    Stakeholders dont know what they really want.

    Stakeholders express requirements in their own terms or in their own language.

    Different stakeholders may have conflicting requirements.

    Organisational and political factors may influence the system requirements.

  • 7/29/2019 SE Question bank

    13/29

    The requirements change during the analysis process. New stakeholders may emerge and the

    business environment change.

    24. a) Briefly explain the various design concepts considered during designA set of fundamental software design concepts has evolved over the past four decades. The various

    design concepts are as follows:

    Data abstractiondata, procedure, control Refinementelaboration of detail for all abstractions Modularitycompartmentalization of data and function Software architectureoverall structure of the software

    Structural properties Extra-structural properties Styles and patterns

    Control Hierarchy Structural Partitioning Data Structure Software procedurethe algorithms that achieve function Information hidingcontrolled interfaces

    Data Abstraction

    A procedural abstraction is a named sequence of instructions that has a specific and limited

    function. An example of a procedural abstraction would be the word open for a door. Open implies a longsequence of procedural steps (e.g., walk to the door, reach out and grasp knob, turn knob and pull door,

    step away from moving door, etc.).

    A data abstraction is a named collection of data that describes a data object. The data abstraction

    for door would encompass a set of attributes that describe the door (e.g., door type, swing direction,

    opening mechanism, weight, dimensions).

    Control abstraction is the third form of abstraction used in software design. Like procedural and

    data abstraction, control abstraction implies a program control mechanism without specifying internal

    details

    Refinement

    Refinement is actually a process of elaboration. We begin with a statement of function that is

    defined at a high level of abstraction. That is, the statement describes function or informationconceptually but provides no information about the internal workings of the function or the internal

    structure of the information. Refinement causes the designer to elaborate on the original statement,

    providing more and more detail as each successive refinement occurs.Abstraction and refinement are complementary concepts. Abstraction enables a designer to

    specify procedure and data and yet suppress low-level details. Refinement helps the designer to reveal

    low-level details as design progresses. Both concepts aid the designer in creating a complete design model

    as the design evolves.

    Modular Design

  • 7/29/2019 SE Question bank

    14/29

    Meyer defines five criteria that enable us to evaluate a design method with respect to its ability to

    define an effective modular system:

    Modular decomposability.

    If a design method provides a systematic mechanism for decomposing the problem into subproblems, it will reduce the complexity of the overall problem, thereby achieving an effective

    modular solution.

    Modular composability.

    If a design method enables existing (reusable) design components to be assembled into a newsystem, it will yield a modular solution that does not reinvent the wheel.

    Modular understandability.

    If a module can be understood as a standalone unit (without reference to other modules), itwill be easier to build and easier to change.

    Modular continuity.

    If small changes to the system requirements result in changes to individual modules, ratherthan system wide changes, the impact of change-induced side effects will be minimized.

    Modular protection.

    If an aberrant condition occurs within a module and its effects are constrained within thatmodule, the impact of error-induced side effects will be minimized.

    Software Architecture

    The overall structure of the software and the ways in which that structure provides conceptualintegrity for a system.

    Set of properties that should be specific as part of an architectural design

    Structural properties:

    The architecture design defines the system components and their interactions.

    Extra-functional properties:

    The architecture design should address how the design architecture achieves requirements for

    performance, capacity, reliability, adaptability, security.

    Families of related systems:

    The architecture design should draw upon repeatable patterns in the design of families of similar

    systems.

    Control Hierarchy

    Control hierarchy, also called program structure, represents the organization of programcomponents (modules) and implies a hierarchy of control.

    It does not represent procedural aspects of software such as sequence of processes, occurrence ororder of decisions, or repetition of operations; nor is it necessarily applicable to all architectural

    styles.

  • 7/29/2019 SE Question bank

    15/29

    Different notations are used to represent control hierarchy for those architectural styles that areamenable to this representation.

    The most common is the treelike diagram that represents hierarchical control for call and returnarchitectures

    Two Characteristics of Software Architecture

    Visibility indicates the set of program components that may be invoked or used as data by a givencomponent, even when this is accomplished indirectly

    Connectivity indicates the set of components that are directly invoked or used as data by a givencomponent.

    Structural Partitioning

    If the architectural style of a system is hierarchical, the program structure can be partitioned bothhorizontally and vertically. H

    Horizontal partitioning defines separate branches of the modular hierarchy for each majorprogram function. The below diagram shows the horizontal partitioning.

    Partitioning the architecture horizontally provides a number of distinct benefits: software that is easier to test software that is easier to maintain propagation of fewer side effects software that is easier to extend

  • 7/29/2019 SE Question bank

    16/29

    On the negative side, horizontal partitioning often causes more data to be passed across moduleinterfaces and can complicate the overall control of program flow

    Vertical partitioning often called factoring, suggests that control and work should be distributedtop-down in the program structure.

    Vertical Partitioning

    Data Structure

    Data structure is a representation of the logical relationship among individual elements of dataSoftware Procedure

    Program structure defines control hierarchy without regard to the sequence of processing anddecisions.

    Software procedure focuses on the processing details of each module individually. Procedure must provide a precise specification of processing, including sequence of events, exact

    decision points, repetitive operations, and even data organization and structure.

    Information Hiding

    The principle ofinformation hiding suggests that modules be "characterized by design decisionsthat (each) hides from all others."

    Why Information Hiding?

    reduces the likelihood of side effects limits the global impact of local design decisions emphasizes communication through controlled interfaces leads to encapsulationan attribute of high quality design results in higher quality software

    b) Write short notes on real time executives

    Real-time executives are specialized operating systems which are used to manageprocesses in RTS

    The Standard RTE kernel can be modified for particular application The real time executives does not support file management.

  • 7/29/2019 SE Question bank

    17/29

    The Real Time Executive Components are Real-time clock - Information for process scheduling Interrupt handler - Manages aperiodic requests for service. Scheduler - Chooses next process to be run

    Resource manager - Allocates memory and processor resources

    Dispatcher - Starts process execution Non-Stop System Components

    Configuration manager - Dynamic reconfiguration of system software, hardwarewithout stopping systems. In Dynamic reconfiguration the hardware can be

    completely replaced and software can be upgraded without stopping the systems.

    Fault managerIt Detects software and hardware faults. On detecting the faults itis responsible to take appropriate actions. E.g. switch to backup disks

    Real-Time Executive Components process various types of stimuli. Processing sometypes of stimuli must sometimes take priority

    Interrupt level priority - Highest priority allocated to processes requiring very fastresponse

    Clock level priority - Allocated to periodic processes Further levels of priority may be assigned within these levels

    Interrupt ServicingWhen a current process is interrupted for processing a high priorityprocess, first the control is transferred automatically to pre-determined memory location.

    This contains instruction to jump to interrupt service routine. Hence the control is passed

    to ISR. Further interrupts disabled, and interrupt is serviced. Finally the control returned

    to interrupted process. The necessary thing is interrupt service routines MUST be short,

    simple and fast

    Periodic Process Servicing The periodic process are assigned with different periods(time between executions), Different execution times, Different deadlines (time by which

    processing must be completed). The process manager schedules the periodic process

    when an interrupt is caused by real-time clock tick. Each tick causes interrupt which

    schedules process manager for periodic processes. Process manager selects process

    among those ready for execution

    RTE Process Management Process Switching Scheduler

  • 7/29/2019 SE Question bank

    18/29

    Chooses next process to be executed by processor Depends on scheduling strategy

    May take process priority into account Resource manager

    Allocates memory and processor

    Dispatcher Takes process from ready list, Loads it onto processor Starts execution

    Scheduling Strategies Non pre-emptive scheduling

    Process runs to completion Or until blocked (e.g. pending I/O)

    Pre-emptive scheduling Execution of executing processes may be stopped If higher-priority process requires service

    Scheduling algorithms example Round-robin Rate monotonic Shortest deadline first

    25. a) Explain the different integration testing approachesIntegration testing is a systematic technique for constructing the program structure while at the same time

    conducting tests to uncover errors associated with interfacing. The objective is to take unit tested

    components and build a program structure that has been dictated by design.

    Big Bang" approach all the components are combined and then tested as a whole.

    Incremental integration the program is constructed and tested as small increments.

    Top-Down Integration

  • 7/29/2019 SE Question bank

    19/29

    Beginning with main module, modules are integrated by moving downward through the control hierarchy.

    Subordinate modules are added into the structure either depth-firstor breadth-first

    Verifies major control or decision points early in testing

    Problem when lower level processes needed to test upper levels

    Top-Down Integration Process

    Beginning at main module, stubs are replaced one at a time with actual modules

    Tests are conducted as each module is integrated

    On the completion of each set of tests, another stub is replaced with real module

    Regression testing (conduct all or some of previous tests) may be done to ensure no new errors have been

    introduced

    Bottom-Up Integration

    Begins construction and testing with atomic modules (lowest level in hierarchy)

    No need for stubs, all subordinate modules tested and available

    Test drivers required and can be shared as integration move towards the higher levels

    Bottom-Up Integration Process

    Low-level modules are combined into clusters

    A driver is written to coordinate test case input and output

    The cluster is tested

  • 7/29/2019 SE Question bank

    20/29

    Drivers are removed and clusters are combined moving upward in the program structure

    Smoke Testing

    The smoke testing approach encompasses the following activities:

    1. Software components that have been translated into code are integrated into a build. A build includes

    all data files, libraries, reusable modules, and engineered components that are required to implement oneor more product functions.

    2. A series of tests is designed to expose errors that will keep the build from properly performing itsfunction. The intent should be to uncover errors that have the highest likelihood of throwing the software

    project behind schedule.

    3. The build is integrated with other builds and the entire product (in its current form) is smoke tested

    daily. The integration approach may be top down or bottom up.

    Advantages of Smoke Testing

    Integration risk is minimized. The quality of the end-product is improved Error diagnosis and correction are simplified. Progress is easier to assess

    Validation Testing

    Validation can be defined in many ways, but a simple (albeit harsh) definition is that validation succeeds

    when software functions in a manner that can be reasonably expected by the customer.

    Validation Test Criteria

    Software validation is achieved through a series of black-box tests that demonstrate conformity with

    requirements.

    A test plan outlines the classes of tests to be conducted and a test procedure defines specific test casesthat will be used to demonstrate conformity with requirements.

    Both the plan and procedure are designed to ensure that

    all functional requirements are satisfied, all behavioral characteristics are achieved, all performance requirements are attained, documentation is correct, and other requirements are met (e.g., transportability, compatibility, maintainability).

    Thealpha test is conducted at the developer's site by a customer. The software is used in a natural setting

    with the developer "looking over the shoulder" of the user and recording errors and usage problems.

    The beta test is conducted at one or more customer sites by the end-user of the software. Unlike alpha

    testing, the developer is generally not present.

    The customer records all problems (real or imagined) that are encountered during beta testing and reports

    these to the developer at regular intervals.

  • 7/29/2019 SE Question bank

    21/29

    As a result of problems reported during beta tests, software engineers make modifications and then

    prepare for release of the software product to the entire customer base.

    b) Distinguish between black box and white box testing

    Black Box Testing White Box Testing

    Black box testing is called behavioural testing White box testing is called glass box testing

    Black box testing examines some fundamental

    aspects of the system with little regard for

    internal logical structure of the software

    In white box testing the procedural details, all

    logical paths, all the internal data structures are

    closely examined.

    During black box testing the program cannot

    be tested 100 percent

    White box testing lead to test the program

    thoroughly.

    This type of testing is suitable for large

    projects.

    This type of testing is suitable for small

    projects.

    26. a) Why unit testing is so important? Explain the concept of unit testing in detail. Unit Testing is the first level of testing and the most important one. Detecting and

    fixing bugs early on in the Software Lifecycle helps reduce costly fixes later on. An

    Effective Unit Testing Process can and should be developed to increase the Software

    Reliability and credibility of the developer.

    Unit testing focuses verification effort on the smallest unit of software design thesoftware component or module.

    Unit Test Considerations

    The module interface is tested to ensure that information properly flows into and out ofthe program unit under test.

    The local data structure is examined to ensure that data stored temporarily maintains itsintegrity during all steps in an algorithm's execution.

    Boundary conditions are tested to ensure that the module operates properly atboundaries established to limit or restrict processing.

    All independent paths (basis paths) through the control structure are exercised to ensurethat all statements in a module have been executed at least once.

    And finally, all error handling paths are tested.

  • 7/29/2019 SE Question bank

    22/29

    Because a component is not a stand-alone program, driver and/or stub software must bedeveloped for each unit test.

    In most applications a driver is nothing more than a "main program" that accepts testcase data, passes such data to the component (to be tested), and prints relevant results.

    Stubs serve to replace modules that are subordinate (called by) the component to betested.

    A stub or "dummy subprogram" uses the subordinate module's interface, may do minimaldata manipulation, prints verification of entry, and returns control to the module

    undergoing testing.

    b) Explain the regression testing

    Each time a new module is added as part of integration testing, the software changes.New data flow paths are established, new I/O may occur, and new control logic is

    invoked. These changes may cause problems with functions that already tested.

    In the context of an integration test strategy, regression testing is the re-execution ofsome subset of tests that have already been conducted to ensure that changes have not

    propagated unintended side effects.

    Regression testing is the activity that helps to ensure that changes do not introduceadditional errors.

    Regression testing may be conducted manually, by re-executing a subset of all test cases . Regression testing is an important strategy for reducing side effects. Run regression

    tests every time a major change is made to the software.

    The regression test suite (the subset of tests to be executed) contains three different

    classes of test cases:

  • 7/29/2019 SE Question bank

    23/29

    A representative sample of tests that will exercise all software functions. Additional tests that focus on software functions that are likely to be affected by the

    change.

    Tests that focus on the software components that have been changed.27. a) How to derive the test case for the given project? Explain with exampleThe basis path testing method can be applied to a procedural design or to source code.

    The following steps can be applied to derive the basis set:

    1. Using the design or code as a foundation, draw a corresponding flow graph. A flow graph

    is created using the symbols and construction rules. Referring to the PDL for average as shownbelow, a flow graph is created by numbering those PDL statements that will be mapped into

    corresponding flow graph nodes. The corresponding flow graph is shown below after the

    procedure

  • 7/29/2019 SE Question bank

    24/29

    2. Determine the cyclomatic complexity of the resultant flow graph.The cyclomatic complexity, V(G), is determined by applying the algorithms. It should be noted

    that V(G) can be determined without developing a flow graph by counting all conditionalstatements in the PDL (for the procedure average, compound conditions count as two) and

    adding 1.V(G) = 6 regionsV(G) = 17 edges _ 13 nodes + 2 = 6

    V(G) = 5 predicate nodes + 1 = 6

    3. Determine a basis set of linearly independent paths.The value of V(G) provides the number of linearly independent paths through the programcontrol structure. In the case of procedure average, we expect to specify six paths:

    path 1: 1-2-10-11-13

    path 2: 1-2-10-12-13path 3: 1-2-3-10-11-13

    path 4: 1-2-3-4-5-8-9-2-. . .

    path 5: 1-2-3-4-5-6-8-9-2-. . .

    path 6: 1-2-3-4-5-6-7-8-9-2-. . .The ellipsis (. . .) following paths 4, 5, and 6 indicates that any path through the remainder of the

    control structure is acceptable. It is often worthwhile to identify predicate nodes as an aid in the

    derivation of test cases. In this case, nodes 2, 3, 5, 6, and 10 are predicate nodes.

    4. Prepare test cases that will force execution of each path in the basis set.Data should be chosen so that conditions at the predicate nodes are appropriately set as each path

    is tested. Test cases that satisfy the basis set just described are

    Path 1 test case:value(k) = valid input, where k< i for 2 i 100

    value(i) = _999 where 2 i 100Expected results: Correct average based on kvalues and proper totals.

  • 7/29/2019 SE Question bank

    25/29

    Note: Path 1 cannot be tested stand-alone but must be tested as part of path 4, 5, and 6 tests.

    Path 2 test case:

    value(1) = _999Expected results: Average = _999; other totals at initial values.

    Path 3 test case:Attempt to process 101 or more values.

    First 100 values should be valid.Expected results: Same as test case 1.

    Path 4 test case:value(i) = valid input where i < 100

    value(k) < minimum where k< i

    Expected results: Correct average based on kvalues and proper totals.

    Path 5 test case:

    value(i) = valid input where i < 100value(k) > maximum where k

  • 7/29/2019 SE Question bank

    26/29

    a) Software Configuration ManagementSoftware configuration management is a set of activities that have been developed to

    manage change throughout the life cycle of computer software.

    The Software Configuration Management Process

    SCM is responsible for the identification of individual SCIs and various versions of the

    software, the auditing of the software configuration to ensure that it has been properlydeveloped, and the reporting of all changes applied to the configuration.

    Activities of Software Configuration Management process

    Identification, Version control, Change control,

    Configuration auditing, and

    ReportingIdentification of Objects

    Two types of objects can be identified basic objects and aggregate objects.

    A basic object is a "unit of text" that has been created by a software engineer during

    analysis, design, code, or test.

    An aggregate object is a collection of basic objects and other aggregate objects.

    An object can be identified as an aggregate object.

    The relationship defines a hierarchy of objects. For example, using the simple

    notation

    E-R diagram 1.4 data model;

    data model design specification;

    The interrelationships between configuration objects can be represented with a module

    interconnection language (MIL)

    The evolution graph describes the change history of an object

    Version Control

    Version control combines procedures and tools to manage different versions of configuration

    objects that are created during the software process.

    An entity is composed of a collection of objects at the same revision level.

  • 7/29/2019 SE Question bank

    27/29

    A variant is a different collection of objects at the same revision level and therefore coexists

    in parallel with other variants.

    A new version is defined when major changes are made to one or more objects.

    Change Control

    Change control is vital. But the forces that make it necessary also make it annoying. We

    worry about change because a tiny perturbation in the code can create a big failure in theproduct. But it can also fix a big failure or enable wonderful new capabilities.

    Configuration Audit

    A software configuration audit complements the formal technical review by assessing a

    configuration object for characteristics that are generally not considered during review.

    1. Has the change specified in the ECO been made? Have any additional modifications been

    incorporated?

    2. Has a formal technical review been conducted to assess technical correctness?

    3. Has the software process been followed and have software engineering standards been

    properly applied?

  • 7/29/2019 SE Question bank

    28/29

    4. Has the change been "highlighted" in the SCI? Have the change date and change author

    been specified? Do the attributes of the configuration object reflect the change?

    5. Have SCM procedures for noting the change, recording it, and reporting it been followed?

    6. Have all related SCIs been properly updated?

    Status Reporting

    Configuration status reporting (sometimes called status accounting) is an SCM task that

    answers the following questions: (1) What happened? (2) Who did it? (3) When did it

    happen? (4) What else will be affected?

    b) Software Quality planning and controlQuality Planning

    A quality plan sets out the desired product qualities and how these are assessed and defines the most

    significant quality attributes.

    The quality plan should define the quality assessment process.

    It should set out which organisational standards should be applied and, where necessary, define new

    standards to be used.

    Quality plan structure

    Product introduction; Product plans; Process descriptions; Quality goals; Risks and risk management.

    Quality plans should be short, succinct documents

    If they are too long, no-one will read them.Quality Control

    This involves checking the software development process to ensure that procedures and standards are

    being followed.

    There are two approaches to quality control

    Quality reviews; Automated software assessment and software measurement.

    This is the principal method of validating the quality of a process or of a product.

    A group examines part or all of a process or system and its documentation to find potential problems.

    There are different types of review with different objectives

    Inspections for defect removal (product);

  • 7/29/2019 SE Question bank

    29/29

    Reviews for progress assessment (product and process); Quality reviews (product and standards).

    Design or program inspections

    To detect detailed errors in the requirements, design or code. A checklist of possible errors should drive

    the review.

    Progress reviews

    To provide information for management about the overall progress of the project. This is both a process

    and a product review and is concerned with costs, plans and schedules.

    Quality reviews

    To carry out a technical analysis of product components or documentation to find mismatches between

    the specification and the component design, code or documentation and to ensure that defined quality

    standards have been followed.

    A group of people carefully examine part or all of a software system and its associated documentation.

    Code, designs, specifications, test plans, standards, etc. can all be reviewed.

    Software or documents may be 'signed off' at a review which signifies that progress to the next

    development stage has been approved by management.