Professional Documents
Culture Documents
Of
Software Testing
By
Mina Desai, Joint Director
Shampa Dey, Project Engineer
Contents
• Software Testing
• Need for Software Testing
• Role of Software Tester
• Qualities required for a good tester
• Testing Team Members
• Software Testing Misconceptions
• General facts about Software Testing
• Advantages of Software Testing
• Limitations of Software Testing
06/15/2020 www.cdac.in 2
Software Testing
• Software testing is a process
A process of analyzing a software item to detect the differences between existing and required
conditions (that is defects/errors/bugs) and to evaluate the features of the software item.
06/15/2020 www.cdac.in 3
Who can Test ?
• A company depending on its requirements can have a team with responsibilities to
evaluate the developed software in context of the given requirements.
• Moreover, developers also conduct testing.
• The following professionals are involved in testing a system within their respective
capacities −
1. Software Tester
2. Software Developer
3. Project Lead/Manager
4. End User
• Different companies have different designations for people who test the software on the
basis of their experience and knowledge such as Software Tester, Software Quality
Assurance Engineer, QA Analyst, etc.
06/15/2020 www.cdac.in 4
Need for Software Testing
Ariane 5 crash June 4, 1996
On June 4, 1996 Ariane 5 rocket launched by European Space Agency crashed about 40 seconds after takeoff
Loss was about half a billion dollars
Explosion was the result of a software error
Module was re-used without proper testing from Ariane 4
Error was not supposed to happen with Ariane 4
06/15/2020 www.cdac.in 5
Need for Software Testing
Testing looks at areas such as performance, stability and error handling by setting up
test scenarios under controlled conditions and assessing the results.
Software is mainly tested to see that it meets the customers’ needs and that it
conforms to the standards.
Software is considered of good quality if it meets the user requirements.
06/15/2020 www.cdac.in 6
Role of software tester
• Apart from exposing faults (“bugs”) in a software product confirming that the program meets the
program specification, as a test engineer you need to create test cases, procedures, scripts and
generate data.
• You execute test procedures and scripts, analyze standards and evaluate results of
system/integration/regression testing.
You also...
• Speed up development process by identifying bugs at an early stage (e.g. specifications stage)
• Reduce the organization's risk of legal liability
• Maximize the value of the software
• Assure successful launch of the product, save money, time and reputation of the company by
discovering bugs and design flaws at an early stage before failures occur in production, or in the field
• Promote continual improvement
06/15/2020 www.cdac.in 7
Qualities required for a good tester
Knowledge of technology
Technology in which the application is developed (added advantage) to design better and powerful test cases.
06/15/2020 www.cdac.in 8
Qualities required for a good tester
An explorer
Creativity
Attitude to take risk helps the testers venture into unknown situations and find bugs that otherwise will be looked
over.
Troubleshoot
Troubleshooting and figuring out why something doesn’t work
Confident and clear in communicating the defects to the developers.
06/15/2020 www.cdac.in 9
Qualities required for a good tester
Organized
Best testers realize that they too can make mistakes
They are very well organized
Using checklists, facts and figures to support their findings to use as an evidence
Double check their findings.
06/15/2020 www.cdac.in 10
Qualities required for a good tester
Defects are valuable
Good testers learn and improve from them.
A defect found early substantially costs less when compared to the one found at a later stage.
Defects can cause serious problems if not managed properly.
Learning from defects helps – prevention of future problems, track improvements, improve prediction and
estimation.
06/15/2020 www.cdac.in 11
Steps to Software Testing
1.
A Web Application
Software is developed
2.
Quality of the product
is not known
3.
How will be the
performance when
deployed 4.
Testing Team is required
to verify the quality
5.
Test Manager is required
to lead the team
06/15/2020 www.cdac.in 12
Software Testing Team
IT PROJECT TEAM
PROJECT MANAGER
BUSINESS TECHNICAL
SYSTEM ANALYST DEVELOPERS TESTERS
ANALYST ARCHITECT
TESTING TEAM
06/15/2020 www.cdac.in 13
Test Manager
06/15/2020 www.cdac.in 14
Role of Test Manager
prepares test strategy gathers the updates on testing progress
prepare the test budget identify the risk and priorities for testing
define test levels and test cycles design the testing approach, procedures and
techniques
develop strategy for estimating test effort
identify, evaluate and choose the testing tools
develop strategy for test documentation,
metrics and reporting set the strategy on the automation testing
guides and controls the testing teams co ordinate with other teams for software
releases
co ordinates with the test leaders and project
manger
06/15/2020 www.cdac.in 15
Test Leader
Each test group is led by a test leader.
The test leader performs the roles of test manager in absence of test
manager.
06/15/2020 www.cdac.in 16
Role of Test Leader
prepare the test plan at each test level based on set up the configuration management
test strategy
lead and conduct the meetings
define the objectives, test items, approaches, risk, review the test documents
contingencies in testing process
assign roles and provide schedule to testers co ordinate in the testing group
identify the test specifications test activities for monitor the testing and co ordinate the software
testers release
gather metrics and track the testing progress resolve the issues in the test groups
define entry and exit criteria guide the testers and prepare the test summary
report
define test environment and monitor the set up
process co ordinate for automation testing
design test documents templates
06/15/2020 www.cdac.in 17
Tester
The testers group consists of
06/15/2020 www.cdac.in 18
Role of Tester
gather the test requirements co ordinate with developers to ensure the
defect fixing process
review the project documents to understand
the requirements and identify the errors automate the tests and provide test support
assist the test leader to prepare the test plan develop the test specifications, conduct the
test and record the results for the different
create the test documents like traceability items of the software
matrix, test data and test cases
set up and verify the test environment participate in the review meetings
test the software at different levels and record assist the users in UAT (User Acceptance
the results Testing)
provide the test updates to test leader
identify, report and track the defects
provide the learning experience during the
project and document it
06/15/2020 www.cdac.in 19
Software Testing Misconceptions
REALITY
MISCONCEPTION
Just as every field has its misconceptions, so does the field of Software Testing.
06/15/2020 www.cdac.in 20
Software Testing Misconceptions
Misconception 1
100% defect- free product.
Reality 1
Uncover as many defects as possible while ensuring that the software meets the requirements.
Misconception 2
Easy
Reality 2
Can be difficult and challenging
06/15/2020 www.cdac.in 21
Software Testing Misconceptions
Misconception 3
Anyone can test
Reality 3
Testers require specific kinds of skills
Misconception 4
Too Expensive
Reality 4
Early testing saves both time and cost
06/15/2020 www.cdac.in 22
Software Testing Misconceptions
Misconception 5
Time consuming
Reality 5
Testing while developing is never time consuming. Diagnosing and fixing the errors may take some time.
Misconception 6
Complete testing is possible
Reality 6
The domain of possible inputs of a program is too large to be completely used in testing a system.
There are both valid inputs and invalid inputs
There may be different workflows
06/15/2020 www.cdac.in 23
Software Testing Misconceptions
Misconception 7
Automated testing eliminates the need for manual testing.
Reality 7
100% test automation cannot be achieved. Manual Testing, to some level, is always necessary.
Misconception 8
When a defect slips, it is the fault of the Testers.
Reality 8
Test strategy may result in bugs being missed by the testing team. It is the responsibility of all members,
including developers of a project.
06/15/2020 www.cdac.in 24
Software Testing Misconceptions
Misconception 9
Software Testing does not offer opportunities for career growth.
Reality 9
With increase in competing software and demanding users, the need for software testers to ensure high
quality software will continuously grow.
06/15/2020 www.cdac.in 25
General Facts about Software Testing
Testing can’t show that bugs don’t exist.
• You can perform your tests, find and report bugs, but at no point can you guarantee that there are no bugs.
06/15/2020 www.cdac.in 26
General Facts about Software Testing
Target environment and intended end user.
• Testing the application in the environment user is expected to use
• Single user / multi user system
Be the customer.
• Use the system as a lay user.
• Get a person who has no idea of the application to use it for a while.
06/15/2020 www.cdac.in 27
General Facts about Software Testing
06/15/2020 www.cdac.in 28
General Facts about Software Testing
06/15/2020 www.cdac.in 29
Testing - Advantages
06/15/2020 www.cdac.in 30
Testing - Advantages
Software Quality
Product must be of high quality
For quality, customers will surely pay more money.
Selling high-quality products build a strong reputation and brand image -
things that are important in the long-term.
06/15/2020 www.cdac.in 31
Testing - Advantages
Customer Satisfaction
Happy customer
Client can ask for a refund if the product does not suit him.
If the product is not reliable, you need to invest more money in fixing or
replacing it
It pays off to produce a higher quality product from the start.
06/15/2020 www.cdac.in 32
Testing - Advantages
Profit
Testing phase is not a cost, but a part of profit.
A good product needs less promotion - users will recommend.
Recommendation is the best and most valuable commercial you can get.
Help in retaining old customers and gaining new ones.
Cut down existing expenses – software does not need constant fixing.
Compromising on quality ends up with having to spend more money.
Avoid unnecessary expenses through customer support.
06/15/2020 www.cdac.in 33
Testing - Advantages
User Experience
User experience is a significant factor
Software needs to be simple, understandable, and easy to use.
Only testers can assure that the software is designed in a way that is logical
and intuitive.
For great user experience, software needs to be free from bugs and errors - a
source of dissatisfaction for users.
06/15/2020 www.cdac.in 34
Testing - Advantages
Business Optimization
Biggest benefit - software testing leads to business optimization.
More satisfied clients
Customer retention
Fewer costs of fixing a product
Fewer costs of a customer service
Better quality
Reliable products
Improved reputation and brand image
06/15/2020 www.cdac.in 35
Testing - Limitations
06/15/2020 www.cdac.in 36
Limitations of Software Testing
Exhaustive Testing is Impossible
We cannot test a program completely
You cannot test every path
You cannot test every valid input
You cannot test every invalid input
06/15/2020 www.cdac.in 37
Limitations of Software Testing
Money
Budget constraints require very careful planning of the testing effort.
Time
Traditional software testing may simply take too long.
You will run out of time before you run out of test cases
06/15/2020 www.cdac.in 38
Thank you
06/15/2020 www.cdac.in 39