Blog

Interview with Adam Knight: how much of a Sisyphean task is in software testing?

I’m a great believer in automation. I don’t believe that an agile approach to development is possible without some level of test automation. The use of such approaches does, however, need to be combined with an appreciation of the information that the automation provides you with.
5 August 2016
Interviews
Test automation
Article by a1qa
a1qa

Adam Knight is a passionate tester eagerly contributing to the testing community. He is an active blogger and constantly presents at such testing events as Agile Testing Days, UKTMF and STC Meetups and EUROStar.

Hi Adam, can you please tell us about yourself, your current occupation and expertise?

For the last couple of months I’ve been working as an agile consultant establishing Product Owner role in a company called River. It specializes in employee and retailer engagement solutions.

Prior to that I spent a number of years working on a database product called RainStor, where I was responsible for testing, technical support and technical documentation as well as performing many of the day to day product owner duties.

You have a considerable experience in testing. How has testing changed since you started your career?

The main change that I see is the visibility of software testing outside of the organization that testers work in. When I started working in IT, testing was very much perceived as something done by people drafted in from the business, rather than necessarily being a valuable and skilled occupation in its own right.

The testers were often very isolated individuals or teams within their organizations, relying on strict formal doctrine and rather dry reference books. The advent of social media has had a massive impact on testers in allowing the creation of groups and forums in which people can discover and communicate with other people doing similar jobs.

In response to this question I could talk about changes such as new techniques, new automation methods and new tools, however people have been creating tools to solve testing problems for years.

What has really changed the face of testing more than anything else is our ability to share these tools and ideas more easily with others.

Some experts say that in future almost all manual testing should be automated. What do you think about this trend of increased automation?

I’m a great believer in automation. I don’t believe that an agile approach to development is possible without some level of test automation. The use of such approaches does, however, need to be combined with an appreciation of the information that the automation provides you with.

Essentially most automation is a detection system, alerting if some unexpected outcome arises from a check performed after a series of actions. Somewhere a human is still required to design relevant alerts, understand the implications of those alerts being triggered and take the appropriate course of action should that happen.

One of the principles that I hold to with test automation is that the automation should do more than just perform the checks. The automation provides an opportunity to gather information on the activity as it is executed which can help a human to investigate and diagnose should the checks throw up an unexpected result.

Is it possible to achieve 100% test automation?

If you don’t do any other tests than automated ones, and you exclude a huge amount of human critical activity from your definition of testing, then you could argue that it is possible.

It would be a weak argument however given the fragility of the assumptions around it.

No matter how much automation you create, the process of creating automated checks is a human sapient and often exploratory testing activity which in itself is not automated.

Something that is apparent to anyone working in testing, but difficult to explain to some outside of testing, is that 100% testing is not possible.

Even on the simplest of software applications there will be an infinite range of possible tests that we could perform. The amount of testing we therefore undertake is some finite subset of this, and 100% automation would only ever be 100% automation of this subset.

A great number of organizations are currently adopting agile methods and DevOps principles. How will testing change in the nearest future?

Roles are blurring. I think that we are moving away from the idea of well-defined roles. Both the agile methods and DevOps that you mention have in them an expectation of individuals with a range of skills and capabilities, rather than viewing development as a factory production line with a series of very separate roles owning different stages of the process.

I’ve never been particularly good at seeing future trends, however I see testing and product ownership responsibilities merging, with testing providing the information to allow the product owner to make educated decisions.

What are the main benefits of agile testing?

I would suggest that a really good question would be ‘what are the main benefits of agile to testing?’

Agile approaches have huge benefits to testing. The short timeboxes mean that it is hard to accumulate a huge ‘ball of mud’ development over the course of many weeks before handing it to the testing team and so testers are able to test incrementally on smaller pieces of development, making both discovery and diagnosis significantly easier.

The main benefit of an agile approach for testing in my opinion lies in the point at which testers are included in the conversation.

The “Three-Amigos” is a phrase that encapsulates these benefits. The fact that we have a phrase in common use that exemplifies the need to have testers involved in early conversations on the scope and value of new features, is huge.

How do you see the ideal testing process of future?

I think that far too much time is spent by testers on simple functional testing. I think that the ideal testing process of the future, or even today, involves the developer taking responsibility for the testing of the functional adherence of their developed software to the model that they are working to.

The role of the specialist tester can then be about validating how this solution model maps to the problem domain, what situations or events could cause the solution to fail, what environmental factors could result in the solution to fail, what software factors could cause the environment to fail.

I called my blog “A Sisyphean Task” because many folks perceive software testing as such, performing the same activity over and over again just as Sisyphus was doomed to do rolling a rock up a hill in Greek mythology. Where the interest, and value, lies for me is when we have sufficient confidence in our basic functionality to start exploring the deeper characteristics of the software and its operating environment. That’s where the really interesting testing happens.

What sources of information can you advise testers, who want to develop their practical abilities and technical skills?

For years I’ve recommended looking to other roles in the organization to learn skills from. I’ve learned a huge amount from DBAs, System Administrators, Security experts, network guys and support teams, not to mention developers.

People also need to be proactive. Most of the new practical skills that I have developed in the last few years have been the result of spending my own time researching interesting new projects.
I learned Ruby scripting through developing a SQL generation tool in my evenings. I learned Java in my own time to create a multi-threaded test harness.

If you see a need, take some time to research a solution yourself. Then take it to your manager and demonstrate the value of what you have done. Not only will you develop new skills but you won’t do your career progression any harm either.

Thanks for sharing your viewpoint with us.

If you want to learn more from Adam, visit his blog.

More Posts

Why do bugs get missed
27 September 2024,
by a1qa
7 min read
Why do bugs get missed? Learn the problems and tips to avoid them
Still, finding overlooked bugs after the app goes live? Let’s find out why this happens and how to fix it.
Performance testing
QA consulting
Quality assurance
Test automation
QA to ensure smooth migration to the cloud
15 August 2024,
by a1qa
3 min read
QA to ensure smooth migration to the cloud
Learn how effectively migrate to the cloud by implementing QA activities.
Functional testing
General
Migration testing
Performance testing
Quality assurance
Test automation
Load testing
23 July 2024,
by a1qa
3 min read
7 reasons why businesses need load testing 
Want to optimize software performance or ensure its smooth functioning during peak sales season? Discover how load testing may help.
Quality assurance
Test automation
Shift-right testing
9 July 2024,
by a1qa
5 min read
Embracing shift-right testing to enhance software quality through real-world insights
Let’s reveal the power of shift-right testing for ensuring high software quality.
General
Test automation
2 July 2024,
by a1qa
6 min read
Interview with Mike Urbanovich: How to build a robust test automation strategy?
The Head of testing department at a1qa answers the questions on how to smartly build a winning test automation strategy and talks about the advantages you may obtain with it.
Interviews
Test automation
27 June 2024,
by a1qa
3 min read
Establishing seamless interaction between development and QA teams to boost productivity
Establishing seamless interaction between development and QA teams to boost productivity
Agile
General
Quality assurance
Test automation
17 June 2024,
by a1qa
5 min read
Shifting to test automation to maximize software quality
Explore in the article why businesses should move from manual testing to test automation.
Quality assurance
Test automation
RPA in QA
28 May 2024,
by a1qa
4 min read
Embracing robotic process automation to drive efficiency in QA
Discover how the convergence of robotic process automation helps reshape software testing practices.
General
Quality assurance
Test automation
Shift-left testing for better software performance
25 April 2024,
by a1qa
4 min read
Optimizing software performance with shift-left testing
Still in doubt whether to include performance testing from the initial development stages? Learn the benefits companies obtain with shift-left performance testing.
Performance testing
QA consulting
Quality assurance
Test automation

Get in touch

Please fill in the required field.
Email address seems invalid.
Please fill in the required field.
We use cookies on our website to improve its functionality and to enhance your user experience. We also use cookies for analytics. If you continue to browse this website, we will assume you agree that we can place cookies on your device. For more details, please read our Privacy and Cookies Policy.