software testing _mod_9
DESCRIPTION
It all about software testingTRANSCRIPT
Module 9
QUALITIES OF GOOD TESTERS
What’s Special about a Tester’s Brain?
Epistemology – the Study of Knowledge
Epistemology is the study of how we know
what we know. The philosophy of science
belongs to Epistemology.
All good testers practice Epistemology.
Basic Skills of Epistemology
Ability to pose useful questions.
Ability to observe what’s going on.
Ability to describe what you perceive.
Ability to think critically about what you know.
Ability to recognize and manage bias.
Ability to form and test conjectures.
Ability to keep thinking despite already knowing.
Ability to analyze someone else’s thinking.
Tunnel-Vision is Our Great Occupational Hazard
invisible
problems
Problems you
can find with your
biases…
invisible
problem
s
A Tester’s Attitude
Cautious
Jump to conjectures, not conclusions.
Practice admitting “I don’t know.”
Have someone check your work.
Curious
What would happen if…?
How does that work?
Why did that happen?
Critical
Proceed by conjecture and refutation.
Actively seek counter-evidence.
Good testersare hard to fool.
Testing is done in Context1. The value of any practice depends on its context.
2. There are good practices in context, but there are no best practices.
3. People, working together, are the most important part of any project's context.
4. Projects unfold over time in ways that are often not predictable.
5. The product is a solution. If the problem isn't solved, the product doesn't work.
6. Good software testing is a challenging intellectual process.
7. Only through judgment and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products.
Know at least some programming. There’s a popular myth that testing can be
staffed with people who have little or no programming knowledge.
Since they’re testing software, without knowing some programming, they can’t have
any real insights into the kinds of bugs that come into software and the likeliest
place to find the same.
Know the application. The ideal tester has deep insights into how the users will
exploit the program’s features and the kinds of cockpit errors that users are likely to
make.
Intelligence. The single most important quality for testers (just as for programmers)
is raw intelligence, good testers, just as programmers, are smart people.
Something More………
Hyper-sensitivity to little things. Good testers notice little things that others miss or ignore.
Testers see symptoms, not bugs.
Tolerance for chaos. People react to chaos and uncertainty in different ways. If the tester waits
for all issues to be fully resolved before starting test design or testing, he won’t get started until
after the software has been shipped. Testers have to be flexible and be able to drop things when
blocked and move on to another thing that is not blocked.
Testers always have many irons in the fire.
People skills. You can be an effective programmer even if you are hostile and anti-social; that
won’t work for a tester. Testers can take a lot of abuse from outraged programmers. A sense of
humour and a thick skin will help the tester survive. Testers may have to be diplomatic when
confronting a programmer with a fundamental goof. Diplomacy, tact, a ready smile- all work to
the independent tester’s advantage.
Organized. There’s just too much to keep track of to trust to memory.
Good testers use files, Databases and all the other accoutrements of an
organized mind.
Sceptical. That doesn’t mean hostile. I mean scepticism in the sense that
nothing is taken for granted and that all is fit to be questioned. Only
tangible evidence in documents, specifications, code and test results
matter. While they may patiently listen to the reassuring words from the
programmers (“Trust me. I know where the bugs are.”) –and do it with a
smile – they ignore such in-substantive assurances.
Self-sufficient and tough If they need love, they don’t expect to get it on the job. They can’t be looking for interaction between them and programmers as a source of ego-gratification and/ or nurturing. Their ego is gratified by finding bugs, with few misgivings about the pain (in the programmers) that such finding might engender.
Cunning Systematic test techniques such as syntax testing and automatic test generators have reduced the need for much cunning, but the need is still with us and undoubtedly always will be because it will never be possible to systematize all aspects of testing. There will always be room for that off-beat thinking that will lead to a test case that exposes a really bad bug.
Technology hungry They hate dull, repetitive work; they’ll do it for a while if they have to, but not for long. The silliest thing for a human to do, in their mind, is to pound on a keyboard when they’re surrounded by computers.
Honest Testers are fundamentally honest and incorruptible. They’ll compromise if they have to, but they’ll righteously agonize over it. This fundamental honesty extends to a brutally realistic understanding of their own limitations as a human being.
Importance of Soft SkillsSoftware testers have two kinds of skills:
Technical Skills – to perform basic duties at work Teach to meet the expectations of the job
Soft Skills - skills used to approach work teach one to succeed, and to exceed expectations
Soft Skills Discipline and Perseverance
Testing can be extremely repetitive and may require a lot of manual effort-
Result-get tired of the job . Soft skills include the psychological tools to
persevere, and to find ways to make effort more productive and interesting. This attitude difference helps a tester maintain focus and higher levels of quality work.
Soft SkillsReading Skills
Testers, routinely encounter large quantities of data to read and comprehend specially At the requirements review stage, when testers have to review hundreds of pages of requirements
Use structured and scientific approach to reading, with improved retention and concentration
Result: Requirements specification that would otherwise take a
tester eight hours to read and comprehend, would take around four hours with improved reading.
Soft SkillsNegative Thinking
Negative thinking can be the useful ally of a tester if it is applied at the right time.
For a new product, a tester is working to create a QA plan or a master test plan. While mentioning the risks involved in the project, a tester has to consider all the things that can go wrong during the lifecycle of project. Training the mind to think negatively in such situations helps testers develop an efficient contingency plan. For the test-design phase.
An important part of test coverage and design are the tests that represent the way the application under test could fail
negative thinking helps testers derive the negative user scenarios. Thus, negative testing is a skill.
A word of caution : this type of thinking is only for specific situations.
Soft SkillsCommunication and Interpersonal
Skills
For a tester, both verbal and written communication are crucial. A tester communicates a defect in a program to the developer.
This communication includes written as well as verbal communication. This moment of communication instantly decides the rapport, which a tester enjoys with developers.
During the lifecycle of product, a tester is asked to present the
product and testing status either via verbal presentation or written data, e.g. by emails to management.
Soft SkillsTime Management and Effort Prioritization
Time management and effort prioritization define the importance given to each task and hence the sequence in which they should be performed.
help a tester manage work better and eliminate time involved in the tasks that are low priority, thus enhancing productivity.
Situations That require managing time efficiently are:
A tester is involved in Exploratory testing. In such a case, a tester may be testing, creating test cases, documenting results, and creating test metrics all in a day.
A Tester may be involved in more than one project or modules at the same time. The priority of work may vary.
one needs to give special attention to effort prioritization even before venturing into multiple projects.
Collect all the information that helps one prioritize the efforts.
Soft SkillsAttitude
A positive attitude is not accidental. It is something that is developed by training one's self
Every situation we face offers us the chance to choose either to react positively or negatively.
Perform a regular attitude checkup.
Attitude is a soft skill, and it is a central cause in a tester's ability to develop other effective soft skills.
Thank You…..Any Questions ???