Skip to main content

Quality in a Jar

Its an oft chanted mantra that software quality can be 'baked in'. Like flour or eggs you just mix in the right ingredients and out comes perfection. If my wife and I were ever to take part in our own bake-off, then you'd soon see that hypothesis undermined. We'd both begin with the same ingredients, oven, spoons etc. My better half would no-doubt deliver another scrumptious banana cake and I - a new and interesting exterior wall sealant [not my intention].
Batteries and LEDs, but no quality.

The problems here are manifold, There's a Reification error, for quality is not a tangible entity (A favourite issue for Michael Bolton). There's the idea that once built software and its use is immutable. If you've ever had to use one of those unmaintained applications (typically a time sheet/billing system) thats gone to seed you'll agree that it hasn't exactly aged like fine Claret. But what's most naive is the assumption that the simple use of a tool or ingredient will make some thing better - it'll make the bugs go away and stay away.

People and consequently software is more complicated than that. A problem with a piece of software can be almost anything from an incorrect conditional operator, to the use of an incorrect language dialect  e.g.: I had the pleasure of testing some navigation/directions software, developed in the USA, as it was being 'tweaked' to work in the UK. A good example of an issue was an instruction along the lines of: "Take the off ramp, then rotary 1st exit". To a British English speaker that sounds more like instruction on how to skate-board while donning a wristwatch than how to navigate a junction (sorry 'intersection')

The tool, is just that, a tool and is nothing without the artisan's skill behind it. In testing, it is the testing skill involved that matters over the particular software tool or library installed.  To highlight the oddness of the proposition, Transplant the situation to another team member and see how it fits: Does the programmer with the most feature rich-IDE automatically produce the best code? or wider afield, Would you trust a bad doctor with space-age tools more than a skilled and experienced doctor and his judgement as to what tools and instruments to use?

Just adding a test tool, a Jar file or executable, and robotically implementing checks in its prescribed format does not automatically give you good software. Further-more, approaching a testing problem with the tool in-hand, biases you greatly as to what problems you are going to find as well as possibly miss-directing you away from the problems.

   "When all you have is a hammer, all problems start to look like nails." - Mark Twain

For example over-using Selenium or WATIR for testing a feature rich GUI is a common mistake. Many companies standardise on such a tool for GUI test automation. If your application is heavily GUI driven, then that's important to bear in mind. Your feature-changes are human user oriented - so testing could well benefit from well errh more 'human user' interaction.

The most powerful tools are your eyes, brain and hands. Let these take a look first, get an idea of where to apply the tools and what those tools might be. Don't expect that just installing that Jar will bring automatic improvements.

PS: You can learn more about those 'Sun Jars' here: http://www.comfycamping.co.uk/Gear/Lighting.aspx

Comments

Popular posts from this blog

Betting in Testing

“I’ve completed my testing of this feature, and I think it's ready to ship” “Are you willing to bet on that?” No, Don't worry, I’m not going to list various ways you could test the feature better or things you might have forgotten. Instead, I recommend you to ask yourself that question next time you believe you are finished.  Why? It might cause you to analyse your belief more critically. We arrive at a decision usually by means of a mixture of emotion, convention and reason. Considering the question of whether the feature and the app are good enough as a bet is likely to make you use a more evidence-based approach. Testing is gambling with your time to find information about the app. Why do I think I am done here? Would I bet money/reputation on it? I have a checklist stuck to one of my screens, that I read and contemplate when I get to this point. When you have considered the options, you may decide to check some more things or ship the app

XSS and Open Redirect on Telegraph.co.uk Authentication pages

I recently found a couple of security issues with the Telegraph.co.uk website. The site contained an Open redirect as well as an XSS vulnerability. These issues were in the authentication section of the website, https://auth.telegraph.co.uk/ . The flaws could provide an easy means to phish customer details and passwords from unsuspecting users. I informed the telegraph's technical management, as part of a responsible disclosure process. The telegraph management forwarded the issue report and thanked me the same day. (12th May 2014) The fix went live between the 11th and 14th of July, 2 months after the issue was reported. The details: The code served via auth.telegraph.co.uk appeared to have 2 vulnerabilities, an open redirect and a reflected Cross Site Scripting (XSS) vulnerability. Both types of vulnerabilty are in the OWASP Top 10 and can be used to manipulate and phish users of a website. As well has potentially hijack a user's session. Compromised URLs, that exp

What possible use could Gen AI be to me? (Part 1)

There’s a great scene in the Simpsons where the Monorail salesman comes to town and everyone (except Lisa of course) is quickly entranced by Monorail fever… He has an answer for every question and guess what? The Monorail will solve all the problems… somehow. The hype around Generative AI can seem a bit like that, and like Monorail-guy the sales-guy’s assure you Gen AI will solve all your problems - but can be pretty vague on the “how” part of the answer. So I’m going to provide a few short guides into how Generative (& other forms of AI) Artificial Intelligence can help you and your team. I’ll pitch the technical level differently for each one, and we’ll start with something fairly not technical: Custom Chatbots. ChatBots these days have evolved from the crude web sales tools of ten years ago, designed to hoover up leads for the sales team. They can now provide informative answers to questions based on documents or websites. If we take the most famous: Chat GPT 4. If we ignore the