QA automation at Technology & Architecture Romania
Brush up QATRO résumé. The quality assurance technology department from Romania, also labeled as QATRO, represents the team in charge with testing mainly the internal software products of the 1&1 organization and spearheading the quality assurance process within the Technology & Architecture division.
In brief, the products targeted by QATRO are mostly described as being J2EE based tools and applications which focus on optimizing the 1&1 internal workflow management, as a solution to the growing needs of the organization. Some of the best examples are:
– The 1&1 platform, which allows service orchestration and business process execution according to the target architecure of the company. Its main purpose is to provide a standardized and maintainable background layer for all J2EE based business applications developed within the organization.
– Software for monitoring the business process flows of the company via explicitly defined KPIs
– Software for managing business processes
-The wide suite of software assets comprised of web-based intranet applications and internal tools on which the employees lean, in their daily tasks.
QA developer at QATRO
Within our department, the successfull testing is done both manually and automatically. As QA engineers, we act with respect for the communion between these two testing approaches. Thinking from the manual testing perspective, we plan, write and run testcases which cover the targeted software development lifecycles. Via the manual testing activity, by fully observing and exploring the software, we focus on finding layout and usability issues, thus transcending the automation limits and provide real feedback. So, we do not just bang out keys on a keyboard or clicks of a mouse. This is after all, a sapient activity.
But, that being said, we strongly encourage automation. Actually, this is the main reason for which this article gets to be written. So, what is a QA developer and what is his/her role within the QATRO department ?
Though, the QA developer still addresses to the QA process and doesn’t jump on the other side of the fence, where the development team resides, he has, or at least must have, genuine software programming skills and understanding of development principles. With the right testing mindset and solid toolsmithing skills, he/she has the leverage to write code for test frameworks in order to achieve great automated functional and non-functional tests, thus, simplifying the manual test effort. But let’s get to some real facts…
Due to the 3-tier architecture of the applications developed within the T&A division, we have the opportunity and the ability to access data and functionality associated with all layers of the application. This offers us the possibility to write and execute independent tests for backend, middleware and/or frontend, by making service calls via the provided APIs. Of course, last but not least, we compare the expected results with the actual ones. This way, we achieve robust automated tests, resilient to frequent application changes.
There are outhere all kinds of drag&drop, capture&playback tools for automated testing, but no matter how far they got, their claims don’t hold up to real life testing needs. Especially in our case. In the agile world things get changed all the time and we have to keep up with the development team, along the iterations. Not only the testing tools provided by different vendors aren’t flexible enough for these changes, but there are also cases when we have to deal with small pieces of software, having a minimal set of features. To put it another way, how do you test something which has no presentation layer ? … Or business logic layer ? That’s why we took a different route – the one of writing test code from scratch. This is the critical part where the qa developer comes in. That’s right, in survival circumstances, you’ll have to dig in, crawl and get dirty… not ideal, but in the long run, not a big deal 🙂
As I mentioned in the begining of this article, the tools and applications tested by QATRO are mainly written in Java and follow the J2EE standards. Therefore, we write tests also in Java. This way we speak the same language with the developers. Moreover, the J2EE specification (JMS,EJB,JPA,JNDI, WebServices etc.) is part of the QA developer’s toolbox and helps him/her to strive in establishing a set of automation guidelines and creating effective test frameworks.
Above all these, there’s Hudson, and we do take advantage of it. It takes care of running all our regression testing and we make sure that previously working parts of the application do not deviate from the accepted norm.