Photo

The Future is Today: Leveraging AI in Software Testing

Mesut Durukal

from Indeed (Japan)

About speaker

Mesut has 15+ years of experience in Industrial Automation, IoT platforms, SaaS/PaaS and Cloud Services, the Defense Industry, Autonomous Mobile Robots, and Embedded and Software applications.

About speakers company

https://www.indeed.com/

Abstracts

broad

In this talk, we will discuss leveraging Machine Learning practices in Software Testing with several practical examples and a case study that I used in my project to do Bug Triage. Let's embrace the future together!


Problems:
----------------------
Testing is very cumbersome. Agile is open to changes, which means expected behaviors can change over time. Besides, due to implementation changes, tests may be broken. And most importantly, time is very precious and limited. Manual efforts should be minimized to improve coverage and reserve more time for exploratory activities with limited resources.

Solutions:
----------------------
Manual effort can be reduced and testing can be done in a more convenient and consistent way by applying ML. Stages in which ML is applicable are:

* Test definition
* Automatic code generation
* Execution: exploratory testing.
* Maintenance and grouping,
* Review test code.
* Heal broken test code.
* Prioritize test cases.
* Bug Triage

Results & Conclusion:
----------------------
We see how ML helps in all stages. I summarize the application areas with algorithms and discuss the advantages and potential risks of AI applications in software testing.

To sum up, this talk targets an important problem, AI-based applications of software testing. AI is one of the hottest topics in the software world nowadays. Especially mining valuable information from bugs can be made use of by managers to guide feature priorities. I introduce the applications in different stages of testing, that makes it easy for the audience to find what they want.

Take-aways
----------------------
After the talk, attendees will have seen how Machine Learning can be used to:

* generate test cases automatically.
* review test code.
* heal broken test code.
* prioritize test cases.
* exploratory testing.
* manage bugs.

The talk was declined