- release faster and more frequently,
- release with more automations,
- release flawlessly,
- the last but not the least, be able to release on Fridays.
- Javascript's are difficult to test
- We need to emulate movements, such as clicking and typing, not just HTTP GET's and POST's
- There may be too many prerequisites or dependencies for even short testings
- Instruction list changes frequently
- Confirming the HTML elements on every page can be too boring, and people make mistakes easily
- Open URL: http://www.example.com/login, confirm the page has a title called "Example";
- Input something into "user_id" and "user_password" boxes, if the page has two, then click the button called "Login", if the page has one, confirm that the page is redirected to URL: http://www.example.com/top, and that page has a title tag called "Top Page";
- Click a link called "TEST" if the page has one, confirm that the page goes to URL: http://www.example.com/test, and that page has a title tag called "test";
- Click a button called "Click me" if the page has one, confirm that javascript insert an a tag into the page, had text 'TEST', and links to URL: http://test.example.com/
- ...
- has history records,
- keeps cookies,
- supports HTML5, XHR,
- and runs javascript's.
$ vows test.'s --spec
- helped us making automatic browser testing become possible;
- helped making testings easier because we can now reuse codes, if you organize your code in an elegant way;
- increased testing accuracy because it makes no misses, theoretically;
- shortened the time spent on testing because of its high speed;
- and gives us more confidence to release on Fridays.