CT and ST LAB Manual

download CT and ST LAB Manual

of 68

Transcript of CT and ST LAB Manual

  • 7/22/2019 CT and ST LAB Manual

    1/68

    Introducing the UML (Unified Modeling Language)

    The Unified Modeling Language (UML) is a standard language for specifying,

    visualizing, constructing, and documenting the artifacts of software systems, as well as for

    business modeling and other non-software systems. The UML represents a collection of best

    engineering practices that have proven successful in the modeling of large and complex

    systems The UML is a very important part of developing object oriented software and the

    software development process.

    Goals of UML

    The primary goals in the design of the UML are:

    1.

    Provide users with a ready-to-use, expressive visual modeling language so

    they can develop and exchange meaningful models.

    2. Provide extensibility and specialization mechanisms to extend the

    core concepts.

    3. Be independent of particular programming languages and

    development processes.

    4. Provide a formal basis for understanding the modeling language.

    5. Encourage the growth of the OO tools markets.6. Integrate best practices.

    Principles of Modeling

    1. The choice of what models to create has a profound influence on how a problem

    is attacked and how a solution is shaped.

    2. Every model may be expressed at different levels of precision.

    3. The best models are connected to reality.

    4. No single model is sufficient. Every nontrivial system is best approached througha small set of nearly independent models.

    Software Architecture

    The software system is not only concerned with structure and behavior, but also with

    usage, functionality, performance, resilience, reuse, comprehensibility, economic and

    technology constraints and trade-offs, and aesthetic concerns.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    2/68

    The above figure shows the architecture of a software-intensive system which is best

    described by those five interlocking views. Each view is a projection into the organization

    and structure of the system, focused on a particular aspect of that system.

    Any real world system is used by different users. The users can be developers, testers,

    business people, analysts and many more. So before designing a system the architecture is

    made with different perspectives in mind. The most important part is to visualize the system

    from different viewers perspective. The better we understand the better we make the system.

    UML plays an important role in defining different perspectives of a system.

    These perspectives are:

    Design

    Implementation

    Process

    Deployment

    And the centre is the Use Case view which connects all these four. A Use case

    represents the functionality of the system. So the other perspectives are connected with use

    case.

    Design of a system consists of classes, interfaces and collaboration. UML provides class

    diagram, object diagram to support this. Implementation defines the components assembled

    together to make a complete physical system. UML component diagram is used to support

    implementation perspective.

    Process defines the flow of the system. So the same elements as used in Design are also

    used to support this perspective.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    3/68

    The implementation viewof a system encompasses the components and files that are

    used to assemble and release the physical system.

    Deployment represents the physical nodes of the system that forms the hardware. UML

    deployment diagram is used to support this perspective.

    VIEW PRIMITIVE FUNCTIONALITY

    ===============================================================

    Use case view ------------ Behavior of the system.

    Design view ------------ Vocabulary & functionality of the system.

    Process view ------------ Performance, Scalability and Throughput of the system.

    Implementation view ------------ System assembly and Configuration Management.

    Deployment view ----------- Distribution, Delivery and Installation of parts that

    make up the physical system.

    Introduction

    The unified modeling language (UML) is a standard language for writing software blue

    prints.

    The UML is a language for

    Visualizing

    Specifying

    Constructing

    Documenting

    The artifacts of a software system: UML is a language that provides vocabulary and the rules for combing words in that

    vocabulary for the purpose of communication

    A modeling language is a language whose vocabulary and rules focus on the concept and

    physical representation of a system.

    Vocabulary and rules of a language tell us how to create and real well formed models,

    but they dont tell you what model you should create and when should create them.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    4/68

    Visualizing:

    The UML is more than just a bunch of graphical symbols. In UML each symbol has

    well defined semantics. In this manner one developer can write a model in the UML and

    another developer or even another tool can interpret the model unambiguously.

    Specifying:

    UML is used for specifying means building models that are precise, unambiguous and

    complete. UML addresses the specification of all the important analysis, design and

    implementation decisions that must be made in developing and deploying a software

    intensive system.

    Constructing:

    UML is not a visual programming language but its models can be directly connected

    to a variety of programming languages. This means that it is possible to map from a model in

    the UML to a programming language such as java, c++ or Visual Basic or even to tables in a

    relational database or the persistent store of an object-oriented database. This mapping

    permits forward engineering. The generation of code from a UML model into a programming

    language. The reverse engineering is also possible you can reconstruct a model

    from an implementation back into the UML.

    Documenting:

    UML is a language for Documenting. A software organization produces all sorts of

    artifacts in addition to raw executable code. These artifacts include Requirements,

    Architecture, Design, Source code, Project plans, Test, Prototype, and Release. Such artifacts

    are not only the deliverables of a project, they are also critical in controlling, measuring and

    communicating about a system during its development and after its deployment.

    Conceptual model of the UML:

    To understand the UML, we need to form a conceptual model of the language and this

    requires learning three major elements.

    The UML Basic Building Blocks.

    The Rulesthat direct how those building blocks may be put together.

    Some common mechanismsthat apply throughout the UML. As UML describes the real

    time systems it is very important to make a conceptual model and then proceed gradually.

    Conceptual model of UML can be mastered by learning the following three major elements:

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    5/68

    UML building blocks

    Rules to connect the building blocks

    Common mechanisms of UML

    UML building blocks. The building blocks of UML can be defined as:

    Things

    Relationships

    Diagrams

    Things:

    Things are the most important building blocks of UML. Things can be:

    Structural

    Behavioral

    Grouping

    Annotational

    Structural things:

    The Structural things define the static part of the model. They represent physical a

    conceptual elements. Following are the brief descriptions of the structural things.

    Class:

    Class represents set of objects having similar responsibilities.

    Interface:

    Interface defines a set of operations which specify the responsibility of a class

    Use case:

    Use case represents a set of actions performed by a system for a specific goal.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    6/68

    Collaboration:

    Collaborationdefines an interaction and is a society of roles and other elements that

    work together to provide some cooperative behavior that's bigger than the sum of all the

    elements.

    Active class:An active class is a class whose objects own one or more processes or threads and

    therefore can initiate control activity.

    Component:

    Component describes physical part of a system.

    Node:

    A node can be defined as a physical element that exists at run time.

    Behavioral things:

    A behavioral thing consists of the dynamic parts of UML models. Following are the

    behavioral things:

    Interaction:

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    7/68

    Interaction is defined as a behavior that consists of a group of messages exchanged

    among elements to accomplish a specific task.

    State machine:

    State machine is useful when the state of an object in its life cycle is important. It

    defines the sequence of states an object goes through in response to events. Events are

    external factors responsible for state change.

    Grouping things:

    Grouping things can be defined as a mechanism to group elements of a UML model

    together. There is only one grouping thing available.

    Package:Package is the only one grouping thing available for gathering structural and

    behavioral things.

    Annotational things:

    Annotational things can be defined as a mechanism to capture remarks, descriptions,

    and comments of UML model elements. Note is the only one Annotational thing available.

    Note:

    A note is used to render comments, constraints etc of an UML element.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    8/68

    Relationships in UML:

    Relationship is another most important building block of UML. It shows how

    elements are associated with each other and this association describes the functionality of an

    application. There are four kinds of relationships available.

    Dependency:- A dependency is a semantic relationship between two things in which a

    change to one thing(independent thing) may affect the semantics of the other thing

    (dependent thing).Graphically, a dependency is rendered as a dashed line, possibly

    directed.

    Association:- An association is a structural relationship that describes a set of links, a

    link being a connection among objects. Graphically, an association is rendered as a solid

    line, possibly directed, often containing other adornments, such as multiplicity and role

    names.

    Generalization:- A generalization is a specialization/ generalization relationship in

    which objects of the specialized element are substitutable for objects of the generalized

    element. Graphically, a generalization relationship is rendered as a solid line with a

    hollow arrowhead pointing to the parent.

    Realization:- A realization is a semantic relationship between classifiers, wherein one

    classifier specifies the contract that another classifier guarantees to carry out. Graphically,

    a realization is rendered as a cross between a generalization and a dependency

    relationship.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    9/68

    UML Diagrams:

    UML diagrams are the ultimate output of the entire discussion. All the elements,

    relationships are used to make a complete UML diagram and the diagram represents a

    system. The visual effect of the UML diagram is the most important part of the entire

    process. All the other elements are used to make it a complete one.

    UML includes the following nine diagrams and the details are described in the following

    Class diagram

    Object diagram

    Use case diagram

    Sequence diagram

    Collaboration diagram

    Activity diagram

    State chart diagram

    Deployment diagram

    Component diagram

    Structural Diagrams

    i)Class Diagram:

    Class Diagram models class structure and contents using design elements such as

    classes, packages and objects. It also displays relationships such as containment, inheritance,

    associations and others.

    Class diagrams are widely used to describe the types of objects in a system and their

    relationships. Class diagrams model class structure and contents using design elements such

    as classes, packages and objects. Class diagrams describe three different perspectives when

    designing a system, conceptual, specification, and implementation.

    These perspectives become evident as the diagram is created and help solidify the

    design. This example is only meant as an introduction to the UML and class diagrams.

    Classes are composed of three things: a name, attributes, and operations. Below is an

    example of a class.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    10/68

    Class diagrams also display relationships such as containment, inheritance,

    associations and others. Below is an example of an associative relationship:

    The association relationship is the most common relationship in a class diagram. The

    association shows the relationship between instances of classes. For example, the class Order

    is associated with the class Customer. The multiplicity of the association denotes the number

    of objects that can participate in then relationship. For example, an Order object can be

    associated to only one customer, but a customer can be associated to many orders.

    Another common relationship in class diagrams is a generalization. A generalization

    is used when two classes are similar, but have some differences. Look at the generalization

    below:

    In this example the classes Corporate Customer and Personal Customer have somesimilarities such as name and address, but each class has some of its own attributes and

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    11/68

    operations. The class Customer is a general form of both the Corporate Customer and

    Personal Customer classes. This allows the designers to just use the Customer class for

    modules and do not require in-depth representation of each type of customer.

    ii)Object Diagram:Object Diagram shows a set of objects and their relationships at a point in time.

    Graphically, an object diagram is a collection of vertices and arcs.

    An Object Diagram is essentially an instance of a class diagram. Both Component

    Diagrams and Deployment Diagrams are considered to be special kinds of object diagrams. A

    well-structured object diagram is focused on communicating one aspect of a systems static

    design view. Object Diagrams reflect some of the concrete or prototypical objects that live in

    running system.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    12/68

    Physical Diagrams

    Component Diagram and Deployment Diagram:

    There are two types of physical diagrams: deployment diagrams and component

    diagrams. Deployment diagrams show the physical relationship between hardware andsoftware in a system. Component diagrams show the software components of a system and

    how they are related to each other. These relationships are called dependencies.

    The deployment diagram contains nodes and connections. A node usually represents a

    piece of hardware in the system. A connection depicts the communication path used by the

    hardware to communicate and usually indicates a method such as TCP/IP.

    Component Diagram

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    13/68

    Deployment Diagram

    The component diagram contains components and dependencies. Components

    represent the physical packaging of a module of code. The dependencies between the

    components show how changes made to one component may affect the other components in

    the system. Dependencies in a component diagram are represented by a dashed line between

    two or more components. Component diagrams can also show the interfaces used by the

    components to communicate to each other.

    The combined deployment and component diagram below gives a high level physical

    description of the completed system. The diagram shows two nodes which represent twomachines communicating through TCP/IP. Component2 is dependent on component1, so

    changes to component 2 could affect component1. The diagram also depicts component3

    interfacing with component1. This diagram gives the reader a quick overall view of the

    entire system.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    14/68

    Behavioral Diagrams

    Use Case Diagram:

    A use case is a set of scenarios that describing an interaction between a user and asystem. A use case diagram displays the relationship among actors and use cases. The two

    main components of a use case diagram are use cases and actors.

    An actor is represents a user or another system that will interact with the system you

    are modeling. A use case is an external view of the system that represents some action the

    user might perform in order to complete a task.

    This example shows the customer as a actor because the customer is using theordering system. The diagram takes the simple steps listed above and shows them as actions

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    15/68

    the customer might perform. The salesperson could also be included in this use case diagram

    because the salesperson is also interacting with the ordering system.

    From this simple diagram the requirements of the ordering system can easily be

    derived. The system will need to be able to perform actions for all of the use cases listed. As

    the project progresses other use cases might appear. The customer might have a need to add

    an item to an order that has already been placed. This diagram can easily be expanded until a

    complete description of the ordering system is derived capturing all of the requirements that

    the system will need to perform.

    Interaction Diagrams

    Interaction diagrams model the behavior of use cases by describing the way groups ofobjects interact to complete the task. The two kinds of interaction diagrams are sequence and

    collaboration diagrams. This example is only meant as an introduction to the UML and

    interaction diagrams.

    i)Sequence diagram:

    Sequence diagram demonstrate the behavior of objects in a use case by describing the

    objects and the messages they pass. The diagrams are read left to right and descending. The

    example below shows an object of class 1 start the behavior by sending a message to an

    object of class 2. Messages pass between the different objects until the object of class 1

    receives the final message.

    Below is a slightly more complex example. The light blue vertical rectangles the

    objects activation while the green vertical dashed lines represent the life of the object. The

    green vertical rectangles represent when a particular object has control. The represents

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    16/68

    when the object is destroyed. This diagram also shows conditions for messages to be sent to

    other object. The condition is listed between brackets next to the message. For example, a

    [condition] has to be met before the object of class 2 can send a message () to the object of

    class 3.

    The next diagram shows the beginning of a sequence diagram for placing an order.

    The object an Order Entry Window is created and sends a message to an Order object to

    prepare the order. Notice the the names of the objects are followed by a colon. The names of

    the classes the objects belong to do not have to be listed. However the colon is required todenote that it is the name of an object following the objectName:className naming system.

    Next the Order object checks to see if the item is in stock and if the [InStock] condition is

    met it sends a message to create an new Delivery Item object.

    The next diagrams add another conditional message to the Order object. If the item is

    [OutOfStock] it sends a message back to the Order Entry Window object stating that the

    object is out of stack.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    17/68

    This simple diagram shows the sequence that messages are passed between objects to

    complete a use case for ordering an item.

    ii) Collaboration diagrams:

    Collaboration diagrams are also relatively easy to draw. They show the relationship

    between objects and the order of messages passed between them. The objects are listed as

    icons and arrows indicate the messages being passed between them. The numbers next to the

    messages are called sequence numbers. As the name suggests, they show the sequence of the

    messages as they are passed between the objects. There are many acceptable sequence

    numbering schemes in UML. A simple 1, 2, 3... Format can be used, as the example below

    shows, or for more detailed and complex diagrams a 1, 1.1 ,1.2, 1.2.1... Scheme can be

    used.

    The example below shows a simple collaboration diagram for the placing an order use

    case. This time the names of the objects appear after the colon, such as :Order Entry Window

    following the object Name: class Name naming convention. This time the class name is

    shown to demonstrate that all of objects of that class will behave the same way.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    18/68

    State chart Diagram:

    State diagrams are used to describe the behavior of a system. State diagrams describe

    all of the possible states of an object as events occur. Each diagram usually represents

    objects of a single class and tracks the different states of its objects through the system.

    All state diagrams being with an initial state of the object. This is the state of the

    object when it is created. After the initial state the object begins changing states. Conditions

    based on the activities can determine what the next state the object transitions to.

    Below is an example of a state diagram might look like for an Order object. When the

    object enters the Checking state it performs the activity "check items." After the activity is

    completed the object transitions to the next state based on the conditions [all items available]

    or [an item is not available]. If an item is not available the order is canceled. If all items are

    available then the order is dispatched. When the object transitions to the Dispatching state

    the activity "initiate delivery" is performed. After this activity is complete the object

    transitions again to the Delivered state.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    19/68

    State diagrams can also show a super-state for the object. A super-state is used when

    many transitions lead to the certain state. Instead of showing all of the transitions from eachstate to the redundant state a super-state can be used to show that all of the states inside of the

    super-state can transition to the redundant state. This helps make the state diagram easier to

    read.

    The diagram below shows a super-state. Both the Checking and Dispatching states

    can transition into the Canceled state, so a transition is shown from a super-state named

    Active to the state Cancel. By contrast, the state Dispatching can only transition to the

    Delivered state, so we show an arrow only from the Dispatching state to the Delivered state.

    Activity Diagrams:

    Activity diagrams describe the workflow behavior of a system. Activity diagrams are

    similar to state diagrams because activities are the state of doing something. The diagrams

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    20/68

    describe the state of activities by showing the sequence of activities performed. Activity

    diagrams can show activities that are conditional or parallel.

    Below is a possible activity diagram for processing an order. The diagram shows the

    flow of actions in the system's workflow. Once the order is received the activities split into

    two parallel sets of activities. One side fills and sends the order while the other handles thebilling. On the Fill Order side, the method of delivery is decided conditionally. Depending

    on the condition either the Overnight Delivery activity or the Regular Delivery activity is

    performed. Finally the parallel activities combine to close the order.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    21/68

    Automatic Teller Machine (ATM)

    Description of ATM System

    The software to be designed will control a simulated automated teller machine (ATM)

    having a magnetic stripe reader for reading an ATM card, a customer console (keyboard and

    display) for interaction with the customer, a slot for depositing envelopes, a dispenser for

    cash , a printer for printing customer receipts, and a key-operated switch to allow an operator

    to start or stop the machine. The ATM will communicate with the banks computer over an

    appropriate communication link. (The software on the latter is not part of the requirements

    for this problem.)

    The ATM will service one customer at a time. A customer will be required to insertan ATM card and enter a personal identification number (PIN) both of which will be sent to

    the bank for validation as part of each transaction. The customer will then be able to perform

    one or more transactions. The card will be retained in the machine until the customer

    indicates that he/she desires no further transactions, at which point it will be returned except

    as noted below.

    The ATM must be able to provide the following services to the customer:

    1. A customer must be able to make a cash withdrawal from any suitable account linked to

    the card. Approval must be obtained from the bank before cash is dispensed.

    2. A customer must be able to make a deposit to any account linked to the card, consisting

    of cash and/or checks in an envelope. The customer will enter the amount of the deposit

    into the ATM, subject to manual verification when the envelope is removed from the

    machine by an operator. Approval must be obtained from the bank before physically

    accepting the envelope.

    3. A customer must be able to make a transfer of money between any two accounts linked

    to the card.

    4. A customer must be able to make a balance inquiry of any account linked to the card.

    5. A customer must be able to abort a transaction in progress by pressing the Cancel key

    instead of responding to a request from the machine.

    The ATM will communicate each transaction to the bank and obtain verification that it

    was allowed by the bank. Ordinarily, a transaction will be considered complete by the bank

    once it has been approved. In the case of a deposit, a second message will be sent to the bank

    indicating that the customer has deposited the envelope. (If the customer fails to deposit the

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    22/68

    envelope within the timeout period, or presses cancel instead, no second message will be sent

    to the bank and the deposit will not be credited to the customer.)

    If the bank determines that the customers PIN is invalid, the customer will be required

    to re-enter the PIN before a transaction can proceed. If the customer is unable to successfully

    enter the PIN after three tries, the card will be permanently retained by the machine, and the

    customer will have to contact the bank to get it back.

    If a transaction fails for any reason other than an invalid PIN, the ATM will display an

    explanation of the problem, and will then ask the customer whether he/she wants to do

    another transaction.

    The ATM will provide the customer with a printed receipt for each successful

    transaction, showing the date, time, machine location, type of transaction, account(s),

    amount, and ending and available balance(s) of the affected account (to account for

    transfers).

    The ATM will have a key-operated switch that will allow an operator to start and stop

    the servicing of customers. After turning the switch to the on position, the operator will be

    required to verify and enter the total cash on hand. The machine can only be turned off when

    it is not servicing a customer. When the switch is moved to the off position, the machine

    will shut down, so that the operator may remove deposit envelopes and reload the machine

    with cash, blank receipts, etc.

    1. USE CASE DIAGRAM

    Overview:

    To model a system the most important aspect is to capture the dynamic behaviour. To

    clarify a bit in details, dynamic behaviour means the behaviour of the system when it is

    running /operating. So only static behaviour is not sufficient to model a system rather

    dynamic behaviour is more important than static behaviour. In UML there are five diagrams

    available to model dynamic nature and use case diagram is one of them. Now as we have to

    discuss that the use case diagram is dynamic in nature there should be some internal or

    external factors for making the interaction.These internal and external agents are known as

    actors. So use case diagrams are consists of actors, use cases and their relationships. The

    diagram is used to model the system/subsystem of an application. A single use case diagram

    captures a particular functionality of a system. So to model the entire system numbers of use

    case diagrams are used.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    23/68

    Purpose:

    The purpose of use case diagram is to capture the dynamic aspect of a system. But

    this definition is too generic to describe the purpose. Because other four diagrams (activity,

    sequence, collaboration and State chart) are also having the same purpose. So we will look

    into some specific purpose which will distinguish it from other four diagrams. Use case

    diagrams are used to gather the requirements of a system including internal and external

    influences. These requirements are mostly design requirements. So when a system is

    analyzed to gather its functionalities use cases are prepared and actors are identified.

    So in brief, the purposes of use case diagrams can be as follows:

    Used to gather requirements of a system.

    Used to get an outside view of a system.

    Identify external and internal factors influencing the system.

    Show the interacting among the requirements are actors

    USE CASE DIAGRAM FOR ATM

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    24/68

    Withdrawal Use Case

    A withdrawal transaction asks the customer to choose a type of account to withdraw

    from (e.g. checking) from a menu of possible accounts, and to choose a dollar amount from a

    menu of possible amounts. The system verifies that it has sufficient money on hand to satisfy

    the request before sending the transaction to the bank. (If not, the customer is informed and

    asked to enter a different amount.) If the transaction is approved by the bank, the appropriate

    amount of cash is dispensed by the machine before it issues a receipt. A withdrawal

    transaction can be cancelled by the customer pressing the Cancel key any time prior to

    choosing the dollar amount.

    Deposit Use Case

    A deposit transaction asks the customer to choose a type of account to deposit to (e.g.

    checking) from a menu of possible accounts, and to type in a dollar amount on the keyboard.

    The transaction is initially sent to the bank to verify that the ATM can accept a deposit from

    this customer to this account. If the transaction is approved, the machine accepts an envelope

    from the customer containing cash and/or checks before it issues a receipt. Once the envelope

    has been received, a second message is sent to the bank, to confirm that the bank can credit

    the customers account contingent on manual verification of the deposit envelope contents

    by an operator later.

    A deposit transaction can be cancelled by the customer pressing the Cancel key any

    time prior to inserting the envelope containing the deposit. The transaction is automatically

    cancelled if the customer fails to insert the envelope containing the deposit within a

    reasonable period of time after being asked to do so.

    Transfer Use Case

    A transfer transaction asks the customer to choose a type of account to transfer from

    (e.g. checking) from a menu of possible accounts, to choose a different account to transfer to,

    and to type in a dollar amount on the keyboard. No further action is required once the

    transaction is approved by the bank before printing the receipt.

    A transfer transaction can be cancelled by the customer pressing the Cancel key any

    time prior to entering a dollar amount.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    25/68

    Inquiry Use Case

    An inquiry transaction asks the customer to choose a type of account to inquire about from a

    menu of possible accounts. No further action is required once the transaction is approved by

    the bank before printing the receipt. An inquiry transaction can be cancelled by the customer

    pressing the Cancel key any time prior to choosing the account to inquire about.

    Validate User use case

    This use case is for validate the user i.e. check the pin number, when the bank reports

    that the customers transaction is disapproved due to an invalid PIN. The customer is required

    to re-enter the PIN and the original request is sent to the bank again. If the bank now

    approves the transaction, or disapproves it for some other reason, the original use case is

    continued; otherwise the process of re-entering the PIN is repeated. Once the PIN is

    successfully re-entered.

    If the customer fails three times to enter the correct PIN, the card is permanently

    retained, a screen is displayed informing the customer of this and suggesting he/she contact

    the bank, and the entire customer session is aborted.

    PrintBill usecase

    This usecase is for printing corresponding bill after transactions(withdraw or deposit

    ,or balance enquiry, transfer) are completed.

    Update Account

    This usecase is for updating corresponding user accounts after transactions (withdraw

    or deposit or transfer) are completed.

    2. CLASS DIAGRAM:

    Overview:

    The class diagram is a static diagram. It represents the static view of an application.

    Class diagram is not only used for visualizing, describing and documenting different aspects

    of a system but also for constructing executable code of the software application. The class

    diagram describes the attributes and operations of a class and also the constraints imposed on

    the system. The class diagram shows a collection of classes, interfaces, associations,

    collaborations and constraints. It is also known as a structural diagram.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    26/68

    Purpose:

    The purpose of the class diagram is to model the static view of an application. The

    class diagrams are the only diagrams which can be directly mapped with object oriented

    languages and thus widely used at the time of construction. The UML diagrams like activity

    diagram, sequence diagram can only give the sequence flow of the application but class

    diagram is a bit different. So it is the most popular UML diagram in the coder community. So

    the purpose of the class diagram can be summarized as:

    Analysis and design of the static view of an application.

    Describe responsibilities of a system.

    Base for component and deployment diagrams.

    Forward and reverse engineering.

    Contents:

    Class diagrams commonly contain the following things

    Classes

    Interfaces

    Collaborations

    Dependency, generalization and association relationships

    Savings Current

    ATM cardno

    type

    acc no

    Session

    id

    time

    session()

    Transaction

    id

    type

    acc

    commit()

    add()

    Customer

    a/c no

    name

    type

    withdraw()

    check bal()

    deposit()change pin()

    ATM

    id

    loc

    Read()

    req()

    Bank

    id

    name

    loc

    commit()

    rollback()

    update()

    del()

    view()

    check()

    Account

    hold

    Do

    uses

    holds

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    27/68

    3. INTERACTION DIAGRAMS

    We have two types of interaction diagrams in UML. One is sequence diagram and the

    other is a collaboration diagram. The sequence diagram captures the time sequence of

    message flow from one object to another and the collaboration diagram describes the

    organization of objects in a system taking part in the message flow.

    So the following things are to identified clearly before drawing the interaction diagram:

    1. Objects taking part in the interaction.

    2. Message flows among the objects.

    3. The sequence in which the messages are flowing.

    4. Object organization.

    Purpose:

    1. To capture dynamic behavior of a system.

    2. To describe the message flow in the system.

    3. To describe structural organization of the objects.

    4. To describe interaction among objects.

    SEQUENCE DIAGRAM

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    28/68

    Collaboration diagram for Withdrawl.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    29/68

    Collaboration Diagram for Enquiry

    Contents of a Sequence Diagram

    Objects

    Focus of control

    Messages

    Life line

    Contents

    Contents of a Collaboration Diagram

    Objects

    Links

    Messages

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    30/68

    4. STATE DIAGRAM

    State chart diagram is used to model dynamic nature of a system. They define

    different states of an object during its lifetime. And these states are changed by events. So

    State chart diagrams are useful to model reactive systems. Reactive systems can be defined as

    a system that responds to external or internal events.

    State chart diagram describes the flow of control from one state to another state.

    States are defined as a condition in which an object exists and it changes when some event is

    triggered. So the most important purpose of State chart diagram is to model life time of an

    object from creation to termination.

    State chart diagrams are also used for forward and reverse engineering of a system.

    But the main purpose is to model reactive system.

    Following are the main purposes of using State chart diagrams:

    1. To model dynamic aspect of a system.

    2. To model life time of a reactive system.

    3. To describe different states of an object during its life time.

    4. Define a state machine to model states of an object.

    Contents

    Simply state and composite states

    Transitions, including events and actions

    Common use

    They are use to model the dynamic aspects of a system.

    Event ordered behavior of any kind of objects, to model reactive objects.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    31/68

    5. ACTIVITY DIAGRAM

    Activity diagram is basically a flow chart to represent the flow form one activity to

    another . The activity can be described as an operation of the system. So the control flow is

    drawn from one operation to another. This flow can be sequential, branched or concurrent.Activity diagrams deals with all type of flow by using elements like fork, join etc.

    Contents

    Initial/Final State , Activity , Fork & Join , Branch , Swimlanes

    Fork

    A fork represents the splitting of a single flow of control into two or more concurrent

    Flow of control. A fork may have one incoming transition and two or more outgoing

    transitions, each of which represents an independent flow of control. Below fork the activities

    associated with each of these path continues in parallel.

    Start

    Idle Maintainance

    Active

    SelectOption

    Processing

    Printing

    Stop

    SelectOption

    Processing

    Printing

    Enters/InsertCard

    InsertCardCancel

    Exit/RemoveCard

    Stop

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    32/68

    Join

    A join represents the synchronization of two or more concurrent flows of control. A

    join may have two or more incoming transition and one outgoing transition. Above the join

    the activities associated with each of these paths continues in parallel.

    Branching

    A branch specifies alternate paths takes based on some Boolean expression Branch is

    represented by diamond Branch may have one incoming transition and two or more outgoing

    one on each outgoing transition, you place a Boolean expression shouldnt overlap but they

    should cover all possibilities.

    Swimlane:

    Swimlanes are useful when we model workflows of business processes to partition the

    activity states on an activity diagram into groups. Each group representing the business

    organization responsible for those activities, these groups are called Swimlanes.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    33/68

    6. COMPONENT DIAGRAM

    Component diagrams are used to model physical aspects of a system. Now the

    question is what are these physical aspects? Physical aspects are the elements like

    executables, libraries, files, documents etc which resides in a node. So component diagrams

    are used to visualize the organization and relationships among components in a system. These

    diagrams are also used to make executable systems.

    Start

    Insert Card

    Enter Pin

    Number

    CheckFor

    ValidityOfCard

    yes

    CheckFor

    Validi tyOfPin

    EnterOnly3Times

    Withdraw

    yes

    Enter Withdrawal

    Amount

    CheckFor

    MinimumBalance

    InsufficientBalance

    Takes

    Money

    Update

    Database

    Take

    Receipt

    Exit

    Exit

    no

    nono

    no

    Stop

    yes

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    34/68

    Purpose:

    Component diagrams can be described as a static implementation view of a system.

    Static implementation represents the organization of the components at a particular moment.

    A single component diagram cannot represent the entire system but a collection of

    diagrams are used to represent the whole.

    Before drawing a component diagram the following artifacts are to be identified clearly:

    Files used in the system.

    Libraries and other artifacts relevant to the application.

    Relationships among the artifacts.

    Now after identifying the artifacts the following points needs to be followed:

    Use a meaningful name to identify the component for which the diagram is to be drawn.

    Prepare a mental layout before producing using tools.

    Use notes for clarifying important points.

    Now the usage of component diagrams can be described as:

    Model the components of a system.

    Model database schema.

    Model executables of an application.

    Model systems source code.

    Contents

    Components, Interfaces, Relationships

    Component Diagram for ATM

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    35/68

    7. DEPLOYMENT DIAGRAM

    Deployment diagrams are used to visualize the topology of the physical components

    of a system where the software components are deployed. So deployment diagrams are used

    to describe the static deployment view of a system. Deployment diagrams consist of nodes

    and their relationships.

    Purpose:

    The name Deployment itself describes the purpose of the diagram. Deployment

    diagrams are used for describing the hardware components where software components are

    deployed. Component diagrams and deployment diagrams are closely related. Component

    diagrams are used to describe the components and deployment diagrams shows how they are

    deployed in hardware.

    Contents:

    Nodes, Dependency & Association relationships

    Database serverBank Server

    ATM 1

    ATM2

    ATM 3

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    36/68

    Testing Lab Manual

    EXPERIMENT 1

    1. Write a c program to demonstrate the working of the fallowing constructs:

    i) dowhile

    ii) whiledo

    iii) if else

    iv)switch

    v) for Loops in C language

    i)AIM:To demonstrate the working of do...while construct

    Objective

    To understand the working of do while with different range of values and test cases

    #include

    void main ()

    {

    int i, n=5,j=0;

    clrscr();printf(enter a no);

    scanf(%d,&i);

    do

    {

    if(i%2==0)

    {

    printf("%d", i);

    printf("is a even no.");

    i++;

    j++;

    }

    else

    {

    printf("%d", i);

    printf("is a odd no.\n");

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    37/68

    i++;

    j++;

    }

    }

    while(i>0&&j

  • 7/22/2019 CT and ST LAB Manual

    38/68

    Test case no: 3

    Test case name: Out of range values testing

    Input Expected output Actual output Remarks

    123456789122222222 123456789122222 13 234567891222222215 fail

    ii) AIM: To demonstrate the working of while construct

    Objective

    To understand the working of while with different range of values and test cases

    #include

    #include

    void main ()

    {

    int i, n=5,j=1;

    clrscr();

    printf(enter a no);

    scanf(%d,&i);

    while (i>0 && j

  • 7/22/2019 CT and ST LAB Manual

    39/68

    }

    Input Actual output

    2 2 is even number

    3 is odd number

    4 is even number

    5 is odd number

    6 is even number

    Test cases:

    Test case no:1

    Test case name: Positive values within range

    Input =2 Expected output Actual output Remarks

    2 is even number 2 is even number

    3 is odd number 3 is odd number success

    4 is even number 4 is even number

    5 is odd number 5 is odd number

    6 is even number 6 is even number

    Test case no:2

    Test case name:Negative values within a range

    Input = -2 Expected output Actual output Remarks

    -2 is even number -2 is an even number

    -3 is odd number fail

    -4 is even number

    -5 is odd number

    -6 is even number

    Test case no: 3

    Test case name: Out of range values testing

    Input Expected output Actual output

    Remarks

    123456789122222222 1234567891222222222 13 234567891222222215 fail

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    40/68

    iii) AIM: To demonstrate the working of if else construct

    Objective To understand the working of if else with different range of values and test cases

    #include

    #include

    void main ()

    {

    int i;

    clrscr();

    printf(enter a number);

    scanf(%d,&i);

    if(i%2==0)

    {

    printf(%d,i);

    printf(is a even number);

    }

    else

    {

    printf(%d,i);

    printf(is a odd number);

    }

    getch();

    }

    Input Actual output

    2 2 is even number

    3 is odd number

    4 is even number

    5 is odd number

    6 is even number

    Test cases:

    Test case no: 1

    Test case name: Positive values within range

    Input =2 Expected output Actual output Remarks

    2 is even number 2 is even number

    3 is odd number 3 is odd number success

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    41/68

    4 is even number 4 is even number

    5 is odd number 5 is odd number

    6 is even number 6 is even number

    Test case no:2

    Test case name:Negative values within a range

    Input = -2 Expected output Actual output Remarks

    -2 is even number -2 is an even number

    -3 is odd number fail

    -4 is even number

    -5 is odd number

    -6 is even number

    Test case no: 3

    Test case name: Out of range values testing

    Input Expected output Actual output Remarks

    1234567891222222222 1234567891222222222 13234567891222222215 fail

    iv) AIM: To demonstrate the working of switch construct

    Objective To understand the working of switch with different range of values and test cases

    #include

    void main()

    {

    int a,b,c;

    clrscr();

    printf(1.Add/n 2.Sub /n 3.Mul /n 4.Div /n Enter Your choice);

    scanf(%d, &i);

    printf(Enter a,b values);

    scanf(%d%d,&a,&b);

    switch(i)

    {

    case 1: c=a+b;

    printf(The sum of a & b is: %d ,c);

    break;

    case 2: c=a-b;

    printf(The Diff of a & b is: %d ,c);

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    42/68

    break;

    case 3: c=a*b;

    printf(The Mul of a & b is: %d ,c);

    break;

    case 4: c=a/b;

    printf(The Div of a & b is: %d ,c);

    break;

    default: printf(Enter your choice);

    break;

    }

    getch();

    }

    Output:

    Input Output

    Enter Ur choice: 1

    Enter a, b Values: 3, 2 The sum of a & b is:5

    Enter Ur choice: 2

    Enter a, b Values: 3, 2 The diff of a & b is: 1

    Enter Ur choice: 3

    Enter a, b Values: 3, 2 The Mul of a & b is: 6

    Enter Ur choice: 4

    Enter a, b Values: 3, 2 The Div of a & b is: 1

    Test cases:

    Test case no: 1

    Test case name: Positive values within range

    Input Expected output Actual output Remarks

    Enter Ur choice: 1

    Enter a, b Values: 3, 2 The sum of a & b is:5 5

    Enter Ur choice: 2

    Enter a, b Values: 3, 2 The diff of a & b is: 1 1 Success

    Enter Ur choice: 3

    Enter a, b Values: 3, 2 The Mul of a & b is: 6 6

    Enter Ur choice: 4

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    43/68

    Enter a, b Values: 3, 2 The Div of a & b is: 1 1

    Test case no:2

    Test case name: Out of range values testing

    Input Expected output Actual output Remarks

    Option: 1

    a= 22222222222222

    b=22222222222222 44444444444444 -2 fail

    Test case no: 3

    Test case name: Divide by zero

    Input Expected output Actual output Remarks

    Option: 4

    a= 10 & b=0 error fail

    v)AIM: To demonstrate working of for construct

    Objective To understand the working of for with different range of values and test cases

    #include

    #include

    void main ()

    {

    int i;

    clrscr();

    printf(enter a no);

    scanf(%d,&i);

    for(i=1;i

  • 7/22/2019 CT and ST LAB Manual

    44/68

    printf(%d, i);

    printf(is a odd no);

    i++;

    }

    }

    getch();

    }

    Output:

    Enter a no: 5

    0 is a even no

    1 is a odd no

    2 is a even no

    3 is a odd no

    4 is a even no

    5 is a odd no

    Test cases:

    Test case no: 1

    Test case name: Positive values within range

    Input =2 Expected output Actual output Remarks

    0 is even number 0 is even number

    1 is odd number 1 is odd number success

    2 is even number 2 is even number

    Test case no: 2

    Test case name:Negative values within a range

    Input = -2 Expected output Actual output Remarks

    0 is even number 0 is an even number

    -1 is odd number -1 is even no fail

    -2 is even number -2 is odd no

    Test case no: 3

    Test case name: Out of range values testing

    Input Expected output Actual output Remarks

    12345678912222222222 1234567891222222222 13 234567891222222215 fail

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    45/68

    EXPERIMENT 2

    AIM:A program written in c language for matrix multiplication fails Introspect the

    causes for its failure and write down the possible reasons for its failure.

    Objective: Understand the failures of matrix multiplication

    #include

    #include

    void main()

    {

    int a[3][3],b[3][3],c[3][3],i,j,k,m,n,p,q;

    clrscr();

    printf(Enter 1st matrix no.of rows & cols);

    scanf(%d%d,&m,&n);

    printf(Enter 2nd matrix no.of rows & cols);

    scanf(%d%d,&p,&q);

    printf("\n enter the matrix elements");

    for(i=0;i

  • 7/22/2019 CT and ST LAB Manual

    46/68

    {

    scanf("%d\t",&b[i][j]);

    }

    }

    printf("\n b matrix is\n");

    for(i=0;i

  • 7/22/2019 CT and ST LAB Manual

    47/68

    Output:

    Enter Matrix1: 1 1 1

    1 1 1

    1 1 1

    Enter Matrix2: 1 1 1

    1 1 1

    1 1 1

    Actual Output: 3 3 3

    3 3 3

    3 3 3

    Test cases:

    Test case no: 1

    Test case name: Equal no.of rows & cols

    Input Expected output Actual output Remarks

    Matrix1 rows & cols= 3 3

    Matrix2 rows & cols= 3 3

    Matrix1: 1 1 1

    1 1 1 3 3 3 3 3 3

    1 1 1 3 3 3 3 3 3 Success

    3 3 3 3 3 3

    Matrix2: 1 1 1

    1 1 1

    1 1 1

    Test case no:2

    Test case name: Cols of 1st matrix not equal to rows of 2nd matrix

    Input Expected output Actual output Remarks

    Matrix1 rows & cols= 2 2 Operation Cant be Performed fail

    Matrix2 rows & cols= 3 2

    Test case no: 3

    Test case name: Out of range values testing

    Input Expected output Actual output Remarks

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    48/68

    Matrix1 rows & cols= 2 2

    Matrix2 rows & cols= 2 2

    1234567891 2222222222 fail

    2234567891 2222222221

    234567891 22222221533

    213242424 56456475457

    EXPERIMENT 3

    AIM: Take any system (e.g. ATM system) and study its system specifications and report

    the various bugs.

    1. Machine is accepting ATM card.

    2. Machine is rejecting expired card.

    3. Successful entry of PIN number.

    4. Unsuccessful operation due to enter wrong PIN number 3 times.

    5. Successful selection of language.

    6. Successful selection of account type.

    7. Unsuccessful operation due to invalid account type.

    8. Successful selection of amount to be withdrawn.

    9. Successful withdrawal.

    10. Expected message due to amount is greater than day limit.

    11. Unsuccessful withdraw operation due to lack of money in ATM.

    12. Expected message due to amount to withdraw is greater than possible balance.

    13. Unsuccessful withdraw operation due to click cancel after insert card.

    EXPERIMENT 4

    AIM:Write the test cases for any known application (e.g. Banking application)

    1. Checking mandatory input parameters

    2. Checking optional input parameters

    3. Check whether able to create account entity.

    4. Check whether you are able to deposit an amount in the newly created account (and thus

    updating the balance)

    5. Check whether you are able to withdraw an amount in the newly created account (after

    deposit) (and thus updating the balance)

    6. Check whether company name and its pan number and other details are provided in case

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    49/68

    of salary account

    7. Check whether primary account number is provided in case of secondary account

    8. Check whether company details are provided in cases of company's current account

    9. Check whether proofs for joint account is provided in case of joint account

    10. Check whether you are able deposit an account in the name of either of the person in an

    joint account.

    11. Check whether you are able withdraw an account in the name of either of the person in

    an joint account.

    12. Check whether you are able to maintain zero balance in salary account

    13. Check whether you are not able to maintain zero balance (or mini balance) in non-salary

    account.

    EXPERIMENT 5

    AIM: Create a test plan document for any application (e.g. Library Management

    System)

    The Library Management System is an online application for assisting a librarian

    managing book library in a University. The system would provide basic set of features to

    add/update clients, add/update books, search for books, and manage check-in / checkout

    processes. Our test group tested the system based on the requirement specification.

    This test report is the result for testing in the LMS. It mainly focuses on two problems

    1. What we will test

    2. How we will test.

    3. GUI test

    Pass criteria: librarians could use this GUI to interface with the backend library

    database without any difficulties

    4. Database test

    Pass criteria: Results of all basic and advanced operations are normal (refer to section 4)

    5. Basic function test Add a student

    Each customer/student should have following attributes: Student ID/SSN (unique),

    Name, Address and Phone number.

    The retrieved customer information by viewing customer detail should contain the four

    attributes.

    6. Update/delete student

    1. The record would be selected using the student ID.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    50/68

    2. Updates can be made on full. Items only: Name, Address, Phone number The record can

    be deleted if there are no books issued by user. The updated values would be reflected if

    the same customer's ID/SSN is called for.

    7. Check-in book

    Librarians can check in a book using its call number

    1. The check-in can be initiated from a previous search operation where user has selected a

    set

    of books.

    2. The return date would automatically reflect the current system date.

    3. Any late fees would be computed as difference between due date and return date at rate of

    10 cents a day.

    EXPERIMENT 6

    AIM: Study of Any Testing Tool (Win Runner)

    Win Runner is a program that is responsible for the automated testing of software.

    Win Runner is a Mercury Interactive enterprise functional testing tool for Microsoft windows

    applications.

    Importance of Automated Testing:

    1. Reduced testing time

    2. Consistent test procedures ensure process repeatability and resource independence.

    Eliminates errors of manual testing

    3. Reduces QA cost Upfront cost of automated testing is easily recovered over the life-time

    of the product

    4. Improved testing productivity test suites can be run earlier and more often

    5. Proof of adequate testing

    6. For doing Tedious work test team members can focus on quality areas.

    Win Runner Uses:

    1. With Win Runner sophisticated automated tests can be created and run on an application.

    2. A series of wizards will be provided to the user, and these wizards can create tests in

    an automated manner.

    3. Another impressive aspect of Win Runner is the ability to record various interactions,

    and transform them into scripts. Win Runner is designed for testing graphical user

    interfaces.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    51/68

    4. When the user makes an interaction with the GUI, this interaction can be recorded.

    Recording

    the interactions allows to determine various bugs that need to be fixed.

    5. When the test is completed, Win Runner will provide with detailed information regarding

    the

    results. It will show the errors that were found, and it will also give important information

    about them. The good news about these tests is that they can be reused many times.

    6. Win Runner will test the computer program in a way that is very similar to normal user

    interactions. This is important, because it ensures a high level of accuracy and realism.

    Even if an engineer is not physically present, the Recover manager will troubleshoot any

    problems that may occur, and this will allow the tests to be completed without errors.

    7. The Recover Manager is a powerful tool that can assist users with various scenarios. This

    is

    important, especially when important data needs to be recovered.

    The goal of Win Runner is to make sure business processes are properly carried out. Win

    Runner uses TSL, or Test Script Language.

    Win Runner Testing Modes

    Context Sensitive

    Context Sensitive mode records your actions on the application being tested in terms

    of the GUI objects you select (such as windows, lists, and buttons), while ignoring the

    physical lo-cation of the object on the screen. Every time you perform an operation on the

    application being tested, a TSL statement describing the object selected and the action

    performed is generated in the test script. As you record, Win Runner writes a unique

    description of each selected object to a GUI map.

    The GUI map consists of files maintained separately from your test scripts. If the user

    interface of your application changes, you have to update only the GUI map, instead of

    hundreds of tests. This allows you to easily reuse your Context Sensitive test scripts on future

    versions of your application.

    To run a test, you simply play back the test script. Win Runner emulates a user by

    mov-ing the mouse pointer over your application, selecting objects, and entering keyboard

    input. Win Runner reads the object descriptions in the GUI map and then searches in the

    application being tested for objects matching these descriptions. It can locate objects in a

    window even if their placement has changed.

    Analog

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    52/68

    Analog mode records mouse clicks, keyboard input, and the exact x- and y-

    coordinates traveled by the mouse. When the test is run, Win Runner retraces the mouse

    tracks. Use Analog mode when exact mouse coordinates are important to your test, such as

    when testing a drawing application.

    The Win Runner Testing Process

    Testing with Win Runner involves six main stages:

    1. Create the GUI Map

    The first stage is to create the GUI map so Win Runner can recognize the GUI objects

    in the application being tested. Use the Rapidest Script wizard to review the user interface of

    your application and systematically add descriptions of every GUI object to the GUI map.

    Alternatively, you can add descriptions of individual objects to the GUI map by clicking

    objects while recording a test.

    2. Create Tests

    Next is creation of test scripts by recording, programming, or a combination of both.

    While recording tests, insert checkpoints where we want to check the response of the

    application being tested. We can insert checkpoints that check GUI objects, bitmaps, and

    databases. During this process, Win Runner captures data and saves it as expected results

    the expected response of the application being tested.

    3. Debug Tests

    Run tests in Debug mode to make sure they run smoothly. One can set breakpoints,

    mon-itor variables, and control how tests are run to identify and isolate defects. Test results

    are saved in the debug folder, which can be discarded once debugging is finished. When Win

    Runner runs a test, it checks each script line for basic syntax errors, like incorrect syntax or

    missing elements in If, While, Switch, and For statements. We can use the Syntax Check

    options (Tools >Syn-tax Check) to check for these types of syntax errors before running

    your test.

    4. Run Tests

    Tests can be run in Verify mode to test the application. Each time Win Runner

    encounters a checkpoint in the test script, it compares the current data of the application being

    tested to the expected data captured earlier. If any mismatches are found, Win Runner

    captures them as actual results.

    5. View Results

    Following each test run, Win Runner displays the results in a report. The report details

    all the major events that occurred during the run, such as checkpoints, error messages, system

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    53/68

    mes-sages, or user messages. If mismatches are detected at checkpoints during the test run,

    we can view the expected results nd the actual results from the Test Results window. In cases

    of bitmap mismatches, one can also view a bitmap that displays only the difference between

    the expected and actual results.

    We can view results in the standard Win Runner report view or in the Unified report

    view. The Win Runner report view displays the test results in a Windows-style viewer. The

    Unified report view displays the results in an HTML-style viewer (identical to the style used

    for Quickest Professional test results).

    6. Report Defects

    If a test run fails due to a defect in the application being tested, one can report

    information about the defect directly from the Test Results window.

    This information is sent via e-mail to the quality assurance manager, who tracks the

    de-fect until it is fixed.

    Using Win runner Window

    Before you begin creating tests, you should familiarize yourself with the Win Runner

    main window.

    1.4.1. To start Win Runner:

    Choose Programs > Win Runner > Win Runner on the Start menu.

    The first time you start Win Runner, the Welcome to Win Runner window and the Whats

    New in Win Runner help open. From the Welcome window you can create a new test, open

    an existing test, or view an overview of Win Runner in your default browser.

    If you do not want this window to appear the next time you start Win Runner, clear

    the Show on Startup check box. To show the Welcome to Win Runner window upon

    startup from within Win Runner, choose Settings > General Options, click the

    Environment tab, and select the Show Welcome screen check box.

    1.4.2. The Main Win Runner Window

    The main Win Runner window contains the following key elements:

    Win Runner title bar

    Menu bar, with drop-down menus of Win Runner commands

    Standard toolbar, with buttons of commands commonly used when running a test

    User toolbar, with commands commonly used while creating a test

    Status bar, with information on the current command, the line number of the insertion point

    and the name of the current results folder

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    54/68

    The Standard toolbar provides easy access to frequently performed tasks, such as opening,

    executing, and saving tests, and viewing test results.

    Standard Toolbar

    The User toolbar displays the tools you frequently use to create test scripts. By

    default, the User toolbar is hidden. To display the User toolbar, choose Window > User

    Toolbar. When you create tests, you can minimize the Win Runner window and work

    exclusively from the toolbar. The User toolbar is customizable. You choose to add or remove

    buttons using the Set-tings > Customize User Toolbar menu option. When you re-open Win

    Runner, the User toolbar appears as it was when you last closed it. The commands on the

    Standard toolbar and the User toolbar are described in detail in subsequent lessons.

    Note that you can also execute many commands usingsoftkeys. Softkeys are keyboard

    shortcuts for carrying out menu commands. You can configure the softkey combinations for

    your keyboard using the Softkey Configuration utility in your Win Runner program group.

    For more information, see the Win Runner at a Glance chapter in your Win Runner

    Users Guide.

    Now that you are familiar with the main Win Runner window, take a few minutes to

    ex-plore these window components before proceeding to the next lesson.

    The Test Window

    You create and run Win Runner tests in the test window. It contains the following key

    elements:

    Test window title bar, with the name of the open test

    Test script, with statements generated by recording and/or programming in TSL, Mercury

    Interactives Test Script Language

    Execution arrow, which indicates the line of the test script being executed during a test run,

    or the line that will next run if you select the Run from arrow option

    Insertion point, which indicates where you can insert or edit text

    EXPERIMENT 7

    Study of any web testing tool (e.g. Selenium)

    Selenium is a robust set of tools that supports rapid development of test automation

    for web-based applications. Selenium provides a rich set of testing functions specifically

    geared to the needs of testing of a web application. These operations are highly flexible,

    allowing many options for locating UI elements and comparing expected test results against

    actual application behavior.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    55/68

    One of Selenium,s key features is the support for executing ones tests on multiple

    browser platforms.

    Selenium Components

    Selenium is composed of three major tools.Each one has a specific role in aiding the

    development of web application test automation.

    Selenium-RC provides an API (Application Programming Interface) and library for

    each of its supported languages: HTML, Java, C#, Perl, PHP, Python, and Ruby. This ability

    to use Selenium-RC with a high-level programming language to develop test cases also

    allows the automated testing to be integrated with a projects automated build environ-ment.

    Selenium-Grid

    Selenium-Grid allows the Selenium-RC solution to scale for large test suites or test

    suites that must be run in multiple environments. With Selenium-Grid, multiple instances of

    Selenium-RC are running on various operating system and browser configurations; Each of

    these when launching register with a hub. When tests are sent to the hub they are then

    redirected to an available Selenium-RC, which will launch the browser and run the test. This

    allows for running tests in parallel, with the entire test suite theoretically taking only as long

    to run as the longest individual test.

    Tests developed on Firefox via Selenium-IDE can be executed on any other supported

    browser via a simple Selenium-RC command line.

    Selenium-RC server can start any executable, but depending on browser security set-tings

    there may be technical limitations that would limit certain features.

    Flexibility and Extensibility

    Selenium is highly flexible.There are multiple ways in which one can add

    functionality to Seleniums framework to customize test automation for ones specific testing

    needs. This is, perhaps, Seleniums strongest characteristic when compared with proprietary

    test automation tools and other open source solutions. Selenium-RC support for multiple

    programming and scripting languages allows the test writer to build any logic they need into

    their automated testing and to use a preferred programming or scripting language of ones

    choice.

    Selenium-IDE allows for the addition of user-defined user-extensions for creating

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    56/68

    additional commands customized to the users needs. Also, it is possible to re-configure how

    the Selenium-IDE generates its Selenium-RC code. This allows users to customize the

    generated code to fit in with their own test frameworks. Finally, Selenium is an Open Source

    project where code can be modified and enhancements can be submitted for contribution.

    Test Suites

    A test suite is a collection of tests.Often one will run all the tests in a test suite as one

    continuous batch-job.

    When using Selenium-IDE, test suites also can be defined using a simple HTML file.

    The syntax again is simple. An HTML table defines a list of tests where each row defines the

    filesystem path to each test. An example tells it all.

    Test Suite Function Tests Priority 1

    Suite Of Tests

    Login

    Test Searching for Values

    Test Save

    A file similar to this would allow running the tests all at once, one after another, from

    the Selenium-IDE.

    Test suites can also be maintained when using Selenium-RC. This is done via

    program-ming and can be done a number of ways. Commonly Junit is used to maintain a test

    suite if one is using Selenium-RC with Java. Additionally, if C# is the chosen language,

    Nunit could be employed. If using an interpreted language like Python with Selenium-RC

    than some simple programming would be involved in setting up a test suite. Since the whole

    reason for using Sel-RC is to make use of programming logic for your testing this usual-ly

    isnt a problem.

    Few typical Selenium commands.

    open opens a page using a URL.

    click/clickAndWait performs a click operation, and optionally waits for a

    new page to load.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    57/68

    verifyTitle/assertTitle verifies an expected page title.

    verifyTextPresent verifies expected text is somewhere on the page.

    verifyElementPresent verifies an expected UI element, as defined by its

    HTML tag, is present on the page.

    verifyText verifies expected text and its corresponding HTML tag

    are present on the page.

    verifyTable verifies a tables expected contents.

    waitForPageToLoad pauses execution until an expected new page loads.

    Called automatically when click And Wait is used.

    Wait For Element Present pauses execution until an expected UI element, as

    defined by its HTML tag, is present on the page.

    EXPERIMENT 8

    Aim: Study of Any Bug Tracking Tool (Bugzilla)

    Bugzilla is a Bug Tracking System that can efficiently keep track of outstanding bugs in

    a product. Multiple users can access this database and query, add and manage these bugs.

    Bugzilla essentially comes to the rescue of a group of people working together on a product

    as it enables them to view current bugs and make contributions to resolve issues. Its basic

    repository nature works out better than the mailing list concept and an organized database is

    always easier to work with.

    Advantage of Using Bugzilla:

    1. Bugzilla is very adaptable to various situations. Known uses currently include IT

    support queues, Systems Administration deployment management, chip design and

    development prob-lem tracking (both pre-and-post fabrication), and software and

    hardware bug tracking for lumi-naries such as Redhat, NASA, Linux-Mandrake, and

    VA Systems. Combined with systems such as CVS, Bugzilla provides a powerful,

    easy-to-use solution to configuration management and replication problems.

    2. Bugzilla can dramatically increase the productivity and accountability of

    individual employees by providing a documented workflow and positive feedback for

    good performance. Ulti- mately, Bugzilla puts the power in users hands to improve

    value to business while providing a usable framework for natural attention to detail

    and knowledge store to flourish.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    58/68

    The bugzilla utility basically allows to do the following:

    Add a bug into the database.

    Review existing bug reports.

    Manage the content.

    Bugzilla is organized in the form of bug reports that give all the information needed about a

    particular bug. A bug report would consist of the following fields.

    Product>Component

    Assigned to

    Status (New, Assigned, Fixed etc)

    Summary

    Bug priority

    Bug severity (blocker, trivial etc)

    Bug reporter

    Using Bugzilla:

    Bugzilla usage involves the following activities

    Setting Parameters and Default Preferences

    Creating a New User

    Impersonating a User

    Adding Products

    Adding Product Components

    Modifying Default Field Values

    Creating a New Bug

    Viewing Bug Reports

    Setting Parameters and Default Preferences:

    When we start using Bugzilla, well need to set a small number of parameters and pref-

    erences. At a minimum, we should change the following items, to suit our particular need:

    Set the maintainer

    Set the mail_delivery_method

    Set bug change policies

    Set the display order of bug reports

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    59/68

    To set parameters and default preferences:

    1. ClickParameters at the bottom of the page.

    2. UnderRequired Settings, add an email address in the maintainer field.

    3. Click Save Changes.

    4. In the left sideIndex list, clickEmail.

    5. Select from the list of mail transports to match the transport were using.If evaluating

    a click2try application, select Test. If using SMTP, set any of the other SMTP options for

    your environment. Click Save Changes.

    6. In the left sideIndex list, clickBug Change Policies.

    7. Select On for commentoncreate, which will force anyone who enters a new bug to enter

    a comment, to describe the bug. Click Save Changes.

    8. ClickDefault Preferences at the bottom of the page.

    9. Select the display order from the drop-down list next to the When viewing a bug,

    show comments in this order field. Click Submit Changes.

    Creating a New User

    Before entering bugs, make sure we add some new users. We can enter users very

    easily, with a minimum of information. Bugzilla uses the email address as the user ID,

    because users are frequently notified when a bug is entered, either because they entered the

    bug, because the bug is assigned to them, or because theyve chosen to track bugs in a certain

    project.

    To create a new user:

    1. Click Users.

    2. Click add a new user.

    3. Enter the Login name, in the form of an email address.

    4. Enter the Real name, a password, and then click Add.

    5. Select the Group access options. well probably want to enable the following options in

    the row titled User is a member of these groups:

    canconfirm

    editbugs

    editcomponents

    6. Click Update when done with setting options.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    60/68

    Impersonating a User

    Impersonating a user is possible, though rare, that we may need to file or manage a

    bug in an area that is the responsibility of another user when that user is not available.

    Perhaps the user is on vacation, or is temporarily assigned to another project. We can

    impersonate the user to create or manage bugs that belong to that user.

    Adding Products

    Well add a product in Bugzilla for every product we are developing. To start with,

    when we first login to Bugzilla, well find a test product called TestProduct. We should

    delete this and create a new product. To add a product:

    1. At the bottom of the page, click Products.

    2. In the TestProduct listing, click Delete.

    3. Click Yes, Delete.

    4. Now click Add a product.

    5. Enter a product name, such as Widget Design Kit.

    6. Enter a description.

    7. Click Add. A message appears that youll need to add at least one component.

    Adding Product Components

    Products are comprised of components. Software products, in particular, are typically

    made up of many functional components, which in turn are made up of program elements,

    like classes and functions. Its not unusual in a software development team environment for

    different individuals to be responsible for the bugs that are reported against a given

    component. Even if there are other programmers working on that component, its not

    uncommon for one person,

    either a project lead or manager, to be the gatekeeper for bugs. Often, they will review the

    bugs as they are reported, in order to redirect them to the appropriate developer or even

    another team, to review the priority and severity supplied by the reporter, and sometimes to

    reject bugs as duplicates or enhancement requests, for example.

    To add a component:

    1.Click the link add at least one component in the message that appears after creating a

    new product.

    2. Enter the Component name.

    3. Enter a Description.

    4. Enter a default assignee. Use one of the users weve created. Remember to enter the

    assignee in the form of an email address.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    61/68

    5. Click Add.

    6. To add more components, click the name of product in the message that reads edit other

    components of product .

    Modifying Default Field Values

    Once we begin to enter new bugs, well see a number of drop-down lists containing

    de-fault values. Some of these may work just fine for our product. Others may not. We can

    modify the values of these fields, adding new values and deleting old ones. Lets take a look

    at the OS category.

    To modify default field values:

    1. At the bottom of the page, in the Edit section, click Field Values.

    2. Click the link, in this case OS, for the field we want to edit. The OS field contains a list

    of operating system names. We are going to add browsers to this list. In reality, we

    might create a custom field instead, but for the sake of this example, just add them to the

    OS list.

    3. Click Add a value. In the Value field, enter IE7.Click Add.

    4. Click Add a value again.

    5. In the Value field, enter Firefox 3.

    6. Click Add.

    7. Where it reads Add other values for the op_sys field, click op_sys.

    8. This redisplays the table. We should now see the two new entries at the top of the table.

    These values will also appear in the OS drop-down list when we create a new bug.

    Creating a New Bug

    Creating bugs is a big part of what Bugzilla does best.

    To create a new bug:

    1. In the top menu, click New.

    2. If weve defined more than one component, choose the component from the component

    list.

    3. Select a Severity and a Priority. Severity is self-explanatory, but Priority is generally

    assumed to be the lower the number, the higher the priority. So, a P1 is the highest priority

    bug, ashowstopper.

    4. Click the OS drop-down list to see the options, including the new browser names we

    entered.

    5. Select one of the options.

    w.jntuworld.com

    www.jntuworld.com

    www.jwjobs.net

  • 7/22/2019 CT and ST LAB Manual

    62/68

    6. Enter a summary and a description. We can add any other information of choice, but it is

    not

    required by the system, although we may determine that our bug reporting policy requires

    certain information.

    7. Click Commit. Bugzilla adds our bug report to the database and displays the detail page

    for

    that bug.

    Viewing Bug Reports

    Eventually, well end up with thousands of bugs listed in the system. There are several ways

    to view the bugs. The easiest is to click the My Bugs link at the bottom of the page. Because

    weve only got one bug reported, well use the standard Search function.

    To find a bug:

    1. Click Reports.

    2. Click the Search link on the page, not the one in the top menu. This opens a page titled.

    Find a Specific Bug.

    3. Select the Status.

    4. Select the Product.

    5. Enter a word that might be in the title of the bug.

    6. Click Search. If any bugs meet the criteria that we have entered, Bugzilla displays them in

    a list summary.

    7. Click the ID number link to view the full bug report.

    Modifying Bug Reports

    Suppose we want to change the status of the bug. Weve reviewed it and have

    determined that it belongs to one of the users we have created earlier.

    To modify a bug report:

    1. Scroll down the full bug description and enter a comment in the Additional Comments

    f