What developersneedtoknowaboutsw testing

963 views

Published on

what developer need to know about software testing
Myths about software testing
what is software testing
testers rights

Published in: Technology, Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
963
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
13
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • A university scholar, Mr. John Smith approaches his friend a software-testing guru tellinghim that he has a Bachelor in programming, and now would like to learn the software testing to complete his knowledge and to find a job as a software tester. After summing him up for a few minutes, the software-testing guru told him “I seriously doubt that you are ready to study software testing. It’s the serious topic. If you wish however I am willing to examine you in logic, and if you pass the test I will help teach you software testing.”The young man agrees. Software testing guru holds up two fingers “Two men come down a chimney. One comes with a clean face and the other comes out with a dirty face. Which one washes his face?The young man stares at the software-testing guru. “Is that a test in Logic?” software testing guru nods. “The one with the dirty face washes his face,” He answers wearily.“Wrong. The one with the clean face washes his face. Examine the simple logic. The one with the dirty face looks at the one with the clean face and thinks his face is clean. The one with the clean face looks at the one with the dirty face and thinks his face is dirty. So; the one with the clean face washes his face.”“Very clever” Says Smith. “Give me another test”The software-testing guru again holds up two fingers “Two men come down a chimney.One comes out with a clean face and the other comes out with a dirty face. Which one washes his face?“We have already established that. The one with the clean face washes his face”“Wrong. Each one washes his face. Examine the simple logic. The one with the dirty face looks at the one with the clean face and thinks his face is clean. The one with the clean face looks at the one with the dirty face and thinks his face is dirty. So; the one with the clean face washes his face. When the one with the dirty face sees the one with the clean face washing his face, he also washes his face. So each one washes his face”“I didn’t think of that!” Says Smith. ” It’s shocking to me that I could make an error in logic. Test me again!.”The software-testing guru holds up two fingers “Two men come down a chimney.One comes out with a clean face and the other comes out with a dirty face. Which one washes his face?“Each one washes his face”“Wrong. Neither one washes his face. Examine the simple logic. The one with the dirty face looks at the one with the clean face and thinks his face is clean. The one with the clean face looks at the one with the dirty face and thinks his face is dirty. But when the one with clean face sees that the one with the dirty face doesn’t wash his face, he also doesn’t wash his face So neither one washes his face”.Smith is desperate. “I am qualified to study software testing. Please give me one more test”He groans when the software-testing guru lifts his two fingers, “Two men come down a chimney. One comes out with a clean face and the other comes out with a dirty face. Which one washes his face?“Neither one washes his face”“Wrong. Do you now see, John, why programming knowledge is an insufficient basis for studying the software testing? Tell me, how is it possible for two men to come down the same chimney, and for one to come out with a clean face and the other with a dirty face? Don’t you see
  • 1- Testing shows presence of DefectsWe test to find Faults (a.k.a Defects).As we find more defects, the probability of undiscovered defects remaining in a system reduces.However Testing cannotprove that there are no defects present.2- Exhaustive Testing is Impossible!We have learned that we cannot test everything (i.e. all combinations of inputs and pre-conditions). That is we must Prioritise our testing effort using a Risk Based Approach.3- Early testingTesting activities should start as early as possible in the development life cycleThese activities should be focused on defined objectives – outlined in the Test StrategyRemember from our Definition of Testing, that Testing doesn’t start once the code has been written!4- Defect ClusteringDefects are not evenly spread in a system They are ‘clustered’In other words, most defects found during testing are usually confined to a small number of modulesSimilarly, most operational failures of a system are usually confined to a small number of modulesAn important consideration in test prioritisation! 5- The Pesticide ParadoxTesting identifies bugs, and programmers respond to fix them As bugs are eliminated by the programmers, the software improves As software improves the effectiveness of previous tests erodes Therefore we must learn, create and use new tests based on new techniques to catch new bugs 6- Testing is Context DependentTesting is done differently in different contexts For example, safety-critical software is tested differently from an e-commerce site Whilst, Testing can be 50% of development costs, in NASA's Apollo program it was 80% testing 3 to 10 failures per thousand lines of code (KLOC) typical for commercial software 1 to 3 failures per KLOC typical for industrial software 0.01 failures per KLOC for NASA Shuttle code!Also different industries impose different testing standards7- Absence of Errors FallacyIf we build a system and, in doing so, find and fix defects .... It doesn’t make it a good system Even after defects have been resolved it may still be unusable and/or does not fulfil the users’ needs and expectationsAdapted from Barry H. Boehm, Software Engineering Economics, Prentice-Hall PTR, 1981, page 40
  • What developersneedtoknowaboutsw testing

    1. 1. What Developers need to know about software testing Mohamed Talaat Shalash Qualification engineer Orange Labs Cairo
    2. 2. Agenda O Myths about software testing. O 7 testing key principles. O what developers need to know. O Testers’ rights. O References.
    3. 3. Myths About Software Testing O “Software testing is easy job, any people can become tester and no training is needed” . O “Software testing doesn’t require programming” . O “Software testing doesn’t require much analysis and innovative thought” . O “Testing is not challenging so I don’t have much chance to growth in testing career” .
    4. 4. Myths About Software Testing 1- “Software testing is easy job, any people can become tester and no training is needed” Reality:  It takes hours to start testing job but years to be good at it.  Tester and developer requires two different set of skills and mindset. Good developer can’t become good tester.  Software testing has its own process, levels, types, approaches, tools, and techniques.
    5. 5. Myths About Software Testing 2- “Software testing doesn’t require programming” Reality:  What you learn from university is just a starting point for pursuit a career in IT.  Automation, performance, security testing not only require programming but also deep understanding about system, technology.
    6. 6. Myths About Software Testing 3- “Software testing doesn’t require much analysis and innovative thought” Reality:  Testing is not just test execution, you can see many tester not doing testing .  Testing based on requirements only find 70% bugs. Innovation helps tester find the rest .  We normally don’t know how user use the software; strong analysis, deep domain knowledge, lateral thinking is required for tester.
    7. 7. Myths About Software Testing 4- “Testing is not challenging so I don’t have much chance to growth in testing career” Reality:  A company likely will go to the end if releases a low quality product.  Role of tester now is not just testing. Combined skills of (Developer + BA + Tester + Expertise User) .  Many IT companies in VN are testing service providers – top management grew from testing .
    8. 8. 7 Testing Key Principles 1. Testing shows presence of Defects. 2. Exhaustive Testing is Impossible! 3. Early Testing. 4. Defect Clustering. 5. The Pesticide Paradox. 6. Testing is Context Dependent. 7. Absence of Errors Fallacy.
    9. 9. What Developers Need to Know O The product is more than software. O Quality is more than the lack of bugs. O Quality assurance is more than testing. O Testing is hard to do. O You can make testing easier to do. O Collaboration is the right approach – we work to common goal.
    10. 10. Testers rights O Testers have the right to sample their process O O O O O inputs, and reject poor quality work. Testers have the right to unambiguous and clear requirements. Testers have the right to test evolutionary early as the system increments. Testers have the right to integrate their test specification into the other technical specifications. Testers have the right to be a party to setting the quality levels they will test to. Testers have the right to adequate resources to do their job professionally.
    11. 11. Testers rights (Cont’d) O Testers have the right to an even workload, and to have a life. O Testers have the right to specify the consequences of products that they have not been allowed to test properly. O Testers have the right to review any specifications that might impact their work. O Testers have the right to focus on testing of agreed quality products, and to send poor work back to the source
    12. 12. References O http://www.slideshare.net/kmstechnology/ become-software-tester-or-developer O ISTQB Foundation Level O http://www.satisfice.com/presentations/we dntkat.pdf O http://www.gilb.com/dl348%E2%80%8E

    ×