There were a couple of interesting tweets from Cristóbal Valenzuela about how software & applications would be auto-generated in the future through generative software. I also read a post on how Steve Jobs was particular about attention to detail on the UI aspects. It was interesting to read those. The reality-in-making is that we come across low-code and no-code applications generating UI and apps based on inputs given in drag-and-drop applications. Let’s talk about the implications and what is in it for the Software Testers.
When apps and their UI are auto-generated, the user (the buyer of the generated software) should have the option to select the one that they ultimately like from a list of options, instead of forcing them to buy one that the ML has generated. Indeed, ML is also learning, so getting the user inputs would enrich the ML data so that it can generate more precisely next time according to user preferences or the context. One catch here is that there would be individual preferences, so the ML model has to be generated for every single user or context.
The generative software got to be a mix of AI and rule-based decision-making. Giving it completely to AI might not be ideal as probability plays a role and the generated outputs may not be desirable by the person buying it. Again, if major decision points are done as rule-based and the unsure ones given to AI, then AI could do a good job of using its ‘imagination’ in generating what is needed.
The follow-up on that would be the extensive use of YAML files that would give the blueprint of the app that would be generated. These YAML files themselves could be generated, but it would be good for humans to write them. It’s interesting to note that there would be a demand for YAML file editors in the future, as a new tech. job!
Software Testing – What is in store?
So, what is involved in testing these generative software?
We got to test both the generating software as well as the generated output!
On one hand, we need to test if the AI/ML and the rule-based automated logic generates software, apps, and UI as per the expectations of the user. This is not easy. In case of AI and ML, we need to deal with probability and models. When the probability and models come together with rule-based logic, it would introduce additional complexity, so thorough testing needs to be done, and it cannot be easily automated!
On the other hand, we also need to test if the generated software, apps, and the UI are indeed behaving as expected. This is what we do right now, but the AI/ML will add an additional layer of complexity between the developers who write those generative software and the generated output, leading to more involved debugging in case of problems.
Exciting times are ahead, as we look to automate the mundane tasks of apps and UI generation. There are so many apps that are being generated these days, and certainly, there will be a push towards automating the writing of those apps. When they are automated, there will be a need to test the automation process and the automated output.
For consulting regarding Machine Learning, rule-based processes, and the associated testing, please contact me.
Pingback: Customization Testing: A Future Potential In Testing - Venkat Ramakrishnan