-
8/2/2019 Session 1 Software Testing an Introduction V1
1/30
2007, Cognizant Technology Solutions. All Rights Reserved.The information contained herein is subject to change without notice. C3: ProtectedC3: Protected
Fundamentals of
Software Testing
Session 1: Software TestingAnIntroduction
-
8/2/2019 Session 1 Software Testing an Introduction V1
2/30
About the Author
Created By: Vijayan Kanagaraj (223562) ; Ramesh Kumar, Moses
(125587)CredentialInformation:
Vijayan holds a B.Tech degree and has 8 years ofExperience in Software Testing
Moses has an MCA degree and has 11 years ofExperience in Software Testing
Version and
Date:
ST/PPT/2010/1.0
2
-
8/2/2019 Session 1 Software Testing an Introduction V1
3/30
Icons Used
3
Questions
Contacts
Reference
Try it Out
Hands-onExercise
CodingStandards
Test YourUnderstanding
Tools
AWelcomeBreak
-
8/2/2019 Session 1 Software Testing an Introduction V1
4/30
4
Software TestingAn Introduction:Overview
Introduction: This session gives an overview on Software Quality
and Software Testing. It helps the audience
understand the necessity and the key aspects of
Software Testing.
-
8/2/2019 Session 1 Software Testing an Introduction V1
5/30
Software TestingAn Introduction:Objectives
After completing this session, you will be ableto:
Define Software Quality
List the Software Quality Attributes
Describe Verification and Validation
Define Software Testing
Recognize the significance of Software Testing
Recognize how testing improves Software Quality
Discuss the history and evolution of Software Testing
Describe Software Testing Principles Define Software Defect
Recognize the significance of Software Defect
Describe the Software Testing Model
5
-
8/2/2019 Session 1 Software Testing an Introduction V1
6/30
6
Software Quality measures how well the software is designed
(quality of design), and how well it conforms to that design
(quality of conformance).
Two Dimensions of Software Quality are:
Producers view (by Phil Crosby) Meeting therequirements specification
Consumers view (by Deming & Juran) Fit for use
The major premise of Software quality is to focus on continuous
improvement best illustrated by the Demings wheel or the
PDCA cycle.
Software Quality
-
8/2/2019 Session 1 Software Testing an Introduction V1
7/307
Software Quality attribute is a property of a software product that are
and should bequantifiable in specifications by appropriate and
practical scales of measure.
The ISO software-quality model [ISO 2001] defines six quality-
attribute categories:
Functionality Meeting the requirements
Reliability Trustworthiness of the Software
Usability User friendliness
Efficiency Amount of computing resources and code required by a
program to perform a function
Maintainability How easy it is to modify the existing code and reuse for
future changes
Portability How easy it is for the software to adapt itself to various
operating environments
Software Quality Attributes
-
8/2/2019 Session 1 Software Testing an Introduction V1
8/30
Key Processes to Improve SoftwareQuality
Verification:
Process of confirming that anysoftware developmentconforms to its standards andmeets the specification
Refers to the review process,which includes reviews,inspections and Walk through
Helps to verify if the applicationis built to meet therequirement/design
specifications - Are we buildingthe product right?
Process of reviewing the designdocuments created during eachphase and linked to Testingactivities like creation of TestPlan, Test Design
Validation:
Process of confirming thatevery software meets theuser's requirements
Validation is the TestingProcess and it includes fewtechniques like Black BoxTesting & White Box Testing
Helps to validate if theapplication will meet userneeds - Are we building the
right product?
Process of executing the Testsat the various levels
Both Functional and Nonfunctional requirements aretested using Validation
8
Verification and Validation are key Processes to improve SoftwareQuality.
-
8/2/2019 Session 1 Software Testing an Introduction V1
9/309
Verification Vs. Validation
Verification Validation
This process focuses upon theprocess of developing and testing asoftware in an Organization.
This process focuses on the productafter the development phase orduring the development
Verification begins in the initialphase and will be always associated
with all the phases of SDLC
Validation appears after codingphase
Primarily, Quality Assurance (QA )engineers will be involved in theprocess of verification
Primarily, test engineers will beinvolved in the phase of validation.
Are we building the Product Right? Are we building Right Product?
Testing is a validation process to improve the quality of the software.
-
8/2/2019 Session 1 Software Testing an Introduction V1
10/30
Computer System Failures Causedby Software Defects
Reliability and performance of Software systems is of crucial
importance for the effective and efficient management of oursocial systems, be it business or otherwise.
10
Photo of what is possibly thefirst real bug found in acomputer.
Two adjacent roads both get thegreen light at this T-intersection.This is a classic example of aSoftware failure which mightresult in loss of life.
-
8/2/2019 Session 1 Software Testing an Introduction V1
11/30
What is Software Testing
Introduction: Software Testing is an activity that helps inidentifying bugs/defects/errors in a software systemunder development, in order to provide a defect-freeand reliable system/solution to the customer.
Software Testing is the process of questioning aproduct in order to evaluate it, where the"questions" are things the tester tries to do with theproduct, and the product answers with its behaviorin reaction to the probing of the tester.
Software Testing helps to identify the correctness,completeness, and quality of developed computersoftware.
11
-
8/2/2019 Session 1 Software Testing an Introduction V1
12/30
Why is Software Testing Necessary?
Significance of Software Testing:
To produce a quality product, which is defect free. To make sure all the requirements are satisfied and
the best design system architecture is used.
To ensure Customers/user satisfaction.
To reduce the possible risks associated with the
software, thereby reducing the loss.
12
A clever person solves a problem. A wise personavoids it.- Albert Einstein
-
8/2/2019 Session 1 Software Testing an Introduction V1
13/30
How Testing Improves the SoftwareQuality
Testing helps to measure the quality of software interms of the number of defects found, the tests run,and the system requirements covered by the tests.
Testing helps to find defects and the quality of thesoftware increases when those defects are fixed therebyreducing the overall level of risk in a system.
Testing helps to improve the quality by ensuring theproduct:
meets the user requirements
meets the conformance standards & Guidelines,
meets the performance standards
provides stability to the system
13
-
8/2/2019 Session 1 Software Testing an Introduction V1
14/30
How Testing Improves SoftwareQuality (Contd.)
What is a Software Defect? Software Defect can be defined as nonconformance to
requirements or functional specification.
Software defect is a common term used to describe error, fault,
failure, bug, defect, etc.
Software defects are classified based on severity and priority.
Common reasons for a defect in a software:
Misinterpretation/Misunderstanding of Business Requirements
Changing requirements Software Complexity
Poor Design/Coding logic
Human errors
14
-
8/2/2019 Session 1 Software Testing an Introduction V1
15/30
Significance and Cost of SoftwareDefect
The presence of defects in a
Software system has anegative impact on thequality of the Software andshows the deviations in thedesign practice andprinciples.
The cost of defect is directlyimpacted by when thosedefects are found.
The cost of finding andfixing defects rises
considerably across the lifecycle.
15
-
8/2/2019 Session 1 Software Testing an Introduction V1
16/30
History and Evolution of SoftwareTesting
Software has been tested as
early as software has beenwritten. The concept oftesting itself evolved withtime.
Debugging oriented
Demonstration oriented Destruction oriented
Evaluation oriented
Prevention oriented
16
-
8/2/2019 Session 1 Software Testing an Introduction V1
17/30
Basics of Software Testing
What to test?
To test that the Product has been developedaccording to specification
To test that the functionality is working well
To test that the product satisfies user requirements
How to test? Manually
Using tools
Both manually and by using tools
17
-
8/2/2019 Session 1 Software Testing an Introduction V1
18/30
Basics of Software Testing (Contd.)
When to stop testing?
Critical or Key Test cases successfully completed.Certain test cases, even if they fail, may not be showstoppers.
Testing budget of the project or when the cost of
continued testing, does not justify the project cost. Functional coverage, code coverage, meeting the
client requirements as per the target benchmark.
Defect detection rates fall below certain specifiedlevel & High priority bugs are resolved.
18
-
8/2/2019 Session 1 Software Testing an Introduction V1
19/30
General Testing Principles
A number of testing principles have beensuggested over the past 40 years and offergeneral guidelines common for all testing.
Principle 1 Testing shows presence of defects
Principle 2 Exhaustive Testing is impossible
Principle 3 Testing can start as early in theSDLC
Principle 4 Defect clustering
Principle 5 Same Tests repeated over a period oftime reduces Test Effectiveness
Principle 6 Testing is context dependant
Principle 7 Absence-of-errors fallacy
19
-
8/2/2019 Session 1 Software Testing an Introduction V1
20/30
Alignment of Testing Model to VariousDevelopment Methodologies
Various generic software development life cyclemethodologies are available for executingsoftware development projects.
Each process model follows a particular lifecycle in order to ensure success in process ofsoftware development.
Basic popular methodologies that are adoptedfor software development:
Waterfall
Iterative
Spiral
Agile
20
-
8/2/2019 Session 1 Software Testing an Introduction V1
21/30
Testing Process for A WaterfallDevelopment Methodology
21
RequirementsStudy &Analysis
Design, Code,& Unit Test
TestingSystemTesting
ComponentIntegration
Testing
TestDesign
TestRequirementAnalysis &
Test Planning
SDLC STLC
SystemIntegration
Testing
d l d l f f ll
-
8/2/2019 Session 1 Software Testing an Introduction V1
22/30
V ModelTesting Model for WaterfallMethodology
The V-Model is the Testing model adopted while the
development methodology is Waterfall. Instead of goingdown in a linear way the process steps are bentdownwards to UAT, to form the typical V -Shape.
V-model illustrates how testing activities (Verificationand Validation) can be integrated into each phase of thesoftware development life cycle.
22
-
8/2/2019 Session 1 Software Testing an Introduction V1
23/30
T i P i A il D l
-
8/2/2019 Session 1 Software Testing an Introduction V1
24/30
Testing Process in Agile Development(Contd.)
Agile Development Testing Process
24
Feature ADesign Develop Test
Rework
Feature BDesign Develop Test
Rework
Feature CDesign Develop Test
Rework
Feature DDesign Develop Test
Rework
Feature EDesign Develop Test
Rework
Cross-Functional Team (Designers, Developers, Testers)
-
8/2/2019 Session 1 Software Testing an Introduction V1
25/30
Allow time for questions from participants
25
-
8/2/2019 Session 1 Software Testing an Introduction V1
26/30
Test Your Understanding
1. What is the primary objective of testing?
A. To show that the program works
B. To provide a detailed indication of quality
C. To find errors
D. To protect the enduser
2. Pick the best option for quality
A. Quality is job done
B. Zero defects
C. Conformance to requirements
D. Work as designed
26
S ft T ti A I t d ti
-
8/2/2019 Session 1 Software Testing an Introduction V1
27/30
Software TestingAn Introduction:Summary
Heres a brief recap of this session:
Each Software has various quality attributes.
The quality of a software program can be improvedusing Verification and Validation processes.
Verification refers to reviews, checklist, and similar
process related activities. Validation is primarily testing of a developed
software against the requirements specifications.
Validation helps in identifying whether the rightproduct is built based on the specification.
Software Testing is an activity that helps in locatingbugs/defects/errors in a software system.
27
S ft T ti A I t d ti
-
8/2/2019 Session 1 Software Testing an Introduction V1
28/30
Software TestingAn Introduction:Summary (Contd.)
Software defect is a common term used to describe
error, fault, failure, bug, defect, etc. and there aredifferent stages of software defect life cycle.
Software testing reduces the likelihood of failure andensures that the probability of the Software meetingthe standards specified by the user is high.
Complete testing is not possible for almost allprojects and a determination needs to be made earlyon when to stop testing.
The V-Model demonstrates the relationships betweeneach phase of the development life cycle and itsassociated phase of testing.
The testing methodology may vary depending on thedevelopment methodology.
28
S ft T ti A I t d ti
-
8/2/2019 Session 1 Software Testing an Introduction V1
29/30
Software TestingAn Introduction:Source
Reference Websites:
www.onestoptesting.com
www2.sas.com
www.softwaretestinggenius.com
http://en.wikipedia.org/wiki/Software_bug
Reference Books: Software Testing FundamentalsConcepts, Roles, and
Terminology by John E. Bentley, Wachovia Bank, CharlotteNC
Basics of Software Testing by Divya Saxena
ISTQB
29
Disclaimer: Parts of the content of this course is based on the materials available from the Websites and
books listed above. The materials that can be accessed from linked sites are not maintained by Cognizant
Academy and we are not responsible for the contents thereof. All trademarks, service marks, and trade
names in this course are the marks of the respective owner(s).
http://www.onestoptesting.com/http://www.onestoptesting.com/http://www.softwaretestinggenius.com/http://en.wikipedia.org/wiki/Software_bughttp://en.wikipedia.org/wiki/Software_bughttp://en.wikipedia.org/wiki/Software_bughttp://www.softwaretestinggenius.com/http://www.onestoptesting.com/http://www.onestoptesting.com/ -
8/2/2019 Session 1 Software Testing an Introduction V1
30/30
2007, Cognizant Technology Solutions. All Rights Reserved.The information contained herein is subject to change without notice.
You have completed Session 1
of Fundamentals of SoftwareTesting.