Académique Documents
Professionnel Documents
Culture Documents
These models have been developed by Even though there are policies,
established academic and professional frameworks, review, testing, audits
institutions and have been tested over and conformance checks in place, the
time. ownership and responsibility of
producing a quality product rests with
Apart from the obvious benefits of the individual.
producing quality products by
following processes that conform to Quality is a reflection of your ability.
internationally recognized standards
Whatever you produce needs to
and models, certifications also have
conform to a specified quality, be it
the brand value, which helps us in
code, documents, manuals or even a learn about the major quality models
printout. that Cognizant employs for ensuring
the highest quality for its product. To
In this session, you have learned that: facilitate the on-time, on-budget
Quality is a relative term, which aims completion of projects, integrating on-
at customer satisfaction. There are site and offshore teams, Cognizant
several models and standards in the utilizes ISO 9001 certified
industry to ensure quality methodology and SEI or CMMi Level 5
processes to define and implement
Each and every employee in an projects, and to allow frequent
organization is responsible in ensuring deliverables as well as feedback from
the quality of a product customers. Cognizant has also
become the first software company to
The various activities involved in be assessed at People-CMM Level 5,
ensuring the quality of software are across all of its development centers
Quality Control, Quality Assurance, in India. Along with this, Cognizant
and Quality Management ensures security of information by
obtaining and adhering to the
s/w quality in cognizant:
requirements of BS 7799 certification.
Quality is not a goal but a journey. Finally, on the journey of quality
There are multiple paths leading to toward continuous improvement,
proper quality. Cognizant has focused management
direction toward the Six Sigma method
At the end of this session, you will be of minimizing defects in the delivered
able to: products.
Learn the basics of the major quality Every activity leading to production of
models deliverables needs to be developed
using the process and practices of the
Study Cognizant's quality journey and
Standards and Guidelines. In the
method of implementation
following pages, you will learn in detail
Describe process management about these quality models.
through Q View
SO 9001 is a model for Quality
Explain Cognizant's quality culture Management System promoted by the
International Organization for
To ensure the highest possible quality Standards. It ensures uniformity
of software development and across development units through
maintenance, Cognizant lays stress on standard procedures. It is heralded as
a Quality Management Process that the first step to achieving high quality.
integrates Cognizant's quality
approach throughout the software ISO 9001 consists of five main sections
development life cycle, thereby which covers the standard
ensuring that quality is built in as requirements.
development progresses. Here you will
Click the highlighted section to learn typical to the software industry. The
more about these standard Capability Maturity Model was
requirements. developed by the Software
Engineering Institute in Carnegie
Quality management system Mellon University in 1987. The US
encompasses quality manual Department of Defense funded SEI to
documentation and control of define a model for evaluating the
documents and records. capability and maturity level of the
Management responsibility deals with vendors supplying software. The
management's commitment to the results of the work include various
quality management systems and Capability Maturity Models, such as
explains that management must be The Capability Maturity Model for
dedicated to the organization's Software, The Systems Engineering
products and customers and to the Capability Model, and The Integrated
planning and review processes. Product Development Capability
Maturity Model. Although these
Resource management provides the models have proved useful to many
criteria needed to perform a job organizations, the use of multiple
competently and in a safe models has been problematic. Further,
environment. Human resources, applying multiple models that are not
infrastructure planning, and work integrated within and across an
environment are discussed in this organization are costly in terms of
section. training, appraisals, and improvement
activities. The CMM Integration project
Product realisation defines the steps in was formed to sort out the problem of
product development. These steps using multiple CMMs. The result was
include everything from the initial the Capability Maturity Model
design phase to the final delivery Integrated or CMMi.
phase. Measurement, analysis, and
improvement focuses on measuring, You learned that, CMMi stands for
analyzing, and improving the quality Capability Maturity Model Integrated.
management system by performing
periodical internal audits, monitoring CMMi consists of guidelines for
customer satisfaction, controlling managing the:
nonconforming products, analyzing Process Management Processes
data and taking corrective and
preventive actions. It is aimed at Project Management Processes
achieving customer satisfaction by
preventing nonconformity at all stages Engineering Processes
from Design to Servicing. Support Processes
While ISO is a generic model Linking the four, CMMi forms
applicable to any industry, Capability guidelines to manage and execute
Maturity Models deal with processes software projects.
The different benefits from CMMi are training and mentoring programs and
in the areas of improved process, emphasis on continuous improvement.
budget control, delivery capability,
increased productivity, and reduction Information is one of the most
of defects. valuable assets owned by Cognizant.
Securing information should be one of
CMMi level 1 organization denotes that the most important responsibilities of
processes are unpredictable, poorly every associate. Loss of information
controlled and reactive. could result in a loss of man hours
spent creating information as well as
When an organization is at level two, several more man-hours trying to
process is characterized for projects recover lost information. Information
and often reactive. lost outside the corporate
At level three, the process is environment could allow competitors
characterized for the organization and to gain undue competitive edge.
is proactive. Information is also trusted to
Cognizant by the customers.
At level four, the process is measured Information received from the
and controlled. customers need to be protected
against loss and unauthorized access
At the final level, the focus is on and use. BS 7799 is a Standard for
process improvement. developing and maintaining an
Information Security Management
One has to progress maturity level by
System. The ten domains that come
maturity level and reach the pinnacle
under BS 7799 are Security Policy,
of excellence.
Security Organization, Access
The People Capability Maturity Model Classification and Control, Personnel
measures how effectively an Security, Physical and Environmental
organization manages its professional Security, Communications and
force. People are the most important Operations Management, Systems
resources in the software industry. Development and Maintenance,
People CMM stresses on people-centric Access Control, Business Continuity,
processes, which ensure retention of and Compliance. The following page
workforce and growth of the gives you the details on Cognizant's
organization. Organizations that security arrangements.
achieve Level five certification are not
The Security classification in
only implementing and benchmarking
Cognizant is divided into:
their execution of enterprise-wide,
workforce management practices, but C1 or, Highly Critical - This involves
they are in continuous improvement firewall and finance related data.
mode, always seeking opportunities
for improvement. A high PCMM level is C2 or, Critical, which involves
characterized by effective professional customer supplied item and personal
folders.
C3 or, Protected - Includes any project certifications have been achieved in
document. an incremental approach with
Cognizant's growth as a company.
C4 or, General - Consists of General
information, like cognizant.com. Cognizant's Quality policy is outlined
in a web-based application known as
The Security classification of the data Qview. The Quality Management
implies the following: System is available through Intranet
Storage of Information http://cognizantonline/qview/
Transmission of Information You will view a demo on Qview in the
Access to Information next page.
Learn the types of projects in The reason why the projects are
Cognizant and their adaptation of categorized into large, medium, small,
SDLC and very small is that they need to
follow different processes for
Study the software engineering development. A large project and a
concept through the QView very small project cannot follow the
Know how to address the customer same steps while executing deliveries.
requirements in designing delivery To keep a large project on track, one
needs to have substantial processes in
The types of projects that are dealt place, whereas having few processes
with by Cognizant can be classified leads to the risk of unmanaged
into Development Projects and processes, which may lead to failure.
Application Value Management or Whereas, for a small project, having a
Maintenance Projects. In the following huge process makes it a tedious and
pages, you will learn in detail about unnecessary overhead.
application development projects.
Decisions regarding a project's size,
The application development projects whether it is a large, medium, small or
handled by Cognizant are of the very small project, are arrived at
following types: depending upon the duration and the
effort associated with the project. The
New development - A project total project duration includes
developed from scratch for a customer requirements through the system
based on given requirement, Re- testing phase in calendar months. The
engineering - Converting an existing total project effort includes on-site as
software system into another system well as off-shore effort and
having the same functionalities, but requirements through the system
with different environment, platform, testing phase. If a project is of less
programming language, operating than one-month duration or the effort
system, etc., and Product required is less than three person
development - A software product months, it is considered a very small
developed not for a single customer, project. If a project is of between one
but based on some market demand for and three months or the effort
a customer base for that type of required is between three and sixteen
product. person months, it is considered a
small project. If a project is of between
Development projects are classified in
three and six months or the effort
two different ways:
required is between sixteen and forty-
Classification based on life-cycle eight person months, it is considered a
models like Waterfall, Incremental, medium project. If a project is greater
and Iterative. than 6 months or requires more than
forty-eight person months, it is increment may focus on validating
considered a large project. architecture and key technical risks.
Functionality is built over increments,
The table shows the recommended such that the initial increment may
life-cycle models for the different focus on high-priority functionality,
types of development projects in and the last increment may focus on
Cognizant. A large project can follow nice-to-have features.
the waterfall, incremental, or iterative
model. A medium project follows the The iterative model is recommended
waterfall or iterative model. Small and when:
very small projects follow the waterfall
model. Most of these The requirements are not clear.
recommendations are because of The initial planning broadly scopes the
understandable reasons. A project of iterations and arrives at a roadmap
small duration could run into problems
if there were too many cycles of The initial iterations may involve
delivery as in iterative. Also, unless a architecture, UI frameworks, etc.
project is of a large duration, breaking
it up into increments does not make Subsequently, every iteration focuses
sense and might lead to complications on the set of requirements that need
from multiple deliveries. The following to be built into that iteration
pages will give you details on these
The iterations may be individually
three types of life-cycle models.
delivered to the customer
A waterfall model is recommended
A release to production can combine
when:
one or more iterations
The requirements are clear
This model is mainly suited for time
The project duration is smaller and material-based engagement.
While designing for delivery for Small and very small projects follow
development as well as AVM projects, the waterfall model
it is imperative that all customer
requirements are addressed. Apart The process model is selected
from the stated functional according to the life-cycle model,
requirements of the system, there are incorporating the customer's required
typically other requirements which processes and is tailored to suit the
have to be derived from the client. specific requirements of the project
They may be explicitly stated by the Requirements of the customers may
client or may have to be extracted be stated or unstated. Unstated
from them. In most cases, one has to requirements may have to be
extrapolate the complete extrapolated
requirements inclusive of must have,
nice-to-have features from the When addressing a client's
requirements directly available from requirements, the following
the client. considerations should be kept in mind:
Apart from the projects, the metrics Metrics are generated from the project
collected across the organization are data entered in Prolite and e-Tracker
analyzed by a group called the metrics
council and the organization's BQSEA1:
baselines are modified periodically
based on the analysis. This revision of SOFTWARE ENGINEERING
baselines indicates a change in the AT COGNIZANT:
performance capability of the
organization. Before you delve deeper into software
engineering, you must first understand
In this session, you have learned that:
what software is. A software or a
Metrics are quantitative indicators that software product is set of computer
indicate whether programs performing specific process
and the documentation associated
(a) The project is on track or not with the computer programs. Software
products can be developed for defined
(b) The quality of the product is
market of customers. An example
good or not
would be an accounting package,
The software processes and products applicable across industries. On the
are measured and controlled with other hand, software products can
metrics also be customized and developed for
one particular customer. An example
Metrics are derived as a mathematical would be a customer banking system
combination of base measures for a specific bank.
(examples of base measures being
schedule, effort, size, defect, etc.) Engineering is a science. Software
Engineering involves art, craft, and
The organizational baseline contains science. It is an amalgam of artistry,
the goals and control limits for each craftsmanship, and scientific thought.
compulsory and optional metric for all
types of projects. The OLBM depicts You will now move on to the
organization's capability development of software product. In
most engineering disciplines,
Projects set their own project goals specifications are the first step in the
based on organization-level goals or development of a product. Consider
they can set appropriate goals based the case of house construction. One
on the project characteristics starts with specifications, goes on to
design, and finally building and
Metrics are compared against the finishing the product. Similarly in
baseline figures to check the progress software development, one starts with
of the project. If the figures cross the product requirements, followed by
control limits or are deviating too architectural details, and then
proceeds to building, that is, developed by armchair programmers.
developing the code. It is then For complicated systems to be
followed by reviewing and installing successfully built, one has to be
the product. innovative and good while sticking to
rules, methods, processes, and
Coding and development is one of the teamwork.
major activities in Software
Engineering. But software engineering Software development can be
goes much beyond coding. It consists compared to art. Imagine building the
of various activities to encompass all Sistine Chapel alone and without a
aspects of software production, such blueprint. The best works of art
as requirements, specifications, require discipline, teamwork and
design, coding, testing, integration, planning.
documentation, deployment, and
maintenance. Coding would occupy as In this session, you have learned that:
little as 5 percent of the total work Software engineering is the art, craft,
involved in a Software Engineering and science of building large,
Project. Although artistic and scientific important software systems. It is an
in its scope, it has to adhere to several amalgam of artistry, craftsmanship,
time-tested processes pertaining to and scientific thought
the different aspects.
While being a major aspect, software
Now that you know the processes engineering goes much beyond
involved in software development, codingSoftware engineering is akin to
take a look at the number of people art, which cannot succeed without a
involved. They are spread across the blueprint and teamwork
managerial, technical, and end user
cadre. And like any other industry, SOFTWARE PROJECT STAGES:
software is linked to peripheral issues,
such as business, Contractual, Legal, Consider this scenario. Doing things
and Environmental. Hence, using a development methodology,
remember, Software is "Not Just Some and in a step by step manner, ensures
Pretty Code". successful product, regardless of
which industry the product belongs to.
As mentioned, the process of creating
software is more than coding -- Software Engineering is not just Code
involving people, processes, and time- Construction. Each Software
tested activities. Developing software Application that is created follows a
involves opportunity of individual well defined set of activities, and has a
expression, but it needs to be well defined Life Cycle from initiation
brilliance encapsulated in a to the retirement of the Software
framework. Small programs can be Application. Similar to a car
written in an ad hoc manner by a manufacture, a software application
single bright individual. However, development project has well defined
complex software solutions are seldom stages that are implemented in a
predefined fashion to create the software works as intended, it is
software application. deployed in its production
environment. Implementation is a
The Various Stages in a Software planned activity and steps pertaining
Development Life Cycle are to it are documented as part of the
Requirement, analysis, design, coding, Roll-Out Plan. A series of checks and
testing, Implementation, and reviews are conducted in this stage to
Maintenance. In the next few pages, ensure that all components of the
you will learn about each of these completed software have been
stages in detail. installed correctly. Software
In the Software Requirements Stage, undergoes change after it has been
the required functionality or behavior deployed and delivered to the
of the software is identified by the customer. Change will occur because
Software Engineer. These errors may be encountered, or
Requirements are documented in the because the software needs to be
Software Requirements Specifications adapted to meet changes in its
Document. The Analysis and Design external or operating environment, or
stage, translates requirements into a because the customer requires
representation of the software that functional or performance
can be assessed for quality before enhancements. These are issues that
coding begins. In this stage, typical are resolved during the Maintenance
documents that get created are the or Post Implementation stage.
functional specifications document, You will now learn about the basic
design documents, and the program building block of any stage. Basic
specifications. In the coding stage, the building blocks of a Stage are Tasks.
executable that can be read by the Activities explain how a task needs to
computer is created. Individual be performed. See what each of them
modules of programs are assembled signifies. In the next few pages, you
together to create the final executable will learn in detail about elements of
of the software application. any software development stage.
Once Code has been generated, You will now learn about the various
program testing begins during the elements of a stage. The Entry Criteria
Testing stage. Testing process focuses provides inputs which can be
on the logical internals of the documents or tasks. It is then followed
software, ensuring all statements have by the Task or list of activities that are
been checked for correctness. It also implemented to complete the process.
focuses on the functional externals, The Verification consists of reviews
that is, conducting tests to uncover and approvals that confirms adequacy
errors and ensure that defined input of the activities done during the Task
will produce actual results that agree period. The stage ends with an Exit
with the actual results. At the criteria which consists of work
implementation stage, after all tests
have shown that the completed
products or documents that may serve REQUIREMENT DEVELOPMENT
as an Entry Criteria for the next Stage. AND MANAGEMENT:
Here is an example that describes the Software Engineering is not just Code
Elements of the Requirements Stage. Construction. Each Software
The Entry Criteria for Requirements Application that is created follows a
Stage is the Business Need. For well defined set of activities, and has a
example, the client requires a system well defined Life Cycle from initiation
that will automate the process of to the retirement of the Software
banking according to his needs. Tasks Application. Similar to a car
of the Stage would include activities manufacture, a software application
like requirement capture, requirement development project has well defined
analysis, and requirements stages that are implemented in a
documentation. Work Products created predefined fashion to create the
in this stage could be completed software application.
requirements gathering checklists and
Software Requirements Specifications. The Various Stages in a Software
As part of Verification the completed Development Life Cycle are
SRS document will be reviewed by the Requirement, analysis, design, coding,
Project Manager and approved by the testing, Implementation, and
Client Representative. Signed off SRS Maintenance. In the next few pages,
will be Exit Criteria for this stage, you will learn about each of these
which would become the Entry Criteria stages in detail.
for the next Stage, Analysis and In the Software Requirements Stage,
Design. the required functionality or behavior
In this session, you have learned that: of the software is identified by the
Software Engineer. These
The SDLC is a sequence of steps that Requirements are documented in the
organizes the development of a Software Requirements Specifications
software product Document. The Analysis and Design
stage, translates requirements into a
The various stages in the SDLC are representation of the software that
Requirement, Analysis, Design, can be assessed for quality before
Coding, Testing, Implementation, and coding begins. In this stage, typical
Maintenance or Post implementation documents that get created are the
The building blocks of any stage are functional specifications document,
Activities and Tasks design documents, and the program
specifications. In the coding stage, the
The elements of a stage include Entry executable that can be read by the
criteria, Task, Verification, and Exit computer is created. Individual
criteria modules of programs are assembled
together to create the final executable
of the software application.
Once Code has been generated, of the activities done during the Task
program testing begins during the period. The stage ends with an Exit
Testing stage. Testing process focuses criteria which consists of work
on the logical internals of the products or documents that may serve
software, ensuring all statements have as an Entry Criteria for the next Stage.
been checked for correctness. It also
focuses on the functional externals, Here is an example that describes the
that is, conducting tests to uncover Elements of the Requirements Stage.
errors and ensure that defined input The Entry Criteria for Requirements
will produce actual results that agree Stage is the Business Need. For
with the actual results. At the example, the client requires a system
implementation stage, after all tests that will automate the process of
have shown that the completed banking according to his needs. Tasks
software works as intended, it is of the Stage would include activities
deployed in its production like requirement capture, requirement
environment. Implementation is a analysis, and requirements
planned activity and steps pertaining documentation. Work Products created
to it are documented as part of the in this stage could be completed
Roll-Out Plan. A series of checks and requirements gathering checklists and
reviews are conducted in this stage to Software Requirements Specifications.
ensure that all components of the As part of Verification the completed
completed software have been SRS document will be reviewed by the
installed correctly. Software Project Manager and approved by the
undergoes change after it has been Client Representative. Signed off SRS
deployed and delivered to the will be Exit Criteria for this stage,
customer. Change will occur because which would become the Entry Criteria
errors may be encountered, or for the next Stage, Analysis and
because the software needs to be Design.
adapted to meet changes in its In this session, you have learned that:
external or operating environment, or
because the customer requires The SDLC is a sequence of steps that
functional or performance organizes the development of a
enhancements. These are issues that software product
are resolved during the Maintenance
or Post Implementation stage. The various stages in the SDLC are
Requirement, Analysis, Design,
You will now learn about the various Coding, Testing, Implementation, and
elements of a stage. The Entry Criteria Maintenance or Post implementation
provides inputs which can be
documents or tasks. It is then followed The building blocks of any stage are
by the Task or list of activities that are Activities and Tasks
implemented to complete the process.
The elements of a stage include Entry
The Verification consists of reviews
criteria, Task, Verification, and Exit
and approvals that confirms adequacy
criteria
SOFTWARE ANALYSIS AND will construct the code to create the
DESIGN: system.
Analysis and Design are one of the Design creates a detailed Design
foremost stages in software Document that acts as the "blue-print"
development cycle. for the developers or the team that
will construct the code to create the
Click each of the images to know system.
more.
The typical elements of software
Analysis is the software engineering design include Program Architectural
task that bridges the gap between the Design, Data Design, Interface Design,
software requirements stage and and Component Design.
software design. The objective of
software analysis is to state precisely This is the overall Architecture Design
what the system will do to provide a for the SmartBook System. It defines
solution to the client's need at a the relationship between the structural
functional level.This is captured in the elements of the Software Application
Functional Specification Document. being built. Architecture for the
system needs to be built as part of
Design creates a detailed Design Software Analysis and Design Stage.
Document that acts as the "blue-print" The Data Design specifies the data
for the developers or the team that
structures needed to implement the requirement specification document.
solution. It includes the Database or This activity is completed in the
File System Space Requirements. It Requirements Stage of an Application
also includes Table or Layout details, Development Project.
such as Table or Record name,
Column or Field names and Each of the Requirements is then
description,Type of Column or Field decomposed further to create the
the length, Default values, Edit or Software Functional Specifications.
validation conditions associated to a The Functional Specifications express
Column or Field, and Details of all the system to be built in a language
Keys or Indexes of a Table or Record. that designers of the system
These are the interface designs which understand. The problem presented
describe how the software by the Requirements is analyzed using
communicates within itself, with the Analysis Models. Creation of the
systems that interoperate with it and Analysis Models and the Functional
the Humans who use it. Interface Specifications often take place
Design for the system needs to be simultaneously.
built as part of Software Analysis and Here, you can see an Analysis Model
Design Stage. The Component level that is used to express the problem.
design transforms the structural Such a diagram is called a Data Flow
elements of software into procedural Diagram, in which each bubble
description of the Software indicates the activity taking place. The
Component. It includes Program box on the other hand, is used to
specifications, that is, the Functions or denote an external source or sink of
Algorithms that define the procedural information. The parallel bars denote
design. data store or file while an arc is used
Here is a case study to understand the to denote the flow of components
concept of software analysis and among the other 3 components. Note
design better. Mercury Travels is a that SRS 01.1 has been expressed
premier Travel Agency of the country. using processes 2a and 2b.
Mercury wants to automate its The bubble 1 which denotes the
business processes. Requirement activity, "Determine form of travel"
Analysis reveals that the specific has been factored further to a lower
requirement of Mercury is to create an level of D F D.
Air or Rail Ticket Booking System for
the Travel Agents. Other business The Analysis Models form the basis of
processes will not be included in the the Program Specifications which is an
current automation initiative. essential component of the Design
Document.
To begin with, the software
requirement specifications document In addition to Program Specifications
is put in place. The business need is the Design Document includes other
the basis for creation of the software
details like Data Design and Program common objects help in achieving
Architecture Design. greater modularity and are
manageable from the project
Data design involves the overall data management perspective.
model design for the application.
Program hierarchy and program-level In this session, you have learned that:
interfaces are addressed in the
program architecture design. In analysis and design the focus is on
"HOW to Build" a solution and not on
Look closely at the examples here. "WHAT to Build"
There are two ways you can visualize
the building or construction of a Analysis is the software engineering
house. Builder may appoint a stage that bridges the gap between
bricklayer to create the walls and the software requirements stage and
carpenter to create windows, fit software design stage
windows into the walls etc and slowly Functional Analysis Document is the
create the house. most important document that is
Alternatively, the builder may fit the created in this phase
standard models of doors, windows, In the software design stage, detailed
roofs, walls, and rooms available in design document is the most
the market to create the house. This is important document that is created
how most buildings get built now.
This acts as a "blue-print" to be used
There are two approaches to creating by the eventual implementers of the
the Design Specifications in a project. system
One is the Structured Analysis and
Design Technique that can be traced The elements of software design are
to the 1970s. The other is a newer Program architectural design, Data
concept called the Object Oriented design, Interface design, Component
approach which as a concept was design
developed from 1990s.
There are two ways in which software
SSAD makes a heavy use of functional engineers visualize "HOW to build" a
decomposition. System behavior takes solution during analysis and design
a secondary role here. Like in the case stage, namely, Structured Analysis
of building a house brick by brick and Design (SSAD) technique and
object-oriented technique
The object-oriented technique on the
other hand focuses on the system CODE CONSTRUCTION:
behavior. In the recent years OOAD
technique has become very popular Your builder has taken your house
with software engineers.Objects requirements and has given you the
represent a sample expected system building plan and the prototype of
behavior and they are called upon to your house. So in your mind, you have
function as a whole. Re-usable and the picture of your dream house
ready. What do you think is the important inputs for the coding stage.
activity that the builder has to engage Code construction using language-
in now? Yes. You guessed it right. The specific coding standards, peer review
builder will need to construct the of code, and updating code based on
house now. review comments are major tasks in
this phase. Peer-reviewed code is the
You will now learn how code is output of the coding stage.
constructed. Design provides the basis
for code construction. A unit test helps This page delves into details of the
a developer to consider what needs to tasks and activities of the coding
be done as requirements are nailed stage. It must be noted here that peer
down firmly by tests. There is a review of code is a very important task
rhythm to developing software unit in the code construction stage.
tests. First, you create one test to
define some small aspect of the A coding standards document tells
problem at hand. Then, you create the developers how they must write their
simplest code that will make that test code. Instead of each developer
pass. Then, you create a second test. coding in their own preferred style,
Now, you add to the code you just they will write all code to the
created to make this new test pass, standards outlined in the document.
but do not write any more code until This makes sure that a large project is
you have created a third test. You coded in a consistent style, that is,
continue until there is nothing left to parts are not written differently by
test. The next page holds an activity different programmers. Not only does
for you. You have to connect the this solution make the code easier to
numbers in a series beginning with understand, it also ensures that any
number one. For example, click developer who looks at the code will
number two to connect number one know what to expect throughout the
and number two. entire application.
Now, you know that any unstructured This section outlines concepts that are
piece of work is difficult to understand generic in nature and applicable to
and that code is no exception. most software tools and platforms.
Platform-specific conventions and
You should remember that even guidelines are covered under the
though completed code is an relevant company standard. The
important deliverable that is given to relevant language-specific standard
the customer, software engineering is must be referred to when constructing
not just coding. Coding is a stage code in a specific language.
within the software development life
cycle. The subsequent page explains It is necessary to have a good coding
the coding process in detail. layout structure. Good coding
structure improves the readability and
Design documents and unit test cases maintainability of code. A good layout
that are updated with test cases are brings out the logical program
structure through appropriate use of readable. It takes us toward the goal
blank lines, spaces, and indentation. of "self-documenting code".
Let us take the example of an essay
written by two young students of class When commenting a source code,
five. Student A has used a clean paper always use comments judiciously so
with the necessary punctuation marks, that we can ensure our code is
spaces, paragraph settings, used readable and clear.
uniform fonts, and cases. This is much Use of headers in a program will not
easier to read than the one written by add to its functionality. It is of
Student B, which has not been written immense help during maintenance of
neatly and clearly. These were the a program.
basic tenets of sentence construction
that we had learned when we were in Naming conventions for a language
school. This is true even when you should be as per the recommended
write your first program. convention documented in the coding
checklist. The benefits of adhering to
This page deals with the good naming conventions is that somebody
practices on code layout and going through the program can get an
programming. Code layout deals with idea about the purpose of various
the structure of the code and the way entities from their names, thus
it is laid out. It affects readability and enhancing program readability.
ease of modification of code. Conventions bring about uniformity in
Here are the guidelines to be followed the way program entities like
for maintaining presentation aspects variables, symbolic constants,
of code when fixing a bug. procedures, and functions are named.
Teams can develop their specific
This page outlines the concepts naming conventions for identification
pertaining to sentence construction of programs.
that are generic in nature and
applicable to most software tools and In this page, you will learn about the
platforms. Platform-specific declarations standards in a piece of
conventions and guidelines are code:
covered under the relevant company A program consists of two basic
standard. entities, data and instructions. Data
Code-level readability is not about elements or structures should be
using comments only. The main declared and initialized before
contributor to code-level readability is (executable) instructions.
not comments, but good programming All header files and libraries used in
style. Check the first example of code the program (whether standard or
provided. This reflects bad user defined) should be declared.
programming style. Check the second
example. Even though this code does All global variables need to be
not use any comment, it is much more declared and the number of global
declarations used should be minimized Now, you will learn the importance of
so as to reduce coupling between On-Screen Error and Help Messages. In
modules. this example, the customer inserts his
debit card in the ATM machine. But
All unique or complex variables or the machine does not accept the card
data structures should be described and ejects it immediately, without
through appropriate comments, showing any error message. This
clarifying the reason for such makes the customer frustrated. The
complexity. next page provides some good
Functions and their parameters should practices that should be followed in
be declared taking care to ensure that case of text-based error and help
no type mismatches occur during messages.
runtime between the calling and called Design of the On-Screen Error and
module or function or procedure. Help Messages have a strong bearing
When using arrays, remember it is on user-friendliness. This page puts
cumbersome to handle arrays having forward some of the guidelines that
more than three dimensions. Such could be followed by the developer.
arrays should be avoided. In this session, you have learned that:
You will now learn what defensive Coding is a stage within the software
programming is. As a programmer, development lifecycle
you should be able to envisage areas
in your programs that can initiate The inputs for the code construction
errors in the behavior of the software include design document and the unit
application. Hence, appropriate test cases document
methods should be used to prevent
the occurrence of errors. The process of code construction
involves using design document and
Continuing with defensive coding standards to create code,
programming ensures that your aligning code to the unit test cases,
program is secure and prevents and peer reviewing code before
unauthorized access. delivery
The set of activities performed for Finally, looking into the value
software maintenance in the steady additions offered to the client includes
state can be sequentially classified implementing an S L A-based
into: management, which keeps a constant
eye on the health of the project and
Modification request, Classification gives a measure of the performances.
and Identification, Analysis, Design, This subsequently leads to the
Implementation of the change in the improvement in the areas of
necessary places, System Testing, productivity, schedule, and finally the
Acceptance Testing, and Delivery. cost involved. The root-cause analysis
Based on the size, type, and done at intervals helps in identifying
complexity of the request, one or the pain areas of the application and
more of these phases are integrated hence focuses on correcting them.
or eliminated from the execution You will now learn about some key
cycle. issues and challenges faced during
The workflow shown here actually application maintenance. The key
illustrates the functioning of the onsite issues that should be adeptly dealt
and offshore team in a typical with for maintaining the software
maintenance scenario, describing the effectively can be classified as:
activities performed for the various Technical issues, which includes
levels and type of support. limited understanding, extent of
Here is a description of different testing possible, and the
measurement areas and the areas maintainability or is it maintenance of
where improvement can be identified code.
over a period of time. Management issues that include
Here, you will know the term service- staffing and process-related issues.
level agreement and will see its Cost estimation that adapts the right
importance in the maintenance methodology as parametric or
projects. A service-level agreement is judgmental.
a contractual service commitment that
describes the minimum performance Measures with respect to Analysis,
criteria a provider promises to meet Changeability, Stability, and the
while delivering a service. This is Testability of the software.
usually in measurable terms. It
Here is an overview of eTracker. while delivering a service. This is
eTracker is a tool used for managing usually in measurable terms
the maintenance projects in
Cognizant. It is a request management The key issues that should be adeptly
tool where individual requests can be dealt with for maintaining the software
planned and tracked to closure. It also effectively can be classified as:
has features like automated metrics a) Technical issues, which include
management, defect management, limited understanding, extent of
and risk management. The tool testing possible, and the
represents the information stored in maintainability of code
the form of various types of reports
and charts. b) Management issues that include
staffing and process-related issues
In this session, you have learned that:
c) Cost Estimation that adapts the
The maintenance process right methodology as parametric or
fundamentally includes correction of judgmental
defects, adaptation to modified
environment, and incorporation of d) Measures with respect to Analysis,
additional requirements. They are Changeability, Stability and the
termed as production support, Testability of the software
enhancements, or bug fixes
eTracker is used for tracking requests
Maintenance can be categorized into for a maintenance project
proactive, reactive, correction, and
enhancement. The combination of UMBRELLA ACTIVITIES:
these categories result in what are
Any standard software process model
termed as Preventive Maintenance,
would primarily consist of two types of
Perfective Maintenance, Corrective
activities: A set of framework
Maintenance, and Adaptive
activities, which are always applicable,
Maintenance
regardless of the project type, and a
The three primary stages of set of umbrella activities, which are
maintenance include Planning for the non SDLC activities that span
transition, Knowledge transition, and across the entire software
Steady state development life cycle.
The classification of requests is based At the end of this session, you will be
on a combination of their size and able to:
type
Define umbrella activities in a
A service-level agreement is a software life cycle
contractual service commitment that
Explain the usage and importance of
describes the minimum performance
the following umbrella activities:
criteria a provider promises to meet
a) Traceability Matrix-its definition, and employees are allocated to each
usage, and relevance in the SDLC department. A requirement
traceability can be defined as a
b) Peer Reviews, Forms of reviews, method for tracing each requirement
Planning and execution of peer from its point of origin, through each
reviews development phase and work product,
Umbrella activities span all the stages to the delivered product. Thus, it helps
of the SDLC. They are not specific to in indicating, for each work product,
any particular life cycle stage. the requirements this work product
satisfies.
The umbrella activities in a software
development life cycle process include When there is absence of traceability:
the following: The product gets compromised since
the development cannot be prioritized
Software Project Management based on the order of criticality of the
component, ultimately leading to
Formal Technical Reviews missed functionality in the delivered
software. Project management is
Software Quality Assurance
compromised due to the lack of
Software Configuration Management visibility of the components of the
application being developed and their
Re-usability Management interconnections causing a major
hindrance to continuous planning.
Risk Management
Testing is compromised as the
Measurement and Metrics coverage is not verified at every stage
of the life cycle. It becomes difficult to
Document Preparation and Production demonstrate that the product is ready.
Finally, maintenance becomes difficult
The following pages would focus on
as identification and analysis of the
the requirement traceability matrix
impacted work products and
and formal technical reviews.
requirements becomes tedious. This
Managing traceability is required to ultimately increases the complexity
ensure the requirements are carried during testing.
through properly to design,
Some benefits are that its availability
development, and delivery. The
ensures correct implementation of
following animation will show the
requirements as traceability gives a
pitfalls of poor traceability.
clear visibility of the interactions
Now, let us try to understand the among the components within the
concept of traceability and its system. The forward and backward
importance in software development. visibility into the system actually helps
For example, in an organization, the in estimating the tasks and activities
activities are departmentalized on the of the project with greater accuracy
basis of the functionality to be served through a detailed impact analysis for
the changes. This leads to effective deliverable, design, or document) is
project management and planning. examined by its author and/or one or
Since traceability provides a highly more colleagues of the author, in
visual view of the interrelationships order to evaluate its technical content
between the various components, it and quality. Management
can be used to identify the representatives should not be involved
requirements that have not been in conducting a peer review except
covered and hence analyze the gaps when included because of specific
between them. Traceability gives a technical expertise, or when the work
complete idea about the dependencies product under review is a
and relationships of and between management-level document.
components. For any change in Managers participating in a peer
requirement that is requested by the review should not be line managers of
customer, it facilitates impact analysis any other participants in the review.
and simplifies the maintenance
activities. Finally, traceability also Peer Review has to be planned at the
helps to ensure that all the work is start of the project where the PM or PL
against current requirements and that identifies the artifacts to be reviewed
the requirements are completely and the Peer Reviewers. The Review
satisfied. schedule of the individual items to be
reviewed along with associated
The roles and responsibilities with reviewer needs to be planned by the
respect to the traceability matrix are PL during the project execution. The
explained in this page. Project Peer Review needs to be conducted by
manager ensures all required the assigned Reviewers. The Review
information is provided as needed, comments need to be logged in a
reviews the traceability matrix for Review tool such as eTracker or
completeness. Requirement analyst Prolite. The developer needs to
updates requirements traceability incorporate the review comments.
matrix as needed, support analysis as
needed. Designer provides mapping of In this session, you have learned that:
requirements to design products. Umbrella activities span all the stages
Developer provides mapping of of the SDLC
requirements to development
products. Tester provides mapping of The concept of umbrella activities
requirements to test products. focuses on Requirement Traceability
Matrix
This page details the concept of Peer
Review in software projects and Requirement traceability matrix is
identifies the importance and need of needed to be maintained by projects
Peer Reviews. In software to ensure that the requirements are
development, Peer Review refers to a adequately addressed
type of Software Review in which a
work product (any software Not maintaining a requirement
traceability matrix results in problems
including unsatisfied requirements, communicated often doesn't address
problems during delivery and the actual need which, at a later point
maintenance of time, might result in a change.
Secondly, if there is a change in the
Software Peer Review needs to be operating environment in which the
planned, performed, and logged system functions. Thirdly, a change
CONFIGURATION MANAGEMENT: might result from the errors
committed due to other reasons
Here, we are presenting the scenario during requirement gathering, design,
on the day version 3.0 of Far Flung and the testing phase of the life cycle.
Personnel Planner to be released.
Since you now know the fact that
We see here that the current problem change is inevitable in software
that the far flung company was facing application development, the next
could be reverted if they could roll basic question that arises is how are
back to the earlier release. They are we going to manage these changes?
unable to identify the changes To manage changes in software
incorporated in the previous version application development, we use the
and check whether all the changes discipline of software configuration
suggested have been incorporated in management, which operates
the latest version. There is no formal throughout the life cycle of an
communication about the status of the application development.
changes either.
Here is an illustration of configuration
At the end of this session, you will be management. Configuration
able to: management is a discipline that
involves a set of activities that need to
Learn what software configuration be performed to manage and control
management is the changes that arise during the
software development life cycle. The
Study the important terminologies
discipline of configuration
used in software configuration
management is applied across the life
management
cycle of the project. SCM is that aspect
Explain the tasks involved in software of project management that focuses
configuration management exclusively on systematically
controlling the changes that occur
Change management is a life cycle during the project by using a defined
activity, not just a maintenance process. SCM is a support activity that
activity. makes technical and managerial
activities more effective with the basic
Here, we will illustrate a few basic
objectives of delivery of high-quality
reasons why we encounter change in
software product to the client. It
software application development. If
involves identifying and documenting
the business need is not clear to the
the physical and functional
customers, then the way it is
characteristics and managing the example of a house that relates to an
security and protection of a software SCI. The building plan, the floor
artifact. design, the doors, windows, and
chimney of the completed house can
Now, here is an illustration of the basic be identified to be the configurable
questions a configuration items of a house. In case of a software
management system helps us to application requirements document,
answer about any document or code the design document, code, test
that is created or used in software strategy document, and the delivered
development or maintenance. Typical application itself can be considered to
questions that any SCM process be examples of SCI.
should address are:
A baseline is a specification or product
What are the artifacts to be developed that has been formally reviewed and
within the life cycle? agreed upon. Examples of baselines
What is the status of an item? are reviewed design document,
approved project plans, and accepted
How do I identify a work product product. Baselines are well-defined
uniquely, every time I make a change points in the evolution of a software
and how do I record its effect on other application. Hence, the baselining
items? criteria and the person responsible for
meeting the criteria need to be
How do I inform everyone else of the defined prior to planning configuration
changes I have made to an existing management.
document or code?
Using version control of a configurable
Now it is essential to get familiarized item, we are able to identify multiple
with some of the commonly used instances of the same configurable
terminologies in configuration item, uniquely. Assume that we have
management and understand their completed building a house using the
significance in detail. Software Base-lined project plan:
Configurable Item or an S C I, House_Project_Plan_Version_1.0, and
Baseline, Version Control, and Access Base-lined Floor Design Document:
Control. You will learn about these House_Floor_Design_Version_1.0. Now,
terminologies in the following pages. there is a need to change the pattern
of windows of the house.
The most important concept of
software configuration management is To change the window pattern of the
a software configurable item or SCI. house, we would need to re-plan the
Software configurable items are the project and recreate the floor design.
basic building blocks of any software The version number of the initial
product. Changes to the software project plan is incremented by 1.0 and
configurable items need to be the new plan is named:
managed in order to control change of House_Project_Plan_Version_2.0. The
the software product. Here is an floor design is also updated and the
version number of the initial floor plan of SCM are subject to configuration
is incremented by 1.0 and the new audits conducted by the quality
floor design is named: reviewer.
House_Floor_Design_Version_2.0.
Based on the new baselined The software configuration
configurable items management plan documents the
House_Project_Plan_Version_2.0 and processes and methodologies that will
House_Floor_Design_Version_2.0, an be used to manage change in the
updated version of the house is project. It also identifies the roles of
created. The following page will give the team members who will be
you details on Access control. responsible for implementing change
control in a project.
Access control is used to maintain
integrity of configurable items. Not all The SCM plan identifies the names of
associates working in a software the SCM team and the roles of each
company are allowed to access the member, that is, the names of the
documents pertaining to a particular reviewers, approvers, SCM
project. Only core members of a coordinator, and other team members
project are allowed to gain access to who will be responsible for
documents of a project. Again, within implementing a change.
the project, different user groups are Libraries or repositories are areas
defined and access rights are defined where a project stores and maintains
for each user group. Separate work the documents and executables. This
areas are defined for each team and page illustrates the repository
access is controlled within each work structure for version controlled items.
area. The development area contains all
The first task for initiating the items documents that are in
discipline of software configuration development while review or test area
management, referred to as SCM, is to contains items that are ready for
create the configuration management testing. The baseline area contains all
plan. The next step is to form the SCM the approved items that are ready for
team as per the roles identified in the project use and deliverable to the next
SCM plan. The third step is to set up a step or stage. Old items that are no
library or project repository structure longer in use are stored in the archival
as per the SCM plan. Along with this area.
task, access rights of each team Here you will see how user access
member to each repository are also rights are defined for each of the area
defined and implemented. Changes or repository and how read or write
implemented in all items are then access is controlled in a project. To
implemented as per the methodology maintain integrity of the work
documented in the SCM plan. The products, access rights to each of the
status of items changed is maintained folders is defined.
by the SCM coordinator. All activities
A software project has both version The naming convention of other non
controlled and non version controlled configurable items like status reports
items. All the items that will undergo is illustrated here. In this case, the
changes throughout the life cycle are qualifier can be a project or a module
version controlled and called or a sub project name or any
documents, such as design document, combination of them identified as
code etc., There are many other items, appropriate to a project.
which reflect the status at the given
point of time and that individual item Change control is a procedural activity
will not undergo changes. Only a new that ensures quality and consistency
instance will be created. These are as changes are made to configurable
typically non-version controlled and items. Change control is the means by
called as records. Examples are Status which changes are accepted into a
reports, review records. project in a controlled manner without
causing great instability. Manages the
This naming conventions of process for initiating and making
configurable items have been changes to baselined software
described here. The qualifier can be a configurable items.
project or a module or a sub project
name or any combination of them Status Accounting keeps track of
identified as appropriate to a project. changes made to Configurable Items
and its current status by maintaining a
To manage changes in a software history and a continuous status over
configuration item, it is necessary to the period of time. The status can be
identify the multiple instances of a WIP, baselined, under review, or
configurable item uniquely. We use change etc. This helps in identifying
the concept of a naming convention the list of changes required, the
and a version number to identify a changes incorporated, and the
configurable item. After a configurable changes pending.
item is baselined, a version number is
given to the configurable item, The quality reviewer or SCM
generally starting at 1.0. As already coordinator of the project audits all
described earlier, a baselined activities pertaining to configuration
configurable item is either reviewed or management. There are two types of
approved based on the criteria set for audit that a quality reviewer performs,
baselining the item. functional configuration audit and
physical configuration audit.
Here you can see how non- Functional configuration audit verifies
configurable items like quality records that the system satisfies the
are named. The example is that of a specifications and this is typically
review sheet for a design document. In verified by auditing the traceability
this case, a qualifier can be a project matrix. The traceability matrix traces
or a module or a sub project name or each requirement through the design,
any combination of them identified as code, and test case, whereas the
appropriate to a project. physical configuration audit verifies
the typical SCM question of the status branching and merging of the main
accounting of all SCIs. chain.
In this page, you will learn about the Here are the SCM best practices that
modes of configuration management. are followed at Cognizant.
SCM can be either tool-based or
manual or a combination of the two. Addressing workflow and the
Manual management essentially responsibility for change
involves configuring a folder structure Conditions for initiating CRs
in a file server with controlled access
rights for various areas. Tool-based Highlighting and planning for
management covers automatic controlling dependencies affecting the
version control mechanism for both critical path or SLA
source code and documents, and
access control. Since the process is Handling signoff delays
automatic, the chances of committing
Handling scope and responsibility
manual errors are eliminated.
change apart from the requirement
Examples of SCM tools are: VSS,
change
Clearcase, CVS, etc. SCM can be
performed as a combination of these A defined branching and merging
two mechanisms. strategy
Currently, VSS from Microsoft is most Defining and enforcing the frequency
widely used across projects. We will of check-ins of development code
learn the various features of
configuration management by using Addressing tagging or labeling
VSS as the source control tool. VSS frequency or nomenclature for the
allows automatic version management builds
eliminating the version naming
SCM practices and other details
conventions. Instead, it keeps a
followed at Cognizant can be accessed
history of the previous versions of the
from Cognizant's quality management
same file through frequent check-ins
system-the Qview. The demo will help
or check-outs. Apart from that, the
you to reach out for necessary
details of the check-ins and check-outs
documentation regarding the SCM
can be stored by labeling each version
practice at Cognizant.
of an item. The labeling can also be
used for automatic build management In this session, you have learned that:
of the software at defined intervals by
improving the tool using add-ins to Software configuration management is
VSS. VSS allows multiple degrees of a discipline used to manage and
folder level access control control change across the project
mechanisms to a group or at software development life cycle
individual level. Parallel development
The terminologies used in SCM are:
is also possible through the usage of
Software Configurable Item, These are process. This is true for software
the components of a product that are projects as much as medical science.
to be controlled for managing change
in a product. They are identified using At the end of this session, you will be
naming conventions and version able to:
numbering Study the defect-tracking mechanism
Baseline, Is the formally agreed upon and
project plan Learn about the defect prevention and
Version Control, Identifies multiple causal analysis
instances of the same configurable A defect can be defined as a flaw in a
item, uniquely system or system component that
Access Control, Is used to maintain causes the system or component to
integrity of configurable items fail in performing its required function.
The SCM plan includes Names of the You will now learn what defect
SCM team members, Roles of each reporting involves. Defects are
SCM team member, Name and reported using Prolite, eTracker, or
location of project libraries, User other defect tracking tools. A defect
access right for project libraries, report must include: Defect Id, Test
Names of configurable items, Names case reference, Defect description,
of non version controlled items, Defect priority and severity, Tester
Process for change control, and name, and Test date and time. After
Process for status accounting the defect is assigned to a developer
and fixed, the final report will include
DEFECT MANAGEMENT: the Defect fixer's name, Date and
Some maladies at their beginning are time, and Defect fix verification. In the
easy to cure but difficult to recognize. next page, you can see how defects
In course of time, when they have not are classified.
been at first recognized and treated, Defects are classified in terms of
they become easy to recognize and severity. Severity is indicative of how
difficult to cure. This necessitates severe the defect is. This can be very
defect prevention and defect detection high or critical, high, medium, or low.
to be a part of the defect management Priority is an indicator of how soon the
defect needs to be fixed and this can Implementation due to: Lack of
be high, medium, or low. implementation skills, and lack of
availability of the proper environment.
Now, you will learn how defects can be
prevented. Every project prepares a The responsibilities involved in
defect-prevention plan. Using the plan, managing a defect begin with:
the common causes of defects are
identified and eliminated. Defect- Creating a team to coordinate defect-
prevention tasks include: analyzing prevention activities for the
defects encountered in the past and organization. This team is either part
taking specific actions to prevent the of SQAG or its activities are closely
occurrence of the same in future. coordinated with that group.
Causal analysis primarily focuses on: Here are the roles and responsibilities
fixing problems as they occur, finding for defect management in a project:
what, in the process, has permitted Follow defect-prevention checklist
the defect to occur, and finding what from database
needs to be corrected to prevent it
from occurring again. Adopt DP activities suggested in the
kick-off meeting
The outcome of the causal analysis
meeting: Collect defect data
The test execution syncs up with the The black-box test design treats the
development cycle during the system as a black-box. So it does not
functional testing phases. explicitly use the knowledge of
internal structure.
The static and dynamic are the two
types of testing techniques. Its design is usually described as
focusing on testing functional
The static testing does not execute requirements, whose contents or
the program. It inspects or walks implementations are unknown or
through the code. irrelevant.
The software testing is a process of The main objective of the GUI testing
identifying the correctness, is that the end user should feel
completeness, and quality of comfortable while using the
developed computer software components of the operating system.
The two types of testing techniques The features of GUI testing are as
are static and dynamic follows:
The ability of one program to work In this session, you have learned that:
with another is termed as hardware
compatibility. GUI testing checks the user
friendliness of an application
The platform and inter-product
compatibility is also taken care by the Regression testing ensures product
configuration testing. quality and improves functionality
The framework calls the tests, which in Easy usage of interface across the
turn manipulates the domain code and product
performs checks on it.
Consistency with the user interface
The framework will report the failed across the product
tests.
User interface dialogs
It also catches every unhandled
exception and the other tests keep Tab-related checks for screen controls
running. The functionality checks for screen,
Integration tests are done with unit field dependencies, and referential
testing framework. integrity checks.
The steps involved in unit testing are The significance of unit testing is
as follows: exemplified by the following factors:
1. Initially set the test data, functions, It determines whether unit works as
and methods for a unit. designed.
The unit testing activities are field Unit test gives clarity about the
level checks, field level validation, requirements of the object.
user interface checks, and It documents the requirement for an
functionality checks. object.
It extends the life and maintainability The main activities of unit testing are
of the code. field level checks, field level
validations, user interface checks, and
The best practices for the efficient functionality checks
usage of unit testing by the
developers are as follows: Immediate testing of code will reduce
the programmers' stress
Testing small units is important
because the bugs found must be in J UNIT TESTING:
that unit.
Welcome to the session on JUnit. XUnit
Unit test should be isolated so that is an application for executing
one test does not interfere with the arbitrary tests. It provides an
other tests. extensible framework and protection
for executing groups of unit tests. It
The unit tests are run every time they has members, such as JUnit, NUnit,
are adding code. CppUnit, RubyUnit, XMLUnit, and
Unit tests should be made short. dbUnit. This session deals with JUnit,
which is a testing framework written in
The advantages of unit testing are as Java.
follows:
JUnit is a unit test framework for Java
Immediate testing of the code will programming language. It contains a
reduce the programmers' stress. series of extensible classes that
perform a great deal of testing work.
Unit testing provides a safety net for The JUnit test framework consists of
application when programmers add facilities, such as counting of errors
functionalities. and failures, reporting of errors and
failures, and running tests in batches.
Unit tests are used as documentation.
The JUnit test framework consists of
It increases the programmers’
some salient features, such as
productivity and code stability.
automation of test cases, improved
It reduces the debugging time test coverage, consistent testing,
because bugs found by developers are highly reusable framework, assertions
cheaper to solve than those found by for testing expected results, testing
a separate testing department. fixtures for sharing common test data,
testing suites for organizing and
In this session, you have learned that: running tests, and using graphical and
textual test runners. In JUnit, all to be tested. It issues assertions about
exceptions are test failures. the expected state of the object.
JUnit has its unique advantages. Unit The two processes involved in the
testing is automated. It determines JUnit test case are manipulation and
whether the unit works as designed. It assertion. Manipulation is a process
has features, such as line coverage, that calls a method or series of
logic coverage, and condition methods on the instance of the class.
coverage. JUnit benefits the It passes through a variety of input,
programmer a lot if he uses it both valid and invalid. Assertion is a
correctly. It has framework-supplied process where the statement is true if
methods, such as assetTrue( ) and the code works appropriately. If an
assetFalse( ). assertion is not true, it fails and the
test case fails as well.
JUnit has a few limitations. There is no
direct provision for reading test data The requirements of a JUnit test case
from a file, and it cannot directly test are a piece of code that takes a
UI components, such as JSPs and predefined unit of code and
Servlets. manipulates it. A small program is
required to execute various pieces of
The essential classes in JUnit code divided into methods that test
framework are as follows: your class. Each behavior of your class
junit.framework.TestCase allows will have a method in the test case. A
running multiple test methods behavior can have multiple methods in
simultaneously, and it does all the test case.
counting and reporting of errors. The JUnit provides a framework for
junit.framework.Assert is a set of writing tests.
assert methods. An example for It implements a subclass of TestCase
junit.framework.Assert is displayed and TestRunner to run tests. The test
here. The test fails if the assert case runs multiple tests. All tests
condition returns false. String extend TestCase, named XXXTest.
parameter is used to put a label on the
test. If a test fails it is counted and The TestCase class generator is able
reported in this class. to create skeletons of test methods.
You can add any number of assertions
junit.framework.TestSuite is a per method.
collection of tests. It uses Java
introspection to find all the methods Generator is able to generate setUp or
that start with a test and have void tearDown methods, which instantiate
parameters. The run method of tested class and allows test method to
TestSuite executes all the tests. access this instance through the field
member of TestCase class.
The JUnit test case method
manipulates an instance of the class
Use setUp( ) to initialize variables used primitive operations. Assertion
in more than one test. Extensions for JUnit is an extension
package for the JUnit framework.
Clean-up after test case is done by
overriding tearDown method. In JUnit, an assertion performs an
individual test. The most common
To write a JUnit test case, first create a assertions are perhaps equality
class that extends assertions. These compare two values,
junit.framework.TestCase then write a the test passes if they are equal and
public no-argument method whose fails if unequal.
name starts with test. An example for
writing a public no-argument method The JUnit design pattern is displayed
is displayed here. Now, manipulate an here.
instance of the class to be tested and
issue assertions. In software engineering, a design
pattern is a general solution to a
If you want to write a test similar to common problem in software design.
one you have previously written, write A design pattern is not a completed
a fixture. When you want to run more design that can be transformed
than one test, create a suite. Fixtures directly into code; it is a description or
are a set of objects used in JUnit to template to solve a problem that can
share common test data. setUp( ) be used in many different situations.
method is used to initialize the
variables and the tearDown( ) method Object-oriented design patterns
is used to release any permanent typically show relationships and
resources you allocated in setUp( ) interactions between classes or
method. A suite refers to objects objects, without specifying the final
provided in JUnit to run many number application classes or objects that are
of test cases simultaneously. involved. Algorithms are not thought
of as design patterns since they solve
The snippet of a program by using computational problems rather than
fixtures and suite objects is displayed design problems.
here.
Patterns allow developers to
For running a JUnit test case, you can communicate using well-known and
use JUnit TestRunner. You can also use well-understood names for software
both textual and GUI TestRunners. An interactions. Common design patterns
example for textual and GUI can be improved over time making
TestRunners is displayed here. Textual them more robust than ad-hoc
is a faster TestRunner, whereas GUI is designs.
a user-friendly TestRunner.
To write a test case follow these steps:
JUnit lets you test software code units
by making assertions that the Define a subclass of TestCase.
intended requirements are met, but
these assertions are limited to
Override the setUp( ) method to trees, allowing deployment without
initialize object(s) under test. tests. Do not forget to use object-
oriented techniques, base classing and
Optionally override the tearDown( ) so on.
method to release object or objects
under test.
System testing is used to test whether The integration testing techniques are
the system performs the right top-down, bottom-up, and big-bang
business functions. In top-down integration testing, the
It is a black-box testing technique and program is merged and tested from
specifications-based testing. the top to the bottom
Medium
The document generated through It decreases the redundancy of tests
defect reporting and tracking consists and increases the control when
of the topics as displayed here. compared to the manual testing
process.
These topics are found as column
headings when the TEST DIRECTOR Automated testing involves greater
tool is used. application coverage.
In this session, you have learned that: Once the test cases have been
created, the test environment can be
A defect is a variance from the developed.
required product attribute
The test environment is defined as the
Defects are classified based on complete set of steps necessary to
category and severity execute the test as described in the
Effective project management test plan.
requires defect tracking and reporting It also includes initial set up,
as one of the important modules description of the environment, and
TEST AUTOMATION: the procedures needed for installation
and restoration of the environment.
Welcome to the session on software
test automation. Inputs to the test environment
preparation process are as follows:
Software testing with an automatic
test program will prevent the errors Technical environment descriptions
that are made generally. Automation Approved test plan
of testing prevents skipping of
mistakes, and increases the accuracy Test execution schedule
of the product.
Resource allocation schedule
Automated testing is the process of
automating the currently used manual Application software to be installed
testing process. The various phases in automation are
The benefits of automation are as as follows:
follows: Planning the test to meet the
It improves the efficiency of the objectives
testing process. Design and developing the test in
The cost involved in testing is reduced accordance with the plan
to a large extend. Execution of the test
The effect of automated testing is Measurement of the results of the test
replicated considerably across
different platforms.
A test method is a tool that records development, test execution, and
test input as it is sent to the software measurement of the results.
under consideration.
TEST AUTOMATION TOOLS:
The input cases stored can then be
used to reproduce the test at a later Welcome to the session on test
time. automation tools.
The two methods used for test Rational offers the most complete life
automation are capture playback and cycle toolset, including testing for the
data-driven approach. Windows platform. It is recognized as
a renowned leader with respect to
The matrix here represents a tool-by- object-oriented development. Some of
tool comparison. The functionality of their popular products are Rational
each tool may also be inferred from Robot, Rational Rose, Clear Case,
the matrix. Requisite Pro, and so on. The Unified
Process of Rational is a very good
Observe that each category in the development model, which allows
matrix is given a rating from 1 to 5. mapping of requirements to use cases,
1 represents excellent support for this test cases, and a whole set of tools to
functionality. support the process.
Automated test execution includes the Automated test execution includes the
execution of the automated scripts execution of the automated scripts
and reporting the defects. To and reporting the defects
determine the TCPs for automated
execution, you must calculate the
automation test case execution
complexity based on the pre-
conditions, such as setting up the test
data. It also includes the steps needed
before starting the execution.