S/w
Testing:
It is a process used to identify correctness,
completeness and quality of developed S/w application
Or
In simple S/w testing is a combination of
Verification and Validation
Advantages
of S/w Testing:
-it
will help to deliver reliable product to
the customer
-it
will reduce maintenance cost for a project
-it
will help to stay in Business
-to
deliver bug free application to the customer
Objective
of TE:
Objective
of TE is to identify defects in application, when those are resolved then S/w
quality improves
Defect:
It is a deviation between expected to actual results
in AUT
Defect can also called as an Issue/Incident/fault
AUT: Calculator
Scenario: multiplication
Procedure:
Click
on “9”
Click
on “*”
Click
on “5”
Click
on “=”
Expected
value is “45”
Actual
result is “14”
Status:
failed
Why?
a*b
a+bàLogical errors
note:
in general defects may present in application due to
human mistakes while writing the programs like logical errors and Syntax Errors
ex:
Required Scenario:
(Value1+Value2)*value3
Dev-1: (Value1*Value2)+Value3 àLogical
error
Dev-2: (Value1+Value2*value3 àSyntax Error
Error –it is a terminology related to programs level
Bug:
When developers are accepted our defects which are
reported then those are called Bugs
Failure:
When defects are reached to the end user then it is called failure
Quality S/w:
From producer point of
view when application fulfilled with all the client requirements and end
user point of view when application fit for use then it is consider as quality
s/w
Following are the major factors depend on S/w
quality:
i.
Budget/Cost
ii.
In time Release
iii.
Reliability
a. Meet
client requirements in terms of functionalities
b. Meet
client expectations in terms of speed, compatibility, security, usability,
recovery, maintainability …etc
Some of the major activities in S/w Company:
1.
Coding:
Writing the programs using
programming/scripting languages in order to develop the application is called “coding”
It is performed by Developers
2.
**Testing:
Once application developed that
will be delivered to separate testing team
Whereas TE’s will validate
application as per client requirements and expectations
Testing team members are:
-Test
Manager (>7+yrs of Exp)
-Test
Lead (> 5+yrs of Exp)
-Sr.
TE (> 3+yrs of Exp)
-TE/Trainee
(0-2+yrs of Exp)
3.
**Defect
Reporting:
Notifying about the defects to
developers is called Defect Reporting
It is performed by TE’s
4.
Debugging:
Analyzing source code of the
application in order to identify root cause for a defect
It is performed by Developers
5.
Bug
fixing:
Modifying source code of the
application in order to solve the defects is called Bug fixing/Bug Resolving
It is performed by Developers
Skill
set required for Functionality TE:
-knowledge on Manual testing concepts
-knowledge on any one of the Functionality testing
tool like Selenium/QTP
-knowledge on any one of the Defect Reporting tool
like Quality Center/Bugzilla
-some knowledge on any DB technology like SQL server/Oracle
Software
Testing Methods
In general organization follows two types of methods
to validate applications. They are
1. Manual
Testing
2. Automation
Testing
1.
Manual
Testing:
Without using any automation tool,
Test Engineer (TE) directly interacts with application to verify actual
behavior while performing operations is called Manual Testing.
For Manual Testing, TE will prepare
test cases and those are used to validate application.
Ex: I want to check a file is going
to upload in gmail or not.
2.
Automation
Testing:
Any task or activity performed with
help of tool/programs is called Automation.
Automating human activities (i.e.
Test Execution) in order to validate application is called Automation Testing.
Automation Testing can be performed using programs/scripting languages or using
any one of the third party automation tools like Selenium/QTP/Win runner/Rational
Robot/QA Run etc.
For automation testing we need to
develop the automation test scripts.
Roles
and Responsibilities of Test Engineer(3 + Years’ Experience of Manual and
Automation Testing:
1. Review
on Requirement Documents like BRS and FRS in order to understand application
functionalities.
2. Identify
Test Scenarios for allocated module.
Note:
Scenario is nothing but a functionality.
Test Scenario:
It describes test condition or requirement or functionality which we need to
validate.
Ex:
Identify Test Scenarios in gmail home page.
TS01:
Login to gmail
TS02:
Find my account
TS03:
Create new account
TS04:
Selection of language
3. Prepare
Test cases of Manual Testing.
Test case:
It describes validation procedure of a specific requirement in application.
Ex:
Identify possible test cases to validate login functionality.
TC01:
Verify login functionality using valid data.
TC02:
Verify login functionality using Invalid data.
TC03:
Verify login functionality without data.
Ex:
Write TC to verify login functionality using invalid data.
4. Develop
the automation test scripts
5. Review
on Test Cases and automation test scripts
6. Execution
of Test Cases and automation test scripts.
7. Defect
Reporting and Prioritize Defects.
8. Performing
Re-Testing and Regression Testing.
Skill Set
1. Knowledge
of Manual Testing
2. Knowledge
on Selenium/QTP
3. Defect
Tracking Tool
Software
Program
Set of Statements,
logics and related data to perform specific task in a system.
Eg:
Int a=10;
Int b=20;
Int c=a+b;
System.out.println©;
Task: To perform
Addition
10 & 20 are data.
Software:
Set of instructions or
programs to perform related activities in a system.
Based on Development
Software can be categorized into two types.
i.
Product Based Software
ii.
Project Based Software
i.
Product
Based Software:
Whenever
software developed based on generic/standard requirements of particular
industry or segment of people in the market then those are called Product Based
Software.
ii.
Project
Based Software:
Whenever
software developed based on particular organization or requirements then those
are called Project Based Software.
Client, End User and
Company
i.
Client/Customer:
It
is an organization or individual person who will provide requirements to
develop the software.
E.g.
www.grafx-itsolutions.com
-> client in “grafx-itsolutions” , it is an organization or single person.
Or
Who
will buy the license to use software.
ii.
End
User:
Who
will use software in their business with real data.
iii.
Company:
It
is an organization where software will be developed as per given requirements.
E.g.
www.webex.com
-> It is “Cisco” company product.
Based
on work there are two types of companies in IT Industry.
i.
Product Based Company
ii.
Service Based Company
i.
Product
Based Company:
Company
which will focus on their own products to develop.
E.g.
Google, Microsoft, HP, Dell, CISCO etc.
ii.
Service
Based Company:
Company
which will develop individual projects for individual clients.
Eg:
TCS, Infosys, Accenture etc.
Environment
Set
of software and hardware configuration to perform particular activities by
specific team.
There
are four types of environments for a project.
i.
Development Environment
ii.
Test Environment
iii.
User Acceptance Test Environment
iv.
Production Environment
i.
Development
Environment:
It
is also called producer environment. In
this environment development team will write the program in order to develop
the application as per requirements.
ii.
Test
Environment:
It
is also called staging environment.
Where separate testing involved to validate application as per client
requirements and expectations.
iii.
User
Acceptance Test Environment:
Where
client team involved in order to confirm application is acceptable or not.
iv.
Production
Environment:
Where end user will
uses S/W with real date in their business.
Based on usage S/W can
be categorized into two types.
1. System
Software
2. Application
Software
1
. System Software
It is
also called BIOS(Base Input/Output System).
Which are used to provide interface among the system components(i.e.
system booting)
Eg: Device drivers, operating system like windows,
unix, linux, solaris etc.
2.Application
Software
Also
called as Front-End application which are used to perform particular business
activities in a system. Whereas
Front-End used to manipulate data into back end.
Why
do you prefer Software Testing(Job)?
· It
is Technology independent
· Consistency
in Job activities(some roles and responsibilities)
· Scope
to learn different domains
· Basically
I am passionate about Testing activities where it more suitable for my thinking
abilities to break the system/to find loop holes in a system.
Common
problems in SDLC:
1.
Poor
Requirements:
When
initial requirements are not clear or incomplete to develop application
2.
Unrealistic
schedule:
If
too much of work crammed in a too little time
3.
Inadequate
Testing: (incomplete testing)
In
present scenario it is difficult to estimate how much testing sufficient to
validate application
4.
Dynamic
changes in Requirements:
When
client continuously sending changes in the requirements
5.
Miscommunication:
Lack
of communication among the associated project members
Q: When do defects will arise while developing application?
Due to human mistakes while
developing application
There is a possibility to defects
will arise
i.
Mistakes in Coding àcoding
defects
ii.
Mistakes in Design à
Design Defects
iii.
Wrong Requirements àWrong
project/Product
Note:
Correct Requirementsà
Design to meet Requirements àCoding to meet Design àRight
project/product
Q: do you think due to TE’s mistake
defects will arise while developing application?
No, due to TE mistake existing
defects are not identified (i.e. defects leakage)
Defect Repair cost w. r. to SDLC
phases:
In general defect repair cost is
estimated using following formula
(no.
of persons*no. of hours)
DRC=-----------------------------------------*cost
per person-hr
(no.
of defects resolved)
SDLC phases
|
Defect Repair Cost
|
Requirements
|
0% of cost
|
Design
|
10% of Cost
|
Coding
|
30% of Cost
|
Testing
|
50% of Cost
|
Maintenance
|
100% of cost
|
Q: when do you think testing activities should
start in development process of s/w? why?
Testing activities should start
early stages with development activities
Early stages identified defects
will take less cost to resolve those defects compare to later stages identified
defects
Quality
Management:
It is a process of preventing
defects while developing s/w to ensure there are no defects in final product
QM is divided into 2 parts
i.
Quality Assurance (QA)
ii.
Quality Control (QC)
i.
Quality
Assurance:
QA
team will define development process of S/w in order to prevent defects
QA
team will involve throughout life cycle to monitor and measure strength of
development process, if any weakness identified then they provide suggestion to
improve strength of development process
ii.
Quality
Control (QC)
QC
team will involve after product is built in order to identify any defects in
it, if any defects are identified then make sure those defects should be
resolved before deliver application to the client
Q: Explain
difference between QA and QC
QA
|
QC
|
It
is a process oriented
|
It
is product oriented(i.e. Out comes)
|
It
involve throughout life cycle
|
It
involve after product is built
|
**it
is a defects preventive approach
|
**it
is defects detective approach
|
Auditing,
Reviews are the QA activities
|
s/w
testing is an example of QC activity
|
SDLC
Methodologies/Models:
In general high level management team (i.e. QA Team)
will decide which model we need to follow to develop application
Based on need of client and complexity of
requirements we can adopt any one of the following SDLC model to develop
application
Note:
Case
study: {to select SDLC model}
1. need of client:
a.
Budget:
client-1:
normal cost
client-2:
low cost
b.
Time:{Actual duration for a project 12 months}
Client-3:
wait up to 12 months
Client-4: wait up to 8 months then expecting some partial
release
Client-5:
Wait up to 3 months then expecting whole system
2. complexity of requirements:
Scenarios:
Scenario-1:
small
project with clear requirements
Scenario-2:
big
project with clear requirements
Scenario-3:
incomplete
requirements
Scenario-4:
Risk
in Requirements
Scenario-5:
Dynamic
changes in requirements