Technologist in me is excited with this future and at the same time, Test engineer in me was curious and asking lot of questions when I got introduced to AI/ML. What exactly is ML application or module? How is it different than traditional applications? Is it true that ML application is always changing and improving? What does this mean to Quality? How do I automate something with unpredicted behavior? What does this mean for overall product quality for end sure? Thankfully, we have few answers now.
At high level ML applications can be seen as multiple building blocks or components like – training data, algorithm, test data, pipeline infrastructure, feedback system, and retraining. Algorithm is the core ML part for the application. Training data is the data which we need to feed in to algorithm to generate intents or output which will be consumed by further pipeline. Test data is actual data against which algorithm will be used. Pipeline is data/flow infrastructure including scripts, data storage/data lake, and actual applications. Feedback system is where we can get qualitative feedback on algorithm output. And last, retraining core algorithm based on this feedback.
As you can see each tier or component has specific role, and we can talk about quality checks and automation effectively now.