A Motivation in 60 min or less
@ReneSchwietzke
@reneschwietzke@foojay.social
#java #qa #test #performance #performancetest #quality
Why this presentation might still be useful for you
This presentation is also helpful for: Developers, Product Managers, Product Owners, Content Designers, Campagin Managers, Marketing Specialists, Writers, Designers, Trainers, Mechanics, Influencers, you name it...
Because life revolves around quality, impression, acceptance, and happiness. All that is brought to you by quality assurance and testing.
A very much overused term
macOS does not require a root password
2017: In one of Apple's biggest security blunders in years, a bug in macOS High Sierra allows untrusted users to gain unfettered administrative control without any password.
https://arstechnica.com/information-technology/2017/11/macos-bug-lets-you-log-in-as-admin-with-no-password-required/
But what is quality? We just used that word?!
The totality of features and characteristics of a product or service that bear on its ability to meet stated or implied needs.
ISO 8402 (retired)
We define quality as conformance to requirements. Requirements must be clearly stated. Measurements determine conformance ... non-conformance detected is the absence of quality.
Philip B. Crosby: “Quality is free!"
Quality as term stays vague.
One sentence to sum it up
"What should work, will work - what is not supposed to work, won't."
René Schwietzke
Reuse can be devastating
1996: The failure of the Ariane 501 was caused by the complete loss of guidance and attitude information 37 seconds after start of the main engine ignition sequence (30 seconds after lift-off).
...reused the code from ... reference platform of Ariane 4... caused a data conversion from a 64-bit floating point number to a 16-bit signed integer value to overflow and caused a hardware exception. ... The supplier ... was only following the specification given to it, ... that in the event of any detected exception the processor was to be stopped.
A Simple View on a Complex Task
Software testing is a process of executing a program or application with the intent of finding the software bugs.
It can also be stated as the process of validating and verifying that a software program or application or product:
- Meets the business and technical requirements that guided it’s design and development
- Works as expected
- Can be implemented with the same characteristic.
Software testing is an investigation conducted to provide stakeholders with information about the quality of the software product or service under test.
...can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation.
Test techniques include the process of executing a program or application with the intent of finding software bugs (errors or other defects), and verifying that the software product is fit for use.
[1] http://istqbexamcertification.com/what-is-software-testing/
[2] https://en.wikipedia.org/wiki/Software_testing
Let's combine all definitions
Testing consists of all activities that increase our confidence that the system will do what it should do and won't do what it shouldn't.
As result of testing, the behavior (or state) is frozen in time.
Why do we test?
Gravyard by Kevin Dooley, licensed under CC-BY-2.0 Angry Girl by Clemens v. Vogelsang, licensed under CC-BY-2.0 Angry Man by Martha Soukup, licensed under CC-BY-2.0 Smiley by Candle_N, licensed under CC-BY-2.0 Money by Andrew Magill, licensed under CC-BY-2.0
Euro conversion at Bank 24
"Customers of Bank 24 … were astonished on April 6th, 1999 evening to find that their securities accounts appeared to be overdrawn to the tune of 4 billion euro ($4.32 billion) ... which affected 55,000 customers."
![]()
"But the problem actually had more to do with human error than with a bug in Bank 24's software... Although the bank had tested and planned to use a new, euro-compatible program to carry out the quarterly calculation, because of human error, the old, pre-euro program calculated the amount."
cnn.com
What do we need first?
The input to development and testing
...a requirement is a singular documented physical or functional need that a particular design, product or process aims to satisfy.
It is a broad concept that could speak to any necessary (or sometimes desired) function, attribute, capability, characteristic, or quality of a system for it to have value and utility to...
Requirements are also an important input into the verification process, since tests should trace back to specific requirements.
Requirements are just half the truth
Why Units of Measurement Will Cause WW-III
Simple confusion over whether measurements were metric or not led to the loss of a $125 million spacecraft last week as it approached Mars, the National Aeronautics and Space Administration said on Thursday.
An internal review team at NASA's Jet Propulsion Laboratory ... that engineers at Lockheed Martin Corporation, which had built the spacecraft, specified certain measurements about the spacecraft's thrust in pounds, an English unit, but that NASA scientists thought the information was in the metric measurement of newtons.
The resulting miscalculation, undetected for months as the craft was designed, built and launched, meant the craft, the Mars Climate Orbiter, was off course by about 60 miles as it approached Mars.
Where Requirements and Testing Meet
We are going to return to that!
Basic Testing Knowledge
Let's start with test types and areas first
Really, don't ride the books, if you want to keep things simple and elegant. Testing is about results and not about terminology.
It was involved in at least six accidents between 1985 and 1987, in which patients were given massive overdoses of radiation.[1]: 425 Because of concurrent programming errors (also known as race conditions), it sometimes gave its patients radiation doses that were hundreds of times greater than normal, resulting in death or serious injury.
A software product of the company was involved in an accidental overexposure of patients in Panama in 2001 when the treatment planning software RTP/2 (vers. 2.11, 1991) reportedly contributed to 28 patients receiving excessive amounts of radiation at the Instituto Oncologico Nacional in Panama City.
...finding that the software permitted incorrect forms of data entry which in turn had led to miscalculation of treatment times.
https://en.wikipedia.org/wiki/Multidata_Systems_International
https://en.wikipedia.org/wiki/Therac-25
Test Type != Test Execution
Areas again, because they match requirements nicely
This list is not complete.
What knowledge can you apply to write and execute tests?
Of course, there is something in between - the gray box test.
This is not a rule to follow, just an aspect to know.
The world was broken
RFC 6520 Heartbeat Extension tests TLS/DTLS secure communication: consisting of a payload, a text string, along with the payload's length as a 16-bit integer. The receiving computer then must send exactly the same payload back to the sender.
Nobody checked if the sent text and the sent text sizes matched. The server just returned all data matches the size data, hence sending back more and often with sensitive information.
https://en.wikipedia.org/wiki/Heartbleed
What are test cases and how expressive are they?
A test case is a specification of the inputs, execution conditions, testing procedure, and expected results that define a single test to be executed to achieve a particular software testing objective... to verify compliance with a specific requirement.
Of course, there is plenty of wiggle room here.
Scenario: Positive natural numbers
Given that the application is open
When I enter <Input>
And click the "Calculate" button
Then "The Square of X is <Result>" is displayed
|Input| Result|
| 2| 4|
| 3| 9|
| 10| 100|
| 1211|1,466,521|
While attempting its first overseas deployment to the Okinawa, Japan (2007), a group of six F-22 Raptors flying from Hickam AFB, Hawaii, experienced multiple computer crashes coincident with their crossing of the 180th meridian of longitude (the International Date Line). The computer failures included at least navigation (completely lost) and communication.
https://en.wikipedia.org/wiki/List_of_software_bugs
Just a Few Things that Might Help
Things to keep in mind
There is more...
Your Presentation Will Continue Momentarily
www.xceptance.com/jobs/
Let's try something together
Nifty UI for a Trivial Task
The requirements changed!
Localization adds complexity quickly.
Testing is a General Concept
Photo by Leitz
Let's discuss what we have learned