Menu: Links Great Articles Quotations Test Patterns Opinions: Effective Test Methodology Code Castle About SQA Test Cases Bug Reports |
It’s a sad truth about testing software that it can be done on a very, very low level. While in software development you need some basic skills such as programming languages and logic to do your job, everybody who is able to push a mouse is also able to do some kind of poor testing, i.e. following step-by-step instructions outlined in a detailed test plan, which is based on some basic requirements. But isn’t testing more than filing tests cases, counting bugs, do some statistics and push a mouse? Won’t you need more than some unskilled testers and a manager who does the administration part? I think there is much more.. and I will try to define some – surely not all – criteria for good and professional testing. Software systems are complex – they will even be more complex if changing customer needs and market forces are taken into account. Therefore the number of possible and thinkable tests is very close to infinite, so the challenge of testing is to focus on the important ones. Good and professional testing means to identify and choose a sound and feasible selection of tests – both by sophisticated methods and by gut feeling. Furthermore testing is a learning experience: while testing you will learn and explore more about the product, the technology, the processes, the market and the stakeholders. Learning, exploring, anticipating problems and selecting a doable and efficient set of tests from an infinite amount: that’s – from my point of view - the gist of testing! Here are some criteria to determine how a testing group performs with respect to these testing basics: Risk Management and Confidence: To focus testing on risky areas and to find the important bugs, you had to practise some kind of Risk Management. Testing and Risk Management are twins; they belong together. But Risk Management has to be accompanied by something which may be called Confidence Management: are there topics on which you can (hopefully) rely on, which you can take as granted? It’s as important to identify these areas of confidence than to identify the risks, otherwise you will be swamped with risks. To do appropriate Risk Management and to spot the areas of risk, you have to examine the whole process of software development, e.g.:
There are much more topics to keep in mind and to question than bugs in the code. The testers always have to decide – based on data and their experience - whether they rely on a topic or whether they will question and test it thoroughly. This approach also requires the ability to refocus testing in a flexible way, if the test results show that a risk has been overseen or underestimated. By identifying areas of risk and confidence the testers gain some impact on Quality Assurance, i.e. the improvement and tuning of the whole software development process. For example if the builds and handovers to the testers are chaotic, the Configuration Management may be screwed up. It’s also the job of the testers to identify and name this kind of internal problems, and contribute to its solution. Mission: However your mission statement may look like – a testing group’s mission may be more proactive or more defensive. Proactive testing tries to improve quality continuously, defensive testing aims at assuring a given level of quality. Proactive testing focus on anticipating problems which may occur at customer’s sites or within the development organisation itself, defensive testing tries to mitigate problems, which are already at hand. Furthermore defensive testing is often related to a defensive cover-your-back kind of corporate culture. However if there are nasty customers and litigation is impending, a defensive approach is an appropriate one. Identifying a sound and feasible selection of tests from a infinite number of possibilities is a proactive approach. Links: In order to anticipate problems, select the right tests, find the important bugs, identify risks and mitigate them, the testing group requires many sources of information, such as the customer, user groups, development, support, technical writers and all kinds of stakeholders. There should be a wide range of formal and informal communication channels and no restrictions by hierarchical or departmental boundaries. It’s crucial that the testers aren’t restricted to one model and one point of view about what the software is supposed to do – any requirement document will be incomplete, biased and always "under construction". A testing group which bases it’s efforts only on some specification documents can’t work in the most effective way. Skills: If a tester requires nearly no skills to do some poor testing, which skills will be required to be an excellent tester ? Here’s an incomplete and preliminary list:
Comments:From Manish Kumar Tiwari [210.214.89.121] - 3/3/05 11:59 PM From Stuart Moncrieff [203.10.231.231] - 2/2/05 3:42 PM I agree with your basic premise. There are very low barriers of entry to (non-tool based) software testing. You are spot on with your identification of generalist technical ability, and strong communication skills as important skills for a good professional tester. I believe that the industry is finally starting to mature, with increasing popularity of testing certifications and a requirement that new testers have degrees in an IT or IT-related field. Cheers, stuart at www.myloadtest.com Last Modified 1/15/06 1:44 PM | Hide Tools |
Hi
very Good article about Qa. Please paste more such article about QA and from various domains of testing like telecome, Financial, Web.
All the best and kind regards,
Manish Kumar Tiwari,
http://www.signalwebsolutions.com
mail : engineer_manish2004@yahoo.com