Here are my notes from the second day of Google's Test Automation Conference (GTAC) back in October.
Wednesday, February 4, 2015
All of this boils down to a rather classic question from software testing: How much testing is "enough"? As with most interesting questions, the answer is some form of "it depends." At a high level, though, I like to define an application-specific notion of "enough" in some terms of coverage.
Wednesday, October 29, 2014
Monday, October 20, 2014
Testing is the process of evaluating whether an artifact fulfills its requirements. Effective testing depends on the ability to clearly define expectations and clearly observe relevant domains which can inform this evaluation. You can't test what you can't see.
Wednesday, September 3, 2014
My job title may say "Software Developer in Test," and my dissertation may be about "Model-based testing," but I'm afraid I cannot escape my true self - a CM guy. For whatever reason, I am passionate about Configuration Management. Every side-project I've ever worked on, the first things I want to get up and running are a code repo and a continuous integration build; THEN (and only then) the coding can begin.
I recently shared my enthusiasm for Docker, and I mentioned in that post that I would come back and share an example of data management with Docker. Here is that example, in the form of some work I recently did to get Jenkins and Sonatype Nexus working in their own Docker containers yet talking to one another and scripted in a stable, repeatable way.
If you're in a hurry, you can find a public Gist of my scripts for this example right here.
Tuesday, September 2, 2014
Friday, August 29, 2014
For those familiar with WebDriver, you may ask why we don't simply use the base WebElement class and extend it directly. For one thing, there's no promise that ExtWebDriver won't do this in the future (our latest release included use of the By locator objects from Selenium's framework). For now, the abstraction layer between ExtWebDriver's widgets and WebElement does isolate users of the library from the particulars of WebElement that may otherwise not be pertinent to a particular widget. The Element base class does provide a getWebElement method for direct access to the WebElement underlying any widget object instance.
By the way, ExtWebDriver has plenty of other features, too! Another contribution of ExtWebDriver is its SessionManager, which includes a property-file based instantiation of thread-safe WebDriver sessions. You can get started with a quick example right here.