You are on page 1of 11

SOFTWRE TESTING

BY

YOGESH KHAIRNAR

Copyright © 2008 www.yogibaba-emperoroftechnology.blogspot.com


SOFTWARE TESTING

Basics of Software Testing: -


Testing is a process of executing a program with the intent of finding an error.
OR
Testing is a process of trying to discover every conceivable fault or weakness
in the work product.

1Testing can make sure that the product is as per the specifications.
2Testing helps in modifying features to make it more usable and friendly.
2Testing can provide an indication of the software’s reliability and quality.
3Testing starts since Requirements and it goes till the Maintenance.

Role of a Software Tester: -


Role of Software Tester is to find the defects and make sure that as early as
possible they get fixed. At every point of time Tester has to prove the Developer is
wrong.

Skills required by a Tester:


Tester have a good communication skills, good observation skills, people
handling skills, good grasping power, patience, creativity in terms of identifying
problematic areas etc.

Why does software have Bugs: -


i) Programming errors, ii) Limitations of Language, iii) Miscommunication or
no communication, iv) Changing requirement,
v) Software complexity, vi) Ego problem, vii) Poorly documented code, viii) Time
Pressure etc.

Does every software project need a Tester: -


If the project is a short term, small, low risk project, with highly experienced
programmers utilizing through unit testing or test-first development, then testers
may not be required for the project to succeed.

Verification: -
Verification involves Reviews and meetings (Informal and Formal)
to evaluate documents, plans, codes, requirements and specifications. This can be
done with Checklists and Issues lists. Verification is done to ensure that the
software meets the required specifications. Verification is QA / Static /
Preventive Process. [QA means monitoring like Audit, Verification is baseline.]

1)Review: - It is a process or meeting during which a work product or set of


work products is represented to project personal, managers, users or other
interested parties for comment or approval.
2)Walkthrough: - A Walkthrough is an informal meeting for evaluation or
informational purposes. For this Development and Testing team seat together,
little or no preparation is usually required.
3)Inspection: - An Inspection is formal meeting, typically with 3-8 people

Copyright © 2008 www.yogibaba-emperoroftechnology.blogspot.com


including a moderator, reader, and a recorder to take the notes. For this type
of meeting attendees should prepare by reading through the document. It is
most cost effective method of ensuring the quality.

Validation: -
Validation involves actual testing and takes place after verifications are
completed. Validation is done to ensure that the software meets the
requirements of the customer. Validation is
QC / Dynamic / Detective and Corrective Process. [QC means Actual Testing.]

Quality: -
It is character or attribute of something. OR It is the degree of excellence.

Quality from Programmers / Producers / Manufacturers point of view: -


Product meets the requirements of user.

Quality from Consumer / Client / User point of view: -


Fit for use.

Quality Assurance: -
It involves the entire software development process – monitoring and improving
the process, making sure that any agreed upon standards and procedures are
followed, and insuring that problems are found and dealt with. QA is Static /
Verification / Preventive / Monitoring Process.

Quality Control: -
In this organization focus is on testing a group of quality related attributes such as
Correctness, Security, Portability, Inter-operability, Usability, and Maintainability. QC
is Dynamic / Validation / Detective and Corrective / Actual Testing Process.
Software Life cycle: -
The life cycle begins when an application is first conceived and ends when it is no
longer in use.

Software Development Life Cycle [SDLC]: -


i) System Study, ii) Requirement Analysis, iii) Designing, iv) Coding, v) Testing,
vi) Maintenance, vi) Implementation etc.

Requirements Release

HLD Build System

QA, Static, LLD Build Software QC, Dynamic,


Verification Validation
Coding

Copyright © 2008 www.yogibaba-emperoroftechnology.blogspot.com


Software Testing Life Cycle [STLC]: -

Requirements User Acceptance


Review Testing

HLD Review System Testing

LLD Review Integration Testing

Unit Testing

Test Cycle: -
A Test Cycle is the period in which the product is tested and defects are verified.

Test Case: -
A test case is a document that describes an input action or event, and an
expected response to determine whether feature of an application is working
correctly or not.
It contains particulars as Test Case Identifier, Objective, Steps, Input Data, and
Expected Result etc.

Test Plan: -
A Test Plan is a document that describes the objective, scope, approach, and focus
of all software testing efforts.
OR
A Test Plan is a document that describes the objective, scope, approach,
methodology to be used, task to be performed, resources, schedules, risks, and
dependencies.

Test Script: -
Test Script is commonly refer to the automated test procedure used with a testing
tool.

Test Specification: -
Test Specification defines exactly what tests will be performed and what their
scope and objective will be.

Test Suite: -
Test Suite is a group / set / collection of test cases.

Test Bed: -
Test bed is nothing but a pre-requisite environment of the Testing.

Bug / Defect: -
Bug / Defect are a manifestation / sign / appearance of an error in software.
Status of Defect: - New, Open, Rejected, Reopen, Fixed, Closed.

Copyright © 2008 www.yogibaba-emperoroftechnology.blogspot.com


Severity: -
Severity is the impact or effect of an error on the software or application.
Severity status 1 - Low, 2 - Medium, 3 - High, 4 - Very High, 5 – Urgent. [According
to Test Director.]

Priority: -
Priority of the bug or defect is how fast it gets fixed.
Priority depends on two factors:
i.Impact of Error on business,
ii.How much user is going to use the functionality?
Priority status 1 - Low, 2 - Medium, 3 - High, 4 - Very High, 5 - Urgent. [According to
Test Director.]

Defect Density: -
Defect Density is the number of defects to program language.
[Kloc – Kilo Lines of Code.] According to Six Sigma 3.5% must be the Defect Density.

Defect Removal Efficiency: -

A Good Test: -
A Good Test is one which reveals / represents an error.

Debugging: -
Debugging is the process of finding and removing the causes of failures in the
software.

Testing Strategies: -

1.White Box / Glass Box / Code Based / Structural Testing: - It is the


testing of a function with knowing internal structure of the program. It is
usually done at coding stage.
2.Black Box / Closed Box / Requirement Based / Functional Testing: - It
is the testing of a function without knowing internal structure of the program.
3.Gray Box Testing: -
It is the combination of White Box and Black Box Testing.

Types of Testing: -

1.Unit Testing: -
It is ‘micro’ scale of testing; it is used to test particular functions or code
modules. It is done by the programmer and not by testers, as it requires detailed
knowledge of the internal program design and code.

2.Integration Testing: -
It is the testing of combined parts of an application to determine whether
they function together correctly or not.
OR
It is the testing in which different parts of the system are combined together
and focus is only on integrated part or integration point.
The parts can be code modules, individual applications, client and server
applications on a network etc. This type of testing is especially relevant to client /

Copyright © 2008 www.yogibaba-emperoroftechnology.blogspot.com


server and distributed systems.

3.Functionality Testing: -
It is the testing done to ensure that whether system meets its specified
functional requirements or not. It is the black box type testing.

4.System Testing: -
It is the testing of an integrated or whole system to verify that
it meets specified requirements. It is Negative type of testing
because it is aimed at showing software does not work. It is black
box type testing.

A. Usability Testing: -
It is the testing done to ensure that whether the system is user
friendly or not. (easy to use, easy to learn, look and feel, navigation, help
etc)

B. Compatibility Testing: -
It is the testing done to ensure that whether system is
compatible with all software platforms [like different OS, different versions
of specific OS, and different application software’s] or not.

C. Configuration Testing: -
It is the testing done to ensure that whether system is compatible
with all hardware platforms [like different Processors, HDD, FDD, and RAM
size] or not.

D. Performance Testing: -
It is the testing done to ensure the time response of the system
against large amount of data during short time period.

E. Load / Volume Testing: -


It is the testing done to ensure the capacity of the system against
unusually heavy or peak load.

F. Stress Testing: -
It is the testing done to ensure the systems response after lowering
its resources.

G. Security Testing: -
It is the testing done to ensure that whether system meets its
specified security objectives or not.

H. Recovery Testing: -
It is the testing done to ensure the systems ability to recover from
disaster or varying degrees of failures.

I. Installabity Testing: -
It is the testing done to ensure that whether system follows the
installation procedures correctly or not. OR
It is the Testing done to ensure the features of the installer.

J. Uninstallabilty Testing: -

Copyright © 2008 www.yogibaba-emperoroftechnology.blogspot.com


It is the testing done to ensure that whether system follows the
uninstallation procedures correctly or not.

K. Maintainability Testing: -
It is the testing done to ensure that whether system meets its
specified maintainability objectives or not.

L. Portability Testing: -
It is the testing done to ensure that whether system is compatible
with all software and hardware platforms or not.
It is the combination of Compatibility and Configuration Testing.

5.Alpha Testing: -
It is the testing of an application when development is nearing completion,
minor design changes may still be made as a result of this testing. It is done by end-
user or others and not by programmers or testers.

6.Beta Testing: -
It is the testing of an application when development and testing are
essentially completed and final bugs or problems need
to be found before final release. It is done by end-user or others and not by
programmers or testers.

7.Regression Testing: -
It is the retesting after the modifications of the software or its environment
to check whether any changed functionality does not affect any unchanged
functionality. Especially Automated testing tools are used for this type of testing.

8.User Acceptance Testing: -


It is the final testing based on specifications of the end-user or customer.

Different types of Testing: -

1.Ad-hoc / Monkey / Gorilla Testing: -


It is the testing, in which no test cases are designed, tester goes according
to his domain knowledge. Here tester must have domain knowledge.

2.Exploratory Testing: -
It is the testing in which no test cases are designed; tester goes according to
his imagination and creativity in terms of finding out problems with the product.

3.Top-down and Bottom-up Testing: -


In the top-down testing the highest level modules are tested first where as
in the bottom-up testing the lower level modules are
tested first.

4.Boundary value Testing: -


It is the testing which checks the feature using values just below or above
the lower limit and upper limit. It can be used as Black Box Testing.

5.Branch Testing: -
It is the testing done to ensure the coverage criteria such that for each
decision point each possible branch is executed at least once.

Copyright © 2008 www.yogibaba-emperoroftechnology.blogspot.com


6.Component Testing: -
It is the testing of individual software component.

7.Conversion Testing: -
It is the testing of programs or procedures used to convert data from
existing system to another system.

8.Isolation Testing: -
It is the component testing of individual component in isolation
from surrounding components.

9.Feature Testing: -
It is the testing in which test case selection is based on the analysis of the
specification of the component without reference to its internal working.

10.Arc Testing: -
It is a test case design technique for a component in which test cases are
designed to execute branch outcomes.

11.Domain Testing: -
It is a test case design technique for a component in which
test cases are designed to execute representatives from equivalence classes.

12. Exhaustive Testing: -


It is a test case design technique in which test case suite
includes all combinations of input values and preconditions for
component variables.

13. Path Testing: -


It is a test case design technique in which test cases are designed to execute
paths of a component.

14. Cosmetic Testing: -


It is the type of Usability Testing i.e. look and feel, for Web Based
Application.

Software Change / Configuration Management [SCM]: -


It is an independent process which can be introduced at any time in defect life
cycle. It is combination of few processes like Identifying Objects [1.Basic Objects like
Labels, Text boxes, Button and 2. Aggregate Objects like collection of Basic Objects
(e.g. Menu, Forms, and Frame)], Change Control, Configuration Audit, Status Report,
and Version Control. [According to SEI (Software Engineering Institute) Version
Control is a part of SCM but according to IEEE (Institute of Electronics and Electrical
Engineers) Version Control is not a part of SCM.]
SCM Process: - Change requirement from user → it goes to CCB (Change

Copyright © 2008 www.yogibaba-emperoroftechnology.blogspot.com


Control Board containing senior people of Organization) → they do Analysis (Risk
Analysis and Cost Benefit Analysis) → accept some or all requirements → inform to
the client → after approval from client accepted request is send to ECO (Engineering
change order) → then developer decide module as per ECO → Check out →
Configuration Audit → Check In → Configuration Audit → Status report of
Configuration Audit → Read Me File.
Generally either “Check Out” or “Check In” process or both the
process takes place in the industries.

Version Control: -
If there are changes like structure and functionality in the product then whole
version change takes place, e.g. - Version 1.0 to Version 2.0. And if there are minor
changes in the present Version then small Version change takes place, e.g. – Version
1.0 to Version 1.1.

SCM Tools: - VSS [Visual Source Safe]


SVN [Sub Version] etc.

Equivalence Class Partitioning: -


It is black box type testing technique. It is used when we have large number of
input data. In ECP data are divided into some classes which are equal in terms of
their one of the characteristics. Generally data is divided into Valid and Invalid
classes. There is no specific formula for defining classes. These classes defines
boundary when we go for Boundary Value Analysis. ECP and BVA are related to each
other but not part of each other.
ECP is useful to reduce data and time and to cover maximum functions for
Testing.

Traceability Matrix / Test Matrix: -


It is the mapping of requirements with test cases to check whether
for every requirement there is test case written or not. Basic purpose is to ensure
the requirement coverage. [Matrix: - Matrix is a table containing rows and columns.]

Stubs and Drivers: -


These are the dummy programs written by the developer, if some of the
functions not yet prepared.
Drivers are “Calling” programs and Stubs are “Called” programs.
Drivers are used to take the inputs, perform some actions and get output.
Both are used in “Top-Down” approach [Incremental approach] and only
drivers are used in “Bottom-Up” approach.
Drivers can be real or dummy but Stubs must be dummy.

Testing Process: -
FSD/SRS/ Use Cases

Prepare Test Cases

Review (Peer/ Lead/ Senior)

Modifications (If Any)

Copyright © 2008 www.yogibaba-emperoroftechnology.blogspot.com


Execution

Waiting for next QA Drop (Development of the
Product / Software)

FSD [Functional Specification Document]: - It contains behavior of


every functionality of an Application in detail. It is also called High Level
document, because everything is mentioned in it.
SRS [System Requirement Specification]: - It contains only about the
Functionality.
Use Cases: - Just Outline

Testing of Windows Application: -


Windows Application does not require Browser to run.
Windows Application requires System Server as well as Application Server to
run.
Types of Testing for Windows Application: - Functional Testing,
Usability Testing, Performance Testing, Security Testing, Compatibility
Testing, Configuration Testing, Smoke / Sanity Testing, Regression Testing.
a) Functional Testing: -
i) Core / Primary Functions: - Testing of Functions which are present in
menus.
ii) Secondary Functions: - Testing of Shortcuts [Ctrl+C, Ctrl+V] and Hot
keys [Alt+O (Numeric character)].
b) Usability Testing: -
i) GUI Objects, ii) Text written on GUI objects, iii) Message displayed for
user by the system, iv) User friendliness, v) Counter should appear while typing the
characters in specific text box.
c) Performance Testing: - Time response.
d) Load Testing: -
e) Stress Testing: -
f) Security Testing: - i) Login for different users,
g) Compatibility Testing: - i) Forward and Backward Compatibility, ii)
Various Platforms like different OS or Different Versions of OS.
h) Configuration Testing: - Various configuration of Processor, HDD, FDD,
RAM etc.

Testing of Web based Application: -


Web based Application requires browser to run.
Web based Application requires Web Server as well as Application Server to
run.
Types of Testing for Web based Application: - Functional Testing,
Usability Testing, Performance Testing, Security Testing, Compatibility
Testing etc.
a) Functional Testing: -
i) Links:- Text Links, Image Links
ii) Search Engine: - Related to that particular Website, Outside Domain
Searching
b) Usability Testing: - It is Cosmetic Testing means “Look and

Copyright © 2008 www.yogibaba-emperoroftechnology.blogspot.com


Feel”
c) Performance Testing: - Time Response
d) Load Testing: -
e) Stress Testing: -

f) Security Testing: - https:// i.e. Hyper Text Transmission


Protocol Security, SSL: - Socket Security Level
g) Compatibility Testing: - Testing on Different Browsers like
IE, Opera, Netscape Navigator, Mozilla Fire fox etc.
h) Configuration Testing: - It is not essential.

Copyright © 2008 www.yogibaba-emperoroftechnology.blogspot.com