need to jump in and develop many test cases in a short period of time. Using commonly known solutions was not enough fast and precise. The main goals that we had in mind before we started the development: → short development time, → precise and be able to handle even UX bugs/changes, → develop a solution that works well for new product and legacy ones.
standing behind snapshot testing can be easily described on the image below. After comparing base screenshot and new one, result image shows us a difference (in our example test failed because “7” turned into “8”
allows user to fix tests without looking at the code. If we ensure that current version is correct, test will manage to fix itself by replacing base snapshot with the new one → Fixing is possible without having technical knowledge → Doesn’t require code changes → Tests running for example on jenkins can be fixed from any place, we don’t need local environment
automation, especially snapshot testing: → recurrent neural networks for data generation - avoid pesticide effect, → markov decision process/q-learning - generate new test cases, → convolution neural network - discover elements on a page/app and build test or prepare data based on that.
most important: → is able to test UI, → give the possibility to use machine learning methods to do test that were not possible or hard to develop before like image/video recognition, automated UX tests and many more, → easy maintenance.
in the next weeks. Let us know if you are interested in contribution and leave your email to be informed when the project will be released as open source: https://goo.gl/forms/i4c98jwScj1ov0GG3 or send us an email to [email protected] or find us after the presentation.
applitools. It doesn’t cover all features that we have on our list, but is the most similar to our solution. There are other solutions that are called snapshot testing tools like JEST, but most are related to a specific technology like React.