Search

Tuesday 1 March 2011

Intro: Our own test automation tool

All the time I have to deal with some test automation tool. And all the time I have to live with the difficulties of each tool. If we have some huge vendor tool it's definitely something VBScript/JScript-based with all related restrictions. Or at least there're restrictions of programming language. It's critical because various wizards are not enough to make robust and reliable tests. Sometimes I have to make quite precise tuning to make my solution working the way I need. And even more, such wizards also consume memory and make overall work slower.


And BTW, why should I use their screwy IDE with their own "zergs" inside while I can choose any reliable IDE (say, something used for real development)? Why I should resist that hell of poor autocomplete, many various buttons doing nothing for me while I know much better what I need?

OK. I know that all these tools are designed to let even non-technical people write autotests. At least vendors sales say that. But when I hear that we don't need to have programming skills I know for sure that it's definitely high time to learn another programming language unless I want to skrew up the automation.

Good. I can switch into some open-source or at least free and light-weight solutions. They're easy to use and easy to integrate. But they're very restricted with functional capabilities. E.g. there're a lot of tools for web. But what if I'm testing not only web?

What? I'm restricted with that again? All the time I see more restrictions than solutions. Any tool I use makes me struggling with new difficulties. All right, I'll make my own test automation tool with blackjack and hookers. In fact, forget about tool. I gonna make a solution I can extend and port wherever I want.

So, what I want? I want to make:
  • Extensible platform containing components similating user actions and interacion with the system at all
  • Some client API written on any programming language (I don't want restrict myself with any programming language while making automation)
  • Ability to make not only UI-level but also services-level actions
  • Ability to use my solution on any OS (the only thing matters here is OS-specific operations)

Why not? This idea isn't new for me. I've already made some prototype of it and it even worked (though partially). So, it's high time to get back to it.

So, what we can choose initially? This system should be some kind of black-box portable to any OS, so I should take some compilable programming language. Java works for me.

It should be client/server architecture (I want to reserve distributed execution ability initially on architecture level). Client and server communicate with each other via some protocol. Http works for me for that purpose.

Client API only sends specific HTTP request.

Of course, it's too much of me needed to cover all the stuff I want. So, I wanna make some core functionality and make this solution accessible to others. It should be done in order to involve more people.

Cool. Let's start with it. I don't care whether I fail or sucseed. If I make something working I'll make it working for me anyway.

No comments:

Post a Comment