What is Acceptance Testing


Any application must be tested. How to speak and spoke highly respected programmer: "programs that are not tested, not working." We write code and test it, we create a page and see how they are displayed in the browser, we create a form and check to see whether they work for all components.

Most often, we are testing our application to meet the requirements of the customer (even if as a customer advocate ourselves). Such testing is called acceptance or functional.

For example, we have an online store. Its functional test would be to inspection of the product catalog, navigate sections, the choice of products, the formation of the basket, checkout, view order status, obtain confirmation of acceptance of an order for processing by mail, etc. Roughly speaking, we check the efficiency of an application and it works correctly.

Often, functional testing is done manually, usually to produce this special person or several people who bypass the site over and over again and reconcile their behavior with the fact that spelled out in the specifications. On a manual testing takes a very long time, and the quality of this test is far from ideal: that a person can ever forget, too lazy to do, to miss something. One of the biggest drawbacks of the manual testing that the detection of time errors in the system behavior and localization of this error is very distant from each other. Sometimes it goes a week or even longer before the error is detected, and the search for its cause and correction takes a long time. We can not conduct manual testing arbitrarily often, because it is costly.

In order to carry out such tests quickly, often and most importantly effective tools exist for automating the functional testing. Next we will talk only about the automated functional testing, we will show how and with which you can automate this difficult and tedious work.

Automated functional testing

Automated functional testing is called a test of the system (in our case it will be a web-site), when tested in a fully automatic mode, without direct human intervention, without knowing the implementation details of the system to meet customer requirements. Functional testing is also called the test a "black box".

Automated functional tests ideally should not know anything about the system architecture, what components it consists, in what programming language is implemented, etc. This enables you to change the architecture, language, application, database, but ensures that we always be able to quickly verify that the system is still operational. Testing should be conducted as if the real user to operate the system.

Acceptance tests can be used for any application (size and quality of implementation). Their writing does not require much time and serious skills.

Acceptance tests can be written as to the implementation of the system under test, and after. Functional tests are very useful in refactoring legacy-systems (previously written), if they were not previously covered by unit tests. In this case we have to refactoring creates a set of functional tests that we have had the opportunity to quickly check the integrity of the system and its functionality after the change. Functional testing for web-site includes emulation of the user with a browser, namely: the opening pages, follow links, filling in and submitting forms, checking the values ??of form fields, the presence of certain text on the pages, getting mail, sending files, etc. In this case, all actions to implement the manipulation of the browser must make themselves the tests automatically, without human intervention.

With the help of what is functional testing

Currently in development environment, no product is used as a standard for functional testing of web-based application.

There are 2 types of products for functional testing:

  • Products that emulate the behavior of the browser, written in high level language, usually in the same language as the application (but not necessarily). As examples httpUnit, JWebUnit, WebTester of SimpleTest, and others.
  • Products are implemented in JavaScript and implement checks directly by the browser. As examples Watir and Selenium.

The first worked well, because they can harness the power of programming languages, use the code that is written for the application, without significance, and such a figure as high speed of execution. But emulators browsers can not cope with a problem – they can not execute JavaScript code used on web pages. This imposes restrictions or testing process, or the process of creating websites. That is impossible to verify the operation of the site as if it was done by a real user, as the emulation of the browser – is not equal to the real work of your browser. Because of this automated testing has to complement the manual testing.

This deficiency deprived of food for functional testing of the second type. They control the browser, perform the command and make the test using JavaScript-code, which virtually guarantees 100% automated testing of the adequacy of the manual. Unfortunately, until recently, developers have not had the opportunity to enjoy a good, comfortable, and most importantly, a free product of the second type. Some of them were incarcerated only under certain types of browsers, some were too limited in features. Selenium – one for new projects, which may soon become a real standard for automated functional testing of web-prilozhny. He denied most of the disadvantages of products of the second type, and combines the positive aspects of both products of the first group and the second one.

See Also

    Advertising

    Archives