Professional Documents
Culture Documents
So unpredictable
Testing systems that don’t always return the same answers require new
approaches. This is especially true when testing systems whose responses
adapt to what they have learned from previous transactions.
https://techbeacon.com/enterprise-it/moving-targets-testing-software-age-machine-learning 1/7
07/05/2020 How to test software in the age of machine learning
selections, or navigate an application and compare the actual result with the
App Dev & Testing DevOps Enterprise IT Security
expected one. If they match, we nod and move on. If they don’t, we possibly
have a bug.
SUBSCRIBE CONFERENCES & REPORTS
But there is a type of software where having a de ned output is no longer the
case. Actually, two types. One is machine learning systems; the second is
predictive analytics.
[ Learn best practices for reducing software defects with TechBeacon's Guide.
Plus: Get the report "Agile and DevOps Reduces Volume, Cost, and Impact of
Production Defects" ]
Both of these types of systems have things in common. For one thing,
neither produces an “exact” result. In fact, sometimes they can produce an
https://techbeacon.com/enterprise-it/moving-targets-testing-software-age-machine-learning 2/7
07/05/2020 How to test software in the age of machine learning
I then trained it. I had over 500 data points regarding known wind speed and
direction and the extent to which the sensor cooled. The network I created
passed each input into its equations, through the multiple layers, and
produced an answer. At rst, the answer from the network wasn't that close
to the known correct answer. But after multiple iterations with the training
data, the coef cients homed in on accurate and consistent results.
How do you test this? The product is actually tested during the training
process, which takes time. Training either brings convergence to accurate
results or it diverges. The question is, How do you evaluate the quality of the
network?
https://techbeacon.com/enterprise-it/moving-targets-testing-software-age-machine-learning 3/7
07/05/2020 How to test software in the age of machine learning
2. Test with new data. Once you’ve trained the network and frozen
the architecture and coef cients, use fresh inputs and outputs to
verify its accuracy.
3. Don’t count on all results being accurate. That’s just the nature of
the beast. And you may have to recommend throwing out the
entire network architecture and starting over.
One important thing to note is that the training data itself could well contain
inaccuracies. In this case, because of measurement error, the recorded wind
speed and direction could be off or ambiguous. In other cases, the cooling of
the lament likely has some error in its measurement.
How would you test this type of application? Once again, you need objective
acceptance criteria before even starting the development effort. In this case,
those acceptance criteria should involve some acceptable level of both
ridership averages and revenue.
1. You need test scenarios. By that I mean ridership, when people are
willing to ride, and what they are willing to pay. Because people
don’t know until they are actually placed in the position of
deciding, you are going to have to build data models. Three may be
suf cient, to represent expected best case, average case, and worst
case.
https://techbeacon.com/enterprise-it/moving-targets-testing-software-age-machine-learning 5/7
07/05/2020 How to test software in the age of machine learning
1
Brought to you by
Topics TechBeacon
Security Privacy
https://techbeacon.com/enterprise-it/moving-targets-testing-software-age-machine-learning 7/7