Looks like no one added any tags here yet for you.
Software testing
is an activity to check whether the actual results match the expected results and to ensure that the software system is defect free. It involves execution of a software component or system component to evaluate one or more properties of interest.
Software testing
also helps to identify errors, gaps or missing requirements in contrary to the actual requirements. It can be either done manually or using automated tools.
bug
to describe a defect has been a part of engineering jargon for many decades, perhaps even from the times of Thomas Edison
September 9th, 1945
At 3:45 p.m., Grace Murray Hopper records the first computer bug in her log book as she worked on the Harvard Mark II. The problem was traced to a moth stuck between a relay in the machine, which Hopper duly taped into the Mark II's log book with the explanation: āFirst actual case of bug being found.
Grace Murray Hopper / Moth
At 3:45 p.m., _________________ records theĀ first computer bugĀ in her log book as she worked on the Harvard Mark II. The problem was traced to a _____ stuck between a relay in the machine, which Hopper duly taped into the Mark II's log book with the explanation: āFirstĀ actual case ofĀ bugĀ being found.
1950-1960
ā¢IBM 650 was mass produced and marketed
ā¢FORTRAN was developed by John Backus, one of the oldest high-level programming languages
ā¢Until 1957 it was the debugging oriented period, when there was no clear difference between testing and debugging
1960-1970
ā¢Block structure for better organization of code in the programs was introduced in Algol
ā¢The first introduction of the term software engineering and structured programming
ā¢Definition of testing: "Testing shows the presence, not the absence of bugs " by Edsger Wybe Dijkstra
1970-1980
ā¢Milt Bryce first applied the term "methodology" to systems development.
ā¢First software related standard: "MIL-S-52779 Software Quality Program Requirements" was issued.
ā¢The separation of debugging from testing was initially introduced by Glenford J. Myer
ā¢In his book "The Art of Software Testing" he provided definition of software testing widely used now and the first clear explanation of equivalence classes, boundaries and other testing principles .
fail
The goal of the testers is to make the program ____
successful
If his test case makes the program or system fail, then he is _____
unsuccessful.
if his test case does not make the program fail, then he is ____
1980-1990
ā¢Boris Beizer released "Software Testing Techniques" 1st edition, one of the best books in software testing
ā¢Excel spreadsheet application launched by Microsoft Corporation. Excel is the best friend of a tester.
ā¢ISO 9000 quality standards were released
ā¢Dave Gelperin and William C. Hetzel classified the phases and goals in software testing.
1990-2000s
ā¢From early 1990's Bug Tracking and Version Control tools become popular
ā¢ISO 9000-3 was released: Guidelines for the application of ISO 9001 to the development, supply and maintenance of software.
ā¢Start of automation testing
Glenford Myers.
"A good test case is a test case that has a high probability of detecting an undiscovered error, not a test case that show that the program works correctly." - ____________
1.Exhaustive testing is not possible
2. Defect Clustering
3. Pesticide Paradox
4.Testing shows presence of defects
5.Absence of Errors
6.Early Testing
7.Testing is context dependent
7 Software Testing Principles
Exhaustive testing is not possible
ā¢ We need the optimal amount of testing based on the risk assessment of the application.
ā¢Ā It is important that you achieve an optimum result while conducting software testing without deviating from the goal
Defect Clustering
ā¢_____________ which states that a small number of modules contain most of the defects detected. This is the application of the Pareto Principle to software testing: approximately 80% of the problems are found in 20% of the modules.
ā¢By experience, you can identify such risky modules. But this approach has its own problems
ā¢If the same tests are repeated over and over again , eventually the same test cases will no longer find new bugs.
Pesticide Paradox
ā¢If the same set of repetitive tests are conducted, the method will be useless for discovering new defects.
ā¢To overcome this, the test cases need to be regularly reviewed & revised , adding new & different test cases to help find more defects.
ā¢Testers cannot simply depend on existing test techniques. He must look out continually to improve the existing methods to make testing more effective
Testing shows presence of defects
Testing principle states that - Testing talks about the presence of defects and donāt talk about the absence of defects. i.e. software testing reduces the probability of undiscovered defects remaining in the software but even if no defects are found, it is not a proof of correctness.
Absence of Errors
ā¢It is possible that software which is 99% bug-free is still unusable. This can be the case if the system is tested thoroughly for the wrong requirement.
ā¢Software testing is not mere finding defects, but also to check that software addresses the business needs.
ā¢____________ is a Fallacy i.e. finding and fixing defects does not help if the system build is unusable and does not fulfill the user's needs & requirements.
Early Testing
ā¢Testing should start as early as possible in the Software Development Life Cycle so that any defects in the requirements or design phase are captured in early stages.
ā¢It is much cheaper to fix a defect in early stages of testing.
ā¢It is recommended that you start finding the bug the moment the requirements are defined.
Testing is context dependent
ā¢___________ which basically means that the way you test an e-commerce site will be different from the way you test a commercial off the shelf application.
ā¢All the developed software are not identical. You might use a different approach, methodologies, techniques and types of testing depending upon the application type.
Curiosity
Attention to Details
Imagination
Logical Thinking
Ability to focus and dissect
Discipline
Constructive communication
7 Qualities of a Highly Effective Tester
Curiosity
ā¢As a tester, you have to question anything and everything that is unclear. Always wonder, āWhat will happen if I click on āSubmitā button twice? Or thrice? Or what will happen if I click on āSubmitā button and then hit āEscapeā key? What will happen if I post a comment with just a white space?ā
ā¢If you donāt ask the questions, your customers will. If you donāt bring all scenarios to test, your customers will.
Attention to Details
ā¢The eye for detail is an innate quality that aids you catch/notice even the minutest of the details quickly. But even those who are not born with a magnifying glass for an eye can develop the habit if you persistently try to look deeper and longer.
ā¢Satisfied with the test result? ā Try again and make it a habit
Imagination
ā¢Donāt restrict your thinking when testing. You have to imagine the unimaginable- the rare and the rarest. Imagine right now and 100 years from now.
ā¢Ask questions, 1000s of them. What if? What else? What more and so on. Design your test cases around requirements and add a good dose of imagination and inquisition to it
Logical Thinking
ā¢All phases like Requirements discussion, brainstorming features, deciding test strategy, building tests, debugging an issue, replicating production issues can benefit from _______________. You have to think through the possibilities, reason your steps, validate or invalidate and think about next steps
ā¢How will you answer someoneās question before getting to a logical conclusion yourself?
Ability to focus and dissect
ā¢In simple words, this is the ability to focus on small things and making your mind work on the smallest of details without getting distracted by the bigger picture.
Discipline
ā¢_________ is doing what needs to be DONE, even if you donāt want to DO IT
ā¢You can afford to miss anything- not the important tests/activities/communication.
ā¢You have to structure your own processes and check lists while you work.
Constructive communication
ā¢Good communication should start with good listening, forming a response, rehearsing it in mind, deciding the tone and then actually saying it.
ā¢You can get the point across clearly without attacking anyone accidentally.