droid
droid copied to clipboard
Improve automated tests
Context
Currently, our testing of DROID is not satisfying:
- the automated regression tests that are implemented (and used to verify all pull requests) are not thorough enough, and we had many bugs in 6.5 following large technical PRs dedicated to improving performances
- the existing manual testing plan is too long: it has nearly 130 individual test cases, it takes 1 to 2 days to run it fully, and we're supposed to cover 3 different platforms (windows / Linux / mac) on 2 Java JRE (Java 8, Java 11).
Goal
Improve the current automated tests using Behaviour Driven Development, with cucumber/gherkin on the GUI. cover at least the most important functionalities of DROID and provide good foundations for the writing of future test cases.
Tasks
-
Get familiar with DROID (optional) check documentation go through the manual test plan, run some of it to interact with the GUI mindmap of DROID functionalities and code audit: https://www.mindomo.com/mindmap/b5d94a7f8e274adbb7a7dbab78f8fa7b
-
analysis of existing tests -- go through the test plan too and evaluate what can be automated for testing https://docs.google.com/spreadsheets/d/185SLvA3-mtkkjhHx2iR-G3b6GM-sUK0H4aPOvl_JvH0/edit#gid=2032467063 see
6.5 RC2 tests
tab -- identify scope covered already by existing end-to-end automated tests and whether some of them will be replaced by BDD tests -
explore technology to test GUI (JAVA Swing) There might be GUI testing solutions similar to Selenium, but it might just be enough to simply use the dedicated screens' Java classes to interact with the buttons.
-
setup foundations for new tests (pull request) -- setup cucumber and gherkin -- setup gui testing framework if any -- create one simple automated test on GUI -- add in wiki quick guidelines on how to add new GUI tests whenever adding a functionality
-
One functionality domain at a time (profile management / filters / exports / reports / signature management) -- Define new test cases using BDD and review with DROID team write given, when, then statements -- write test cases -- submit pull request
I've been alerted to this repository which may help with this ticket created by Richard Lehane https://github.com/richardlehane/provisioner
Set to high priority, needs to be done but does not necessarily need to be BDD or the tools that are written in the ticket.