Quality Engineering
Risk and Quality
Releasing software is decided on risk
Risk: the probability of something going wrong which will affect the business in an adverse way (ie sales, reputation, unsubscriptions)
Risk Management: is handling and planning ways of preventing risk which is economic (time/money/resources) to the business
What is the impact of that risk happening and the probability of it happening
Focus on handling different types of risks (ie critical to non critical)
For example,
Releasing software which has lots of bugs leads to poor sales, bad reviews.
Reducing the risk can be done by testing and fixing bugs, to prevent bugs reaching customers
trying to find all bugs can take too long and cost too much
alternatively, can release wiht some bugs tested and a patch released later
alternatively, can live with some bugs cause they cost too much and not much of an issue
alternatively, can fix on demand
Some of these have different cost to benefit values, decisions need to be made
No matter how much you test, figure out scenarios there could be cases where some bug or somethign will break
How to manage risk to ensure that a release of a product has quality and makes money
Quality:
Usefulness: Meeting user needs and providing value.
Does what it is supposed to do
Correctness: Functioning as intended without errors.
Does what it was doing before release
Goodness: Delivering a positive, enjoyable user experience.
Does it in the expected way, does not break, not too slow, can handle failures
4 areas to handle the risk (risk management in quality)
prevent
Accept
Transfer
Observe and React
prevent
Where most of the testing happens
Lowering the risk of something happening (issues) in production
Not everything can be tested, so must be accepted and see in use, then fixed if needs to
either too costly, too hard
not thought about
automated or manual
if testing or fixing the issue is too hard or costly, and not critical can leave the it in
Accept
Allowing certain risks based on analysis.
Transfer
Using third-party tools or insurance to mitigate risk.
Observe and React
Monitoring and responding to issues as they arise in production
Done manually or automated
Can be obversed by
notified by user
directly - hotline, email
indirectly - reviews, social media
the software itself
anotther software monitoring (metrics/logs/probes) then alerting
The information is ready to find and fix issue quickly
Can be handled by
customer themselves
operations team (person/chatbot)
helping the customer fix it
fixing it themselves
or passing it on to others to fix (call out, engineers etc)
The software notices itself and applies some fix
ie retry when http call fails
This invovles building this into the software (more risk)
Alerting based on some logic around some metric that goes wrong
this can be manually fixed
or automated
Last updated
Was this helpful?