Showing posts with label Career in software testing. Show all posts
Showing posts with label Career in software testing. Show all posts

Wednesday, May 29, 2019

General Software Testing Principles



There are 7 Principles related to software testing:

  • Principle 1- Testing shows presence of defects
  • Principle 2- Exhaustive testing is impossible
  • Principle 3- Early testing
  • Principle 4- Defect clustering
  • Principle 5- Pesticide Paradox
  • Principle 6- Testing is context dependent
  • Principle 7- Absence-of-errors fallacy
Detailed explanation 


Principle 1- Testing shows presence of defects : The principle arises from the theory of the process of scientific experimentation has been adopted by testers;

Testing can only prove the presence of defects, never their absence.
The aim of testing is to make the software fail by finding bugs.In case testers are unable to find defects after repeatedly doing regression testing doesn’t mean that the software is bug-free.

Principle 2- Exhaustive testing is impossible :Testing everything (all combinations of inputs and preconditions) is not feasible except for trivial cases. Instead of exhaustive testing, we use risks and priorities to focus testing efforts.
For example, nuclear power installations, air traffic control systems and fly-by-wire systems. Indeed, it is important that these systems are tested more thoroughly than most; but exhaustive testing is not possible.
Example : A simple function adds two 32 bit numbers and returns a result Assumption:1000 test cases can be executed per second.
Principle 3- Early testing:Testing activities should start as early as possible in the software development. Early testing such as early test design and review activities finds defects early on when are cheap to find and fix.
Early testing has following advantages:
a. Early preparation of test environment, thereby preventing any delays and
unknown risks will have enough time to deal with.
b. If you complete test cases early you will have a baseline. If there are changes
later , problem will be easy to detect by comparing it with baseline.
c. You will have time to Quantify the problem's scope.
d. You may find that few items may not be tested , since they may not be
impacted. This input can cut down on your Testing phase.
e. There is usually tendency to squeeze the testing time. This may impact
Quality. But if you start testing early , you may not need to squeeze your time.
Principle 4 - Defect clustering :A small number of modules contains most of the defects discovered during pre-release testing or show the most operational failures.
In most cases, it can be seen that the majority of the detected defects are caused by a small number if modules.
All of us experience traffic congestion's. Typically, during these congestion's, we will see a convoy effect. There will be stretches of roads with very heavy congestion's, with vehicles looking like
they are going in a convoy. This will be followed by a stretch of smooth sailing (rather , driving) until we encounter the next convoy.
Principle 5 - Pesticide Paradox: If the same tests are repeated over and over again , eventually the same set of test cases will no longer find any new bugs.
To overcome this ‘pesticide paradox’, the test cases need to be regularly reviewed and revised, and new and different tests need to be written to exercise different parts of the software.
Example : If you keep applying the same pesticide , the insects eventually build up resistance and the pesticide no longer works.
Principle 6 - Testing is context dependent: Not all software systems carry same level of risk and not all problems have the same Impact when they occur.
Example : Safety –critical software is tested differently from an e-commerce site.
Principle 7- Absence-of-errors fallacy: Finding and fixing defects does not help if the system built is unusable and does not fulfill the users needs and expectations.




Share:

Tuesday, May 28, 2019

Software Testing as Career


Image result for software testing as career

It is a misconception among the young graduates that software testing provides only jobs on short term basis and in the long run, there is no guarantee for their careers.
  • Software Testing continues to be a lucrative career as long as software development has to be done!
  • Software tester can work across any domain ( banking , insurance , telecom ,retail etc.)
  • It’s a fact in the industry to know any system experience of testing is required to grow as Business Analyst / SME / Consultant or sometimes even as Developer.
  • Testing Career can be into Manual or Automation depending on individual skill-sets.
  • Fact : To become a good Automation Tester you need to be best manual tester.
  • If you like asking Questions / like to break things / like doing reverse engineering testing is best field for you.
Share:

Email Subscription

Enter your email address:

Delivered by FeedBurner

Follow my blog

Total Pageviews

Contact Form

Name

Email *

Message *

Translate