How To Select The Test Automation Tools

How To Select The Test Automation Tools

In a duel between the last bugs and developers have the right to choose weapons. Typically, a good fellow (red girls) have three basic choices:

- A commercial product (WinRunner, Rational Robot, SilkTest, TestComplete, etc.)
- Freeware and shareware tools ( Freeware , Shareware )
- own utilities (written in the course of the project)

Consider the advantages and disadvantages of these approaches.

Commercial products

Advantages:

1. Autotest can be used in functionality (modules, procedures, code snippets), which comes bundled product. If to test the application use such methods, this code does not have to write yourself.

2. Usually such tools are supplied with its own development environment that provides good opportunities for writing and debugging automated tests.

Disadvantages:

1. The cost of such products often exceeds reasonable limits.

2. No access to source code . If the tool detects a bug, its correction by the vendor may take some time. There is no possibility to customize the product quickly to your needs.

3. Often commercial products impose their approaches to testing applications – in accordance with the model on which the instrument was built. This approach is not always acceptable for individual applications due to their nature, well-established practices, human and machine resources.

Own tools:

Advantages:

1. Sometimes these tools are a side effect of creating applications, especially in the case of TDD.

2. Know about them, “and from”, they are easy enough to use.

3. Source code is available.

Disadvantages:

1. The functionality of such tools may be insufficient for the organization Autotest.

2. Creation and support of such tools can be expensive.

3. Results of such automated tests may be questionable (a sort of “thing in itself”).

Freeware and shareware tools:

Advantages:

1. The reasonable cost of ownership. Price shareware-product is often low. In the case of freeware product is offered free of charge.

2. Requests for fixing bugs and functionality usually find understanding and prompt response – sometimes all in the same free of charge or for a modest fee. In the latter case, the allocated money directly spent on meeting the challenges faced by the user tool, not the “chips” that he does not need.

3. Often have similar utilities available source code.

Disadvantages:

1. The functionality of such products is insufficient for the task.

2. Risk to remain without support from the developer of the product.

Of course, the list of advantages and disadvantages of these approaches is far from complete and allows for exceptions. For example, commercial products may have a reasonable price and to be flexible enough and own tools can be quite reliable. A commercial product may be unacceptably long period of development, and a shareware product can impose their language. It also happens that the free product is so effective and easy to use, throw up your hands and think what vendors of commercial products want to get their money.

In general, the choice of instrument should be taken into account all the existing factors and application-specific tasks, the possibility and validity of integration of different tools in one system, qualified developers and testers, future plans, technical and financial resources, risks. Selection according to the context will be most effective.

Why We Need Test Automation

Why We Need Test Automation ?

And it is true, why? In his famous article “What is Test Automation” Steve Rowe wrote:

“Test automation is simply an automatic way of doing what testers were doing before”.

A little later, Steve found it necessary to clarify his position:

“I am describing test automation, not testing. The two are far from synonymous. Test automation * is * a replacement for what testers once did, but it isn’t a replacement for all of what testers do. ”

But the genie was out of the bottle of the original article, and shove it back was not easy. Steve publication caused a lot of responses. The most reasonable of them can find the answer, which published James Bach. James writes :

“Test automation is any use of tools to aid testing. Test automation has been around since DAY ONE of the computing industry. And never in that history has test automation been an “automatic way of doing what testers were doing before”, unless you ignore a lot of what testers actually do. ”

James further develops its point of view and finally notes (by the way, comments on articles deserve special consideration)

“Test automation cannot reproduce the thinking that testers do when they conceive of tests, control tests, modify tests, and observe and evaluate the product. Test automation cannot perform sapient testing. Therefore, automation of testing does NOT mean automation of the service provided by the software tester.

In summary, test automation means applying tools to testing … ”

So, according to James, test automation has the use of various tools in the process of testing applications. We agree with this point of view and try to develop this topic.

Software development process can be built on different models . Nabolee known waterfall model , and the most popular at the moment are the so-called “flexible” technology . Each of the models suggests that a method of developing and adding new functionality. Comparison of methods is beyond the scope of this article, so let’s at it.

Waterfall model (in the base case) implies a certain fixed sequence of stages of development (Requirements -> Design -> Implementation -> Verification -> Maintenance.) All requirements for the product to shake down in advance, and testing is given a separate step, which can lay the time required to thorough testing of the application. Looks reasonable, but the world is more complex. Product requirements may change during the process of development and market competition makes it necessary to release updates to the operational products. In such circumstances, agile-technology come to the fore, and product testing to allocate as much time as allocated in the waterfall model is not possible.

But we do not want to sacrifice quality , right? Here come to the rescue and self-tests. Smartly written and debugged autotests allow promptly conduct regression testing product functionality and testers will have the time to test the new functionality for intuitive, creative analysis of the application – to the analysis, those bugs that can not be found in automated testing, but the correction is critically important for the quality of the product.

Note that the regression testing – not only the scope of the Autotest. Performance analysis, stress resistance, product localization – this is not a complete list of stages of development, in which self-tests will be invaluable.

What is test automation and in which cases it can be useful

What is test automation and in which cases it can be useful

Test automation: why? Smartly written and debugged autotests allow promptly conduct regression testing product functionality and testers will have the time to test the new functionality for intuitive, creative analysis of the application

Test automation: tool selection . In a duel between the last bugs and developers have the right to choose weapons. Typically, a good fellow (red girls) there are three basic options … When selecting a tool worth taking into account all existing factors and application-specific tasks, the possibility and validity of integration of different tools in one system, skills development and test plans for the future, technical and financial resources, risks.

Self-tests: myths and reality . Are autotests completely replace manual testing? Tool – all of us? Autotests wrote once, and you can use them until the end of the century?

A and B were sitting on the tube, or test autotests . How can we trust Autotest? What you should pay attention to the implementation and operation of automated test applications? :-)

Do You Know Levels In Testing

Do You Know Levels In Testing

  • Unit testing (unit testing) – tested the minimum possible for testing component, such as a separate class or function. Unit testing is often carried out by software developers.
  • Integration testing – tested interfaces between components, subsystems. In the presence of reserve time at this stage of testing is carried out iteratively, with subsequent gradual connection subsystems.
  • System testing – integrated system is tested on its eligibility.
  • Alpha testing – an imitation of the real operation of the system in-house developers or real work with the system by potential users / customers. In most cases the alpha-testing is performed at the early stage of product development, but in some cases it may be applied to the finished product as an internal acceptance testing. Sometimes the alpha testing is performed under a debugger or using the environment, which helps to quickly identify bugs. Detected errors can be transferred testers for further study in an environment similar to that in which the software will be used.
  • Beta testing – in some cases executed spread version with limitations (in terms of functionality or running time) for a group of individuals in order to ensure that the product contains enough little mistakes. Sometimes beta testing is performed in order to get feedback on the product from its future users.

Often for free / open source alpha stage characterizes functional content code, and beta testing – stage error correction. In this case usually at each stage of development intermediate results are available to end users.