In our previous post, Selenium Java: An Intelligent Example Part 1, we described how to manage Technical Debt and the importance of using a Page Model. We also gave an overview of the classes used in this example project. In this post, we will be getting into the code. We will demonstrate how everything ties together and how you could build a similar project to test your application. BasePage The BasePage class is at the center of it all. It… [continue]
Selenium Java: An Intelligent Example Part 1
In our introductory post, A Survey of the Automated Testing Landscape, we defined the problems we often find in automated testing. In this series, we will walk through an intelligent example of a Selenium test project that uses common design patterns and object oriented principles to help solve the problem of Technical Debt. This is not to say that this example is the perfect solution that will solve all of your problems. Remember from the introductory post that unicorns do… [continue]
A Survey of the Automated Testing Landscape
The tools available in test automation these days are pretty amazing. The options are getting a little overwhelming. You could choose to pay for an expensive product that would make a lot of decisions for you, or you could go old-school and write everything yourself. Many companies choose to buy expensive products, because they think that will give them an advantage. They may feel that designing their automated testing environment from scratch is not feasible. Their developers are busy with… [continue]
E-gAT: E-gineering Automated Test, part 3
Previously, on Avatar… In prior introductory posts (part 1, part 2), we covered why E-gAT is a toolkit and not a framework, dropped some philosophy around leveraging the power of an organization’s existing workforce, touted the Page Object pattern for writing automated tests, and mentioned that E-gAT is freely available on GitHub. In this post, we’d like to cover some of the technical aspects of E-gAT. Test Runner: Multi-threaded and Resource-smart Two technical aspects that we wanted to address in… [continue]
E-gAT: E-gineering Automated Test, part 2
Page Object Pattern: Smart, and… From our considerable experience in software, we’ve learned the great value of leveraging industry best practices and patterns – because the industry at large has even more considerable experience, and has a learned a thing or two! One such best practice for automated testing is the Page Object pattern. As software engineers, we saw this best practice as excellent in its own right. But we also saw an opportunity to manifest a philosophy into a… [continue]
Introducing E-gAT: E-gineering Automated Test, part 1
Making the Most of Opportunities Early in 2015 we had some time available for a short internal project. One E-gineer had just rolled off an engagement where the client was building automated test solutions around Selenium and Python. Matt’s experience on that project was very positive – seeing Selenium and Python used in a way that brought quality confidence around a very important web application for the State of Indiana. But he also saw that there was room for improvement… [continue]
On Launching a Website
You know, many boat launchings come with ceremony. Such as this account Two fryers and an attendant went into the vessel, and kneeling down prayed halfe an houre, and layd their hands on every mast, and other places of the vessel, and sprinkled her all over with holy water. Then they came out and hoysted a pendent to signify she was a man of war; then at once thrust her into the water. Or maybe accompanied by weighty words They… [continue]
Running Multiple Versions of IE on Win 7 with Virtual PC
My coworker Chad sent out a link to this article on the SitePoint blog a long time ago (probably about a year and a half ago) and I’ve been meaning to try it since that day, but just haven’t gotten around to it. Recently I started a new project for a client that is still supporting IE7 so I figured I better try to have an easy way to verify things in IE7. The article is really well written and… [continue]