Scripted GUI Testing with Ruby (The Facets of Ruby Series) (英語) ペーパーバック – 2008/8/15
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
"Scripted GUI Testing with Ruby" is a practical, quick-moving tutorial based on real life, and real-world GUI applications. Right out of the gate, you'll start working with code to drive a desktop GUI. You'll discover the kinds of gotchas and edge cases that don't exist in simple, toy programs. As you add more tests, you'll learn how to organize your test code and write lucid examples. The result is a series of 'smoke tests' team will run on Continuous Integration servers.Next, we'll explore a variety of different testing tips and tricks. You'll employ a series of increasingly random and punishing test monkeys to try to crash programs. Table-driven techniques will show you how to check dozens of different input combinations. See how to use longer acceptance tests (in the form of stories) to represent the way a typical customer would use your program. The book uses examples from Windows, OS X, and cross-platform Java desktop programs as well as Web applications. You'll develop test scripts in Ruby; you don't need to be a Ruby expert, but basic comfort with the language will be helpful.
Ian Dees was first bitten by the programming bug in 1986 on a Timex Sinclair 1000, and has been having a blast in his software apprenticeship ever since. Since escaping Rice University in 1996 with engineering and German degrees, he has debugged assembler with an oscilloscope, written web applications nestled comfortably in high-level frameworks, and seen everything in between. He currently hacks C++ application code, automates laboratory hardware, and yes, writes user interface test scripts for a test equipment manufacturer near Portland, Oregon. When he's not coding for work or for friends, you're most likely to find Ian chasing his family around on bicycles, plinking away at his guitar, or puzzling at the knobs on the espresso machine while some impromptu meal simmers on the stove nearby.
As the title implies, test scripts are written in the Ruby language -- and its Java implementation, JRuby -- and the author assumes that readers will have some experience with Ruby. If you've written and run a few Ruby scripts, you'll be fine. Ian doesn't require you to be a black-belt Rubyist to understand what's going on here, and his humor helps keep it interesting.
Ian's guinea pig for client-side testing is LockNote, a simple text editor that saves your notes with password-protected encryption. The program is freely available for Windows, and Ian has developed his own cross-platform Java/Swing version, dubbed "JunqueNote". Using these two applications, Dees teaches us how to automate testing of GUI applications on both the Windows and Java platforms. You'll learn how to launch the app and use API calls to find windows, automate keystrokes and mouse-clicks, and more. This can be valuable as either a means to an end, or as the end goal itself; whether you're testing software, or simply looking to automate it via the user interface.
In one chapter, Dees provides a gentle introduction to the popular RSpec Behaviour Driven Development framework. In another, he shows how we can simplify our test code by separating out the common code from the platform-specific code.
Because the focus is on software testing, the author devotes a chapter to leveraging randomness to expose bugs that might otherwise be missed. Another chapter focuses on the ZenTest test matrix library. A later chapter delves into testing web-based applications using Selenium and WATIR, and how to combine these with RSpec.
As a Ruby on Windows advocate, I'm pleased to see a book that devotes more than just a half-dozen pages to Windows-specific task automation. But "Scripted GUI Testing with Ruby" spends a good deal of time discussing Java-based testing, as well.
This book is targeted at software testers, and they'll certainly be the section of the market that gets the maximum value from it. But it has potential value beyond that niche. There's something useful to be learned by both testers and non-testers, on both Java and Windows platforms.