Vous êtes sur la page 1sur 75

BQCQB1 features and then developing the core,

we more often than not end up going


s/w development life nowhere.

cycle: Other models:

Incremental model: There are several other Life Cycle


models: Rational's Iterative
In the early 1980s, the more Development Model, Adaptive Model,
flexible Incremental Model was Rapid Application Development,
introduced. It is also called the Staged Evolutionary Prototyping, and V Model.
Delivery Model. This model performs You are not required to memorize the
the waterfall in overlapping sections, models now. The intention is to give
attempting to compensate for the you an idea of what the software life
length of projects by producing usable cycle phases are and how they are
functionality earlier, in increments. All combined into different structures to
the requirements are collected at one form life cycle models.
shot. The technical architecture is
finalized upfront. The objectives are Maintenance model:
divided into several increments or
For projects that require us to
builds. The first build is developed and
maintain software, Cognizant has its
delivered. This is followed by the next
own Application Value Management
portion until all the objectives have
process model. This involves initial
been met. It is easier to build and
knowledge transition, followed by
design than a whole project. However,
steady state, where enhancements,
it has its own drawbacks.
production support, and bug fixes take
Spiral model: place.

For a typical application, the spiral Model selection:


model means that you have a rough-
The selection of the appropriate model
cut of user elements as an operable
depends on a number of factors. It
application, add features in phases,
depends upon the project type, client
and, at some point, add the final
requirements and priority, nature of
graphics. Each phase starts with a
customer, nature of requirements,
design goal and ends with the client
technology to be used, budget, and
reviewing the progress thus far.
various other factors.
Analysis and engineering efforts are
applied at each phase of the project, For example, stable requirements, well
with an eye toward the business goal understood technology, small software
of the project. The spiral model is used solution for complex and well
most often in large projects and needs understood problems are criteria that
constant review to stay on target. can seem apt for the waterfall model.
However, if we use the spiral in the
reverse, that is adding the peripheral Summary:
In this session, you have learned that: according to the manufacturing
specifications.
The Software stages are Requirement,
Design, Development, Testing, and So many definitions of quality leave us
Delivery confused.

Stages such as Analysis, Design, In reality, all of them combine to


Testing, and Delivery can be carried define the quality of a product.
out at single or multiple points of time
during the software project according Quality distinguishes a product and
to different life cycle models becomes the deciding factor in
competition.
The various models for project
development are: Waterfall, Whatever work product you produce
Incremental, Iterative, Spiral, and during day-to-day activities contribute
Maintenance to the quality of the product.

The choice of a particular model for a Process of ensuring quality:


project depends on client involvement, The process of ensuring quality in a
priority, requirements, technology, product comprises the following
and other factors components:

s/w quality basics: Quality assurance ensures proper


process for production of the end
What is quality all about? product.
Here is an illustration that shows what Quality control ensures that the end
one means by a quality product. product meets standards.
I need a shirt that will fit my The entire process for ensuring quality
specifications. makes up the quality management of
an organization.
My shirt needs to be defect free.
Responsibility of quality:
It should also be cost effective.
In this page you, will learn the
This shirt has two pockets, which is a
responsibilities involved in ensuring
unique feature.
the quality of a product.
I will take this shirt because it is also
The responsibility of ensuring proper
branded as a quality shirt.
quality of every deliverable lies with
What is quality? the organization. This implies that it is
the responsibility of each and every
Quality can be defined in various ways employee of the organization.
depending upon the customer's point
of view or from the point of view of the
product or from a value angle or even
The quality of the process and product obtaining the confidence of the
of the organization needs to conform customers.
to certain set standards.
Quality and associated certifications
These standards need to be adhered are the differentiating factors that
to by the members and checked for allow companies to beat their
conformance by certain specialists of competitors and win clients.
the company.
In Software Engineering, the quality
Quality models and standards: components map to similar activities
as in any other industry:
Now you will learn about the various
Quality Models and Standards. The quality control activities verify
whether the deliverables are of
Frameworks to ensure proper quality acceptable quality and that they are
processes can be developed by the complete and correct. Examples of
company aided by the standards and quality control activities in software
the models, which are internationally involve testing and reviews
accepted in the industry.
Quality assurance verifies the process
Adhering to internationally accepted used to create the deliverables. This
quality standards and models may can be performed by a manager,
lead to certification. client, or a third-party reviewer.
The various standard models that are Examples of quality assurance include
accepted worldwide are: the software quality assurance audits,
software configuration management
ISO and defect prevention.

CMMi The quality management system


includes all the procedures, templates,
PCMM and guidelines associated with
software engineering in the
BS 7 7 9 9
organization. In Cognizant, the quality
Six Sigma management system is the QView.

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.

Destruction of Information The responsibility for monitoring all


the process and quality related
Just as security of information, activities lie with the individual
reduced variability is also very critical employees of Cognizant. The group
for customer satisfaction. Six Sigma is responsible for ensuring quality
a statistical methodology that processes and continuous
significantly improves customer improvement is the process and
satisfaction and shareholder value by quality group. The diagram shows the
reducing variability in every aspect of structure of the process and quality
our business. group. SEPG is a virtual group
consisting of quality champions and
"Six Sigma is not something else that representative practitioners from all
you do...it is what you do." locations and vertical or, horizontal or,
support groups. It is responsible for
Six Sigma is using a standard
process definition, maintenance, and
methodology to use statistical
improvement of the software
solutions for reducing variability of a
processes used by the organization.
product and thereby reducing defects.
The SQAG is responsible for guiding
The ultimate aim is to produce
projects through facilitations and
products with a variability of 3.4
monitoring the process and quality of
defects per million opportunities. From
the Projects through auditing and
a statistical point of view, it means to
reporting, periodic status reporting,
work toward achieving a normal
and timely escalations. The SQAG is
distribution of the produced products
also responsible for conducting the
with very low variance around the
internal quality audits that serve as
target.
periodic assessments of project and
Take a look at how Cognizant's quality process health and compliance in the
journey has evolved over time and organization.
what it implies. All the certifications of
This illustration shows the types of
Cognizant have been achieved
audits that take place in a project and
enterprise-wide across all centers. The
their distribution throughout the BS 7799 is a standard for developing
project life cycle. All the audit results, and maintaining an information
which include, the non-conformances security management system
and the observations, are logged in
the Q Smart online tool. Like any other Six Sigma uses a standard
process, the quality process also methodology to use statistical
strives for continuous improvement in solutions for reducing variability of a
Cognizant. This improvement is product and thereby reducing defects
enhanced by the feedback about the All the certifications of Cognizant have
quality process received from the been achieved enterprise-wide across
associates. Q Smart can also be used all centers. The certifications have
to provide feedback on the quality been achieved in an incremental
process. Any associate can provide approach with Cognizant's growth as a
feedback in this manner. company
Apart from the certifications to be Q view is a web-based application that
adhered to and the quality champions outlines the Cognizant's quality policy.
and quality reviewers, the Here you can find that the process
management also encourages quality documents are arranged according to
and innovation by awarding the the documents relevant to the
project of the year, associate of the different types of projects and
year, and the best practice awards. processes
The best ideas and innovations are
recognized, rewarded, and re-used to Q view also contains different
ensure continuous improvement and references that exist for the benefit of
high quality in process, product, and the associates
practice.
In cognizant, the group responsible for
In this session, you have learned that: ensuring quality processes and
continuous improvement is the
The major quality models include: process and quality group
ISO, which ensures uniformity across All the audit results, which includes,
development units through standard the non-conformances and the
procedures observations, are logged in the Q
CMMi consisting of guidelines to Smart online tool
manage Process management Cognizant management encourages
processes, Project management quality and innovation by awarding,
processes, Engineering processes, and The Project Of The Year, Associate of
Support processes the Year, and The Best Practice
PCMM is used to measures how awards
effectively an organization manages s/w engineering in cognizant:
its professional force
At the end of this session, you will be Classification based on size like Large,
able to: Medium, Small, and Very Small.

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.

The design or technology is proven or The selection of the appropriate model


mature depends on a number of factors. It
depends upon the project type, client
The proposed application is very requirements and priority, nature of
similar to an existing system customer, nature of requirements,
technology to be used, budget and
The customer does not have any many different factors. For example,
intermediate release requirements stable requirements, well understood
An incremental model is technology, small software solutions
recommended when most of the for well understood problems are
requirements are well-understood with criteria that can seem apt for the
the exception of some T B Ds, and the waterfall model.
total project duration is greater than 3 The processes recommended
months. In this model, the initial according to the Cognizant quality
system are combined with the and across teams, Planning for
processes required by the client to Rollouts, etc.
arrive at the project's process model.
This process is then tailored to suit the All the development life-cycle models
different demands of the project. follow the parallel processes of
Tailoring to suit your project development and delivery
requirements is a very essential management. While the development
defined process because, the project process deals with the project
needs to be aligned with this. Tailoring development stages and associated
of the recommended process may be activities, delivery management deals
required due to customer with the project management
requirements or project-specific activities relevant throughout the
requirements. This procedure is project.
followed for all types of projects. The types of application value
Here is a schematic description of the management projects that are
process model definition. handled by Cognizant are:

The steps include: Maintenance: This means taking


ownership of the software system and
Determining the size of the project ensuring that it meets current and
based on duration and effort, future needs of all users at prescribed
contractual requirement, and project service levels.
scope
Mass Change: These are projects
Selecting an adequate project life- involving change of attributes of a
cycle model to arrive at an operational system from one to the other.
model
Examples are Mass Conversions, such
Merging with the customer's process as field expansion,
and project-specific requirement to Internationalization, Decimalization,
form the project's software process Euro Conversion, Rehosting, Upgrade
Projects, Database Conversions,
Tailoring for project needs to arrive at Testing are Projects whose scope is
the process model limited to testing of a system.
Process model configuration is the Any AVM project consists of taking
single most important activity to ownership of the software system and
finalize the process model before the ensuring that it meets current and
start of the project. Process Model is future needs of all users. A
the basis for some processes like, maintenance project typically involves
Project planning and tracking, providing the applicable activities from
Application build, integration, testing, the following:
release, branching or merging
strategies may be derived based on Production support
this, Distribution of work within teams
Bug fix testing, and project scope to arrive at
an operational model
Minor enhancements
Merging with the customer's process
Major enhancements to form the project's software process,
Testing and

Documentation Tailoring for project-specific needs to


arrive at the process model
Re-engineering, etc.
The AVM life-cycle also follows the
The process of any application value parallel processes of maintenance and
management process consists of delivery management. Take a look at
planning, knowledge transition from the process models for maintenance,
the current team to the maintenance mass change, testing.
team, guided support during which the
software is maintained by the Some of the critical success factors of
maintenance team with the guidance an application value management
of the current team, followed by project are:
transition to full-fledged support, and Proper Knowledge Transition - Ensures
finally the steady state during which that knowledge of the system is
the maintenance team supports the properly transitioned to the team that
application fully. will ultimately maintain the system.
The picture shows the process for one Well-defined service-level agreement -
typical maintenance project. Is an agreed upon timeframe within
Similar to development projects, in which a service request like bug fix,
AVM projects also, the processes production support request, etc., is
recommended according to the supposed to be responded to and
Cognizant quality system are ultimately resolved.
combined with the processes required Well-defined tracking mechanism -
by the client to arrive at the project's The performed tasks need to be
process. The process is again tailored logged and tracked as part of
to suit the different demands of the documented records. Tracking is also
project. required to ensure that the service-
The schematic description of the level agreements are met.
process model definition for an AVM Generally, AVM projects use the
project is shown here. The steps eTracker tool to log the activities and
include: to track adherence to SLAs.
Selecting adequate project life-cycle Maintained Documentation details the
based on the type of AVM project, process for request categories, such
such as maintenance, mass change or as production support, major bug fix,
minor bug fix, etc.
Proper channels of escalation in case Medium project follows waterfall or
of unresolved problems. iterative model

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:

The requirements typically include: Non functional requirements inclusive


of speed, response time, and
Non functional requirements inclusive scalability
of speed, response time, and
scalability Adhering to service-level agreements

Adhering to service-level agreements Prioritization of modules, tasks etc.


due to business needs, and
Prioritization of modules, tasks, etc.
due to business needs Aligning deliveries to meet client
constraints
Aligning deliveries to meet client
constraints PROJECT MANAGEMENT
CONCEPTS:
In this session, you have learned that:
Imagine organizing a college fest.
The types of projects in Cognizant are Behind the face of a day or two of
Application development and enjoyment and celebrations, what are
Application value management the challenges involved for the one
The projects can be classified in terms who is in charge of organizing it? One
of size and life-cycle model runs up against budget issues, time
and schedule issues, resource
A large project can follow the problems, risks, constraints, and
waterfall, incremental, or iterative managing expectations. Arranging and
model executing a college fest is a project.
And all the challenges faced are a part challenges. Just like the college fest
of any project in the industry. that you saw previously, any project in
the industry involves challenges with
At the end of this session you will be respect to cost, risks, scope, quality,
able to: resources, expectations, time, etc.
Study the concepts of a project and Therein lies the need of project
project management management.
Know who the stakeholders in a Project management involves
project are balancing competing demands among:
Learn the structure of the project scope, time, cost, resource, and
team and the role of team members in quality; stakeholders with differing
the project needs and expectations, identified
requirements or needs and
Explain the basics of the important unidentified requirements or
project management tools in expectations. Developing software
Cognizant products involves more than just
combining programming instructions
In the previous example, organizing together and getting them to run on a
the college fest was a temporary computer.
endeavor and it was unique-that is to
say that every college fest is different. Effective project management
Similarly, any project is a temporary processes guide you toward
endeavor undertaken to create a disciplined, superior software
unique product or service and it engineering.
progresses through a number of life
cycle phases. Temporary implies that Project management involves
every project has a definite beginning application of knowledge, skills,
and a definite end. Unique implies that techniques, and tools to project
the product produced by the project is activities in order to meet or exceed
different in some way from all similar stakeholder needs and expectations
entities. from the project. You will learn about
the stakeholders in a project on the
Some of the types of projects next page.
executed in Cognizant are
Development of new applications, What are stakeholders and who are
Maintenance of existing applications, the stakeholders in a project? A
Re-engineering an existing stakeholder is anyone who has an
application, and Mass Change or interest in the project. They may be at
migration like Euro, the client's end, internal to the project,
Internationalization. or external. The external are Sub-
contractors, Suppliers, External
Whatever be the type, a project consultants, and Service providers.
always has certain characteristics and The internal stakeholders are Senior
management, Project manager, The project organization structure of a
Human resources, Business typical offshore-onsite delivery model
development, Finance, Administration, in Cognizant is shown in the
Training, Internal systems, Quality illustration. As evident from this
assurance, and SEPG. The client illustration, every individual has a role
stakeholders are Sponsor, Contact to play. While the people at the top of
person, End-user, and Outsourced the picture are there to provide
party. guidance and to ensure
communication with the end customer
A project manager's job consists of and proper execution of the project,
balancing numerous stakeholder the team members are essential for
expectations. What are the performing the different activities that
stakeholder expectations? Examples go on to satisfy the requirements of
of stakeholders and their expectations the project. All the while, the support
could be: The customer who asks: groups including NSS, Admin, HR, and
When can I get the product? What are quality assurance provide all the
the features that exist? What are the necessary support for the project to
additional features required? How meet the various infrastructural,
much would I have to pay? The financial, resource, and quality
employee who asks: What is my role requirements. Big or small, everyone
and the job or task specifications in has a role to play in the project.
this project? What learning
opportunity or new skill will I get from It is a basic rule of project execution
this project? The shareholders who that every individual in the project has
ask: What is the company doing to a role to play. Every task assigned to
minimize overheads and maximize the individual is important and any
profits? What are the efforts and task, however insignificant it seems to
direction for new avenues of business be, is crucial to the project.
this year? How does this company
compare with and stay ahead of the It is very important that individual
competition? And finally the project responsibilities are addressed
manager himself who asks: When can according to the plan and in
I get the product out? What is the coordination with other team
quantum of work involved? How many members for proper alignment with
people and what skill will this project each other. Otherwise, there are
need? What would be their utilization chances of making individually perfect
and availability on this project? How pieces, which will not work in unison.
much would the cost or investment for This concept of teamwork is especially
resources be? Managing the important since in Cognizant we follow
expectations of stakeholders can be the onsite-offshore model with the
demanding and it is the primary job of members of the project team working
the project manager. in geographically different locations.
Each task needs to be aligned to the
project objective and goal. Otherwise,
we may end up with something like .. (b) The internal stakeholders are
this senior management, project manager,
human resources, business
The most important project development, finance, administration,
management tasks during the training, internal systems, quality
execution of the project involve: assurance, and SEPG
Planning for the project's cost, effort, (c) The client stakeholders are
and schedule at the beginning sponsor, contact person, end user, and
Tracking the execution of the project outsourced party
according to the plan The project organization structure in
To track the progress of the project, Cognizant is a typical offshore-onsite
one needs to monitor whether the delivery model, where every individual
effort, cost, and schedule are following has a role to play
the plan or are deviating. In case of (a) The officials at the top end of
deviations, one needs to take the hierarchy provide guidance and
corrective action, re-modify the plan, ensure communication with the end
etc. To track the effort and the cost of customer and proper execution of the
the project, it is of extreme project. The team members are
importance to log the time spent by essential for performing the different
each individual in the project against activities that go on to satisfy the
the activities performed by them. For requirements of the project
this purpose, each associate is
expected to log his activities in the (b) The support groups including
peoplesoft tool. Peoplesoft Demo NSS, Admin, HR, and quality assurance
follows this. provide all the necessary support for
the project to meet the various
In this session, you have learned that: infrastructural, financial, resource, and
Projects are finite and result in quality requirements
producing a unique product The details of the time spent by
Project Management consists of individual team members need to be
ensuring timely delivery of quality logged in Peoplesoft
products within a budgeted cost while The project's details regarding
managing all stakeholder expectations allocations and operational models
A stakeholder is anyone who has an need to be documented in Prolite
interest in the project. They may be at PROJECT MANAGEMENT
the client's end, internal to the project, CONCEPTS:
or external
Obtaining a degree is more than
(a) The external are sub- studying and taking the test. It
contractors, suppliers, external additionally involves arranging for
consultants, and service providers
hostel accommodation, arranging for The formalization phase deals with the
commuting services, setting up a time formalization of the project. A signed
table, selecting a study environment, letter of intent or contract or
identifying resources and study statement of work is obtained during
material, having periodic meetings this phase. The work order is raised in
with the teachers, receiving the Peoplesoft.
grades, and finally celebrating the
graduation. The execution phase involves delivery
of product, tracking activities against
Similarly, a software project does not the plan, performing defect
begin and end with the software prevention, communicating with the
development life cycle consisting of client, sending status reports,
requirements, analysis and design, managing change, managing risks,
coding, testing, and delivery stages. having peer reviews, etc.
Additionally, it involves activities
throughout the project life cycle such The closure phase consists of
as business understanding, obtaining the project sign off. Finally,
configuration set up, infrastructure set project retrospection is carried out
up, execution, progress analysis, covering best practices, tools or re-
change management, and finally usable components developed,
closure. All these activities fall under lessons learned, project performance
the delivery management framework. against the quality goals, and
Delivery management is a new associated learning.
framework to address all project The delivery management phases run
management practices across the parallel to the SDLC phases in a
entire life cycle of a project. This project. The two diagrams on the page
framework describes the various show how the different delivery
stages in project management, such management phases are aligned to
as the entry and exit criteria, tasks, the SDLC phases of a standard
input and output, tools and techniques development project and a
to perform the tasks, responsibilities, maintenance project.
verification and validation criteria.
In this session, you have learned that:
The different processes of delivery
management are Proposal, Delivery management involves all the
Formalization, Startup, Execution, and project activities other than standard
Closure. The following pages will give SDLC phases that are required
you details on these processes. throughout the project life cycle for
project execution
The proposal phase involves
understanding the business, making Delivery management phases include:
high-level estimates and doing the
initial risk assessment. a) Proposal, involving Estimation,
Business Understanding, Risk Analysis
b) Formalization, which includes The performance of the project has to
Formal contract, Raising the Work be measured so that it can be kept
Order in Prolite under control.

c) Startup, consisting of Project A project works toward a goal the


Configuration, Revised Estimation, measurements along the way
Drawing up the project plans, and compare the actual results of the
Business continuity plan project against the projections to
determine whether the project is on
d) Execution, which involves the track or deviating from the goal.
tracking activities against the plan,
performing defect prevention, In the manufacturing industry, we
communicating with the client, know we have to measure the length,
Sending status reports, Managing breadth, height, or other tangible
change and risks, Having peer specifications of the product. But when
reviews, etc., the generated products are formless
as in the case of software, what does
e) Closure, which involves, Obtaining one measure? The process involved in
Project sign off, Performing project software development is measured
retrospection along with the final software product.
f) The delivery management phases The software is measured using
go on parallel to the S D L C phases in software metrics - "Quantitative
both development and maintenance measures of specific desirable
projects attributes of software". To arrive at
Metrics: metrics, some basic measures such as
schedule and effort are collected and
Measurements act as indicators of combined to produce meaningful
progress and are understood by indicators of the progress of software
everyone irrespective of experience development. For example, to find out
level and technology background. how productive a team is, the size of
the software project and effort
One cannot chase a target without required by the team to do the project
knowing it. Nor can one know about are considered as the base measures.
success, and achievements, without Next, we divide size by effort to find
defining success in measurable terms. the productivity metric for the team.
And on the other hand, one cannot
also accurately gauge the degree of Some examples of base measures that
danger one is in without appropriate are considered for measuring the
figures. software process and product are
schedule, effort, size, and defect.
Measurement is an essential part of These measures are combined in
life, and we cannot control what we different ways to form the different
cannot measure. software metrics. The following page
will give you some examples on
process metrics for application Percentage of requests meeting
development projects. service-level agreements

The metric schedule variance is got Percentage of fixes without escalation


from the measure schedule, by
comparing the actual with the You have seen measurements and
planned. It is a measure of whether or metrics. However, metrics and
not the project is meeting the planned measurements are meaningful only if
dates for the start and finish of we have a goal against which we
modules. Similarly, the metrics effort compare the metrics to find out
variance is got from the measure whether or not the project is on the
effort - This is a measure of whether right path. How are goals set? The
the planned effort is matching the business objectives of the organization
actual effort or not. We can also know are laid down. One example of a
about the load factor, which is a business objective may be to meet
measure of whether the people in the delivery commitments on time. These
project are adequately, lightly, or business objectives are then
heavily loaded. All these are examples translated to one or many process
of process metrics. They indicate objectives. Following the previous
whether the process of producing example, the process objective
software products is adequate or not. aligned to meeting delivery
Some of the other process metrics are commitments on time may be
review efficiency and requirement translated to having less than 5.86
stability. In the next page, you will see percent variation from the schedule
some examples of product metrics in during the process of coding and unit
application development projects. testing. These process objectives are
mapped to sub processes, which make
The metric defect density is got by up the process. In our case, the
putting defects and size together. This process of coding and unit testing is
gives an indication of how robust the made up of coding, code review, and
product is. This is an example of a unit testing. After the sub processes
product metric. Product metrics are identified, metrics are attached to
indicate whether the quality of the the sub processes, which can be used
produced software product is to measure the performance in the
adequate or not. sub processes. In this example, coding
is mapped to the coding schedule
Other product metrics are variance, code review to the code
maintainability, reliability, and review schedule variance, and unit
availability. testing to the unit testing schedule
Similarly, in AVM projects, there are variance. Finally, a goal is set for each
different measurements that evolve of these metrics to ensure that the
into metrics. process objective is met. Here, for
example, the goal for the coding
For Example: schedule variance is 1.65 percent, the
code review schedule variance is 0.33 their own goals as appropriate for the
percent, and the unit testing schedule specific project characteristics.
variance is 1.32 percent.
Along with goal setting, the projects
Here are some of Cognizant's business have to formalize the data-collection
objectives: tools to collect the actual measures for
the project for the metrics to be
In terms of finance - Improve computed and compared to the goals.
profitability or reduce cost overruns The tools that are generally used for
Through process - Improve data collection are Prolite, e-Tracker,
productivity, Meet on-time delivery Time sheet, Defect logs, and Project
commitment, Reduce development plan.
cycle time, Improve product quality, How are the metrics used?
Reduce cost of quality, Reduce rework Periodically, metrics are collected and
With respect to customer - Improve analyzed. As the metrics are analyzed,
customer satisfaction index, and one can get a quantitative idea of
whether the project is proceeding
With regard to people - Improving along the right track or not. If a metric
training effectiveness, Improving deviates significantly from the goal so
internal satisfaction of the associates as to come close to or cross the
control limits, it indicates something is
Business objectives are at the wrong in the process. This
organization level and will span across necessitates corrective action. For
projects and support groups. example, too much schedule or effort
variance may mean that our initial
Along with the business goals, a set of
estimates were wrong and may force
metrics derived from the data
us to revise our estimates for the
collected from past projects as well as
project.
data from industry figures are set as
organizational baselines. These How are the metrics used?
baselines are used as a basis to arrive Periodically, metrics are collected and
at project-specific quality goals. They analyzed. As the metrics are analyzed,
give an indication of the capability of one can get a quantitative idea of
the organization. The organizational whether the project is proceeding
baseline values for the metrics are along the right track or not. If a metric
documented in the OLBM or deviates significantly from the goal so
organizational-level benchmarks, as to come close to or cross the
which contain the mandatory and control limits, it indicates something is
optional metrics for each type of wrong in the process. This
project, the goals associated with necessitates corrective action. For
them, and the upper and lower control example, too much schedule or effort
limits for each metric. Each project variance may mean that our initial
sets its goals by either following the estimates were wrong and may force
goals laid down in the OLBM or setting
us to revise our estimates for the much from the goal, it becomes
project. necessary to take corrective action

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.

In the analysis and design stage of The typical elements of software


software development, the focus design include Program Architectural
gradually shifts from "What to build" Design, Data Design, Interface Design,
to "How to build". Over the next few and Component Design.
pages, you will learn about the
analysis and design stage in detail. Analysis and Design are one of the
foremost stages in software
You must be aware that the development cycle.
Requirement Specifications Document
acts as the exit criteria of the Click each of the images to know
Requirement Stage. This same more.
document is the entry criteria for the
Analysis Stage. Functional
Specifications Document is the exit Analysis is the software engineering
criteria for the Analysis Stage and in task that bridges the gap between the
turn the entry criteria for the Design software requirements stage and
Stage. In the Design Stage, the software design. The objective of
Detailed Design Document is the most software analysis is to state precisely
important document that gets created what the system will do to provide a
and is used as the basis of Code solution to the client's need at a
Construction in the Code Construction functional level.This is captured in the
Stage. Functional Specification Document.

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

Expectations change and hence It is a good programming practice to


requirements change, and so it is but follow some platform-specific
natural that programs have to be conventions and guidelines that have
modified in order to suit the new been documented. This will help the
specifications. This means that the developer to write legible codes
program should be flexible enough to
be modified with little or no effort. This TESTING:
page identifies some practices that Testing is an activity that is used to
help in creating modifiable or flexible discover errors and correct them, so
programs. that we are able to create a defect-
free product for our customer. Let us This page explains the major activities
take the example of a house. The and tasks of the testing stage.
client had specified requirements of Creation of the test strategy is the first
the house she wants. The tester tested step. It is based on the Requirements
the house to find out if all Document, the Functional
requirements of the client had been Specifications Document, and the
met after delivery. The tester created Design Document. The test strategy
the test execution details document, describes the overall plan and
which detailed the scenarios or test approach to be taken for testing, the
cases. The tester also created the deliverables, and the process for test
results of the test execution, which are reporting. The next step is to create
referred to as the test log. the test cases, containing the
individual scenarios, which would be
Testing is an important stage which tested with their expected outcomes.
follows the Coding stage in the Test cases are executed by the tester
software development life cycle. The and results of the tests are
objective of testing is to evaluate if we documented in the test log. The
have created the system correctly. defects of testing are recorded in
During the earlier stages, the focus defect-tracking tools such as the
was to check what is being built but in internal tool Prolite or the external tool
testing when we have the end product called Test Director, depending on the
ready, our focus shifts to validate requirement of a project. The owner of
whether the product that has been the application being tested then
built has been built correctly or not. updates the application, closes the
Hence, the focus shifts from building defects, and updates Prolite with the
the product right to building the right defect status in the tools. Re-testing
product. may be conducted to verify closure of
Now, an attempt to define software defects.
testing is made. Testing is a In this page, you will know the people
systematic activity where records of who are responsible for testing a
test execution need to be maintained. software application:
Testing is the process of executing a Software testing can be conducted by
program with the specific intent of the developers of the system or an
finding an error. Success of a test is independent testing group who are
determined by the number of errors it part of the organization that has built
has uncovered. Tests can be the system.
conducted by the developer or by an
independent testing team. What one Software testing can also be
should remember is that the role of a conducted by the client or the ultimate
good tester is to show the presence of users of the system.
the defects or errors of that software.
The team responsible for the different component of the software as
types of testing needs to be decided implemented in the code and checks
upon during the planning stage. that it is in line with the program
specification and the detailed design.
Here, you will learn about the various The primary focus of unit testing is to
stages in testing: Software testing is validate the logic, the structure, and
usually performed at different levels of the flows of the concerned program.
abstraction of the application along
the software development process by Moving on to integration testing, you
the builders of the system. There are see that the builders of the doll house
three testing stages: Unit testing, now begin to put the individually
integration testing, and system tested blocks of the house together,
testing. The objective and the that is, they integrate the unit tested
abstraction levels of the application to units. The primary intent is to uncover
which these tests are performed are errors associated with interfaces when
different. Unit tests are performed on the unit-tested components are
the smallest individual units of the integrated as a module. The next page
application, the integration tests on a talks about system testing.
group of modules and their interfaces
while the system tests are for the After the doll house has been
entire system and the interfacing completed, it is checked fully by the
external systems. In this illustration, builders of house to ensure that it is
you can see where the three major complete and ready for habitation.
types of testing fit into the software Additionally, builders check if the
development life cycle. house is secure and can withstand rain
or thunder or lightning and other
There is one more stage in testing that environmental factors, so that it can
is done by the end user of the system. easily be placed in its intended
This is referred to as the user environment. System testing in
acceptance test. This is to verify the software checks the performance and
functionality of the system from the functionality of the complete system
end user's perspective. Here we can after all unit tested units have been
see where the user acceptance testing integrated as per the build plan. It also
fits into the software development life evaluates functionality with interfacing
cycle. systems. Non functional requirements
like speed and reliability are also
You will now learn about each of the verified during system testing.
testing stages in detail. First you will
know about unit testing. In this page, Finally, looking at the acceptance
we see a small child building a doll testing, you see that the doll house
house. She checks each building block has been placed in a children's park.
to ensure that it is in line with the The acceptance test verifies whether
design of the doll house as she creates the system created is in conformance
them. Similarly, unit testing with user requirements when placed in
concentrates on each unit or its 'real' environment. Acceptance
tests are often conducted by the client System testing uses the overall
or by the end users. functionality of the system as given in
the functional specifications and
Now, you will learn about an important software requirements. It also
concept of testing called regression evaluates the non- functional
testing. Regression testing will be requirements.
done to ensure that the actions taken
to rectify the defect have not Acceptance testing is the test
produced any unexpected effects. conducted periodically by client
Regression testing should be done at representatives to check if client
all levels of testing, such as unit, requirements have been met
integration, system, and acceptance adequately.
testing. The following page gives you
an example that will help you learn Regression testing, on the other hand,
the concept of regression testing. retests the tested sections of the
software to ensure no unintended
As seen in the previous example of a error has been introduced.
client stating her requirement for her
house, it was observed by the tester Here is another very important
that the location of the door was concept of software testing, that is,
incorrect and a defect ID was allocated the test case. Test cases are scenarios
to it. When correcting this defect, the that are executed by the testers on
constructors may remove the door and the completed application to
move it to the rear side. In this determine if the application meets a
process, other sections of the building specific requirement. One or more test
may get damaged. So when correcting cases may be required to determine if
the defect of incorrect door location, a requirement is satisfied.
care must be taken to ensure that A good test case is one that uncovers
unintended defects like cracks in the errors in a complete manner with
walls are not introduced in the minimum time and effort. Considering
building. Regression testing takes care the earlier example of the completed
of such unexpected issues that occur house, the analysis, 'check if the color
as a result of fixing defects. of chimney is red' is a test case. If for
This page explains what the focus is the same example, when the test case
for each type of testing: is written as 'check if the door does
not open with a wrong key', becomes
Unit testing uses code and detailed a negative test case. Hence, we learn
design as an input to check that a test case is a statement
correctness of individual units. specifying an input, an action, or an
event and expects a specific response
Integration testing uses the system after execution.
design and the functional specification
document as an input. This page explains the two approaches
to test case design.
The white box approach which is testing follows where all the functional
based on the internal workings of the modules are taken together and the
system and black box approach which application is tested as a whole
deals with the external functionality of incorporating the interfacing issues
the application or its part being tested between the functional modules.
irrespective of the internal details. The Finally, User Acceptance Testing is
following pages will give more details conducted by the users of the system
on these two types of approaches. and the resulting errors are corrected
prior to staging the system into
The white box approach is used to production.
create test cases to check if 'all gears
mesh', that is, to check if the internal This page explains the salient points
operations are performed according to you should remember about testing.
specifications. This tests all the logical Test execution activity starts after
paths within the unit being tested and code has been constructed with unit
verifies if these are functioning as testing of individual modules. This will
required in the design. be followed by integration testing and
system testing. However, it should be
Black box test case design approach noted that test planning activity
does not consider the internal occurs much earlier in the software
workings of the application. It focuses development life cycle. In fact, user
on the functional requirements alone, acceptance test plans and cases are
and it is designed to verify if the prepared along with the requirements
inputs are given correctly the output document. To improve the quality of
generated is also correct. It should be the code being delivered, it is a good
noted that black box testing and white practice to 'Test before you code'. The
box testing are not alternative model shown is also called the V-
approaches to test case design. On Model where each stage is associated
the other hand, they complement with the corresponding review and a
each other. specific test case is prepared for
Here are the activities performed in testing at a later stage.
the testing stage for the SMARTBOOK In this session, you have learned that:
System. The test scenarios or test
cases are logged and tracked in a tool Testing is an important stage within
with the detailed information about the software development life cycle
the test case execution. Individual
program units are tested as part of The objective of a good test is to show
unit testing and the results are logged the presence of errors and not the
in the tool. Subsequently, each absence of them
functional module is considered and A good tester should attempt to break
integration tested for its functioning the system to uncover undiscovered
and logic. All interface-related tests errors
between program units are covered
under integration testing. The system
The stages important in testing are needs to be installed or implemented
unit testing, which targets a single in its working environment for the
module, integration testing targeting a intended users to make use of it.
group of modules, system testing that
targets the whole system, and After the system is tested completely,
acceptance testing targeting the it is delivered to the onsite team. The
overall system and conducted by onsite team implements the tested
users application in the client environment.
Software implementation or the
There are two important approaches deployment stage starts after user
that are used to design test cases, acceptance testing is completed. It
namely, the black box approach involves all the activities needed to
focuses on the functional make the software operational for its
requirements of the software, and the users.
white box approach focuses on
internal workings of the software Here, the focus is to verify that the
software or the product that has been
IMPLEMENTATION AND POST delivered is meeting the need, that is,
IMPLEMENTATION whether the product has been rightly
built.
First, you will learn about the
implementation stage in software The main activities in the
development. implementation stage are planning
and defining the process for rollout, to
In this example, you see a statue of a deploy the new application, train users
jockey being built. This statue is on the new system after the rollout
created in the sculpture workshop. It is has been implemented, and
being built as per the requirements communicate the details of
provided by Company 123. deployment to relevant people.
Company 123 wants the statue to be Now you will learn about the post
installed in a park that they own. The implementation stage in software
installation team of the sculptures development. After the statue has
transfers the statue to its intended been installed, as you saw in the
environment. They prepare the site for earlier illustration, any complication
installation of the statue. can arise.
After the site is ready, workers install A part of the statue may get damaged
the statue in the park for public and may need to be mended. In that
viewing. We can see here that there is case a complaint is lodged with the
a communication activity associated sculpture company.
with the unveiling of the new statue.
Stakeholders of Company123, who
Similarly, in case of software own the statue, may want a new
application development, after the feature to be added, or one of the
software is constructed and tested, it stakeholders may want to change an
existing feature of the statue they had Here is an illustration of the activities
purchased. performed in the post implementation
stage of an application development
Thus, the activities involved in the project.
post-implementation stage are
support necessary to sustain, modify, The requests given by the users are
and improve a deployed system. first classified as bugs or production
support tasks and subsequently
Similarly, in software application logged in a tool like e-tracker, for
development, after a software has tracking followed by analysis for
been implemented in its intended resolution of the request. The
environment, support may be needed resolution is then implemented and
because of the discovery of a bug or delivered to the client for
defect; the need for enhancing the implementation. Production support
existing functionality of the software, issues are similarly analyzed and fixed
or the need to change the existing in the application prior to their closure.
features or functionality of the
software application. Application maintenance projects have
a well-defined life cycle consisting of
Post implementation activity may be stages like Requirements, Knowledge
the regular warranty support. This Transition, and Steady Stage.
includes providing the support
necessary to sustain, modify, and If the post-implementation activities
improve the operational software of a are continued over a sustained period,
deployed system to meet user the project is converted to an
requirements. application maintenance project and
the contract is revised accordingly.
Post Implementation is the final stage
in an application development project. In this session, you have learned that:
This page gives you some details on
the post implementation stage. Software implementation or
deployment is an activity that makes a
A process document describing the software application available for use
post-implementation process guides
the activities performed in the post- A new application is deployed as per
implementation phase, which the roll-out plan
generally consists of the warranty Post-implementation is a support
period as per the contract signed by activity required to sustain, modify,
the client. It also includes helpdesk and improve a deployed system
support, fixing the bugs, and planning
for release of the reworked application This stage generally refers to the two
and all other activities pertaining to to six month warranty contract that
the overall support of the system in may be signed with the client
action.
The main activities in the
implementation stage are, to roll out
or deploy the new application, and Learn about the tool, eTracker
train users on the new system
When in operation, defects are
Post-implementation activities are uncovered, operating environments
implemented as per the post- change, and new user requirements
implementation process document surface. Software maintenance is
defined as the totality of activities
The process tool used to manage post required to provide cost-effective
implementation activities is e-tracker support to software. This includes
THE MAINTENANCE MODEL: modification of a software product
after delivery to correct faults or
Software maintenance is the process defects, adapt the product to a
of enhancing and optimizing deployed modified environment, and
software as well as remedying defects incorporate additional features in the
in the software. Here is an example of application to cater to the new
a constructed house. Due to wear and requirements.
tear, the delivered house would
require continuous maintenance. This Software maintenance can be
would include any of the following: categorized as:

Quickfixes, such as repairing faulty Corrective maintenance: Is a reactive


electricity or plumbing appliances. modification of a software product
performed after delivery to correct
Additional requirements to be added discovered problems and it is also
with the changing needs, such as termed as bugfix.
adding an extra floor to the house.
Adaptive maintenance: Is the
Major repairs, which also require in- modification performed on a software
depth analysis and designing of the product after delivery to keep a
solution prior to its execution, such as software product usable in a changed
relaying the air-conditioning for the or changing environment. It is also
entire house. termed as enhancement.

At the end of this session, you will be Perfective maintenance: Is the


able to: modification of a software product
after delivery to improve performance
Learn about the fundamentals of or maintainability. It is also called
software maintenance performance tuning.
Study the different stages and Preventive maintenance: Is the
activities of the maintenance process modification of a software product
after delivery to detect and correct
Know the service-level agreements
latent faults in the software product
and their relevance
before they become effective faults.
Identify the key issues in software This is also termed as bugfix.
maintenance
Here is an example of a house built you will know about the model
earlier and which requires followed by the application
maintenance at a future point in time. maintenance process. The application
The maintenance person has to maintenance model consists of
initially plan as to how the contract of planning, knowledge transition, and
maintenance would be executed and service steady state. The planning
which areas would be in the scope of phase primarily involves
the maintenance. He might exclude understanding the need of the
the electrical maintenance from the customer in terms of what is expected
contract and he would decide on the from the maintenance team. This
team that would be responsible for involves a detailed discussion with the
maintenance and other business client to identify the requirements and
issues. After the contract is signed, finalizing the contract. The activities in
the architect responsible for the this stage are: Business planning at
maintenance studies the building plan the organizational level: This includes
in detail, including the plumbing proposal development, estimating for
layout. Then, the architect passes on resources and cost, and defining the
the details to the maintenance team. escalation mechanism. Maintenance
This stage is for developing an planning at transition level: This
understanding of the existing building. includes scope definition and the
Now, based on the request of the execution process adaptation. And
customer the house is maintained finally knowledge transfer planning,
over a period of time. As discussed which involves defining the entire
earlier, the maintenance can be of the methodology to be adopted during the
nature of quick fixes or minor repairs, knowledge transfer phase and a
such as electrical or plumbing repairs, detailed schedule of the K T phase.
a major change, such as repainting
the house and incorporation of For maintaining the existing
additional requirements, such as application developed by another
designing the plumbing system or vendor, the maintenance team needs
incorporation of air-conditioning in the to understand the functionalities and
house. the technical details of the system.
Hence, a knowledge transition phase
When the software is in operation, is required prior to the
defects are uncovered, operating commencement of the maintenance
environments change, and new user activities. The knowledge transition
requirements surface. The principal phase primarily consists of obtaining:
stages of an application maintenance
project consist of planning, knowledge The knowledge about the application,
transition, and finally the steady state considered for maintenance, from the
maintenance activities. client. Guided support under the
supervision of the client, and finally a
You have seen what an application plan defined for transitioning the
maintenance process involves. Now, obtained knowledge to the team for
future support. Initially, the application to identify the weaknesses in the
identified for maintenance has to be process as well as the application
thoroughly studied by the K T team. being maintained and defining the
This includes a detailed understanding corrective measures to eradicate the
about the business processes that the weaknesses. Finally, offering the client
application caters to and the functions value additions identified and obtained
served by the application. This also over the maintenance period. This
includes understanding of the includes proactive root-cause analysis
technical details about the application, of the recurring problems and the
the environment in which the necessary measures for improvement.
application is operating along with the SLA-based measurement also helps in
details of interaction with the tracking the performance strictly on a
interfacing systems. Finally, the defined interval at every level.
application inventory is collected by
the K T team for providing support in The steady state requests can be
future. After obtaining an classified based on the type of request
understanding of the entire or the level of support and the size of
maintenance scenario, the K T team the request.
performs the support activities under The requests can be of the following
the supervision of the client's team. types:
This helps in getting familiar with the
support activities and also in defining Production support
a detailed plan for transitioning the
knowledge obtained and subsequently Bugfix, and
transferring the knowledge obtained
Enhancements
about the system to the entire
maintenance team primarily at the Similarly the bugfix and the
offshore centre. The infrastructure enhancements are further classified
required to perform the support is also into Minor, Major, and Super major,
built during the stage and a based on their size.
knowledge repository containing the
details of the maintenance project is Software maintenance sustains the
also built to capture the entire software product throughout its
information, learning, and mistakes operational life cycle. Modification
committed during the execution of the requests are logged and tracked, the
project. This helps in easy impact of proposed changes is
transitioning of resources down the determined, code and other software
project timelines. artifacts are modified, testing is
conducted, and a new version of the
The steady state support involves software product is released. It also
resolving the service requests sent by includes training and daily support
the client, optimizing the processes through: helpdesks that are provided
continuously over time. This involves to users, or any documentation
measuring and analyzing the metrics regarding the application. The
enhancement bugfix request, typically also sets out the remedial
popularly called the EBR, primarily action and any penalties that will take
consists of the enhancement or bug effect if performance falls below the
description, technical details, the promised standard. It is an essential
proposed resolution for incorporating component of the legal contract
the request, and the results of testing between a service consumer and the
done after the change. provider.

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 software configuration A defect can be of two types:


management plan documents the Process defect and Product defect
processes and methodologies that will
be used to manage change in the Prolite or eTracker needs to be used
project. It also identifies the roles of for tracking, reporting, and resolution
the team members who will be purposes. Here, you can see the
responsible for implementing change diagram of the workflow for internal
control in a project defect.

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.

This diagram depicts the defect- Building a team to coordinate defect-


prevention flow. The causal analysis prevention activities for the software
meetings are planned in the defect- project. This team is closely tied to the
prevention plan. You will learn more team responsible for developing and
about causal analysis in the next few maintaining the projects with defined
pages. process. SEPG is such a team.

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

Determines the root causes and Conduct causal analysis


common causes.
Identify the special or common root
Proposes action plans and draws up causes for defects
implementation plans.
Identify action proposals for each root
Root causes for defects may occur cause
during:
Identify the action proposals for
Coding and testing stage because of preventing the special or common
lack of programming skills, insufficient defects
adherence to standards, lack of
environment knowledge, lack of Review causal analysis and select
testing skills, and oversight of design action proposals to be addressed
requirements.
Implement the action items and track
them to closure
Review the success or failure of the Welcome to the session on
past action items introduction to software testing. The
goal of software testing is to achieve
Entering the data in the repository an error-free program by finding all
Conduct phase-wise review of defect- errors.
prevention activities At the end of this session, you will be
Some of the defect prevention able to:
techniques commonly used are Root- Explain software testing
cause analysis, Defect metrics
analysis, and Defect prediction. List the types of testing

In this session, you have learned that: Software testing is a process of


identifying the correctness,
A defect can be defined as a flaw in a completeness, and quality of
system or system component that developed computer software.
causes the system or component to
fail in performing its required function Testing is a way of establishing
confidence. It enables to check if a
A defect can be of two types, namely, product fulfills its specified
process defect and product defect performance.
Every project prepares a defect- It is a process of exercising software to
prevention plan. Using the plan, the detect errors and to verify that it
common causes of defects are satisfies specified requirements.
identified and eliminated
The features of software testing are as
The causal analysis meetings are follows:
planned in the defect prevention plan.
It executes a program with the intent
The causal analysis focus on fixing of finding errors.
problems as they occur, finding what,
in the process, has permitted the The software testing conducts a set of
defect to occur, and finding what activities to detect errors.
needs to be corrected to prevent it
from occurring again Testing is the measure of software
quality.
The outcome of the causal analysis
meeting: Determines the root causes The advantages of software testing
and common causes, and proposes are as follows:
action plans and draws up It verifies that all the requirements are
implementation plans implemented correctly for both
positive and negative conditions
BTSTC1:
Identifies defects before software
SOFTWARE TESTING: deployment
It helps in improving quality and It groups perspective.
reliability
The probability of finding defects is
Makes software predictable in high.
behavior
The disadvantages of static testing are
Reduces the incompatibility and as follows:
interoperability issues
It consumes more time.
It helps marketability
It cannot test data dependencies.
It also helps retention of customers
The static testing requires high skill
The step-by-step procedure in testing levels.
is illustrated here.
The black-box testing is also called
The scenarios design and the test case functionality or data-driven testing.
development can start in parallel with
the development cycle. Some of the features are as follows:

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.

It is symbolic execution and The two techniques are equivalence


verification. partitioning and boundary value
analysis.
The dynamic testing generates test
data and executes the program. Equivalence partitioning divides the
input domain into classes of data from
Some of the types of dynamic testing which test cases can be derived.
are black-box and white-box or glass-
box testing. Boundary value analysis focuses on
the boundaries of the input domain
The advantages of static testing are as rather than its center.
follows:
The white-box testing is a structural or
Identifies defects early so that the cost logic-driven testing also called glass-
of rework is saved. box testing.
Provides checklist-based approach and
also focuses on coverage.
It performs structural testing process. The types of dynamic testing are
The white-box testing is a program black-box and white-box
logic-drive and design-based testing.
The black-box testing is planned
It examines the internal structure of without the intimate knowledge of the
program. program

The types of techniques are as follows: The two techniques in black-box


testing are equivalence partitioning
Basis path testing selects path that and boundary value analysis
achieve decision coverage.
The white-box testing is planned with
Flow graph notation is a notation for the intimate knowledge of the
representing control flow similar to program
flow charts and UML activity diagrams.
The types of techniques in white-box
Cyclomatic complexity provides upper testing are basis path testing, flow
bound for number of tests required to graph notation, and cyclomatic
guarantee coverage of all program complexity
statements.
TYPES OF S/W TESTING:
`The white-box testing is to derive test
cases based on the program structure. Welcome to the session on types of
Also, to guarantee that all the software testing.
independent path within a program
module is tested. Software testing is an essential
process because it enhances the
The minimum criteria for white-box quality of the product.
testing are as follows:
In practice, the expected result of one
Code test can be altered by the result of
another test.
High level and low level design
document Testing Graphical User Interface (GUI)
components is essential for all
Software requirement specification applications so that it becomes user-
In this session, you have learned that: friendly.

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:

It provides standard look for the


operating system.
It checks for the functionalities of all The features of regression testing are
the components involved with the as follows:
operating system.
Revisiting and testing all prior bug-
The GUI interfaces the integrity of the fixes in response to new fixes or
operating system with other package enhancements
applications.
Retesting all programs that might be
The types of GUI testing errors are as affected by the fixes or enhancements
follows:
Discovering the hidden bugs that are
Data validation not deducted during the previous tests

Incorrect field definitions Forming the baseline for the


application to grow with every build
Mishandling of server process failures
Acceptance testing ensures that the
Incorrect search criteria system meets the business
Multiple database rows are returned requirements. It verifies the overall
when a single row is expected quality, correct operation, scalability,
completeness, usability, portability,
The GUI testing strategies are as and robustness of the functional
follows: components supplied by the software
system.
Focusing on errors in order to reduce
them completely

Separating the errors logically by The main objective of acceptance


applying divide and conquer technique testing is that the system meets the
mutually agreed acceptance criteria
Applying appropriate test design with the customers.
techniques
The features of acceptance testing are
Building and applying tests for each as follows:
layer of the operating system
Meeting critical requirements
Automating the test wherever possible
Minimizing performance level of the
Regression testing is used to ensure tests
the quality and improve the
functionality of the system. Maximizing defect detection rate

The main objective of regression The configuration testing is carried out


testing is to re-execute one or more to ensure the compatibility of the
tests in subsequent build of the system. The term compatible implies
application or product to ensure the to different degrees of partnership of
quality. one device to another.
The characteristics of configuration the users who perform this testing
testing are as follows: according to their ability.

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 network configuration has to be Acceptance testing ensures that the


tested when two or more computers system meets mutually agreed
share the resources on a computer acceptance criteria with the customers
network. Alpha testing involves testing of
Database compatibility of the products software by customer at the
is also taken care by the configuration developer’s site
testing. For example, many programs Beta testing involves testing of
are compatible with dBASE. Thus the software by customer at the client’s
files produced can be easily site
transformed into a dBASE database.
UNIT TESTING:
The activities that occur during the
installation testing are as follows: Welcome to the session on unit
testing.
Basic installation of the system is
tested. It is the lowest level of testing. The
individual unit of the software is tested
Functionality of various configuration in isolation from other parts of a
and platforms are checked. program.
Regression testing for basic A unit is a program or a screen. It is a
functionality should be performed back-end related to a screen.
during the installation testing.
Unit testing is the lowest level of
Alpha testing is the software stage in testing and is also called program
the execution of a product. It has all testing. The individual unit of the
the core functions to accept inputs software is tested in isolation from
and generate outputs. The client at other parts of a program.
the development side will perform an
alpha testing. The properties of writing tests in a unit
testing are as follows:
Beta testing is the last stage of
testing. A round of testing called alpha It is written by software developers
testing often precedes this testing. It because bugs found by developers are
need not have defined test cases. It is
cheaper to solve than using a separate The field level checks consist of
testing department. factors, such as null or not null,
uniqueness, length, date field,
It is easily used by all programmers numeric, negative, and default display
when written in a framework. checks.
The unit test is made easy to run Field level validation is used to test all
automatically, so that it is easily used validations for an input field. It checks
by all programmers. date range and date validation with
The working procedures of a unit test the system date.
are as follows: The user interface checks for:
It is linked with the domain code (the Readability of the controls
code in the final application) and the
unit testing framework. Tool tip validations

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.

2. Define expected output. Unit test benefits programmer if used


correctly.
3. Repeat the coding process until the
test passes. It is a streamline programming.

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.

Enhances the quality of the code.


Unit test makes changes to system Unit testing is the lowest level of
with confidence. testing

Imposes no restrictions in learning A unit test is linked with the domain


from the system. code and the framework

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.

Define one or more public testXXX( ) The steps to be followed in a test-


methods that exercise the object(s) driven development are as follows:
under test and assert expected
results. 1. Write failing test initially

JUnit is designed around two key 2. Write enough code to pass


design patterns. They are command 3. Refactor
and composite pattern.
4. Run tests again
A TestCase is a command object. Any
class that contains test methods 5. Repeat until software meets goal
should subclass the TestCase class. A
TestCase can define any number of 6. Write new code only when test is
public testXXX( ) methods. When you failing
want to check the expected and actual
The do’s and don'ts while working with
test results, you invoke a variation of
JUnit test framework are as follows:
the assert( ) method.
You can call the superclass methods,
TestCase subclasses that contain
such as setUp( ) and tearDown( )
multiple testXXX( ) methods can use
methods when subclassing.
the setUp( ) and tearDown( ) methods
to initialize and release any common You should name the tests properly.
objects under test, referred to as the
test fixture. Each test runs in the Ensure that tests are time-
context of its own fixture, calling independent.
setUp( ) before and tearDown( ) after
Always utilize the JUnit's assert or fail
each test method to ensure there can
methods and exception handling for
be no side effects among test runs.
clean test code.
TestCase instances can be composed
Do the document tests in javadoc.
into TestSuite hierarchies that
automatically invoke all the testXXX( ) Keep tests small and fast and avoid
methods defined in each TestCase visual inspection.
instance.
Do not use test-case constructor or
There are certain best ways to work suite( ) method to set up a test case.
with JUnit. Separate the production
and test code typically in the same Do not assume the order in which
packages. Compile into separate tests within a test case run.
Do not write test cases with side- Canoo WebTest is a free open-source
effects and load data from hard-coded tool for automated testing of Web
locations on a file system. applications. It calls Web pages and
verifies results, giving comprehensive
Cactus framework is a testing reports on success and failure. Canoo
framework for server-side Java code. It WebTest helps you to reduce the
uses and extends JUnit. Apache- defect rate of your Web application.
Jakarta group developed cactus
framework as an open-source JUnitPerf is a collection of JUnit test
initiative. decorators used to measure the
performance and scalability of
The cactus framework is used to test functionality contained within existing
Servlet, JSP, EJB, Taglib, filter and so JUnit tests. JUnitPerf tests
on. The cost of writing server-side transparently decorate existing JUnit
TestCases is very low. tests. This decoration-based design
The architecture of the cactus allows performance testing to be
framework is displayed here. dynamically added to an existing JUnit
test without affecting the use of the
In this architecture, the YYYTestCase is JUnit test independent of its
the ServletTestCase or FilterTestCase performance. By decorating existing
or JspTestCase and XXX is the name of JUnit tests, you can easily measure the
the test case. Every YYYTestCase class desired performance and scalability
contains several test cases. tolerances. JUnitPerf can wrap any
JUnit tests.
The steps to be followed while
configuring the cactus framework in In this session, you have learned that:
Web application are as follows:
JUnit is a unit test framework for Java
1. Get the cactus distribution programming language

2. Place the required jars in Web JUnit testing provides automation of


library test cases, improved test coverage,
consistent testing, and highly reusable
3. Write TestCases framework
4. Should arrange the tests in a The best practices of JUnit testing are
separate package from application separate production, test code, and
code test-driven development
5. Run tests through a browser INTEGRATION AND SYSTEM
TESTING:
HttpUnit parses the HTML results into
Document Object Model (DOM). It has Welcome to the session on integration
easy link navigation and form and system testing.
population. It is useful for automated
acceptance tests.
Integration testing is an intermediate hierarchy, beginning with the main
level of testing. This testing process control module.
evaluates the interaction and
consistency of interacting The program is merged and tested
components. from the bottom to the top in Bottom-
Up integration testing.
Integration testing is a logical
extension of unit testing. It identifies It tests the modules at the lowest
problems that occur when units are levels in the program structure and
combined. begins construction and testing with
atomic modules.
The integration testing techniques are
top-down, bottom-up, and big-bang The advantages of bottom-up
testing. integration testing are as follows:

The program is merged and tested Many programming and testing


from the top to the bottom in top- operations can be carried out
down integration. simultaneously, which yield apparent
improvement in software development
Modules subordinate to the main effectiveness.
control module are incorporated into
the structure in either depth-first or Intensive unit testing of each module.
breadth-first manner. The disadvantages of integration
The advantages of top-down testing are as follows:
integration testing are as follows: Key interface defects are trapped later
Integrated Testing is done in an in the cycle.
environment that closely resembles The test drivers have to be generated
reality, so the tested product is more for modules at all levels except the top
reliable. controlling one.
Stubs are functionally simpler than You cannot test the program in the
drivers and can be written with less actual environment in which it runs.
labor in less time.
The illustration here represents the
The core functionality tested in the testing process of bottom-up
cycle is the disadvantage in top-down integration testing.
integration testing.
First, the terminal module is tested,
The illustration here represents the and then the next set of higher-level
testing process of top-down modules is tested with the previously
integration testing. tested lower modules.
The modules are integrated by moving The software components of an
downward through the control application are combined all at once
into a overall system in Big-Bang Disaster recovery
integration testing.
In this session, you have learned that:
In this approach, every module is first
unit tested in isolation from every Integration testing is a logical
module. After each module is tested, extension of unit testing. It identifies
all the modules are integrated problems that occur when units are
together at once. combined

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

The features of system testing are as In bottom-up integration testing, the


follows: program is merged and tested from
the bottom to the top
Typically independent team testing
The software components of an
Simulated environment testing application are combined all at once
into an overall system in big-bang
Live or simulated user data integration testing
Tests the whole system System testing is a black-box testing
Functional and nonfunctional technique and specifications-based
requirements tested testing

Business transaction-driven testing TESTING ARTIFACTS:

Compatibility and performance A test plan contains a description of


limitations uncovered the following parameters:

The system testing covers testing of Testing objectives and goals


the integrated system for: Test strategy and approach based on
Business functionality customer priorities

Performance and scalability Test environment (Hardware,


Software, Network, Communication,
Usability and so on.)

Reliability Features to test with priority and


criticality
Portability
Test deliverables
Installation
Test procedure
Test organization and scheduling Has a reasonable probability of
catching an as-yet undiscovered error.
Testing resources and infrastructure
It is sequential with the program or
Test measurements and metrics business flow.
The benefits of test plan are as It systematically uncovers different
follows: classes of errors with minimum
It sets clear and common objectives. (optimum) effort and time.

It helps prioritize tests. It is not redundant.

It facilitates technical tasks. Neither simple nor complex.

It helps to improve coverage. It tests the invalid and unexpected


test.
It provides structure to activities.
In this session, you have learned that:
It improves communication.
A test plan contains a description of
It streamlines tasks, roles, and testing objectives and goals, test
responsibilities. strategy and approach based on
customer priorities, test environment,
It improves test efficiency and test features to test with priority and
measurability. criticality, test deliverables,
procedure, organization, scheduling,
The characteristics of a test case are
measurements and metrics
as follows:
A test case has a set of test inputs,
It has a set of test inputs, execution
execution conditions, and expected
conditions, and expected results.
results
It reflects the tests that need to be
The test case reflects the tests that
performed.
need to be performed
It identifies the data needed for
A test case specifies preconditions,
testing.
postconditions, and acceptance or
It specifies preconditions, pass criteria
postconditions, and acceptance or
A good test case is sequential with the
pass criteria.
program or business flow
It provides a means to verify system
DEFECT MANAGEMENT:
use cases and other requirements.
Welcome to the session on defect
It helps to determine test coverage.
management.
A good test case:
It is the methodology of eliminating Low
defects in a project.
A bug report is a case against a
Defects are classified based on product. It must supply all necessary
factors, such as category and severity. information to identify and fix the
problem. The report must also specify
A defect is a variance from the what the system should perform.
required product attribute.
The steps in writing a bug report are
There are two kinds of defects. as follows:
Defect from specifications 1. The report should be written in clear
Defect in capturing user requirements concise steps, so that someone who
has never seen the system can follow
Failure is a defect that causes an error the steps and reproduce the problem.
in the operation of a program. It
adversely affects the end user or 2. It should include information about
customer. Any mismatch in the the product, such as version number
application and its specification is a and the data being used.
defect. A software error is present Effective project management
when the program does not satisfy its requires defect tracking and reporting
end-user requirements. as one of the important modules.
The defects are classified based on Defect reporting software is designed
category and severity. for recording and reporting the defects
The defect classifications based on in projects to help project
category are as follows: management, construction of project
life cycles, project handovers, and so
Wrong - It occurs due to incorrect on.
implementation.
Defect tracking software is essential
Missing - It occurs because user for improving project quality and
requirements are not built into the managing future requests from
product. customers.

Extra - It occurs as a result of Defect reporting and management


unwanted requirements built into the software enables contractors to
product. manage defects of post-project
practical completions that are
The defect classifications based on reported by customers.
severity are as follows:
Any defect reported against a product
Very high or critical is logged into a common repository
and tracked through a closure.
High

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.

2 represents good support or provides Rational offers a number of test


another tool for the functionalities that automation tools.
are lacking. Some of the Rational suite of tools are
3 represents basic support only. as follows:

4 represents support only through an Rational Requisite Pro


API call or third party add-in. However, Rational Clear Quest
it is not included in the general test
tool or below average support. Rational Purify

5 represents nil support. Rational Quantify

The matrix score for each tool is Rational Pure Coverage


displayed here.
Rational Suite Performance Studio
In this session, you have learned that:
Rational Robot
Automated testing is the process of
automating the manual testing Rational Test Factory
process currently in use. Rational Site Check
The phases in automation are test Rational Load Test
planning, test design and
Rational Test Manager
The Rational project is a logical VU scripting environments. The
collection of databases and data Rational Robot editor provides color-
stores that associate with the used coded commands with keyword Help
data while working with Rational suite. for powerful integrated programming
A Rational project is associated with during script development.
one Rational Test data store, Requisite
Pro database, and Clear Quest It facilitates testing applications
database. It also associates with developed with Integrated
multiple Rose models and Requisite Development Environment (IDE), such
Pro projects by optionally placing them as Microsoft Visual Basic, Oracle
under configuration management. Forms, PowerBuilder, Hyper Text
Markup Language (HTML), and Java.

It is also used for testing objects even


The Rational administrator is used to if they are not visible in the interface
create and manage Rational of the application.
repositories, users, and groups. It also
manages security privileges. Rational Robot is used for collecting
diagnostic information about an
Rational Robot is used to develop application during script playback.
three kinds of scripts, namely,
Graphical User Interface (GUI) scripts It is integrated with Rational Purify,
for functional testing, Virtual User Quantify, and Pure Coverage. It also
(VU), and Visual Basic (VB) scripts for enables playing back scripts under a
performance testing. diagnostic tool and viewing the results
in a log file.
The uses of Rational Robot are as
follows: Rational Test Manager is an open and
extensible framework that unites all
It performs full functional testing. the tools, assets, and data, which are
Record, play back the scripts that related to and produced by the testing
navigate through the application, and effort. Under this single framework, all
test the state of objects through participants in the testing effort can
verification points. define and refine the quality goals.

Rational Robot performs full The features of Rational Test Manager


performance testing. Use Rational are as follows:
Robot and Test Manager to record and
play back scripts that help in Rational Test Manager enables
determining whether a multi-client planning, designing, implementing,
system is performing within user- executing tests, and evaluating the
defined standards under varying results.
loads. It facilitates creating, managing, and
It is used for creating and editing running the reports. The reporting
scripts by using the SQABasic, VB, and tools track assets, such as scripts,
builds, and test documents. It also Welcome to the session on
helps in tracking test coverage and performance testing. This session
progress. deals with requirements, process,
tools, load, volume, and stress testing
It is used for creating and managing of performance testing.
builds, log folders, and logs.
Performance testing is a measure of
Rational Test Manager is also used for the performance characteristics of an
creating and managing data pools, application. It is basically a process of
and types. understanding how the Web
application and its operating
environment respond at various user
Rational supports several operating load levels.
systems, protocols, Web browsers,
markup languages, and development In general, to measure the latency,
environments. throughput, and utilization of the Web
site while simulating attempts by
The operating systems and protocols virtual users to simultaneously access
supported by Rational are displayed the site. One of the main objectives of
here. performance testing is to maintain a
Web site with low latency, high
The Web browsers supported by throughput, and low utilization.
Rational are displayed here.
Performance testing requirements
Rational supports markup languages, normally comprise of three
such as HTML and DHTML on IE4.0 or components. They are response time
later. requirements, transaction volumes,
and database volumes.
The development environments
supported by Rational are displayed To measure the performance
here. characteristics of an application, the
performance testing proceeds with
In this session, you have learned that:
requirements collection, plan, design,
Some of the testing tools offered by scripts, bed preparation, execution,
Rational are Rational Requisite Pro, result analysis, and report generation.
Rational Clear Quest, Rational Purify,
Load Runner is a testing tool used for
Rational Suite Performance Studio,
testing the performance of client or
Rational Robot, Rational Test Manager,
server system. It enables the user to
and so on
test the system under restricted and
Rational supports several operating peak load conditions.
systems, protocols, Web browsers,
To generate load, the Load Runner
markup languages, and development
runs thousands of virtual users that
environments
are distributed over a network. Using
PERFORMANCE TESTING: the minimum hardware resources,
these virtual users provide consistent, In this session, you have learned that:
repeatable and measurable load to
execute the client or server system Performance testing is a process of
just as real users would perform. The understanding how the Web
brief reports and graphs of Load application and its operating
Runner provide information required environment respond at various user
to evaluate the performance of the load levels
client or server system. Load Runner is a testing tool for
Web Load is a testing tool used for testing the performance of client or
testing the scalability, functionality, server systems
and performance of Web-based Web Load is a testing tool for testing
applications, such as Internet and the scalability, functionality and
Intranet. Web Load can measure the performance of Web-based
performance of your application under applications
any load conditions. The Web Load is
used to test the performance of your Volume testing is used to find
Web site under real-world conditions. weakness in the system with respect
The Web Load executes this task by to its handling of large amounts of
combining performance, load, and data during short time period
functional tests or by running them
individually. Stress testing is used to test whether
the system has the capacity to handle
The purpose of using volume testing is large number of transactions during
to find the weakness in the system peak period
with respect to its handling of large
amounts of data during short time CODE COVERAGE TOOLS:
periods.
Welcome to the session on code
The purpose of using stress testing is coverage tools.
to test whether the system has the
Code coverage is a measure used in
capacity to handle large numbers of
software testing. It is used to ascertain
processing transactions during peak
a part of a program that does not
periods.
exercise test cases.
Performance testing can be
It produces more test cases to
accomplished in parallel with volume
improvise product and specifies a
and stress testing because it is
quantitative measure of code
necessary to assess performance
coverage, which is an indirect
under all conditions. System
measure of quality.
performance is generally assessed in
terms of response time and The code coverage analysis consists
throughput rate under different of:
processing and configuration
conditions. Source code instrumentation
Intermediate code instrumentation developed to obtain coverage
information for Java programs.
Run-time information collection
It instruments or inserts instructions
The code coverage tools exert a into Java class files at the byte code
performance on memory or other level.
resource cost that are unacceptable
by normal operations of the software. The goal of InsECT is to provide
coverage information about Java
The tools in code coverage are programs by considering its object-
displayed here. oriented behavior and language
Clover is a powerful and highly features.
configurable code coverage analysis Furthermore, as an open-source
tool. It discovers the sections of code project, InsECT is extensively used in
that are not being adequately dynamic analysis.
exercised by the unit tests.
Java byte code assembler
Clover provides method, branch, and programmers' use JCoverage tool.
statement coverage for projects,
packages, files, and classes. Unlike After instrumenting the code and
tools that use byte code running the tests, a report is
instrumentation or the Java Virtual generated allowing the user to view
Machine (JVM) Profiling Application the information coverage figures from
Programming Interface, Clover a project level. This process is called
accurately measures per statement code coverage.
coverage, rather than per-line
coverage. Though Java developers have
excellent free Integrated Development
JProbe allows the user to easily test Environments, free compilers, and test
the applications without any code frameworks, they have to rely upon
change and identifies the performance the code coverage tools. These tools
problem in the code. It integrates are used to recognize the functionality
easily with the application server, Web of the tests.
server, IDE, JDK, and operating
system. EMMA is an open-source toolkit for
measuring and reporting Java code
JProbe is the industries leading choice coverage.
for enterprise code profiling and
analysis since it supports platform Emma supports large-scale enterprise
with both 32 bit and 64 bit, and software development while keeping
analysis an application running on a individual developer's work fast and
remote server. iterative.

Instrumentation Execution Coverage The features of EMMA are as follows:


Tool (InsECT) is a system that is
EMMA can instrument classes for EMMA is 100 percent pure Java and
coverage either offline (before they has no external library dependencies.
are loaded) or on-the-fly (using an Thus it can work in any Java 2 Java
instrumenting application classloader). Virtual Machine (JVM).

It supports coverage types, such as EMMA belongs to a class of pure Java


class, method, line, and basic block. coverage tool based on Java bytecode
instrumentation.
EMMA can detect when a single source
code line is covered only partially. Hence, special JVM switches for
enabling coverage is not needed.
Coverage stats aggregated at method, Instead run EMMA-processed .class
class, and package levels are included files. It also concludes that EMMA does
with EMMA. not instrument the .java sources.
Output reports are used to highlight EMMA offers two different options to
items with coverage levels below user- instrument. They are offline and on-
provided thresholds. They are of three the-fly.
types, plain text, HTML, and XML.
The offline approach works well with
The HTML report supports merging of contexts, such as J2SE, J2EE, and
source code linking, such as data distributed client/server applications.
obtained in different instrumentation
or test runs. The on-the-fly approach is a handy
and lightweight shortcut for simple
EMMA does not require access to the standalone programs.
source code. It degrades with
decreasing amount of debug EMMA pays attention to the needs of
information available in the input enterprise software developers' and
classes. thus cannot run always in the latest
Java version. It runs in any Java 1.2
It can instrument individual .class files with a JVM and has no library
or entire .jar files. Hence, efficient dependencies. EMMA is free and uses
coverage subset filtering is possible. a very liberal open-source license.
The Makefile and ANT build integration An executable class is considered to
are supported by EMMA on equal be covered if it is loaded and
footing. initialized by the JVM.
EMMA is quite fast since the run-time Class initialization implies that the
overhead of added instrumentation is class static constructor is executed.
small and the byte code
instrumentation is also fast. A class can be covered even though
none of its other methods are
Memory overhead is a few hundred executed.
bytes per Java class.
Class coverage also considers the Offline
number of loaded but uninitialized
classes. On-the-fly

It is common to see a small number of TEST CASE POINT ANALYSIS:


loaded, but uninitialized classes while Welcome to the session on Test Case
using EMMARUN without the -f option. Point (TCP) analysis. TCP analysis is an
EMMA reports class coverage so that approach for doing an accurate
the user could spot the classes that estimation of functional testing
are ignored by the test suite. The projects.
identified classes could be a dead TCP is a measure of estimating the
code or needs more test attention. complexity of an application.
EMMA first covers a method when it The TCP is also used as an estimation
has been set up. But the problem is to technique to calculate the size and
track the method execution. effort of a testing project. The TCP
A given method can have any number counts are nothing but ranking the
of normal or abnormal exit points. It is requirements and the test cases that
not clear how many of the exit paths are to be written for those
are considered to be normal. requirements into simple, average,
and complex. It quantifies the same
Looking out for uncovered methods is into a measure of complexity. This
a good technique for detecting either approach emphasizes on key testing
dead code or code that needs more factors that determine the complexity
test attention. of the entire testing cycle. In other
words, TCP is a way of representing
In this session, you have learned that: the efforts involved in testing projects.
The types of code coverage tools are TCP analysis generates test efforts for
as follows: separate testing activities. This is
Clover essential because testing projects fall
under four different models, such as
JProbe test case generation, automated script
generation, manual test execution,
EMMA and automated test execution.
InsECT Test case generation is an execution
model that includes designing well-
JCoverage
defined test cases. To determine the
EMMA supports large-scale enterprise TCP for test case generation, first
software development while keeping determine the complexity of the test
individual developer's work fast and cases. Some test cases may be more
iterative. It offers two different options complex due to the inherent
to instrument functionality being tested. The
complexity will be an indicator of the generation, automation, manual
number of TCPs for the test case. execution, automated execution, and
Automated script generation is an total TCP.
execution model that automates the
test cases using an automated test In this session, you have learned that:
tool. TCP is a measure of estimating the
From the list of test cases derived complexity of an application. It is also
from test case generation model, used as an estimation technique to
identify the test cases that are good calculate the size and effort of a
candidates for automation. Some test testing project
cases save a lot of effort if performed TCP analysis generates test efforts for
manually and are not worth separate testing activities. This is
automating. On the other hand, some essential because testing projects fall
test cases cannot be automated under four different models
because the test tool does not support
the feature being tested. Automation Test case generation is an execution
is difficult in the cases having dynamic model that includes designing well-
data. defined test cases

Manual test execution is an execution Automated script generation is an


model. It executes the test cases execution model that includes
already designed and reports the automating the test cases using an
defects. To determine the TCPs for automated test tool
manual execution, first calculate the
manual test case execution Manual test execution is an execution
complexity based on the factors, such model that involves executing the test
as pre-conditions, steps in the test cases already designed and reporting
case, and verification. the defects

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.

TCP Analysis uses a 7-step process


consisting of the stages, such as
identifying use cases, identifying test
cases, determining TCP for test case

Vous aimerez peut-être aussi