0 ratings0% found this document useful (0 votes) 6 views22 pagesChapter 9 - Software Testing
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here.
Available Formats
Download as PDF or read online on Scribd
SOFTWARE TESTING
Me (CHAPTER OUTLINE
After studying this chapter, the reader will be able to understand the
Software Verification and Validation
Software Inspection.
Software Testing
Software Testing Prouess
Testing Methods
Functional Testing
Quality Management
Software Measurement and Metric
eaaes aad
Scanned wth Camscanerverification and validat les check the software
goftwar® must verify and validate the software it produces. This
roe ts
against its 5
va 4 is done by:
item meets specified requirements, checking each software item
another activity, ensuring that checks on each software item ay
by someone other than the author and ensuring that the amount of v¢
s yion ert 8 adequate to shOW each software item is suitable for ¢
Lon and validation is the name given to checking an analyzing proce
ee confirms to its specification and meets the need of customer who are Paying for
that = wae It is the whole lifecycle process that starts with requirement review and pee
ae design review and code inspection to product testing, V & V are independent
edure that is used together for checking that a product service or system meets requirement
specifications and that it fulfills its intended purpose. Whatever the size of Project, software
retifcation and validation greatly affects software quality. People are not infallible, and
software that has not been verified has little chance of working.
Pecifications,
“checking that
before it is used
re done, as far ag
ch software
qput ©
sean input!
ile erification and
Perational use,
'sses that ensure
Verification
Verification refers to the set of activities that ensure that software correctly implements specific
functions. It ensures that the product has been built according to the requirement and design
specification, It makes sure that the product is designed to deliver all functionality to the
«ustomer. Verification is done at the development process and includes reviews and meeting,
'spection etc. to evaluate documents, plan code, requirements and specifications. Suppose you
“econstructing a table then verification is about checking all the parts of table, whether all legs
+ ofconee size or not, It one leg is not of the correct size it will imbalance the end product.
Verification is the demonstration of consistency, completeness and correctness of the software
tsich sage and between each stage of the development lifecycle. It is expressed as: Are we
building the Product right?
Advantages
; of
* Verification helps in lowering down the count of the defect in the later stages
development,
7 ill help in
Verifying the product at the starting phase of development will help
understanding the product in better way.
UW reduces
the chance of failure in software product
stcation and needs.
"helps in building the product as per the customer specification 2
Seamed wth CamscannerSoftware Testing O
Validation
Validation refers to the set of ai
a ‘ctivities that ensure that software that has been built is traceable
le custc i is it
; ‘omer requirements. It is intended to show that the software does what the user
Tequires. Validation conce:ns with
and perfor
needs,
determining if the system complies with the requirements
vs a functions for which it is intended and meets the organizations goals and user
One at the end of the development process and takes place after verifications are
completed. It answers the question like: Are we building the right product?
Advantages
* It some defects are missed in verification, then during validation defect can be
caught as failures,
If specification is misunderstood and development had happened then during
validation process while executing that functionality the difference between the
actual result and expected result can be understood.
* Validation helps in building the right product as per the customer's requirement
and helps in satisfying their needs.
* Validation is basically done by the testers during the testing.
‘erence between Verification and Validation
It is the process of evaluating product of
development phase to find out whether they|end to determine whether it meets the
meet the requirement and — design|customer expectations and requirements.
specification.
Objective Is fo make sure that product fs as|Objective is to make sure that product
actually meet up the user's requirements.
per specification
i revi fi ivities are testing like: black box testin
Hi ‘ved are: review, meetings and | Activi o.
ferred | white box testing etc.
inspections
ferification is carried out by QA team Validation is carried out by testing team.
Verifica
; under | Execution of code comes under validation
5 lode is not comes
Execution of ¢
verification
i Cost of error caught is more than verification.
ini is less than validation
Cost of error coug!
5 Jalchecking of documents|tt is basically checking of developed
eo ement specication, _design|sotiware by executing source code,
require
test cases etc
m right?
like:
specification.
oa ‘Are we building the right system?
jing the
‘Are we building
[Are we pulene’
Scanned wth Camscaner136 CQ) Sorrware Exomeremo
Software inspection is a control technique for ensuring that the documentation produced during a given
phase remains consistent with the documentation of the previous phases and respects reestablished rules
and standards, It is a technique to analyze and check system representation such as requirement
document, design diagrams and program source code with executing it. It can be used as
verification technique techniques before software is implemented. Inspection have proved to be
an effective techniques of error detection, error can be found more cheaply through inspection
than by extensive program testing. The aim of inspection is to locate faults and process should
be driven by fault check list.
Inspection key Points
© It is most formal review type
+ Itis lead by trained moderator
* Documents are prepared and checked thoroughly by the reviewer.
+ A separate preparation is carried out during which product is examined and
defects are found
+ Ithelps the author to improve the quality of the documents under inspection
© Itremoves the defects efficiently and as early as possible
© Itimproves product quality
«It creates common understanding by exchanging information
‘+ Itlearn from defects found and prevent the occurrence of similar defects.
Inspection Roles
During an inspection, following roles are used |
Author: An author is the person who created the work product being inspected.
Author is responsible for producing the program or document, fixing defects
discovered during the inspection process.
+ Moderator: Moderator is the leader of the inspection plans the inspection and
coordinates it. Moderator reports process results to the chief moderator.
* Chief Moderator: Responsible for inspection process improvement, checklist
updating, standards developments etc.
© Reader: Reader is the person reading through the documents one item at a time
presents the code or documents at inspection meeting.
Scanned wth CamscanerSoftware Testing O
«_ Recorder/Seribe: The person that documents the defects that are found during the
inspection is recorder.
«Inspector: Inspector is the person that examines the work product to identify
possible Uefects, finds errors, omissions and inconsistencies in the code and
documents.
Inspection Process
Inspections are a formal proce
ss used to identify and correct errors in a completed deliverable,
before the deliverable is used as input to a subsequent deliverable. For example, after
inspection, the Requirements Definition is released for reference by the Functional Design
Specification. The focus of the inspection process is on finding defects, rather than solutions,
which can divert the inspection meeting time. The inspection process is conducted by dividing
an entire deliverable, such as the Requirements Definition, into manageable pieces that can be
optimally inspected in a meeting, The stages in inspection process are: planning, overview,
meeting, individual preparation, inspection meeting, rework and follow-up.
—_
4,
Fig: Software Inspection Process
Planning: The inspection is planned by the moderator which involves selecting an
inspection team, organizing a meeting room and ensuring that the material to be
inspected and its specifications are complete.
Overview: In this step, the software and documents to be inspected are presented to the
inspection team where author of the code describes the background of the work product.
Individual Preparation: In this stage, each inspection team member studies the
specification and the program and looks for the defects and identifies possible defects.
Inspection Meeting: During this meeting, the readers read through the work product
ce by part and inspectors point out defects for every part. Inspection meeting should be
irly short no more than two hours and should be focused on defect detection.
Rework: In ty
work: In this stage, the author makes changes to work product according tothe ation
plan from the inspecticin meeting
Follow up: In thi
meen In this step, the changes made by the author are checked to make sure tt
ae es The moderator should decide whether reinspection of the code and
Tequired. If not the software is then approved by moderator for release.
Scanned wth Camscanersing is an investigation conducted to provide stakeh
~ getwar® be the product or service under test. It is the Process:of executin,
Sd software bugs and to ensure that it satisfies the Specified require
intent Si for executing a system in order to identify any BPS, error oF missin ments, Test is
ees othe actual desire or requirements 1 Fequirements in
a ig tested for validating and verifying software to ensure the
vents that guided its design and development and works as exp.
independent view of software to allow the business to appreci
iolders with information about
B Software with the
business. and technical
ected, It also provide an
iate and understand the
eu
abjctives
‘shot software implementation.
software Testing Necessicity
Software testing is very important because of following reasons.
+ Software testing is required to point out the defect and errors that were made
during the development phases.
+ Itis essential since it makes sure of the customer's reliability and their satisfaction
in the application.
* Itis very important to ensure the quality of the product.
Testing is required for an effective performance of software product.
Testing is necessary in order to provide the facilities to the customer like the
delivery of high quality product or software application which requires lower
maintenance cost.
‘oftware Testing Objectives
Themajor objectives of software testing are as follows:
Finding defects which may get created by the programmer while developing the
Software,
Gaining confidence in and providing information about the level of quality
To make sure that the end result meets the business and user requirement
. - lity product.
To gain the confidence of the customers by providing them a quali) P
usin
‘Scanned with CansScannerinputs to the test and the expected
From the de:
ae “en Of test cases we get test case list. After that we prepare the test data. Test data
ne me ts which have been devised to test the system. Test data can be generated
‘cally or manually. From this step we get test data set. Then we run the program with
rate the result. Finally we compare the test result to test cases
Test ]
reports
test data for all test cases and gene:
and generate the test report.
‘Run program ‘Compare
test case with fest data ae
Fig: Software Testing Process
Test Case and Test Data
‘A test case is a set of actions executed to verify a particular feature or functionality of your
software application. It is a document, which has a set of test data, preconditions, expected
results and post conditions, developed for a particular test scenario in order to verify
compliance against a specific requirement. Test Case acts a5 the starting point for the test
execution, and after applying a set of input values; the application has a definitive outcome and
Teaves the system at some end point or also known as execution post condition.
‘The test case includes specific variables or conditions, using which a testing engineer can
i capa
yhether a software product is functioning as
.d actual results to determine w!
compare expected an
per the requirements of the customer:
that can be tested. It is a collective set of test
jo is defined as any functionality #
eee 7s testing team to determine the postive and negative characteristics of the
ona whic — gives a high-level idea of what we need to test.
project. Tes!
Importance of test cases
ases hel rify conformance to applicable standards, guidelines and
Te ip to ver ance to apy
. ‘est cases hel
st irements
omer Fequi
F validate expectations and customer requirements
0
Ips you t«
: — a control, logic, and data flow coverage
_ Increas
———
Scanned wth Camscaner140
D. Sorrwane Exomersuxa
‘You can simulate ‘real’ end user scenarios
Exposes errors or defects
When test cases are written for test execution, the test engineer's work will be
organized better and simplified
Practices of Creating Test cases
‘Test Cases should be transparent and straightforward
Create Test Case by keeping the end user in the mind
Avoid test case repetition
You need to make sure that you will write test cases to check all software
requirements mentioned in the specification document
Never assume functionality and features of your software application while
preparing a test case
Test Cases must be readily identifiable
Typical Test Case Parameters
Test Data
Test Case ID
Test Scenario
Test Case Description
Test Steps
Prerequisite
Test Data
Expected Result
‘Test Parameters
Actual Result
Environment Information
‘Comments
Test Data in Software Testing is the input given to a software program during test execution. It
represents data that affects or affected by software execution while testing, Test data is used for
both positive testing to verify that functions produce expected results for given inputs and for
negative testing to test software ability to handle unusual, exceptional or unexpected inputs.
Poorly designed testing data may not test all possible test scenarios which will hamper the
quality of the software.
Scanned wth Camscanerlt
for
for
ts.
the
‘Example:
Test cases for the Test Se
Check
Check system behavior when i
system
Software Testing O Hoare L a] 1m
enario: Check the Login Functionality would be
behavior when valid email id and password is entered,
invalid email id and valid password is entered.
Check system behavior when valid email id and invalid password is entered,
© Check system behavior
+ when invalid email id and invalid password is entered,
Check system behavior when email id and password are left blank and Sign in
entered.
Check Forgot your password is working as expected
Check system behavior when valid/invalid phone number and password is
entered.
Check system behavior when "Keep me signed” is checked
“Vest Cose iD.
Test Case Description
Login-Positive test case | Test Priority
Pre-Requisite Avaiid user account _ | Post-Requisite
Test Execution Steps:
eee Test =
“Output. Comments
1. [lounch | tipsil/wwwface |Facebook |Facebook | IE-11 | Pass | Launch
application [Link] home [home successtul
2. perme! email ID: Login Login IE-11 }| Pass | Login
oll & password | test@xyz,.com success |success successful
‘and hit login Password
button 7
i | ae + z
a : sabpo Imes u Stegin-tB
es Case | Login-Negati
Description ae Negotive testes Ponty
Pre-Requistte NA
Post-Requisite NA
‘Scanned with CanScanner2) sorreans ENGINEERING
w
fest Execution Steps: ~
‘Action Inputs Expected | Actual Oulpuf Test. J Tests] evn)
Output = } prowser'| Comimenis|
[tounch hiips:/iwww. “|Facebook [Facebook | _IE-I1 Launch
lopplication _|[Link]/ |home home successful
Enter invalid | email ID: The — Email[the Email! 1-11 | “Pass | Invalid
Email & |invalid@[Link] |address or | address or Login
password and | Password phone phone number, attempt
hit \ogin|***** number that|that you've stopped
button you've entered
entered doesn't match
doesn't match| any account
‘ony account|sign up for an
sign up for an| account.
Jeccount.
3. [Enter invalid | Email ID: |ihe password |The password | IE11 | Pass | invalid
Email 8|valid@[Link] | that you've _| that you've Login
password and | Password enteredis —_enteredis attempt
hit login | +" incorrect. incorrect. stopped
button Forgotten _| Forgotten
| password? | password?
Software Testing Levels
Testing levels are basically to identify missing areas and prevent overlap and repetition
between development life cycle processes. In life cycle process, there are different phases and
each phase goes through testing. Hence there are various levels of testing which are as follows:
1. Unit Testing
It is basically done by the developers to make sure that their code is working fine and
meet the user specifications. They test their piece of code which they have written like
classes, functions, interfaces and procedures.
2. Component Testing
The component testing is concerned with testing the functioning of clearly identifiable
components. It is also called as module testing. The basic difference between unit testing
and component testing is, in unit testing the developers test their piece of code but in
component testing whole component is tested, For e.g. in a student record application,
there are two modules one which will save records and other module is to upload the
result of students both the modules are developed separately and when they are tested
one by one then we call this as a component or module testing, Software components are
often composite components that are made up of several interacting objects. Testing
components should therefore emphasize on showing that the component interface
behaves according to its specification, There are different types of interface between
program components and consequently different types of interface error that can occur.
Scanned wth CamscanerDifferent interface errors that may occur in component are as follows:
3.
©
Software Testing O ey “a
Parameter '
Smeter Interface: these are interfaces that are used to pass data or references
form one function to another,
Procedural Interfaces:
These are interfaces in which one component encapsulates a
Set of procedures that
can be called by another component.
Shared Memory Interface:
shared between components
component and retrieved fror
‘These are interfaces in which block of memory is
of software. In shared memory data is placed by one
*m there by other subsystem,
Message Passing Interface: These are interfaces in which one component request a
service from another component by passing message to it.
Interface Misuse: This type of error occurs when a calling component calls some
other component and makes an error in the use of its interface. This type of error
occurs with parameter interfaces.
Interface Misunderstanding: This type of error occur when a calling component
misunderstands the specification of the interface of the called component and
makes assumptions about its behavior.
Timing Error: This type of error occurs in real time systems which use shared
memory or message passing interface when producer of data and the consumer of
data may operate at different speeds.
Integration Testing
Integration testing is done when two modules are integrated, in order to test the a
and functionality of both the modules after integration, Defects in the component that
have been missed during component testing are discovered during integration testing.
Integration testing follows two approaches known as top down and bottom up approach
Integral
a.
i ice from top to bottom, following the
integration: Testing takes place :
Topedown interaton,Tving hss om toon
Components or systems are substituted by stubs.
Module 1
Module 3} | Te Down
Module 2
ES
Scanned wth Camscaner144
4.
D Sorrware Bxourenuxa
b. Bottom-up integration: Testing takes place from the bottom of the control flow
upward. Components of system are substituted by drivers.
[Bese stomer
+
Modules] [Module Module 6
System Testing
In system testing the behavior of whole system/product is tested as defined by the scope of
the developed project or product. It may include tests based on risks, requirement
specifications, business process, other high level descriptions of system behavior,
interactions with operating system etc. System testing is most of the final test top verify that
the system to be delivered meets the specification and purpose. It should investigate both
functional and non-functional requirements. System testing is carried out by specialist tester
or independent testing team with no involvement from designers and programmers. System
testing should focus on testing interactions between the components and objects that make
up a system as well as test the reusable components or system to check that they work as
expected when they are integrated with new components.
Acceptance Testing
After the system test has corrected all or most defects, the system will be delivered to the
user or customer for acceptance testing, The goal of acceptance testing is to establish
confidence in the system, it is most often focused on a validation types testing. This is
arguably most important type of testing as it is conducted by the quality assurance team
who will check whether the application meets the intended specifications and satisfies
the client requirements. The QA team will have a set of prewritten scenarios and test
cases that will be used to test the application. Acceptance testing can be performed in two
phases:
* Alpha Testing: This test is the first stage of acceptance testing and will be
perfotined in development side amongst the developer and QA team to ensure
that software is fit for release and has required level of quality.
* Beta Testing: This test is performed after alpha testing has been successfully
performed. In this testing a sample of intended audience tests the application, Beta
version of application is ideally distributed to a wide audience on the web, partly
to give the program a real world test and partly to provide a preview of the next
release,
Scanned wth Camscanersoftware Testing O
‘GGASRTER GS 145
Testing can be performed without having any knowledge of the interior workings of the
application as well as by having knowledge of implementation detail of software system, There
arr ewo testing methods which are black box testing and white box festing,
Black Box Testing
Black box testing isthe technique of software testing in which without having knowledge of the
interior working, application is tested to check the relationship between its input and output, In
this testing, knowing the specified function that a product has been design to perform, test can
be conducted that demonstrate each function is fully operational. The tester is oblivious to the
system architecture and does not have access to the source code. Typically, when performing a
black box test, a testing will interact with the system's user interface by providing inputs and
examining output without knowing how and where the inputs are worked upon. In black box
testing, system is like black box whose behavior can only be determined by studying its input
and related outputs.
Black box testing is also called functional or behavioral testing focuses on functional
requirement of software ie. tester is only concerned with functionality not the implementation
of software. This testing is especially applicable to perform system testing. Black box testing
attempts to find errors in the following categories:
‘* Incorrect or missing functions.
© Interface error.
* Error in data structure.
* Behavior or performance
‘* Initialization or termination error.
Advantages
+ Well suited and efficient for large code segments,
* Code access is not required.
© Clearly separates user's perspective from developer's perspective through
visibly defined roles.
© Large no. of moderately skilled testers can test the application with no
knowledge of implementation, programming language or operating system.
Disadvantages
Limited coverage since only a selected number of test scenarios are actually
performed,
Inefficient testing due to fact that the tester only has limited knowledge about an
application.
Scanned wth Camscaneran EXGINEERING
“
- age, since the tester cannot ta ii
puna Coverag "Bet specific code segments or eror prone
areas.
he test cases are difficult to design,
¢ BOX Testing
whit
vite box testing is an approach to testing where the tests are derived from
aes stactre and Implementation. Its the detailed investigation of int
ore ofthe software system, In this testing, knowing the internal working
E— ducted to ensure that,
knowledge of
mal logic and
‘ of the product,
testcase can be com internal operations are performed according to
epeifications and all internal components have been adequately exercised. In order to perform
white box testing in an application, the tester needs to process knowledge of internal workings
ofthe code, the tester needs to have look inside the sources code and find out which unit chunk
af the code is behaving in appropriately. Using white box testing, the software can derive test
| cases that:
+ Guarantee that all independent paths with a module have been exercised at least
once.
| + Exercise all logical decisions on their true and false value.
} + Execute all loops at their boundaries.
This method is usually applied to relatively small program unit, subroutine and operations
such as unit testing, component testing and integration testing. It is also known as clear box
testing, glass box testing or structural testing.
Advantages
As the tester has knowledge of source code, it becomes very easy to find out which
type of data can help in testing in optimizing the code.
Ithelps in optimizing the code.
Extra lines of codes can be removed which can bring in hidden defects.
Due to tester’s knowledge about the code, maximum coverage is attain
test scenario writing,
5 Pidvantages
ted during
fl ing, the costs are
Due to fact that a skilled tester is needed to perform white box testing,
increased,
' (0 find out hidden
Sometimes it is impossible to look into every nook and corners t
errors that May create problems as many paths will go untested. and
7 analyzers
1s dificult to maintain as the use of specialized tools like code 217
de
bugging tools are required.
Seamed wth Camscanner1
|
Software Testing O EAR “I
Difference between Black box Testing and White box Testing
5 SS blak boxtesting : Ti Wihife box fesiing 02
|: The internal workings of an applications|1. Tester has full knowledge of the internal
Ore Not required to be known working of the application.
- Aso known as closed -box, data driven off2. Also known as clear box, structural or code)
functional testing. based testing,
; Performed by end users and also by{3. Normally done by testers and developers.
testers and developers
|é: Testing is based on extemal expectations|4, Infernal workings are fully known and tester
internal behavior of application is) can design test data accordingly.
unknown.
This is least time consuming _and|5. The most exhaustive and time consuming.
exhaustive.
\6._Not suited to algorithm testing 6. Suited for algorithm testing.
[7. This can only be done by trial and error7. Data domain and intemal boundaries car|
method be better tested,
. This type of testing always focus on what is|8. This type of testing always focuses on ho
performing or carried out itis performing.
lp. Mainly applicable to higher levels off?. Mainly applicable to lower levels of testing|
testing such as system testing and) such [Link] testing, integration testing etc.
acceptance or release testing.
10. itis performed by testing team’ [Link] performed by developer themselves.
1 1. Basis of test case is requirement [Link] of test case is detail design of the]
specification. system.
‘This is the type of black box testing that is based on the specifications of the software that is
being testing. The applications is tested by providing input and then the resulls are examined
that need to conform to functionality it was intended for. Functional testing of software
‘ducted on a complete, integrated system to evaluate the system's compliance with its
speci Tequirements, There are five steps that are involved when testing an application for
speci
functionality. ™
“The determination of functionality that the intended application is meant to
perform.
‘The creation of test data based on specifications ofthe application.
‘The output based on est data and the specification ofthe application,
“The writing of test scenarios and executing of test cases,
‘The comparison of actual and expected resulls based on executed test cases,
.e com
I SETS a
Scanned wth Camscaner148 CD) Sorrwane Exaineremna
Non-functional Testing
Non-funetional testing is based upon the testing of the application from its non-functional
attributes such as performance, security, user interface ete.
Performance Testing
Performance test have to be designed to ensure that the system. can process its intended load.
‘This actually involves planning a series of tests where the load is steadily increased until system
performance becomes unacceptable. Performance testing is concerned with both demonstrating
that the system meets its requirement and discovering problems and defects in the system.
‘There are different causes which contribute in lowering the performance of software.
«Network delay
«Client side processing
© Database transaction processing
+ Load balance between servicers
«Data rendering
Performance testing is considered as one of the important and mandatory testing type in terms
of aspects such as: Speed, capacity, stability, scalability. Performance testing can be qualitative
or quantitative and can be divided into two sub-types such as load testing and stress testing.
Path Testing
Path testing is a structural testing strategy whose objective is to exercise every independent
execution path through a component. The objective of path testing is to ensure that the set of
test cases is such that each path through the programs is executed at least once.
{All conditional statements are tested for both true and false value and cases. The starting point
for path testing is a program how graph. This is a skeletal model of all paths through the
program. A how graph consist of nodes representing decision and edges showing how of
control.
Software quality management is concerned with ensuring that software has a low number of
defects and that it reaches the required standard of maintainability, reliability, and portability
and so on. It concerned with ensuring that the required level of quality is achieved in a software
product. Quality management involves defining appropriate quality standards and procedures
and ensuring that these are followed and should aim to develop a quality culture where quality
is seen as everyone's responsibility. Quality management is particularly important for large and
Scanned wth Camscanersoftware Testing © (GCHAPTER'92"y 149
entation is prepared which is record of progress and
ts continuity of development as the development changes. ou smaller system, quality
ee A 5 documentation and should focus on establishing a quality culture and
ae aril a members have a positive approach to software quality. Software quality
‘management for large systems can be structure into three main activities.
complex system in which quality docum:
Quality Assurance
Software quality assurance is the establishment of a framework of organizational procedures
and standards that lead to high quality software. It is the process of defining how software
quality can be achieved and how the development organization known that software has
required level quality. Quality assurance is primarily concerned with defining or selecting
standards that should be applied to software development process or product. Two types of
standards that may be used as part of QA.
+ Product Standards: These stands apply to the software product being development
they include document standards, such as structure of requirement document,
coding standard that define how a programming language is used etc.
* Process Standard: These standards define the process that should be followed
during software development they may include definition of specification, design
and validation process and description of documents that should be written in the
course of these process,
Quality Planning
Quality planning is the process of selecting appropriate procedure and standards from the
framework and adapted for a specific software project and modifies these as requited.
It is the process of developing a quality plan for a project. It includes the desired software
qualities and describes how these are to be accessed. So, quality planning defined what high
quality software actually means,
‘The quality planning should select those organizational standards that are appropriate to a
parca product and development process. It varies on type of and size of system that is being
d eveope The quality plan defines the most important quality attributes for the software and
reas a oe of the quality assessment process, Some of the software quality attributes
ee does during the quality planning process are listed below: Safety,
a ly Portability, Security, Testability, Usability, Reliability, Adaptability,
1 Resi ‘ _
eee ilience, Modularity, Efficiency, Robustness, Complexity, Learnability,
‘The quality plan should include:
Product _ ste
uct intro: It includes description of product, its intended market and quality
expectations for the product.
Scanned wth Camscanersano
(a sore ENOINEE
190 project plan: It includes critical release dates and Tesponsibiliti
+ Pe plan for distribution and product servicing, es for product along
ss description: It includes development and service
{for product development and management, Process that should be
use’
quality Goals: It includes the quality goals and plans for the:
aah Sr :
i identification and justification of critical product quality atau including
ibutes.
risk and Risk Management: It includes key risk that might affect ,
and action to address these risks Product quality
quality Control
control provides monitoring the software development process to ensure that quality
searance procedures and slandards are being followed, The deliverables from the software
jeeelopment process are checked against the defined project standards in the quality control
The quality of software project deliverables can be checked by regular quality reviews
Quality
process.
and/or automated software assessment. Quality reviews are performed by a group of people.
They review the software and software process in order to check that the project standards have
been followed and that software and documents conform to these standards. in review process
diferent types of review are design or program inspections, progress review and quality
review.
‘Automated software assessment processes the software by a program that compares it to the
Sondards applied to the development project. This assessment involves a quantitative
‘measurement of some software attributes.
ension of a particular
ofa characteristic of
sed to gather
Ameasurement is a manifestation of the size, quantity, amount or dim
atrbutes ofa product or process. Software measurement isa titrate impute
2 Software product or the software process. Software measurement oN be u
aaa data about software and the software process.
‘1S measured to:
* Create the quality of the current product or process:
Anticipate future qualities of the product or Process:
Enhance the quality of a product or process:
edule.
Regulate the state of the project in relation to budget and se
Scanned wth CamscannerSoftware Testing O RGHARYERI@Ey 151
Software Measurement Process
Soft i
Ser ware measurement process is a part of quality control process in which each components of
ne system is analyzed:separately and different values of their metric are compared with each
other as well as historical data that were collected from previous projects. The key stages in
measurement process are:
3 Choose measurement to be made: In this stage, the measurement question is
formulated to which measurement required to answer.
Select component to be assessed: In this stage, the critical components of system
are selected for finding the metric values.
Measure component characteristics: In this stage, the selected components are
measured and metric values are computed using automated tools.
d. Identify anomalous measurements: After finding the metric values for all the
selected components, these should be compared to each other and to previous
measurements which have been already recorded.
e. Analyze anomalous components: in this stage, after finding the anomalous
components and their metric valuses it is decided whether quality is comprised in
those component s or not.
Product Metrics
Software product metrics are measures of software products such as source code and design
documents. These are measures of software development process and concerned with
characteristics of the software itself. For example, the size of the software is a measure of
the software product itself. Products metric are of two types:
Dynamic metrics are the metrics collected by measurement made of a program in execution.
These are usually quite closely related to software quality attributes. It is relatively easy to
measure the execution time required for particular tasks and to estimate the time required to
start the system.
other hand, static matrices are collected by measurements made of the system
Cee tation such as design; documentation and source code ete. These have an indirect
represent
ae ity attributes. A large number of these matrices have been proposed to try
ith quality attributes. A e
vce and ‘addate the relationship between the complexity, understandability, and
to deriv
maintainability.
1509000
The International Standar.
bodies. The work of Pre
dis Organization (ISO) is a worldwide federation of national standards
paring international standards is carried out through ISO technical
$A
Scanned wth Camscaner152 D Sorrwane Exomnenina
committees. Each member body interested in a subject for which a technical committee has been
established has the right to be represented on that committee. In liaison with International
Standards Organization, international organizations (governmental and nongovernmental) also
take part in the work. The emphasis for international standards originated in the European
‘Community's plan to become a single market with international standards becoming effective at
the end of 1992. At that time, organizations wishing to do business in the common market were
required to meet those standards, which are now accepted worldwide. There are five related
quality management standards in what is referred to as the ISO 9000 series. Each of the five
standards (numbered 9000 to 9004) addresses a different topical area. For example, ISO 9000
affects the development and maintenance of software. In addition, the International Standards
Organization 9000 standard provides some basic definitions and concepts. It summarizes the
other standards in the series and explains how to select and use them. The International
Standards Organization 9001, 9002, and 9003 standards ensure external quality in contractual
situations. ISO 9004 contains guidance on the technical, administrative, and human factors
affecting the quality of products and services.
‘The five standards in the ISO 9000 series are: »
* 180 9000-1; Quality management and quality assurance standards—Part 1:
guidelines for selection and use.
+ ISO 9001: Quality systems—model for quality assurance in design, development,
production, installation, and servicing.
* 180 9002: Quality systems—model for quality assurance in production,
installation, and servicing,
© 180 9003: Quality systems—model for quality assurance in final inspection and
test.
© 180 9004-1: Quality management and quality system elements—Part 1: guidelines.
(CMM (Capability Maturity Model
It has long been accepted that continuous process improvement is based on many small
evolutionary steps rather than larger revolutionary innovations. The Capability Maturity Model
(CMM) provides a framework for organizing these evolutionary steps into five maturity levels
that lay successive foundations for continuous process improvement. This methodology is at
the heart of most management systems which are designed to improve the quality of the
development and delivery of all products and services.
The Capability Maturity Model for Software provides software organizations with guidance on
how to gain control of their process for developing and maintaining software and how to
evolve toward a culture of software engineering excellence. The CMM was designed to guide
software organizations in selecting process improvement strategies by determining current
process maturity and identifying the few issues most critical to software quality and process
improvement.
Scanned wth CamscanerLL
The following characterizations of the five matu
changes made at each level.
a
b.
«
Disciplined
process
Software Testing © WEHAPTERIONy 183
Constinuously
improving
. process,
Predictable
process
Standard,
consistent
process
Initial
(1)
Fig: Software Capability Maturity Model
rity levels highlight the primary process
Initial Level: The software process is characterized as ad hoc, and occasionally
even chaotic. Few processes are defined, and success depends on individual effort
Repeatable Level:
Basic project management processes are established to track
cost, schedule,
and functionality. The necessary process discipline is in place to
"Peat earlier successes on projects with similar applications
Defined Level: The software
activities is documented, stand,
Software process. All projects
organization's process for devel
Process for both management and engineering
lardized, and integrated into an organization-wide
use a documented and approved version of the
loping and maintaining software.
Scanned wth Camscanner|
ENGINEERING
SOFTRARE
4 a
Managed Level: At this level, organization set a
: duantitative quality goal for both
software process and software maintenance, Detailed measures of the softw:
oftware
process and product quality are collected, Botl
h the software
Process and
are quantitatively understood and controlled ce
using detailed measures,
Optimizing Level: The Key characteristic of this level is focusing on continually
improving process performance through both incremental and innovative
technological improvements. At this level, changes to the process are to improve
the process performance and at the same time maintaining statistical probability to
achieve the established quantitative process-improvement objectives.
1. What do you mean by verification and validation? Explain software inspection process
with block diagram.
2. What do you mean by software testing? Differentiate between black box testing and
white box testing.
Explain different levels of software testing.
What do you mean by test case and test data? Explain software testing process.
Define quality management. Explain quality management activities.
What do you mean by quality standard? Explain IS09000 model
Explain capability maturity model with block diagram.
goa
Scanned wth Camscanner