This is our first Trends issue in our 10- year history. Trends are important to help foresee what is on the horizon and coming next.
For as long as I have been in software testing, there has been a constant demand to grow technology, grow skills, automate more, and do it all faster (that is a given). What has been so remarkable recently is the rate at which these demands shift gears and move in different directions, new products, and evolving technologies.
It’s the new normal. The explosion of every aspect of technology– from development methods to tools to products– is more diverse and more cross platform than ever: shift left, Lower level API and service testing, data in the cloud, multi-tool test automation suites – and always faster.
For example, mobile evolved into SMAC with huge demands for new skills, working faster, more cross environment tools. There have been embedded systems since hardware was first made. There has been data and databases since flat files. Now, embedded systems on IoT devices can stream massive amounts of data to giant data clusters in the cloud to be mined, then have analytic results sent back to the team.
The new systems being developed with a focus on mobility and smart devices on diverse platforms all need completely different test technologies and strategies all along the way.
There are so many aspects of software and hardware products we could use as examples in this rapid change- testing with often problematic local servers has evolved to testing on perfect, easy-to-build environments using containers in the cloud.
The question then becomes for any career in software testing: how do you respond to these rapid changes?
Before we get too deep in this conversation, an old school rule of thumb is that programmers need to be specialists, and testers need to be generalists. However, I am not suggesting that everybody has to learn to be effective in every aspect of product development, technology, tool, and test technique.
To some degree I still think that true testers can have a gentle knowledge of any certain area and do an effective testing job. The Agile principle of cross functional teams supports this idea of being a generalist in many fields.
One response could be to diversify and learn high level skills in diverse areas. Another response could be to specialize in one area to develop expert skills. Example areas include subject matter expertise, testing skills and technology.
It seems like a no-brainer to focus on technology, but before you make that decision, reflect.
I am asked quite often in my work about testing and subject matter expertise. Many software development engineers continue to struggle with understanding their users, understanding the market and understanding the domain where their product will live. If I’m working on a stock brokerage application, how much do I know about what the users do? For as long as software has been made, testers have been expected to specially understand users. The feedback about the subject matter of your product and your users will always be a benefit to the team, and the analytics world, which is growing so much right now, is trying to tackle this very problem of feedback to the Dev and Test.
Technology would include, for example, learning how to test microservices, how microservices work in containers, and what interfaces to apply testing when using containers as a platform.
You could learn a variety of tools and they could become an area of expertise. This would be especially useful in the DevOps world with so many tools changing the Dev process. The questions are: How and where do you include performance testing with new performance testing tools? What security testing tools would be useful for a functional software test engineer to use rather than a security testing expert? What tools can you use to test microservices that are different than testing web services or ideas that are the same?
You could focus on testing technology with the shifts from continuous testing to continuous delivery. However, what are the insertion points for software test teams? What are the responsibilities of the software test team in continuous delivery? What testing belongs to other teams like developers or Ops/IT? What testing belongs to performance engineers and security experts? What types of automated tests can I run in production that will be useful for immediate feedback and continuous monitoring but not be intrusive to the running system?
This is why we are looking ahead in a trends issue. What are the areas in software testing undergoing explosive growth and increased use to which any responsible software tester must be knowledgeable? As we often talk in this magazine, lifelong learning is a goal for any knowledge worker. It is an essential part of your job and job satisfaction! Whether you choose to do lifelong learning for yourself, or your company provides that for you, is situational to you. But you need to grow and change in your skills.
In this special issue our CEO, Hung, will be giving us perception of what he thinks are the new movements for 2017. Also, our contributor James Sivak, will be giving us his professional insight into security testing. We have plenty noteworthy articles in store for you including an exciting interview with Hans Buwalda, a newly launched video series, and our popular regular entries Leader’s Pulse, and TA Corner. You can also find out how you can contribute to the next LogiGear Magazine Issue, and take part in our Survey!
What’s more is, we are announcing the 2017 editorial calendar for LogiGear Magazine. If you want to submit an article, we are happy to consider it.
Michael is a co-founder of LogiGear Corporation, and has over two decades of experience in software engineering in banking, securities, healthcare and consumer electronics. Michael is a Certified Scrum Master and has co-authored two books on software testing. Testing Applications on the Web: Test Planning for Mobile and Internet-Based Systems (Wiley, 2nd ed. 2003), and Global Software Test Automation (HappyAbout Publishing, 2006).