Jim Voss

QA Is the Future for Humans in Software
Sep 5, 2024
2 min read
0
5
0
In the next decade there will be a major shift in the role of humans in software development - primarily in Quality Assurance. People may continue to conduct functional, integration, end-to-end, usability, performance and security testing, but the dominant element will be black-box functional discovery - testing to see what outputs are given for all reasonably possible inputs.
Why do I make this controversial claim? I doubt anyone paying attention would argue that AI will write most new software at some point. But, the future of AI-generated software will look nothing like what human engineers create today. It will be written in a way that is extremely difficult or impossible for humans to fully understand. Our primary job will be to make sure the application does what we intend.
AI currently writes software like people because it’s just statistically matching likely outputs based on data derived from sources created by humans. It uses high-level languages, libraries, frameworks, and cloud services. All of these constructs have been necessary because a person cannot manage a low-level language codebase that does everything the application is intended to do with no external source. This will change and must.
The tools people use reduce the problem set to a manageable level by solving common problems in a generic and adaptable way. No language, library or framework is perfectly suited for every problem, but use configuration to allow adaptation to specific problems to get closer to ideal optimization. Machines don’t need this.
Once we’ve got technology sufficient enough for AI to write low-level code ideally optimized for a specific purpose with no external code, we’ll no longer be capable of understanding that system by reading the source. There will be tools to assist us with this, of course, but the real problem changes into one of understanding what the application does, not how it does it.
The role of humans will change to one of validating a system’s behavior and prompting AI to make changes to correct inconsistencies between actual outputs and expected ones. Obviously AI will have a role in this endeavor as well, but the creativity and deep understanding of the purpose of a solution will take longer to replace.