Recently Uncle Bob talked about a manager who constantly choose short term hacking over anything else defending the decision with the idea that “business software is ugly.” Uncle Bob came up with a good argument to make:
One of the developers asked the question point blank: “What do you do when your managers tell you to make a mess?” I responded: “You don’t take it. Behave like a doctor who’s hospital administrator has just told him that hand-washing is too expensive, and he should stop…
After a brief hiatus, I would like to return to the subject of technical debt.
First off, I don’t think technical debt is a question of “Yes or No”, but instead a question of “How Much.” After all, everyone loves the company where the boss gives them all the time they need to implement the “right” solution without any pressure … right until it goes out of business.
In that way, technical debt is not like real debt. In the real world, debt carries interest, and the best financial choice is…
I recently came across this question on the testdrivendevelopment Yahoo! group.
I’d like some advice/opinions on how to test some existing code. It’s a web
application using Spring and struts.
I have a class called the ProcessedFilesManager which contains a number of
methods used by Struts Action classes. This manager communicates with five
different DAOs to get the information that some of the Struts actions are
interested in. Now, I want to test this manager…
has some interesting points about the long ago chosen language choice for the
bug tracking tool Bugzilla: Perl.
What is the popular Bugzilla’s future, due to the limitations of the Perl? It sounds
like they are thinking about a rewrite. Can an open source product survive a transition
of that magnitude? This will be interesting to see how it pans out. Open
source failed me once, I hope it doesn’t fail the testing community.
I’ve decided to dedicate a spot on the blog for the user-agent information I’ve been
providing over the last few years. From now on you can reference this post from the
right navigation under the tools section.
Here are four very good lists and classifications of user-agents:
I ran across Cédric Beust’s article Agile People Still Don’t Get It again, and I just wanted to point one little thing out for you, for him, for everyone. He writes about a presentation he attended that illustrated why agile people still don’t get it:
One of the first slides that deeply troubled me claimed the following: Tests are (executable) specs; (and) If it’s not testable, it’s useless.
Cédric went on to show a number of examples of algorithms that aren’t worth test-driving and…
a near 14 year life span competing with IE and other better browsers, AOL is
throwing in the towel on Netscape
Navigator. The war was long and drawn out but has finally come to an end for the
Sweet! Take another browser off the browser compatibility testing list.
OK - so you are paying more attention to quality now, right? Starting to ask more about what makes a Mercedes so much better than, say, an Opel or a Dodge. What’s another step you can take to become a better tester? Simple - expand your horizons by reading. That’s what this blog entry is about: what can you read? The first place to start comes for free: read off the Internet. Read blogs (http
The easiest thing to criticize is that which one does not fully comprehend. There has been a lot of discussion lately about Jerome Groopman’s book How Doctor’s Think and a correlation between doctors in the medical profession and software testers. The book is an excellent read, and provides readers with valuable insights not only with medicine, but we can certainly abstract many of the fundamental lessons to testing software. Indeed there are many similarities between doctors practicing…
Back in 2006 I wrote the article The
$60 Web Testing Toolbox with the intent of providing a cheap set of Web testing
tools for testers. Most of the tools were mentioned because they provided me the most
bang for the buck, but the reality is that good testing tools sometimes cost money.
I wanted to share with you my complete Web Testing Toolbox minus the cheap factor.
Developing software is not cheap so why does testing of it have to be? For the most
part, these tools are…
I no longer have the corner office. Neither does my boss, so it’s ok.
We moved earlier this month into the reconfigured cube farm on the other side of the floor. I do have a window seat, and can see the bay without craning my neck. The little things are important.
The new guy started earlier this month. Now that I’ve got time to bring him up to speed, I can bring him up to speed. I’m glad the next two weeks have the potential to be quiet, so the world might not change too much while I’m…
This is an open request for help. I’ve started using Mercurial as my version control system of choice, and I’d like to start sharing controlled documents with a business user. Now this person is relatively sophisticated as a business user, but he’s not a programmer, so I sense he wouldn’t be comfortable using the hg command-line tool. I’ve asked him, but in the interim, I’m looking for a potential solution to a problem I anticipate having. Can anyone recommend a tool that wraps around hg…
It never ceases to amaze me that every time we see a calamity involving software the immediate reaction of the sensationalist media types and other people who are generally misinformed is to blame inadequate testing. Recently, it seems that Joel Spolsky not only fell victim to rumors and misinformation, but also to the lunacy of blaming the testing organization for the rather lack luster adoption by individual consumers to move to Windows Vista. Sales of Windows Vista are slow for a myriad of…
that time of year again, time to get online and have some last minute Christmas and
Santa fun. There are a ton of things on the Web to do. The following links can keep
you and your child busy with Santa for hours. Merry Christmas!
Just stumbled on this post at InfoQ on the power of checklists. It talks about a low-tech approach to improving care in hospitals, by writing down the steps needed in various medical procedures and putting together a checklist for each case. I’ve seen the power of this approach at my own company — until we put together checklists with things we have to do when setting up various servers or applications, we were guaranteed to skip one or more small but important steps.
Some questions on the submission process for Agile 2008, passed along by an Example stage committee member.
What the heck is a “stage” anyway?
I am thinking of a stage as a “conference within a conference.” It’s like a stage at a large music festival, where there’s a particular physical location where you might go to hear blues. (Plug here for Karen Carroll.) Buy a pass to the music festival and you can wander among the stages, seeing what you like. Or you might decide to hang out at a…
I do not like software that discombobulates users. I find that software error handling and reporting often confuses users more than it helps. Several months back, I created and wrote about a mnemonic of guideword heuristics that I have been using for testing error handling and reporting. I have found this useful in my own testing and have received some positive feedback from others that are using it. I created the following PowerPoint show to help demonstrate how I use the mnemonic. Take a…
Steve Swanson is very new to testing. I predict he has a great future. He has already noticed that the common idea of boundary testing is almost content-free. Michael Bolton and I do a whole session on how to turn boundary testing into a much more intellectual engaging activity. At the end of his post, he identifies one of the major weaknesses of the classic notion of boundary testing. This confirmed for me that he is a mind to watch.
Steve questions the idea of naming test techniques:
So for the first time in many, many years I’m not in a test management position, and I’m writing tests, automating them, etc. We’re using a tool called soapUI to automate our web services testing–it’s a handy tool, supports Groovy scripting which allows me to go directly to the DB to validate the results of a given method, etc. One feature of soapUI is centralized test scripts; I can create helper scripts to do a bunch of…
No, not me! James Bach published a post mentioning that his vote for the World’s Most Inquisitive Tester is for Shrini Kulkarni and I am proud, he is from India. The moment I read that post from James, I took my mobile phone outside my pocket, dialled Shrini Kulkarni’s number and congratulated him for the appreciation he got and for the challenges he gives to testers through his questions. He
My vote for the World’s Most Inquisitive Tester is Shrini Kulkarni. He asks: Do you believe that “non sapient” tests exist or for that matter - any part (seems like a very negligibly small portion of entire universe of skilled human testing) of testing be “non sapient” ?
A sapient process is any process that relies for its success on an appropriately skilled human. A sapient test would therefore be a test that relies for its success on an appropriately skilled human.
I’ve begun work in earnest on Ruby Scripting for Leopard. I’d like to assemble an audience who can review drafts and tell me what people like them need. I’ve set up a mailing list.
The one sentence description of the book is “How to do anything AppleScript can, but in Ruby.” That is, the main focus will be using Ruby to control other apps like Mail or Safari. It’ll also show you how to write code that makes use of Mac framework features (like sending Growl notifications and putting…
Test automation is any use of tools to aid testing. Test automation has been around since DAY ONE of the computing industry. And never in that history has test automation been an “automatic way of doing what testers were doing before”, unless you ignore a lot of what testers actually do.
For the same reason, a space probe is not “an automatic way of doing what planetary scientists were doing before”, but rather a tool that extends the reach…
People commonly complain to me that when they try to test-drive code with test doubles (say with JMock), they end up with brittle tests: when the code changes, all these tests change. I understand, because it used to be that way for me, too. Nowadays, it doesn’t cause me a problem, and I believe it’s because my interfaces tend to stabilize quickly, and I believe that happens because my interfaces tend to be minimal with appropriately-distributed…
Recently I overheard a developer describing how his wife constantly interrupts him when he is thinking (i.e., seemingly doing nothing) rather than waiting until he was at a place where he could process what she had to say. It seems he has taken to kicking off a full build when he needs to think, as his wife figures constant activity on his monitor means he is busy.
I once heard of a husband and wife who both worked from home. Times were tight and so they shared an office. A small office. A…
Sometimes people hear about the Context-Driven School of Testing and tell me there’s no need for it, because nobody disagrees with the importance of context.
And then I read things like this from Alberto Savoia. I don’t know how to account for it, except to say that it’s the mentality that I’m fighting against. If you want to see an example of what I think is wrong with our industry, there you go. I’m going to start posting such examples more often, because I’m tired of hearing that I’m…
In the process of learning to use OmniFocus to Get Things Done, I have changed the way I group projects into folders. I started by grouping projects by purpose. I later realized why OmniFocus doesn’t have task priority: it has project priority built in, just by moving projects around in the Projects view.
This made me think that I should throw away most of my task due dates, which I’ve done, and replace “which task to do next” with “what are the next actions in my projects”….
Hey, somebody at AST must have read my blog when I coined the term “sapient testing“, because they named their magazine after it.
I’m still waiting for people to pick up on my other coinage: mythomemetic, which is an adjective meaning “not informed by experience or wisdom, but rather hearsay and wishful thinking.” I’ll use it in a sentence: “The speaker peppered his talk with mythomemetic cliches such as ‘you can’t control what you can’t measure’.”
I wanted to write a script that used Growl to notify a user. That user could click on the Growl sidle-up, and that would make the script do something. It took me a while to figure out callbacks from Growl to the originating app, so I thought I’d write it down.
There are a couple of Growl libraries out there, but the code that best suited my needs comes from Satoshi Nakagawa’s LimeChat. Since it’s not packaged separately, I include it here.
At DrivenQA we have been Twitter fans for several months now. Whilst initially sceptical, we have found it is a great communication tool. We thought it was about time to set up an account for DrivenQA communications specifically.