Module 1. Software Quality and Software Testing
Module 1. Software Quality and Software Testing
“
So from conceptual view
software is nothing more
than a “thing” that receives
some input, processes it in
some way and provides
output. That`s it!
But why we are takling about software?!
Because nowadays software is literally
everywhere!
Please give some
examples of how
computer software
affects your life?
Software continues to
penetrate all parts of our life
Autopilot Big data Machine learning
Aim is to make all cars Not far time ago there simply Started more than half a century
automated and there will be no weren`t that much user data. ago nowadays this this topic
drivers at all in quite near future. Nowadays amount of data is experiencing a second youth.
But there are already a lot of growing exponentially and it Challenge here is for results to
challenges for making this needs to be handled properly be precise
happen
Because of two
separate errors missile Place your screenshot here
Employees of the
company entered
Place your screenshot here
incorrect data in the
dynamic routing
protocol. Result was
that providers could not
connect to the Internet
or faced an extremely
low connection speed.
Software quality
2
& quality issues
What is quality and what are issues that threaten quality
Please give a
definition of
quality
Quality: The degree to which a component, system
or process meets specified requirements and/or
user/customer needs and expectations [IEEE 610].
“
Quality is value for some person -Weinberg
“
Value for some person?!
Different persons
have different views on
which value really does matter
Who do you think is setting quality
expectations now?!
In acient times goverment set
quality standards
A complex idea can be conveyed
with just a single still image, namely
making it possible to absorb large
amounts of data quickly.
In times of industrial revolution
quality standards were set up by
manufacturing
A complex idea can be conveyed
with just a single still image, namely
making it possible to absorb large
amounts of data quickly.
Nowadays users set quality
standards
A complex idea can be conveyed
with just a single still image, namely
making it possible to absorb large
amount of data quickly.
Please give a
definition of a
Bug (Mistake)
In September 9, 1945, Grace Hopper
work on the ’Mark II’ computer
at the Harvard Faculty.
Operators traced an error in the ’Mark II’
to a moth trapped in a
relay. Dead bug was carefully removed
and taped to the log book.
Stemming from the first bug, today we
call errors or glitches in a
program a bug.
So if quality is value for some person…
Then bug is anything that threatens
value of the product. E.g. calculator
will crash on attempt to add negative
numbers and zero
And issue is anything that threatens
value of the project rather than the
product itself. E.g. there are a lot of
Ads and such stuff on eBay. Am I
supposed to test that stuff? How
should I test it?
How do you think software bugs appear?!
How bugs appear concept
“
Exhaustive testing is impossible:
Testing everything (all combinations of
inputs and preconditions) is not
feasible except for trivial cases. Instead
of exhaustive testing, we use risks and
priorities to focus testing efforts.
“
Early testing:
Testing activities should start as early
as possible in the software or system
development life cycle and should be
focused on defined objectives.
“
Defect clustering:
A small number of modules contain
most of the defects discovered during
prerelease testing or show the most
operational failures.
“
Pesticide paradox:
If the same tests are repeated over and over again,
eventually the same set of test cases will no longer
find any new defects. To overcome this “pesticide
paradox”, test cases need to be regularly reviewed
and revised, and new and different tests need to be
written to exercise different parts of the software or
system to find potentially more defects.
“
Testing is context dependent:
Testing is done differently in different
contexts. For example, safety-critical
software is tested differently from an
e-commerce site.
“
Absence-of-errors fallacy:
Finding and fixing defects does not
help if the system built is unusable and
does not fulfill the users needs and
expectations.
“
Testing definition by RST
“
Evaluating
means making a value judgment; is
it good? is it bad? pass? fail? how
good? how bad? Evaluations as a
noun refers to the product of the
evaluation, which in the context of
checking is going to be an artifact of
some kind; a string of bits.
Observations
are intended to encompass the
entire process of observing, and not
just the outcome. So the process
itself is important too. E.g. problems
that appeared during observation
are also should be called issues
Exploration
implies that testing is inherently
exploratory. All testing is
exploratory to some degree, but
may also be structured by scripted
elements
Experimentation
implies interaction with a subject
and observation of it as it is
operating, but we are also
referring to “thought experiments”
that involve purely hypothetical
interaction. We are merely trying
to express that experimentation is
a practice that characterizes
testing. It also implies that testing
is congruent with science
Checking is the process of making
evaluations by applying algorithmic
decision rules to specific observations of
a product. Rapid Software Testing
“
Algorithmic
means that it can be expressed
explicitly in a way that a tool
(automation tool e.g.) could perform
this kind of check
Specific observations
means that the observation process
results in a string of bits (otherwise,
the algorithmic decision rules could
not operate on them)
RST vs ISTQB