|
Let’s say your organization has now a stable set of manual testcases that is used for regression every time your product releases. As you are aware this set keeps on increasing and soon you are seeing that the regression test cycle is weighing down on your product release timelines. In these days of Agile practices, the obvious next place you look at is to automate testing such that regression cycle is shortened. This is not the only benefit of automation, but we will leave that discussion to some other time. Also for purpose of this discussion, we will concentrate on GUI automation tools. So if you are responsible for GUI automation, the very first question that will come up is
“What is the best GUI test automation tool for my application”?
If you had asked this question in any QA forum or just done a plain search, atleast one of the answer to above question would be Selenium. To keep this discussion in perspective, I would like to discuss merits/demerits of Selenium being the tool of choice.
Merits of using Selenium
–Choice of using language of your choice.
This is an advantage which has an indirect benefit of plugging into your engineering architecture with ease. For example if your organization is a Java shop, you already have a knowledge and technical expertise available with range of tools (e.g IDE, build systems, reporting tools etc.) that your development branch uses. It would be just a matter of transferring this know-how to your QA team which they might already be familiar with it.
–Script once, Run on multiple browsers
While this is not exactly true in simplest sense of speaking, the advantage of running your tests on multiple browsers with the same set of scripts is an enormous advantage when you have to test your application on different browser version
–Inherent applicability to AJAX
Selenium works in browser, with the core technology that is driving your test case working along side your application under test (AUT). This provides incredible control over testing of AJAX web applications .
–A community supported Selenium Software suite
Selenium users can and should take advantage of Selenium IDE,A Firefox plugin which assists you in recording and running your tests.Selenium Grid allows you to take your tests and deploy it in a clustered environment optimizing use of your resources. For details please refer to this Selenium documentation
—Support multiple test frameworks
Contrary to common thinking, selenium is not a testing tool. It is more like a GUI driving library. This is a blessing. Selenium allows users to wrap the test scripts in the framework of their choice. So if you like JUnit vs TestNG,you have a choice and also taking advantage of reporting capabilities of this framework that your development team might be already using.
—Integration with the ecosystem
If your requirement is integration with different suite of tools like Hudson, QMetry etc,there are already solutions available out there which will make the integration easier.With almost no investment in purchasing tools,you can create a test automation infrastructure right on par with a commerical suite of tools. There are also multiple solutions available for you if you want to run tests in parallel. Check out selenium Grid and saucelabs
Having said all of the above,what are the areas where Selenium falls short
—Supporting non-web applications
Selenium is designed and growing keeping in mind that it would be used to automate web applications. So if you have a windows application or a Java applet or applications that use Flash, it’s not easy to use Selenium. However other tools also do not do a better job of supporting this applications. Technically there can be other solutions to take care of this shortcoming from selenium itself.
—Maintenance readiness is not inbuilt
If you look at commercial tools, there would always be a concept of storing UI object definitions separately from test code, test data management and other nice utilities built into the tool. In Selenium, this is left to individual’s implementation. While both approaches have it’s pros and cons, a well-written Selenium framework can go a long way in giving you a head start in writing Selenium test cases.
One last point…..
Often Selenium is offered as a low cost (opensource) alternative to commercial tools like QuickTest Pro or SilkTest. While this being true in terms of obtaining the actual software, i think it’s imperative to understand that since writing and maintaining various functionalities that would have been offered as part of the commercial tool package now falls on individuals, this cost should be taken into consideration while making the final decision
Where does all this information leave you in terms of answering the original question? The answer relies on number of factors, ranging from management goals to technical requirements but Selenium should be considered an important candidate along with the commercial tools which not only requires a huge upfront investment but also significant investment in learning a new suite of tools, a team dedicated to specific skillset etc.
原文 |
|