Software Testing, The Future and Some Thoughts

The Future of Software Testing

I’ve been thinking recently about the future of software testing.

I’ve been wondering why some people are still testing the same way they did 10 years ago and why others are trying new ways, pushing boundaries or at least experimenting slightly. I’ve been wondering why some people are complaining about the way testing is happening, yet are doing nothing about it. I’ve been wondering why we aren’t, as a community, pooling resources more than we currently are. Why we aren’t open sourcing our learning or collaborating more on solving tricky testing problems.

The Business world is moving fast and we need to move with them. We need to remain relevant. We need to add value, not hinder delivery. 

This post isn’t about them and us. Or Agile versus Traditional. Or scripted versus Exploratory. It’s about testing. It’s about what challenges face testing now and in the next few years.

Before I list my thoughts though I will add the simple caveat that these are my *feelings* about what will happen. You may not feel the same. You may agree / disagree / not care either way. This list is not scientific. It’s not complete. Some or all of it may not come true or be relevant or even right. I can’t predict the future, but I can lay down some thoughts to start a conversation.

An Observation

One thing I have noticed over the last few years is that we seem incredibly reluctant in many corners of the Testing community to talk about the future of testing. We *appear* to be stuck in the past. We don’t want to discuss the future (or the present for some), or maybe we feel we don’t need to talk about it. 

Maybe those that care are busy getting on with it, forging the future and moving on; always pushing the boundaries, not looking back. Maybe some people don’t even see any challenges to their cosy existence and can quite comfortably meander on with retirement in mind. Maybe some simply don’t have the engagement in testing to care.

We seem reluctant to experiment, to day-dream, to try things out and to open our minds to what the future may hold. We close ourselves in our testing box and berate anyone who tries to change that. I wonder whether people are clinging to the past because they are worried that any changes we make might not work; that we might not be better off than where we are now? We’ll never know unless we try though.

But I firmly believe that the world is changing fast around us. The way we interact, communicate, do business, use and create software is changing rapidly. Most apps are now web only, many are cloud hosted, some are purely mobile apps and almost all of them are being built and released in an increasingly fast moving market. The streets and our cities are rapidly becoming technology platforms in themselves. There is a bewildering array of devices to support, all with different quirks and nuances. For many people, we have no single demographically identifiable “end user” so our test combinations and usage patterns are in the gazillions. 

Yet we seem reluctant to ask where we fit in to this future. We seem reluctant to experiment with ideas, tools and techniques en masse. Very few people are having sensible conversations about how to push/pull testing forward to meet the demands of businesses. Fewer people still are even aware such change could be coming.

For such a big question as “how do we fit in to the future?” I think we need new ideas, we need to make new mistakes, do big experiments, create new tools, collaborate and discuss, but ultimately start to make changes. Big changes. Small changes. Some changes…And share our findings.

So what will face us in the future………………..?

User Experience, Accessibility and Adoption of Tech in Society
Pretty much everything is moving online or to the digital world (certainly in the markets I work in). The rates of online adoption vary depending on who you speak to, but there is no doubt our worlds are becoming focussed around communication via mobile networks and the Internet.

More and more products are building in social channels and wanting to utilise the benefits of multi channel communication (the channels and platforms themselves will come and go, but the concept is here to stay and evolve). It might not be now, or 2 years or even 5 years, but it will happen.

With more online adoption though we run the risk of marginalizing people who are unable to interact with the web in an efficient and effective way. Physical and cognitive disabilities, user interaction problems and mindset changes *could* make the adoption of products and applications a hurdle for many in society. 

Testers can play a huge role in identifying these pitfalls, championing good design and accessible sites/applications as well as figuring out how to test a bewilldering array of devices and platforms, for a bewildering cross section of users in a bewildering series of contexts and uses.


Search and Discovery
Search and discovery for personal growth is the most neglected element of testing. I’m not talking about the Search & Discovery using Google to find your answer, then copying it, pasting it and passing it off as your own.

I’m talking about Search and Discovery as a way to learn, self improve and grow our skills and experience. This is a key skill neglected on almost every training course available to testers (there are thankfully a few exceptions). To an extent many rely heavily on certifications and our day jobs for information, learning and knowledge. Not so bad if your day job challenges you…and you like certifications.


Many testers haven’t heard of the thought leaders in the community, some testers are only at conferences because they’ve been told to be (this really surprised me) and many see testing as a lower grade career choice or a stepping stone to programming/development. 

Many testers are becoming so ingrained in big vendor tools that a conversation around testing can’t happen unless it’s about the tool.

Many testers have no awareness (or acknowledgement) of Exploratory Testing, Accessibility, Acceptance Test Drive Development, Security Testing or UX. Many don’t read trade publications or blogs, join local user groups or read books on testing. Some may never need to know more than they know now…but how do they know that?

Testing isn’t a career for many, it’s a job. For those of us serious about testing it represents a massive challenge. 

How do we convince people to do search & discovery? To self teach? To teach others? To mentor? To be a mentor? To build their awareness fields? 

How do we encourage people to make testing a career and not just a job? Or how do we separate the test heads and lifers from the people who just want to get paid? How do we further our craft without reliance on standardisation techniques and exams? How do we offer companies and markets the right people, for the right job with the right mindset?

I believe we can do more. I believe we can provide a cheap (or free) worldwide learning network to encourage growth and development for the mainstream. I believe we can offer those who want to learn a safe and welcoming environment to express their opinions and share knowledge with more like minded people. 

There are courses and learning resources available but they aren’t mainstream. Maybe it’s best we keep it that way. It might ruin what we have. Surely not?

There are some great examples of learning sources here 

Communication
Those that have followed me over the last few years know how strongly I feel about communication skills for testers. It’s my number 1 requirement for any tester joining my team. I firmly believe a tester needs to be able to articulate their views on testing. They need to be able to persuade, to be assertive, to be a good listener and to be able to communicate their findings in clear and conscise ways.

Yet communication skills are one of those soft skills that many believe aren’t essential. Most people have over inflated views of their own abilities which results in zero time spent on improving their communication. Most people aren’t self aware about their communication in the first place. Being a good communicator is one of the most powerful skills you can learn.

I feel we need more people writing, presenting and talking about testing. The future of testing will need “test champions“; people who can talk about testing to a variety of audiences, using a variety of mediums extolling the virtues of great testing.

Remember – being able to find a bug is great, but not so great if you can’t describe it, explain how you find bugs and pursuade someone to take your views seriously. A good communicator will go far. Very far.

Stereotypes
The future of testing needs us to break the stereotype of testers – one of the most prolific is the Checklister

We don’t need checklists to work. 
We can fit in to agile teams. 
We are flexible and dynamic with our test strategies. 
We don’t run tedious, boring, repetitive tests. 
We can do……

We are more than that. Aren’t we?

Communities
Our sense of community and our need for places to hang out with like minded people are essential to our future growth. It’s why we do so much work at The Software Testing Club to make people feel welcome. It’s essential for a culture of learning and sharing to grow.

The barriers of entry to any testing community are now very low. You don’t even have to take part if you don’t want to (simply listen to the conversations), but I’d encourage more people to join any testing community that “feels” right. Sharing knowledge and experience is a great way to learn, it’s also a great way to build ties with like minded people. It’s also a great way to have a global and collaborative conversation about the future of testing or your everyday testing problems, or just a chat. It’s a great way of belonging. But be careful, it’s also the stomping ground of many “Best Practice, my way or no way” testers. 

I think the challenge for the future is encouraging more people to join these communities and to share their views and opinions in a constructive manner. 

Agile
We all know small iterations of work, with regular and rapid feedback is a good thing. We can call this agile if you like (or common sense software development)or a flavour of iterative, but Testers continually struggle to see how they fit in to this process. I see it as logical move, but the future will hold many challenges for many testers who need to drop the “long haul planning” mindset for the “short term releasing” mindset. 

Oh yeah, and coupled with this is the inevitable question about automation of tests. Agile is sure to continue to scare some people, fox others and liberate others. Some people love it. Some people hate it (even though they may not have tried it). The question is “how can companies remain competitive to changing markets unless they adopt some sort of shortened iterative development cycle? And if they must adopt shorter releases schedules to market, how can testers (and the team as a whole) help them?

Above are some of my thoughts on testing and the challenges we may face. What are your thoughts on the future of testing? 

More crowdsourcing? More certification? Even bigger divides in testing domains (heavy structured, highly scripted, agile, exploratory, schools of testing)? What about our Managers and leaders of the future? Do they need new skills?

Feel free to let me know.

The e-Voting Challenge

I watched this fascinating Ted Talk the other day from David Bismark on how to create an e-voting system without fraud. Having spent a few years working in the online democracy industry I found the talk quite challenging. As a tester I instantly thought of many questions regarding some of the statements made by David. His talk was important though, because we need to discuss e-Voting with a wider audience, in a public domain. It needs to be challenged, talked about, thought about and worked on. (well…that’s my view on it anyway)

 

So here’s a challenge for you, if you’re up for it?

If you have the time give the video a watch. It’s about 7 minutes long. Then make a note of some of the questions you would ask if you were tasked with testing this implementation/idea. What about some of the claims made? What about the audience of the system? What about the purpose?

 

As there would be countless questions you would want to ask to both the business and of the software (i.e. tests) I suggest you time box your questions to a few minutes, maybe 5. Then feel free to share your thoughts via comments on this blog, or your own blog or maybe a forum post on The Software Testing Club 🙂

Here’s the video:

 

http://www.ted.com/talks/david_bismark_e_voting_without_fraud.html

 

I use this challenge quite a lot when mentoring. I use a variety of videos/talks and ask people to explore how they would test the product / idea, why they would test and what they would test. It’s a great way of finding our more about test thinking, lateral thinking, creative thinking, bias and cultural motivations/cultivations.

 

To give you some food for thought, why not try using the Phoenix Checklist (A CIA operative derived list of questions to solve problems)? I try to guide my initial test thinking by this checklist – maybe it will work for you. Maybe it wont.

 

No matter what you use or how you approach it – it would be good to hear how you got on. Don’t feel like you need to share your thoughts though, but everyone has a different take and bringing these together will no doubt help to share new ideas and concepts.

 

So, in summary

Watch the video

Spend some time (about 5 mins) writing down your thoughts and questions and maybe some potential test ideas.

Share your thinking (if you want)

Have some fun (because if it’s not fun….why do it?)

We need more browser versions….

One of the big challenges for anyone working on web based projects is the age old challenge of browser compatibility. The number of browsers supported typically depends on a number of factors; your strategy as a business, your customer base (i.e. what browsers they are using) and your required use of the browser (do you only make use of newer features?)…plus many more decisions in what versions you support.

There are several tools out there to help you test against various versions of each browser like Browsershots, Selenium Grid etc but in reality many of these strategies have hurdles to overcome. Sometimes you can’t beat that human element 🙂

This problem for web testers with a wide variety of browsers supported is going to be made slightly worse with the announcement that all three of the major browsers (Internet Explorer, Firefox and Chrome) are now doing more frequent releases. So in a sense we could be doing a huge amount of compatibility testing across an even bigger set of browser versions (and growing). This news also affects other departments like support, sales and marketing. What do we support and in what context/extent?

This could mean we need even smarter ways to support and test against these growing versions, and ultimately find out what our customers are using or our product supports. It’s a challenge, but I’m sure we’ll overcome it.

Chrome: http://google-chrome-browser.com/how-google-speeds-chrome-release-cycle-slideshow
Firefox: http://news.cnet.com/8301-30685_3-20030846-264.html
Internet Explorer: http://www.conceivablytech.com/6745/products/microsoft-releases-first-ie10-preview