Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 29

Software Engineering Lab

(BTCS- 606)
Submitted in Partial fulfilment of the requirements for the degree of
BACHELOR OF TECHNOLOGY
in
Computer Science and Engineering

Software Engineering Lab File

Submitted by
Sanamdeep Singh
(1731858)

Submitted to
Dr. Raman

I.K. GUJRAL PUNJAB TECHNICAL UNIVERSITY


1
Table of Contents
Sr. No. Page Teacher’s Sign
Title No. & Remarks
01. Study and usage of OpenProj or similar 03-05
software to draft a project plan

02. Study and usage of OpenProj or similar 06-08


software to track the progress of a project

03. Preparation of Software Requirement 09-14


Specification Document, Design
Documents and Testing Phase related
documents for some problems
04. Preparation of Software Configuration 15-18
Management and Risk Management
related documents

05. Study and usage of any Design phase 19-22


CASE tool

06. To perform unit testing and integration 23-26


testing

07. To perform various white box and black 27-29


box testing techniques

Experiment No. 1

2
Aim: Study and usage of OpenProj or similar software to draft a project plan

Introduction to SmartDraw :
Smart Draw is the easy-to-use Windows software for creating business diagrams, technical
drawings, and business documents. SmartDraw requires no artistic talent—users simply drag and
drop ready-made graphic elements to create professional-looking diagrams quickly and easily.
It competes with products like Microsoft Visio, but SmartDraw is specifically aimed at users
who do not have the time or the need to learn such complex programs. SmartDraw is easier to
learn, easier to use, and easier to afford than competing products—and it produces better-looking
results.
It offers complete business graphics solutions—integrated sets of symbols, templates,
instructions, and tutorials—for many standard business problems, including: Business Process
Management, Software Design, Network Design, and more. With SmartDraw, anyone can:
 Illustrate a report
 Analyze a process
 Make a presentation
 Persuade others
 Document procedures
 Communicate clearly
 Help others “see what you mean”

In addition to pre-packaged solutions, SmartDraw offers over 50,000 ready-made symbols and
templates for creating all kinds of business charts and diagrams. SmartDraw’s symbols are
logically categorized and organized into libraries.
Users can simply drag symbols from floating library windows and drop them into drawings,
where they can be quickly resized, positioned, re-colored, or linked to other symbols.
To help even the most graphically-challenged user look like a professional, SmartDraw can
automatically align and arrange objects in drawings, and it can apply beautiful, ready-made color
schemes to an entire drawing with a single mouse-click.
Benefits
When the bottom line is return-on-investment, no other software compares to SmartDraw:
 Easy to Use — With its intuitive interface, easy “drag and drop” drawing, and over
50,000 ready-made symbols and templates, SmartDraw allows users to start producing
 professional-looking diagrams within minutes. One SmartDraw user called it “instant
productivity.”

3
 Complete Solutions — SmartDraw provides complete business graphics solutions—
integrated sets of symbols, templates, instructions, and tutorials—for many standard
business problems, such as Business Process Management, Software Design, Network
Design, and more. At the same time, it provides the versatility to create nearly any kind
of business diagram. It’s the one-stop solution for all business graphics needs.
 Easy to Own — With its famous “Zero learning curve,” affordable price, free technical
support, and seamless integration with Microsoft Office, SmartDraw is easy to integrate
into any organization.

SmartDraw Add-on Symbol:


 Business & Charting: Includes over 1500 add-on symbols and templates for flowcharts,
org charts, graphs, forms, calendars, presentations, and more.
 Software Design: Includes design elements for GUI, web sites, and Windows dialogs,
plus all the latest symbologies, such as UML, Nassi-Shneiderman, and more.
 Network Design: Includes over 700 stylized symbols for conceptual network design,
plus over 2200 detailed images of vendor-specific equipment for diagramming computer
and telecom networks.
 Floor Plans & Facilities: Includes hundreds of scaled symbols for floor plans, systems
furniture, HVAC, plumbing, wiring, security, landscaping and more.
 Electrical Engineering: Includes over 2100 IEEE and IEC standard symbols, plus
examples and special libraries for construction, automobile wiring, cable TV and more.
 Mechanical Engineering: Includes add-on symbols for piping, welding, and process
engineering, plus precision CAD drawings of tools, machines, and fasteners.
 Science and Math: Includes hundreds of symbols and templates for chemistry, biology,
astronomy, physics, mathematics, and more.
 Clipart & Flyers: Includes over 8000 add-on clip art images and templates for flyers,
posters, signs, certificates, presentations, and more.
 Maps & Geography: Includes international maps and flags as well as US Zip Codes,
counties, congressional districts, highways, and more.
 Medical & Anatomy: Includes over 3800 add-on clip art images, including emergency,
medicine, nursing, pediatrics, and beautifully detailed anatomical images.
 Life & Leisure: Includes more than 7500 life and leisure images and templates for
flyers, cards, invitations, music, sports, recipes, and more.
 The Standard Collection: The Standard Collection includes over 1000 basic symbols
and templates selected from the other collections for the most common types of drawing
and charting.

4
Key Features
 SmartDraw Explorer The 50,000 symbols and templates are organized for easy access
in the SmartDraw Explorer, which has a familiar Windows look and feel. Easy keyword
searching means the right symbols are always at the user’s fingertips.
 Drag and Drop Drawing Adding shapes, lines, and objects to a drawing is as s as drag-
and-drop. Simply click on the object (on a toolbar or in a floating library window) and
drag it to the page. Once dropped, it remains selected for immediate editing or resizing.
 ƒ Smart Lines Lines drawn from the edge of one shape to the edge of another stay
connected, even if the shapes are moved or resized. This is indispensable for creating
flowcharts and similar diagrams.
 ƒAutomatic Connectors for Org Charts and More SmartDraw’s “intelligent”
Automatic Connectors organize shapes into regular arrangements, for creating
organizational charts, fishbone diagrams, network diagrams, and more.
 Easy Text Entry SmartDraw makes it easy to add text to any shape. Users can just select
the shape by clicking on it and start typing. The text flows and wraps inside the shape like
the text on a page in a word processor. Once the shape becomes full of text, the text
shrinks—or the shape grows, depending on the user’s preference—to accommodate more
text. Normally shapes grow proportionally (but users can also choose other behaviors).
The text and the shape remain tightly bound so the text never spills outside.
 ƒ Styles and Presentation Effects SmartDraw makes it easy to achieve a perfect finish
by supplying dozens of rich, ready-made, professional color schemes. With a single
mouse click, users can apply a color scheme to an entire drawing, instantly coordinating
lines, shapes, borders, fills, text, tables, and even the drawing background. Users can
even define their own custom styles.
 Free Viewer With SmartDraw it’s easy to share diagrams with co-workers and clients.
Simply ask them to download the free SmartDraw Viewer to see or print SmartDraw
drawings.

5
Experiment No. 2
Aim: Study and usage of OpenProj or similar software to track the progress of a
project.

Finding the right project management solution for your team can be very hard. Finding an open
source project management solution may be even harder. That's the mission of solution that allows
teams to collaborate throughout the project life cycle. Additionally, the project aims to replace
proprietary software like Microsoft Project Server or Jira.

The OpenProject objectives:


1. Establish and promote an active and open community of developers, users, and companies for
continuous development of the open source project.
2. Define and develop the project vision, the code of conduct, and principles of the application.
3. Create development policies and ensure their compliance.
4. Define and evolve the development and quality assurance processes.
5. Provide the source code to the public.
6. Provide and operate the OpenProject platform.

Mission of OpenProject
The mission of OpenProject can be quickly summarized: we want to build excellent open source
project collaboration software. And when I say open source, I meant it. We strive to make
OpenProject a place to participate, collaborate, and get involved—with an active, openminded,
transparent, and innovative community.

Companies have finally become aware of the importance of project management software and also
the big advantages of open source. But why is it that project teams still tend to switch to old-
fashioned ways of creating project plans, task lists, or status reports with Excel, PowerPoint, or Word
—or having other expensive proprietary project management software in use? We want to offer a
real open source alternative for companies: free, secure, and easy to use.

6
Progressof the projectis as below:-

7
Figures 2.1-2.4:-Project Progress Screenshots

8
Experiment No. 3
Aim: Preparation of Software Requirement Specification Document for some
existing software or for any current working project.

A Software requirements specification document basically describes the intended purpose and
environment for software/application under development. It completely describes the yield, cost,
nature of the software/application.
 In this document, flight management project is used as an example to explain few points. There
are certain guidelines to be followed while preparing the software requirement specification
document (more often, used as SRS Document/Report).

1. INTRODUCTION
1.1  PURPOSE
The purpose of this document is to provide the software requirement specification report for the 
airline database.
1.2  DOCUMENT CONVENTIONS

DB Data base

DDB Distributed Data base

ER Entity relationship

1.3  INTENDED AUDIENCE AND READING SUGGESTIONS


This project is the college level project and is implementing under the guidance of college
professors. This project is useful to everyone who travels in flights.
1.4  PROJECT SCOPE
The purpose of the online system is to create convenient and easy-to-use online system for
passengers, trying to buy airline tickets. The system is based on a relational database with its
flight management and reservation functions. We will have a database supporting dozens of
major cities around the world as well as hundreds of flights by various airline companies. Above
all, we hope to provide a comfortable user experience along with the best pricing available.
1.5 REFRENCES
 fundamental of database systems by ramez elmarsi and shamkant b.navathe

9
2. OVERALL DESCRIPTION
2.1  PRODUCT PERSPECTIVE
A distributed Airline database System stores the following information as shown below .
 Flight details:
It includes the originating flight terminal and destination terminal, along with stops in
between, number of seats booked/available seats between two destination etc.
 Customer description:
It includes customer code, name, address and phone number. This information may be used
for keeping the records of customer for any emergency or for any other kind of
information.
 Reservation description
2.2   PRODUCT  FEATURES
The major features of  airline data base system as shown in below entity–relationship
model (ER model)

10
Fig. layout of airline database system – entity–relationship model

2.3 USER CLASS AND CHARACTERISTICS


Users of the system should be able to retrieve flight information between two given cities with
the given dates/times of travel from the database. A route from city A to city B is a sequence of
connecting flights from A to B such that: a) there are at most two connecting stops, excluding the
starting city and destination city of the trip, b) the connecting time is between one to two hours.
The system will support two types of user privileges, Customer and Employee. Customers will
have access to customer functions, and the employees will have access to both customer and
flight management functions. The customer should be  able to do the following functions:
 Make a new reservation
 One-way
 Round-trip
 Multi-city
 Flexible date/time
 Confirmation
 Cancel an existing reservation
 View his itinerary
The Employee should have following management functionalities:
 CUSTOMER FUNCTIONS.
 Get all customers who have seats reserved on a given flight.
 Get all flights for a given airport.
 View flight  schedule.
 Get all flights whose arrival and departure times are on time/delayed.
 Calculate total sales for a given flight.
Each flight has a limited number of available seats. There are number of flights that go from/to
different cities at different dates and time.
2.4   OPERATING ENVIRONMENT
Operating environment for the AIRLINE DATABASE is as listed below
 distributed database
 client/server system
 operating  system : windows xp.
 database: sql+ database
 platform: vb.net

11
2.5 DESIGN AND IMPLEMENTATION CONSTRAINTS
i)The global schema, fragmentation schema, allocation schema.
ii)SQL commands for above queries/applications.
iii)How the response for application 1 and 2 will be generated. Assuming these are global
queries.
iv)Implement the database ate least using the centralized database management system.
3. SYSTEM FEATURES
 DESCRIPTION AND PRIORITY
The airline reservation system maintains information on flights, classes of seats, personal
preferences, prices and bookings.
Of course this project has high priority because it is very difficult to travel across countries
without flights.
 STIMULUS/RESPONSE SEQUENCES
 Search for Airline Flights for two Travel cities
 Displays a detailed list of available flights and make a “Reservation” or Book a
ticket on a particular flight.
 Cancel an existing Reservation.
 FUNCTIONAL REQUIREMENTS
 DISTRIBUTED DATABASE :
Distributed database implies that a single application should be able to operate transparently on
data that is spread across a variety of different databases and  connected by a communication 
network .
 CLIENT/SERVER SYSTEM
A client/server system is a distributed system in which,
(a)some sites are client sites , others are server sites.
(b)all data resides at the server sites and applications at the client site.
The term client/server refers primarily to an architecture, or logical division of responsibilities ,
the client is the application (also known as the front-end), and the server is the DBMS (also
known as the back-end).

4. EXTERNAL INTERFACE REQUIREMENTS


4.1 USER INTERFACES
 Front-end software:     Vb.net version
 Back-end software:       SQL+
4.2 HARDWARE INTERFACES
 Windows XP.
 Browser which supports CGI, HTML & Javascript.

12
4.3 SOFTWARE INTERFACES

Softwares used Description

We have chosen Windows 8 operating system for its best


Operating  system support.

To save the flight records, passengers records we have chosen 


Database SQL+ database.

To implement the project we have chosen Vb.Net language for


VB.Net its more interactive support.

4.4 COMMUNICATION INTERFACES


This project supports all types of web browsers.
We are using simple electronic forms for the reservation forms, ticket booking etc.
5.  OTHER  NONFUNCTIONAL  REQUIREMENTS
5.1 PERFORMANCE REQUIREMENTS
The steps involved to perform the implementation of airline data base are as listed below.
A)E-R DIAGRAM
E-R Diagram constitute a technique for representing the logical structure of a database in a
pictorial manner.
ENTITIES :   Which specify distinct real-world items in an application.
PROPERTIES/ATTRIBUTES :  Which specify properties of an entity and relationships.
RELATIONSHIPS :  Which connect entities and represent meaningful dependencies between
them.

13
Fig. ER diagram of airline database

B) NORMALIZATION :
The basic objective of normalization is to be reduce redundancy which means that information is
to be stored only once. Normalization is the process of breaking down a table into smaller tables.
So that each table deals with a single theme. There are three different kinds of modifications of
anomalies and formulated the first, second and third normal forms (3NF) is considered sufficient
for most practical purposes. It should be considered only after a thorough analysis and complete
understanding of its implications.

5.2 SAFETY REQUIREMENTS


If there is extensive damage to a wide portion of the database due to catastrophic failure, such as
a disk crash, the recovery method restores a past copy of the database that was backed up to
archival storage (typically tape) and reconstructs a more current state by reapplying or redoing
the operations of committed transactions from the backed up log, up to the time of failure.
5.3 SECURITY REQUIREMENTS
Security systems need database storage just like many other applications. However, the special
requirements of the security market mean that vendors must choose their database partner
carefully.
5.4 SOFTWARE QUALITY ATTRIBUTES
 AVAILABILITY:  The flight should be available on the specified date and specified time
as many customers are doing advance reservations.
 CORRECTNESS:  The flight should reach start from correct start terminal and should
reach correct destination.
 MAINTAINABILITY: The administrators and flight in chargers should maintain correct
schedules of flights.
 USABILITY: The flight schedules should satisfy maximum number of customers needs

14
Experiment No. 4
Aim: To prepare software configuration management and risk management
documents.

Software Configuration Management:


Software Configuration Management (SCM) is a system for managing the evolution of software
products, both during the initial stages of development and during all stages of maintenance. A
software product encompasses the complete set of computer programs, procedures, and
associated documentation and data designated for delivery to a user. All supporting software
used in development, even though not part of the software product, should also be controlled by
SCM.
The SCM system is the collection of activities performed during a software engineering project
to:
• determine and identify those entities of the software product that need to be controlled;
• ensure those entities have necessary and accurate definitions and documentation;
• ensure changes are made to the entities in a controlled manner;
• ensure that the correct version of the entities/software product are being used; and
• ascertain, at any point in time, the status of an entity (e.g., whether a specific entity is
completed, being changed, waiting to be tested, or released to the customer).
SCM is performed within the context of several basic configuration management disciplines,
including:
• Configuration Identification
• Configuration Control (change control)
• Configuration Status Accounting
• Audits and Reviews
• Release Processing
Importance of Software Configuration Management:
The primary reason for implementing an SCM system is to keep the changing and iterative
entities/software product(s) in a non-degrading state throughout the software lifecycle. This is a
challenge that must be met in order to develop and maintain quality software products.
SCM provides a common point of integration for all planning, oversight, and implementation
activities for a software project or product line. It provides the framework (labeling and
identification) for interfacing different activities and defining the mechanisms (change controls)
necessary for coordinating parallel activities of different groups. SCM also provides a framework
for controlling computer program interfaces with their underlying support hardware, and
coordinating software changes when both hardware and software may be evolving during
development or maintenance activities. SCM provides management with the visibility (through
status accounting and audits) of the evolving software products that make technical and
managerial activities more effective.

15
Benefits of Software Configuration Management
SCM provides significant benefits to all projects regardless of size, scope, and complexity. Some
of the most common benefits experienced by project teams applying the SCM disciplines
described in this guide are possible because the SCM system:
• Provides a snapshot of dynamically changing software to help:
- Make decisions based on an instantaneous view
- Determine status at module and system levels
- Make better decisions about the future of a software project.

• Tracks concurrent development of modules or components of the overall system to:


- Prevent different developers from making changes to the same module at the same time
- Allow for the overall system progress to be faster.
- Provide visibility of the entire software project to all developers.

• Organizes all concurrently developing code and associated documentation to:


- Save overall project time.
- Focus each phase of the software product development to be organized and executed in a
documented, prescribed manner.

Risk management:
A software project can be affected by a large variety of risks. In order to be able to
systematically identify the important risks which might affect a software project, it is necessary
to categorize risks into different classes. The project manager can then examine which risks from
each class are relevant to the project. There are three main categories of risks which can affect a
software project:

 Project risks. Project risks concern varies forms of budgetary, schedule, personnel,
resource, and customer-related problems. An important project risk is schedule slippage.
Since, software is intangible, it is very difficult to monitor and control a software project.
It is very difficult to control something which cannot be seen. For any manufacturing
project, such as manufacturing of cars, the project manager can see the product taking
shape. He can for instance, see that the engine is fitted, after that the doors are fitted, the
car is getting painted, etc. Thus he can easily assess the progress of the work and control
it. The invisibility of the product being developed is an important reason why many
software projects suffer from the risk of schedule slippage.

 Technical risks. Technical risks concern potential design, implementation, interfacing,


testing, and maintenance problems. Technical risks also include ambiguous specification,
incomplete specification, changing specification, technical uncertainty, and technical
obsolescence. Most technical risks occur due to the development team’s insufficient
knowledge about the project.

 Business risks. This type of risks include risks of building an excellent product that no
one wants, losing budgetary or personnel commitments, etc.

16
Risk assessment
The objective of risk assessment is to rank the risks in terms of their damage causing potential.
For risk assessment, first each risk should be rated in two ways:
• The likelihood of a risk coming true (denoted as r).
• The consequence of the problems associated with that risk (denoted as s).
Based on these two factors, the priority of each risk can be computed:
p=r*s
Where, p is the priority with which the risk must be handled, r is the probability of the risk
becoming true, and s is the severity of damage caused due to the risk becoming true. If all
identified risks are prioritized, then the most likely and damaging risks can be handled first
and more comprehensive risk abatement procedures can be designed for these risks.
Risk containment
After all the identified risks of a project are assessed, plans must be made to contain the most
damaging and the most likely risks. Different risks require different containment procedures. In
fact, most risks require ingenuity on the part of the project manager in tackling the risk.
There are three main strategies to plan for risk containment:
 Avoid the risk: This may take several forms such as discussing with the customer to
change the requirements to reduce the scope of the work, giving incentives to the
engineers to avoid the risk of manpower turnover, etc.

 Transfer the risk: This strategy involves getting the risky component developed by a
third party, buying insurance cover, etc.

 Risk reduction: This involves planning ways to contain the damage due to a risk. For
example, if there is risk that some key personnel might leave, new recruitment may be
planned.
Risk leverage
To choose between the different strategies of handling a risk, the project manager must
consider the cost of handling the risk and the corresponding reduction of risk. For this the
risk leverage of the different risks can be computed.
Risk Mitigation, Monitoring and Management (RMMM)
The goal of the risk mitigation, monitoring and management plan is to identify as many potential
risks as possible. When all risks have been identified, they will then be evaluated to determine
their probability of occurrence.
Risk Example: Computer Crash

Mitigation
The cost associated with a computer crash resulting in a loss of data is crucial. A computer crash
itself is not crucial, but rather the loss of data. A loss of data will result in not being able to
deliver the product to the customer. This will result in a not receiving a letter of acceptance from
the customer. Without the letter of acceptance, the group will receive a failing grade for the
course.

17
Monitoring
When working on the product or documentation, the staff member should always be aware of the
stability of the computing environment they’re working in. Any changes in the stability of the
environment should be recognized and taken seriously.
Management
The lack of a stable-computing environment is extremely hazardous to a software development
team. In the event that the computing environment is found unstable, the development team
should cease work on that system until the environment is made stable again, or should move to
a system that is stable and continue working there.

Fig. Risk Management table

Experiment No. 5

18
Aim: Study and usage of any Design phase CASE tool.

CASE stands for Computer Aided Software Engineering. It means, development and


maintenance of software projects with help of various automated software tools.

CASE Tools:
CASE tools are set of software application programs, which are used to automate SDLC
activities. CASE tools are used by software project managers, analysts and engineers to develop
software system.
There are number of CASE tools available to simplify various stages of Software Development
Life Cycle such as Analysis tools, Design tools, Project management tools, Database
Management tools, Documentation tools are to name a few.
Case Tools Types
 Diagram tools
 Process Modeling Tools
 Project Management Tools
 Documentation Tools
 Analysis Tools
 Design Tools
 Configuration Management Tools
 Change Control Tools
 Programming Tools
 Prototyping Tools
 Web Development Tools
 Quality Assurance Tools
 Maintenance Tools

Software analysis and design includes all activities, which help the transformation of
requirement specification into implementation. Requirement specifications specify all
functional and non-functional expectations from the software. These requirement specifications
come in the shape of human readable and understandable documents, to which a computer has
nothing to do.

19
Software analysis and design is the intermediate stage, which helps human-readable
requirements to be transformed into actual code.

Data Flow Diagram:


Data flow diagram is graphical representation of flow of data in an information system. It is
capable of depicting incoming data flow, outgoing data flow and stored data. The DFD does not
mention anything about how data flows through the system.

There is a prominent difference between DFD and Flowchart. The flowchart depicts flow of
control in program modules. DFDs depict flow of data in the system at various levels. DFD
does not contain any control or branch elements.

Types of DFD
Data Flow Diagrams are either Logical or Physical.

 Logical DFD - This type of DFD concentrates on the system process, and flow of data in
the system. For example in a Banking software system, how data is moved between
different entities.
 Physical DFD - This type of DFD shows how the data flow is actually implemented in
the system. It is more specific and close to the implementation.
DFD Components
DFD can represent Source, destination, storage and flow of data using the following set of
components -

 Entities - Entities are source and destination of information data. Entities are represented
by a rectangles with their respective names.
 Process - Activities and action taken on the data are represented by Circle or Round-
edged rectangles.
 Data Storage - There are two variants of data storage - it can either be represented as a
rectangle with absence of both smaller sides or as an open-sided rectangle with only one
side missing.

20
 Data Flow - Movement of data is shown by pointed arrows. Data movement is shown
from the base of arrow as its source towards head of the arrow as destination.
Levels of DFD

 Level 0 - Highest abstraction level DFD is known as Level 0 DFD, which depicts the
entire information system as one diagram concealing all the underlying details. Level 0
DFDs are also known as context level DFDs.

 Level 1 - The Level 0 DFD is broken down into more specific, Level 1 DFD. Level 1
DFD depicts basic modules in the system and flow of data among various modules. Level
1 DFD also mentions basic processes and sources of information.

21
 Level 2 - At this level, DFD shows how data flows inside the modules mentioned in
Level 1.

Higher level DFDs can be transformed into more specific lower level DFDs with deeper
level of understanding unless the desired level of specification is achieved.

An example of Book Store Ordering System:

22
Experiment No. 6
Aim: To perform unit testing and integration testing.

Software Testing is evaluation of the software against requirements gathered from users and
system specifications. Testing is conducted at the phase level in software development life cycle
or at module level in program code. Software testing comprises of Validation and Verification.
Target of the test are -
 Errors - These are actual coding mistakes made by developers. In addition, there is a
difference in output of software and desired output, is considered as an error.
 Fault - When error exists fault occurs. A fault, also known as a bug, is a result of an
error which can cause system to fail.
 Failure - failure is said to be the inability of the system to perform the desired task.
Failure occurs when fault exists in the system.
Manual Vs Automated Testing:
Testing can either be done manually or using an automated testing tool:
 Manual - This testing is performed without taking help of automated testing tools. The
software tester prepares test cases for different sections and levels of the code, executes
the tests and reports the result to the manager.
Manual testing is time and resource consuming. The tester needs to confirm whether or
not right test cases are used. Major portion of testing involves manual testing.
 Automated This testing is a testing procedure done with aid of automated testing tools.
The limitations with manual testing can be overcome using automated test tools.
Testing Levels:
Testing itself may be defined at various levels of SDLC. The testing process runs parallel to
software development. Before jumping on the next stage, a stage is tested, validated and
verified. Testing separately is done just to make sure that there are no hidden bugs or issues left
in the software. Software is tested on various levels -
Unit Testing:
While coding, the programmer performs some tests on that unit of program to know if it is error
free. Testing is performed under white-box testing approach. Unit testing helps developers
decide that individual units of the program are working as per requirement and are error free.
Integration Testing:
Even if the units of software are working fine individually, there is a need to find out if the units
if integrated together would also work without errors. For example, argument passing and data
updation etc.

23
System Testing:
The software is compiled as product and then it is tested as a whole. This can be accomplished
using one or more of the following tests:
 Functionality testing - Tests all functionalities of the software against the requirement.
 Performance testing - This test proves how efficient the software is. It tests the
effectiveness and average time taken by the software to do desired task. Performance
testing is done by means of load testing and stress testing where the software is put
under high user and data load under various environment conditions.
 Security & Portability - These tests are done when the software is meant to work on
various platforms and accessed by number of persons.
Acceptance Testing:
When the software is ready to hand over to the customer it has to go through last phase of
testing where it is tested for user-interaction and response. This is important because even if the
software matches all user requirements and if user does not like the way it appears or works, it
may be rejected.
 Alpha testing - The team of developer themselves perform alpha testing by using the
system as if it is being used in work environment. They try to find out how user would
react to some action in software and how the system should respond to inputs.
 Beta testing - After the software is tested internally, it is handed over to the users to use
it under their production environment only for testing purpose. This is not as yet the
delivered product. Developers expect that users at this stage will bring minute problems,
which were skipped to attend.
Regression Testing:
Whenever a software product is updated with new code, feature or functionality, it is tested
thoroughly to detect if there is any negative impact of the added code. This is known as
regression testing.

UNIT TESTING

Unit Testing is a level of software testing where individual units/ components


of a software are tested. The purpose is to validate that each unit of the
software performs as designed.
Method
Unit Testing is performed by using the White Box Testing method.
When is it performed?
Unit Testing is the first level of testing and is performed prior to Integration Testing.
Who performs it?

24
Unit Testing is normally performed by software developers themselves or their peers. In rare
cases it may also be performed by independent software testers.
Tasks

 Unit Test Plan


o Prepare
o Review
o Rework
o Baseline
 Unit Test Cases/Scripts
o Prepare
o Review
o Rework
o Baseline
 Unit Test
o Perform
Benefits

 Unit testing increases confidence in changing/ maintaining code.


 Codes are more reusable. In order to make unit testing possible, codes need to be
modular. This means that codes are easier to reuse.
 Development is faster.
 The cost of fixing a defect detected during unit testing is lesser in comparison to that of
defects detected at higher levels.
 Debugging is easy
 Codes are more reliable.

INTEGRATION TESTING

Integration Testing is a level of software testing where individual units are


combined and tested as a group. The purpose of this level of testing is to
expose faults in the interaction between integrated units. Test drivers and test
stubs are used to assist in Integration testing.
Method
Any of Black Box Testing, White Box Testing, and Gray Box Testing methods can be used.
Normally, the method depends on your definition of ‘unit’.
Tasks

 Integration Test Plan


o Prepare
o Review
o Rework
o Baseline

25
 Integration Test Cases/Scripts
o Prepare
o Review
o Rework
o Baseline
 Integration Test
o Perform
When is Integration Testing performed?

Integration Testing is performed after Unit Testing and before System Testing.


Who performs Integration Testing?

Either Developers themselves or independent Testers perform Integration Testing.

Approaches

 Big Bang is an approach to Integration Testing where all or most of the units are
combined together and tested at one go. This approach is taken when the testing team
receives the entire software in a bundle. So what is the difference between Big Bang
Integration Testing and System Testing? Well, the former tests only the interactions
between the units while the latter tests the entire system.

 Top Down is an approach to Integration Testing where top level units are tested first and
lower level units are tested step by step after that. This approach is taken when top down
development approach is followed. Test Stubs are needed to simulate lower level units
which may not be available during the initial phases.

 Bottom Up is an approach to Integration Testing where bottom level units are tested first
and upper level units step by step after that. This approach is taken when bottom up
development approach is followed. Test Drivers are needed to simulate higher level units
which may not be available during the initial phases.

 Sandwich/Hybrid is an approach to Integration Testing which is a combination of Top


Down and Bottom Up approaches.

26
Experiment No. 7
Aim:  To perform various white box and black box testing techniques

White Box Testing


White Box Testing is the testing of a software solution's internal coding and infrastructure. It
focuses primarily on strengthening security, the flow of inputs and outputs through the
application, and improving design and usability. White box testing is also known as Clear Box
testing, Open Box testing, Structural testing, Transparent Box testing, Code-Based testing, and
Glass Box testing.

It is one of two parts of the "box testing" approach of software testing. Its counter-part,
blackbox testing, involves testing from an external or end-user type perspective. On the other
hand, Whitebox testing is based on the inner workings of an application and revolves around
internal testing.

The term "whitebox" was used because of the see-through box concept. The clear box or
whitebox name symbolizes the ability to see through the software's outer shell (or "box") into its
inner workings. Likewise, the "black box" in "black box testing" symbolizes not being able to
see the inner workings of the software so that only the end-user experience can be tested.

Steps to perform White Box Testing:


To give you a simplified explanation of white box testing, we have divided it into two basic
steps. This is what testers do when testing an application using the white box testing technique:

STEP 1) UNDERSTAND THE SOURCE CODE

The first thing a tester will often do is learn and understand the source code of the application.
Since white box testing involves the testing of the inner workings of an application, the tester
must be very knowledgeable in the programming languages used in the applications they are
testing. Also, the testing person must be highly aware of secure coding practices. Security is
often one of the primary objectives of testing software. The tester should be able to find security
issues and prevent attacks from hackers and naive users who might inject malicious code into the
application either knowingly or unknowingly.

Step 2) CREATE TEST CASES AND EXECUTE

The second basic step to white box testing involves testing the application's source code for
proper flow and structure. One way is by writing more code to test the application's source code.
The tester will develop little tests for each process or series of processes in the application.
This method requires that the tester must have intimate knowledge of the code and is often done
by the developer. Other methods include manual testing, trial and error testing and the use of
testing tools as we will explain further on in this article.

27
White Box Testing Techniques
A major White box testing technique is Code Coverage analysis. Code Coverage analysis,
eliminates gaps in a test case suite. It identifies areas of a program that are not exercised by a set
of test cases. Once gaps are identified, you create test cases to verify untested parts of code,
thereby increase the quality of the software product

There are automated tools available to perform Code coverage analysis. Below are a few
coverage analysis techniques

Statement Coverage - This technique requires every possible statement in the code to be tested
at least once during the testing process. 

Branch Coverage - This technique checks every possible path (if-else and other conditional
loops) of a software application. Tools: An example of a tool that handles branch coverage
testing for C, C++ and Java applications is TCAT-PATH

Apart from above, there are numerous coverage types such as Condition Coverage, Multiple
Condition Coverage, Path Coverage, Function Coverage etc. Each technique has its own merits
and attempts to test (cover) all parts of software code.

Using Statement and Branch coverage you generally attain 80-90% code coverage which is
sufficient.

Black Box Testing


Black box testing is a software testing techniques in which functionality of the software under
test (SUT) is tested without looking at the internal code structure, implementation details and
knowledge of internal paths of the software. 7This type of testing is based entirely on the
software requirements and specifications.

In Black Box Testing we just focus on inputs and output of the software system without
bothering about internal knowledge of the software program.

The above Black-Box can be any software system you want to test. For example: an operating
system like Windows, a website like Google, a database like Oracle or even your own custom

28
application. Under Black Box Testing, you can test these applications by just focusing on the
inputs and outputs without knowing their internal code implementation.

Black Box Testing - Steps


Here are the generic steps followed to carry out any type of Black Box Testing.

 Initially requirements and specifications of the system are examined.


 Tester chooses valid inputs (positive test scenario) to check whether SUT processes them
correctly . Also some invalid inputs (negative test scenario) are chosen to verify that the SUT
is able to detect them.
 Tester determines expected outputs for all those inputs.
 Software tester constructs test cases with the selected inputs.
 The test cases are executed.
 Software tester compares the actual outputs with the expected outputs.
 Defects if any are fixed and re-tested.

Types of Black Box Testing


There are many types of Black Box Testing but following are the prominent ones -

 Functional testing - This black box testing type is related to functional requirements of a
system; it is done by software testers.
 Non-functional testing - This type of black box testing is not related to testing of a
specific functionality, but non-functional requirements such as performance, scalability,
usability.
 Regression testing - Regression testing is done after code fixes, upgrades or any other
system maintenance to check the new code has not affected the existing code.

Tools used for Black Box Testing:


Tools used for Black box testing largely depends on the type of black box testing you are doing.

For Functional/ Regression Tests you can use - QTP, Selenium

For Non-Functional Tests, you can use - Loadrunner, Jmeter

29

You might also like