What is the essence of software testing? Generally – it’s an attempt to simulate end-users’ actions in order to check software functionality, usability and operability under different conditions and environments. Does this mean that every PC user can perform a role of QA engineer? Even though software testing needs certain professionalism, the answer to this question is not obvious.
QA tasks that can be only performed by professionals
The first thing that comes to mind is test automation. We don’t mean the simplest tools, that everyone can learn in one day. Custom scripts for testing functionality, load, stress, security and penetration testing require knowledge in programming and system administration, and that is definitely something that a common user does not have.
The second thing we think about is professional software for engineers, designers, finance etc. In that case a test engineer needs to have understanding of the goals set by end-users and the scenarios they might follow in the professional activity. To test this type of products QA engineer needs to have the respective background or extensive training in the specific field + the technical skills (if required).
Testing activity, that an average user can handle
This is manual functional and GUI testing of the products created for general public. If the product is a web portal, e-mail service, media player, operational system or a game, there is no need in advanced skill set. True? Yes, but with few caveats. It is not enough to discover a bug, a tester also needs to know how to describe it using tools and termonology that developers understand and utilize. Otherwise the testing process will be ineffective due to constant misunderstanding, resulting in worsened productivity of all team members.
So, can we say that we need highly qualified testers for one group of tasks, and average users (after basic training to use bug-tracker and terminilogy) for the other? Actually, this approach is quite common in many software development companies throughout the world.
But we think that is only a part of the answer. The main issue of testing is the absence of fundamental understanding of software quality management. Everybody says, that it is impossible to detect all exisitng bugs in the software. Professional testers have learned some formalized procedures, that help track a lot, but not every fault of the product. People without experience, the ones who don’t know how to do it ‘right” might find defects that professionals would not notice. That is why there is no single standard within the industry, and each company looks for their own answers to this challenge.
How do we cope with it?
We try to establish normal workflow in the project by:
- attracting QA engineers at early stages of software development process;
- involving reasonable number of highly qualified and junior specialists;
- organizing training on the specific field both for developers and QAs;
- pay attention to communication within the team so that people understand that they work on common goal – to deliver quality software for the clearly defined group of users.
That is a generalized description, but the practical implementation depends greatly on people. Whether it is good or bad, but people factor is the most critical for success of software development, and we expect it will be the same in the future.
- Softheme at Selenium Camp [Pics] (softheme.com)
- The Future of Testing: Moving Testing Forward (softheme.com)