Fundamental Principles of Software Testing: Tutorial 2
Video Transcript with Key Takeaways Highlighted :
Consider a scenario where you are moving a file from folder A to Folder B.Think of all the possile ways you can test this. Apart from the usual scenarios! you can also test the following conditions Trying to move the file when it is "pen #ou do not have the security rights to paste the file in Folder B Folder B is on a shared drive and storage capacity is full. Folder B already has a file with the same name! infact the list is endless "r suppose you have $% input fields to test !each having % possile values ! the numer of cominations to e tested would e %&$% If you were to test the entire possible combinations project EE!"TI#$ TI%E & !#STS will rise e'ponentially( 'ence! one of the testing principle states that EH)"STI*E testing is not possible. Instead we need optimal amount of testing based on the ris+ assessment of the application. And the million dollar (uestion is! how do you determine this risk ) To answer this lets do an e*ercise +n your opinion! ,hich operations is most likely to cause your "perating system to fail) + am sure most of you would have guessed! "pening $- different application all at the same time. .o if you were testing this "perating system you would reali/e that defects are likely to e found in multi0tasking and needs to e tested thoroughly which rings us to our ne*t principle ,efect !lustering which states that a small number of modules contain most of the defects detected( By e*perience you can identify such risky modules.But this approach has its own prolems If the same tests are repeated o-er and o-er again . e-entually the same test cases will no longer find new bugs This is the another principle of testing called /Pesticide Parado'0 To o-ercome this. the test cases need to be regularly re-iewed & re-ised . adding new & different test cases to help find more defects( But even after all this sweat 1 hard work in testing! you can never claim you product is ug free. To drive home this point ! lets see this video of pulic launch of ,indows 23 #ou think a company like 4+C5"."FT would not have tested their ". thoroughly 1 would risk their reputation 6ust to see their ". crashing during its pulic launch7 'ence! testing principle states that 0 Testing shows presence of defects i(e( Software Testing reduces the probability of undisco-ered defects remaining in the software but e-en if no defects are found. it is not a proof of correctness. But what if ! you work e*tra hard ! taking all precautions 1 make your software product 228 ug free .And the software does not meet the needs 1 re(uirements of the clients. This leads us to our ne*t principle! which states that0 )bsence of Error is a Fallacy i(e( Finding and fi'ing defects does not help if the system build is unusable and does not fulfill the users needs & re1uirements To fi* this prolem ! the ne*t principle of testing states that Early Testing 2 Testing should start as early as possible in the Software ,e-elopment 3ife !ycle. so that any defects in the re(uirements or design phase are captured as well more on this principle in a later training tutorial. And the last principle of testing states that the Testing is conte't dependent which basically means that the way you test a e2commerce site will be different from the way you test a commercial off the shelf application Summary of the Se-en Testing Principles 9rinciple $ Testing shows presence of defects 9rinciple : ;*haustive testing is impossile 9rinciple < ;arly Testing 9rinciple = >efect Clustering 9rinciple % 9esticide 9arado* 9rinciple ? Testing is conte*t dependent 9rinciple @ Asence of errors 0 fallacy