Test Automation was originally posted on the main page of LDSTech. It was written by Brandon Nicholls.
----------------------------------------------------
When I was a kid, I watched a cartoon called The Jetsons. The futuristic family had a robotic maid named Rosie who took care of the household chores. To make things interesting, she was given a personality, and occasionally she demonstrated emotions. After watching this show, I would think about the future and imagine robots doing the majority of our work for us while we sat back and did more important things. Although many of these imaginings have not materialized, I often think of this when I am writing test automation as a QA engineer for the Church.
Even a simple application can have a large number of test cases that need to be verified. Let’s pretend we have an application with 100 test cases. The sooner we realize a given test case is failing, the better off we will be. Accordingly, we would want to test after each successful build. Let’s suppose that ten new builds are created each day. If we tested all of this functionality with each new build, we would be testing 1,000 (100 X 10) cases day in and day out. Umm . . . I think we need a Rosie!
Taking the construction of Rosie a piece at a time, we first need to decide how our tests will exercise the given application. Unit tests work well for testing individual components and methods. They are typically written in the same language as the application and are run with a framework such as JUnit or TestNG.
At times we will want to test at a higher level by writing functional tests. The tools to do this will vary depending on the application. For Web applications, Selenium can be used because of the ability to test across many browsers. The Watij/WatiN/Watir family can occasionally be used, and some of us are optimistically watching WebDriver. These tools usually consist of a library that automates a browser window. For example, links can be clicked, forms filled in, and buttons pushed. At times when the overhead of an actual browser is not wanted, tools like HttpUnit can be helpful. Many tools exist to test windows clients as well.
Another critical piece of building a Rosie is using a continuous integration system. These tools will wait until new code is checked into a code repository, then grab the latest code, build it, deploy it, run tests against it, and alert us to the results, all with no human interaction.
An added benefit to automated testing is measuring how much of our code was executed by our tests (commonly called code coverage). Although having a high coverage number doesn’t guarantee a well-tested application, a low coverage number does indicate more testing is needed.
I’ve found that by utilizing the tools available, I have been more effective in my role. The tedious work of regression testing is minimized and made more accurate by a well-built and maintained set of automated tests. With the extra time available, we can then focus on improving other tools and processes in keeping with our recent guidance to do more with less.
Brandon Nicholls is a senior QA engineer for the Church.
Test Automation
Discuss the feature articles on the Tech Home Page.
- McDanielCA
- Member
- Posts: 486
- Joined: Wed Jul 18, 2007 4:38 pm
- Location: Salt Lake City, Utah
Return to “Featured Article Discussions”
Jump to
- What's New
- ↳ Announcements & Policies
- ↳ Virtual Meetings
- ↳ In The News
- ↳ Links & Resources
- Church Technology for Members
- ↳ Main Church Website
- ↳ Calendar
- ↳ Ward Directory and Map
- ↳ Leader and Clerk Resources
- ↳ Notes and Journal, and Online Scriptures
- ↳ Online Donations
- ↳ Beta Testing
- ↳ Beta Calendar
- ↳ Beta Directory
- ↳ Beta Lesson Schedules
- ↳ Beta Maps
- ↳ Beta Newsletter
- ↳ Beta Clerk Resources
- ↳ Other Websites
- ↳ Mobile Applications
- ↳ Gospel Library
- ↳ Android Gospel Library
- ↳ iPhone/iPad Gospel Library
- ↳ Gospel Library for Windows
- ↳ Gospel Living App
- ↳ Gospel Media
- ↳ Member Tools
- ↳ Android Member Tools App
- ↳ iPhone/iPad Member Tools App
- ↳ Mormon Radio Channel
- ↳ Church Account
- ↳ Family History
- ↳ FamilySearch Products
- ↳ FamilySearch Family Tree Application
- ↳ FamilySearch Indexing
- ↳ Family History Centers
- ↳ Genealogy Industry Issues
- ↳ Software Development
- ↳ Other Member Technologies
- ↳ Church Historical Timeline
- ↳ Emerging Technologies
- ↳ Accessibility to Church Technology Products
- ↳ ePublishing
- ↳ Audiobooks
- ↳ E-Books
- ↳ Interactive Books & Magazines
- Community Discussions
- ↳ General Discussions
- ↳ Family Safety with Technology
- Clerk Support
- ↳ Getting Started for New Clerks
- ↳ Reports and Forms
- ↳ Local Unit Finance
- ↳ Membership Help
- ↳ General Clerk Discussions
- Meetinghouse Technologies
- ↳ Meetinghouse Internet
- ↳ Clerk Computers
- ↳ Printers, Copiers, and Multi-Function Devices
- ↳ FAQs for Local Unit Copier Program
- ↳ Broadcasts and Conferences
- ↳ Interactive Virtual Meetings
- ↳ Non-Interactive Webcasting
- ↳ Stake Conference with Remote Participants
- ↳ Satellite
- ↳ Receiving Internet Broadcasts
- ↳ Rich Media in Lessons and Training
- ↳ Meetinghouse Audio
- ↳ Phones
- ↳ Other Meetinghouse Technologies
- ↳ Stake Technology Specialist Training
- Audiovisual Media and Emerging Technologies
- ↳ Getting Started
- ↳ Digital Media
- ↳ General Media Discussions
- Help & Feedback
- ↳ Help with this forum
- ↳ Archive
- ↳ Classic Ward & Stake Sites (LUWS)
- ↳ Ideas & Suggestions
- ↳ Adobe Flex
- ↳ Enterprise Change Management
- ↳ Personal Ancestral File (PAF)
- ↳ Temple-Ready
- ↳ FamilySearch Wiki
- ↳ Australia Area Technical Support
- ↳ Lesson Schedules
- ↳ Newsletter
- ↳ BlackBerry Gospel Library
- ↳ WebOS Gospel Library
- ↳ Windows Phone Gospel Library
- ↳ BlackBerry LDS Tools
- ↳ WebOS LDS Tools
- ↳ Windows 8 LDS Tools
- ↳ Windows Phone LDS Tools
- ↳ Feedback on Tech
- ↳ Gospel App & Game Contest
- ↳ Help Center Website (Formerly RKATS)
- ↳ Community Development Projects
- ↳ Emma
- ↳ Mobile Development
- ↳ Interactive Music Project
- ↳ Java Web Project Support (Stack)
- ↳ Featured Article Discussions
- ↳ Technical Recruiting
- ↳ Development Help Wanted
- ↳ Personal Video Conferencing
- ↳ MLS Support, Help, and Feedback