If it's the responsibility of backend devs to write their own unit & integration tests, shouldn't it be the responsibility of front-end devs to write their own UI tests (e.g. Selenium Web Driver)?
I'm posing this question because most UI-driven tests are awful, and perhaps it's just because of wrong skillset. I won't have a tester write unit & integration tests, just help with defining the scenarios. Perhaps the role of the tester in UI tests is also in defining scenarios, but the implementation should be with the front-end dev?
For Example: If a tester says "the right alerts need to be immediately seen by the stock trader anywhere in the application until he acts on it", then the front-end dev can write tests that define the right visual elements, position on screen, CSS classes, Javascript function calls, & simulate the alert condition without hitting the application layer. A tester, on the other hand, might write a test that has to load test data in the DB or simulate unnecessary user steps (e.g. login) just to get to the point being tested, spending an excessive amount of time writing the test, & making the test very fragile since it does a lot of things that can break with changes to the application. Worse, the tester may simplify the scenario just to so that the implementation is within his technical capabilities - e.g. "alert is shown" instead of "the right alerts are shown and easily visible".
I believe testers should be focused on acceptance criteria, but many testers today seem more focused on the implementation of the tests, whether automated or manual. In the end, often there's no one on the team focused on looking after acceptance criteria.
Don't get me wrong - I believe testers need to code, but I believe even more that coders need to test.
Thoughts?
No comments:
Post a Comment