I’ve got a small piece in Avionics Intelligence about the importance of software testing. It’s short and to the point, so give it a read and let me know what you think. The gist is that for some things testing is far more important than others, especially where lives are at stake. It may be ok for a desktop program to crash, but not for an airplane.
It also got a press amusing mention on Vector Software. Thanks for the mention people, if you met me you’d know why the Code Curmudgeon name. 😉
I recently did an interview about software testing with Techpost Media (TPM) which is now available as a podcast. The topic is “Success In Building Quality Software Is Knowing What Not To Test”. To quote the teaser:
“It is critical to focus on testing only those things that are truly critical to verify quality. It is all too easy to generate so much noise with testing that you spend more time analyzing results than developing code.”
Wander over and give it a listen, I think you’ll enjoy it. If there are other topics you’d like covered, let me know.
I spoke at the Quest 2012 conference in Chicago last week. The topic was “How To Optimize Your Existing Regression Testing”.
My presentation covers some very practical and pragmatic tips for dealing with regression testing, especially if you have legacy test suites. It’s not product centric, so it should be helpful to anyone working with regression testing. As much as possible I’ve tried to keep the suggestions abstract rather than from a developers perspective.
Take a look for yourself. If you have any comments or suggestions, feel free to mention it in the comments, or email me or reach me on twitter.
It seems like everyone who is anyone is creating a list of software predictions for the software industry for 2012. I decided why not jump on the bandwagon and have some fun. If nothing else, it’s a good chance to rant. So without further ado, here’s my two cents on 2012.
Extensive cross-browser testing will become a necessity
In 2012, you can no longer get away with testing browser-based applications on one or two browsers. Not so long ago, an organization creating an internal application could declare that they were targeting a specific version of Windows, and testers could ignore everything else with impunity. Even if the application was accessed via a browser, it was pretty safe to assume that if the organization had Windows desktops, testing could focus on IE 6 or 7.
Now, more and more applications are accessed from a browser, and there’s no way to predict which browser people will have on their desktop. For a commercial product, you probably need to support (and test on):
Firefox on Windows, Linux, and Mac
A couple versions of IE on a couple versions of Windows
Safari on OS X and iOS
The only good news on this front: At least you won’t have to test on IE 6 since Microsoft is actively driving it into extinction.
Mobile devices are another huge issue. As a tester, you need to define what you’re supposed to care about. If you’ve got a reason to skip something, make sure your test plan not only documents what you are testing, but also what you’re NOT testing (and why). For example, if you think Firefox is important, get that documented in your test plan.
And then there’s tablets. No matter what you think of Apple, there’s no denying that iPads are everywhere. If there’s any way to access your application from an iPad and you’re not testing it there, don’t be surprised to see a growing number of reported bugs (or lost users) in the upcoming year. The same goes for other tablets that are gaining momentum in the marketplace.
Testing for touch interfaces will need to be done
A finger can move in ways that simply are not possible for a mouse. With a mouse, if you want to move the cursor from point A to point C, you must move through point B. With a finger, you can go directly from A to C without ever passing through point B. A mouse can never be in two places at once, but a touch display often receives multiple simultaneous touches moving in different directions. You also have directional gestures, different lengths of touches, and so on. Web sites that depend on some form of hover for instruction or navigation don’t really translate to a touch interface.
What does this mean for testers? Until now, many teams have been able to squeak by with very extensive testing on the desktop, then some cursory checking on a touch interface to confirm that nothing horrible happens. As more and more people start using touch interfaces—often as their primary computing device—this is going to become more and more of an issue. Test plans will need to address this.
Cloud adoption will continue, but not necessarily help
Super simple guess here. So easy it’s not actually a prediction. People will continue to migrate things to the cloud. At some point in the future it’s possible this trend will reverse, similar to outsourcing. The cloud introduces new problems and complexity while solving others. Some will find that the cloud helped, others that it didn’t really change things (SPDS – Same Problem Different Server) while still others will find that the cloud was for them a huge mistake. Try not to be one of those – make sure that the reason you’re going to cloud aligns with what the cloud can actually do for you. Beware of those who say it will cure all problems.
The Arms Race in PC performance is over for the desktop
Probably this happened even earlier, but I’m making it official. The desktop performance arms race is over! Hurray! No longer do you need to buy a machine worrying that the next one out in 3 months is so much faster that you wish you had waited. Truthfully for most users outside of high-performance gamers, the machines available today are more than fast enough.
If you don’t believe me, look at the tablets and phones out there. They are much lower performance than the desktop, and yet still more than good enough for most people. One thing good about the mobile devices is that with the limited resources there the developers have been more careful to date. As mobile devices grow in capability, the apps will decrease in performance, because programmers will become sloppy as they have on the desktop.
One last long-term prediction on this – most desktop computers will be history within the next 10 years. They’re already approaching the point of being ridiculous.
Siri + Kinect
Ok, this one is not going to happen. Not this year, not ever. But imagine computing devices capable of the voice input that Siri has along with the controllerless gestures and other inputs that Kinect is capable of. I want one, now! Where do I buy it?
Well don’t expect Microsoft (MSFT) and Apple (AAPL) to team up, but don’t be surprised when we finally do start seeing those two concepts married in the same devices. It WILL happen, it’s just a question of when. Unfortunately, probably not for a couple of years. Someone please prove me wrong.
Some companies will miss the boat on tablets
By this I don’t mean that someone will make crummy tablets – that’s already happened more times than anyone would have expected. I mean from a business perspective companies don’t realize that tablets are necessary both for your staff as well as your customers. Handicapping your staff or your customers results in lost business. More than one company will let that happen to them this year.
In other words, if you don’t have a tablet strategy for your IT department – get cracking. If you don’t have one to make sure your customers that have tablets can access your application/web then hurry up and fix it, because it’s already costing you money. For example, if you have a web site that lets customers make online payments, but Flash gets in the way, people will start looking for other vendors. They are already doing this.
And if you think you can simply re-size your application to fit on a smaller screen, think again. Mobile is fundamentally different – read the section on touch interfaces above.
Flash will die
It’s already officially dead on mobile, in that Adobe has said they’re no longer supporting it. How much farther behind can the desktop be? It’s inevitable that Adobe will not bother with the desktop at some point. Probably NOT this year, but in the not too distant future. If you have a Flash app today you should start looking at HTML5. If you’re looking at new development for heaven’s sake don’t use Flash!