Fast and Furious
Do it, and do it now
Software development projects, applications of all kinds, are nowadays all about fast, fast, fast. Unlike the old days (not so many years ago…) there are less and less software solutions and tools that are not updated often – and often can even mean many times a day.
The evolution went from physically updating software (remember discs with software updates?) which was done, at best, once in 6 months, to online monthly or quarterly updates, and all the way to many-updates-throughout-the-day, of any software/tool/app/website we use.
This happened as a result of a combination of market demand, growing competition and the simple fact that it became an option, with the internet and mobile growth.
It required the creation of new development methodologies, different approaches to software projects and how they are planned and executed, and we all got used to words like continuous integration, continuous deployment, Agile development, extreme Agile, etc.
What about software testing in this new world?
Continuous testing
Software testing had to change as well. No longer a separate part of the whole project, done at the end of the development phase, by a separate group of people. Testing moved to the left, and became an integral part of the development process.
The software project team is a diverse group of experts, with developers, testers, designers and others, all sharing the responsibility of the full process. No longer “hand off” responsibilities on each phase, but rather sharing responsibilities all the way, together.
But how can testing meet the new requirements for speed and continuity? How can testers be in line with each new code change, as it is released to production immediately, once written?
Testing groups, and theoreticians of software testing (yep, that’s a thing), have found ways and are still doing so – in practice, on-the-move and in classrooms and books.
Here are a few examples of changes that software testing has gone through, and still is:
- Testers are part of the project’s team (not a separated team).
- Just as the need of developers to be full-stack developers, the same goes for testers, who need to have some coding skills, be able to write automation tests, qualify for fast exploratory testing, and be able to work in a diverse team of experts.
- Automation testing – this is of course a basic part of the CICD process. The more that can be automated the better, and it goes from unit testing, to functional testing and all the way to UI testing.
- Agile testing – faster, Leaner testing.
- Different testing: test only what’s crucial to be tested. This must start with an understanding of what is crucial, what is at the core of the code and the most important part of the software.
- The rise of Exploratory testing – when there’s a need to test faster, and there’s no time to write tests, plan testing, assign to testers, and go for the full classic cycle of testing, testers should do more exploratory testing.
- AI and Machine learning – while still making the first steps, it is something that the software testing industry should not overlook, and we must all find ways to merge existing capabilities to our testing.
- Users are at the center: when this is the leading understanding of all stakeholders, and all of the project’s team members, it leads to more accurate testing (and development) and helps select what to test, and equally important, what not to test.
The future holds much more
These are just examples of trends, some already visible in many testing groups, some just starting to form. But there’s still much to be done.
And we, at Testuff, know it and are on it.
We’re referring to the software testing tools. It appears that there’s still a long way for these tools to go, in order to match the new needs of the new-forming testing world. The integration into the CICD process, and the developing Dev-Ops approach, are what testing solution vendors will be looking for.
The challenges are great and many, not only regarding automation testing, but also regarding manual testing, which presents the most difficult challenge in a fast and furious software world.
Software Test Automation Architect and Performance Test
4 年Problem is in the real world when you're doing 100mph and you hit a brick wall you won't walk away with minor injuries. Looking good in a movie is one thing, another one when in the business world and you need your systems to be reliable.