Some times ago I faced the problem with the low quality of the customer’s demonstration. When we try to present our application for the wider audience, we have problems with doing some basic scenarios again and again. We thought that we well tested this functionality. We were using it every day, and everybody in our team was checking it after each change. However, the application functionality still evolving. Moreover, any modification of the code may result in changing final functionality. Because of many changes before demo we can’t test it enough to be 100% sure that everything works fine.
ProtractorJs is an end-to-end framework written for AngularJS applications. It uses Selenium WebDriver features internally. The main advantage of the regular WebDriver test is an ability to cooperate well with SPA application. The main problem with this type of systems is asynchronization. Single Page Applications change their look without reloading the whole page. So it is very hard to determine when the application is ready for action. Fortunately, Protractor knows the Angular internal mechanisms, so he is aware when application finish all operations.
Many people think that testing is a subject that only testers should worry about them. I completely disagree with that statement. I can event say that developers can write better tests technically and faster. They know the application. They have technical knowledge about creating reusable code and good architecture. Nevertheless, they shouldn’t write an end to end acceptance tests. They are too focused on functionalists that write. So it is possible that they repeat the testing patterns from the development time, not on overall application image.
Beside of the normal usage, Selenium WebDriver has a lot of extra capabilities. The one of the most clever and not usual use of end-to-end testing is checking if web page fulfills accessibility rules.
Accessibility is a very broad topic, but there are some guidelines how to create the web application, that people with some disabilities (visual, hearing or manual) can use it. If we learn how to do this and on what elements we should focus to provide the accessible web site, it turns out to be very simple. There is few number of rules keep and that’s it. Screen readers or other software will take care of the rest.
Before we start testing, we should ask yourself some very important questions.
– Why do we want to test? – is helps us to answer the next question
– When do we need to start testing?
– What do we want to test?
Some time ago I faced a big dilemma. In our company, we have two teams: back-end and front-end. When we start thinking about end-to-end testing in our current project, the discussion begins. We were thinking about the best technology to do it. We are using AngularJs in this project, so we want to take advantage of Protractor library. It is the library for testing Angular Single Page Applications without waiting after each action.
We have two possibilities.
– write in TypeScript in JS environment,
– write in C# and .NET environment