You have your main list of tests. You just provided them to us. At a minimum level, you should verify that all functional requirements are met (for example, the four questions you gave us in the question).
This includes cross cases, such as empty lists (on one and both sides), identical lists, etc.
The easiest way to get started is to add the following:
- an empty list on both sides.
- identical lists.
- empty list on the left with a right list with one item to add.
- singleton list on the left with an empty right list to delete.
- previous two tests, but with five-element lists on the one hand.
- replacing one item in a singleton left list.
- replacement of one element in the five-element left list.
- replacement of three elements in the five-element left list.
- Verify that replacements are not performed with identical version tags.
and then add more when you cause individual problems.
And I canβt stress this: automate testing! You will find that testing is much easier if you can just click a button and view the results. Each time you click on an error, add a test that would catch this error in the test suite above and click the button to check it.
We have testing right down to the visual arts. With one command, the whole process starts, which dumps the databases, loads them with known data, starts our tests, compares the result with previous successful tests, etc.
If we had to do all this manually when we made the changes, we would soon take the whole idea. Automating everything, testing is a breeze.
source share