Skip navigation.

Erik Petersen's blog

Breaking News breaks records across the net

events | non-functional testing | performance testing | perspectives
The sad passing of Michael Jackson became a breaking news story that sent a shockwave spike through the infrastructure of the internet. Google saw a huge spike in traffic that security threshold detectors interpreted as a hacker attack, resulting in a 25 minute captcha confirmation or service refusal from Google News. Yahoo had the MJ report headlined in their news aggregator, then Google had it further down, and Microsoft's Bing had it way way down. A Bing blog post seemed to imply that it was ranked down because it did not have images with it, which breaking news typically wouldn't.

The website TMZ.com broke the story 20 minutes after his passing, then went down briefly under the load. The LA Times was the first news site, and it fell over soon after. Online news services saw a 20% increase in traffic, but the availability of popular web news sites dropped from 100% to 86% and didn't return for another 4 hours.

Asia Pacific CITCON does Brisvegas!

agile | events

After a great conference in Sydney in 2007 and Melbourne in 2008, The Continuous Integration and Testing conference (CITCON) is coming to Brisbane in 2009, on June 27th. It’s an open space conference where we all meet the night before (June 26th) to propose and vote for sessions (and arrange the session schedule) then we socialize, then we come back on the Saturday and enjoy sessions of demonstrations, discussions, BOF, etc interspersed with eating and socializing again. Participants said it was an amazing experience both years, so may be scintillating in the Brisvegas sunshine.

This is a free conference, running on sponsorship (Special thanks to this years sponsors!). Check out the details including registration at http://www.citconf.com/brisbane2009/

We’ll be at the Acacia Ridge Conference Center, a short distance south of the Brisbane CBD. On a slightly serious note: It may be free to attend, but it still costs money to run so if you do register but can’t come, please tell us so we don’t overcommit on the catering etc, and someone else can take your place (and your t-shirt and show bag!). Folk from the US, NZ, India and around Australia are already registered. Join us for some great CITCONning!

Short and long game thinking, tests driving design and CRAP metrics

agile | design & development | refactoring | test automation

Kent Beck recently posted To Test or Not to Test? That’s a Good Question on the complex “theory versus practice” issue of always automating tests, where he states,”Then a cult of [agile] dogmatism sprang up around testing–if you can conceivably write a test you must”. By classifying projects into long game and short game, he argues that ROI becomes a major issue on whether a test stays manual. He says “Not writing the test for the second defect gave me time to try a new feature”, but several people commented that this was a technical debt tradeoff, and Guilherme Chapiewski noted he had done the same thing with a Proof of Concept that went live then he had to rewrite major chunks later. It is interesting that this ROI discussion is reflecting the experiences of the pre-agile functional automation community. Back in November 2001 (Wow! Long time ago!!), I posted to the Agile Testing list some considerations for not automating . While many of these were from the context of two separate development teams and the automaters using expensive test tools, the risks of incomplete automation and insufficient ROI dominate. The benefits of having the same people both develop the code and the tests are great, and beyond my experience when I wrote that post.

I think the ROI issue for code-based tests will go away over time. Much of the creation of code-based tests is mechanical. Just as programming languages replaced assembler and took care of fiddly details (what registers to use, low level comparisons etc) and build utilities replaced simple text file include statements, I think that soon it will be standard practice to have tool-created unit testing to handle mocking, dependency injection and assert-based testing. Mocking was originally very manual, then tools were developed. Dependency Injection was very manual,then tools were developed. For assert-based testing, we’ve already seen Agitar’s tools , zentest and now pex amongst others. I think these tools will become standard, just as coverage tools are now standard in IDEs when they originally were luxuries costing tens of thousands of dollars. Another variation of this is tools like Celerity recently blogged about by Jeffrey Frederick. Celerity is a fast way to run GUI web tests, but could be handled as a mechanical translation not a manual one. Some meta language could generate Celerity and selected browser tests in a single step.

Mechanically generated tests are cheap to produce and overcome ROI issues. However, they only reflect the current code. The benefits of test design infusing the coding approach are missing. If tests are not being automated for whatever reason, some analysis of the refactoring risk should be done, at least to know where and what the error-prone code is. One way of doing this is using the Agitar-created CRAP metric , which Bob Martin recently blogged about as a way to keep design clean. While I currently believe all code should be created test first wherever possible, techniques like the CRAP metric can highlight the complicated bits for refactoring where possible. While it may be a great intellectual challenge, there is no need to refactor a complex industry standard algorithm. [Aside: is there an inherent advantage to doing test first design all the time? Perhaps, just as renaissance masters only painted and sculpted hand and faces and left the rest to their workshop staff, we only need to focus on core functions for test first and do the rest test last?]

As Kent says,”By insisting that I always write tests I learned that I can test pretty much anything given enough time.” Time is often a rare commodity, so Kent argues compromises are often needed in short goal projects. As Ron Jeffries said in a comment on Kent’s post, “My long experience suggests that there is a sort of knee in the curve of impact for short-game-focused decisions. Make too many and suddenly reliability and the ability to progress drop substantially.” I hope that advancements in mechanical generation of tests don’t push us into a short game perspective, impacting the use of hand crafting tests to drive design. At the same time, metrics that can be run as part of the build to highlight areas for refactoring on all projects are proving valuable (and I’m looking forward to state coverage ). By any measure, these are interesting times we live in. Long live long game thinking!

Wolfram Logic Bugs

acceptance testing | context-driven testing | general software testing

While Wolfram Alpha seems to have been endowed with both a sense of humor and self, there are some curious logic bugs. Try this, enter Name kim stacy terry jan frankie. WA shows the popularity of each name in the US census. It also asks whether you meant the male or female version of each name. This is very intelligent! It also says it assumes it is a list, and offers to do a multiplication instead???!!!! Clicking the multiplication link returns the standard “dont understand” message.

My favorite (so far) relates to two movies based on books. Enter Name tom jones . WA knows this is not just any two names. It assumes “tom jones” is a book (with a movie link option as well) then says it is a title, then the result is Data not available . Mmmm, let’s understand this a little better from the WA point of view, I assume it is a book, Yep, It’s a book title that I know, Nah, forget all that, too hard, no idea at all! It does find it as a movie though.

If we try another entry name color purple we get the same problem: no book data but normal movie data. We can guess what is causing it: there is a record of a movie of the book but no details on the book itself yet. Hopefully the book data will be “made available” soon….. However, if you just type in Color purple , you get information on the color purple, with a link to the book or the movie. Clicking on the book link then show full details of the book. Huh?

OK, let’s just try Tom Jones . Now we find out he is a singer, but we also have a link to a book or a film. Clicking on the book link tells us now that there is some limited data: the author is Henry Fielding. As Alice in Wonderland said, “Curiouser and Curiouser”, I try Alice in Wonderland , and there are 5 movies, but no book!

Finally, I tell WA “Im not sure what to do with your output” to which it replies “WA is not sure what to do with your input”!

PICT rules! (and so does 80:20!)

I finally got to do some serious combinatorial test design using PICT (download it here ) defining a series of rules covering a multi-stage approval workflow over a group of input queues. What could have taken several thousand tests reduced to under 40 after some experimentation to define the rules, and after several tweaking runs to optimize the mix of tests (including a seed file to get a successful case for each input queue), there were 2 tests for each of the core queues, and one for each of the others, as well as a mix of failure situations. It is an amazing tool that I want to keep investigating further. Thank you Jacek for your work on PICT!

Unlicensed confusion, by design?

ethics | general software testing | metaphors

Context is King, a picture’s worth a 1000 words & Jazdy Prawo is a Polish master of disguise driving around Ireland. This is a tale of ambiguous requirements, poor design and PICNIC (explanation soon) . In 2007, the Irish Police wrote a confidential internal memo to clear up some confusion- Police trying to get details of traffic offenders with Polish drivers licenses often found they had stopped Jazdy Prawo, and details of more than 50 of them had been recorded with different addresses and even sexes!

The end of printed Next and private blogging

perspectives

More than 20 years ago, a now defunct magazine called “Computing Australia” had the final column by Graeme Philipson talking about how Mainframes would have a long lifespan. I wrote a letter at the time saying how it was a pity he chose a dead duck for a swansong. Now, I have to acknowledge he was right and I was wrong. A week ago, Graeme wrote another final column that had featured weekly for 10 years in the IT pages of the Tuesday edition of a local Melbourne paper, “The Age”. The section, renamed Next several years ago, was many pages long in its heyday and was the source of several of my jobs over the years. Now not only are the ads on the net, so is the whole mostly-national IT section. As Graeme observed, “IT journalism is moving to the internet”. The strange thing is that the Net seems to have no content from “Computing Australia”.

I wrote many blog posts last year with pen and paper that were good writing practice that I never got round to publishing, I hope to read many more posts from Graeme if he continues , and I will try to post more as well. Graeme’s last topic was the internet and communication. May we both use the former for the latter for many years to come!

Archeological Black Swans: tales of observation, deduction and lost treasure

general software testing | metaphors | perspectives | test analysis

I had dinner with Michael Bolton and James Bach during STARwest, which was a great feast of ideas and insights in addition to the fine food. One of the interesting new ideas that I hadn’t yet heard of was Black Swan Theory , mentioned by Michael Bolton. As an Australian, I could see nothing unusual about the concept of a Black Swan, but in Europe before the discovery of Australia, a black swan was seen as an impossibility since none had ever been seen. The Black Swan theory relates to an unexpected, radical event that alters your perception of reality. As testers. we are often told the European view that black swans don’t exist (this code is fully tested, two weeks of testing will be more than enough, one retest all you need, works on my machine), but we know that our world is full of black swans we call bugs. There is also the other myth that “all tests must be scripted” disproved by the black swan of exploratory testing.

XML feed