Documente Academic
Documente Profesional
Documente Cultură
In simple words the goal of a software tester is to find bugs, find them as early as possible, and make sure they get fixed. A fundamental trait of
software testers is that they simply like to break things. They live to find those elusive system crashes. They take great satisfaction in laying to
waste the most complex programs. They're often seen jumping up and down in glee, giving each other high-fives, and doing a little dance when
they bring a system to its knees. It's the simple joys of life that matter most to them.
When you are assigned to a software testing project, you will need to do the following things:
1. Requirement Analysis: Go through the user specification of the application you are going to test.
2. Test Architect: Write down the test conditions or test objectives from the user specs. This is equivalent to defining the architecture of the
application. Do not skip this test. Say, for a calculator application the requirement says addition functionality for a calculator. Here the test
objectives will be:
4. Test execution: At this stage you need to run the application following the test case steps and record the result.
5. Defect reporting: If step 4 gives correct result, you mark the test case as passed. If it give a wrong result, say
2+3 = 6 etc, then you need to log a defect. This defect will go to the developer who has developed this calculator application. He or she will fix
the defect and send you the fixed application.
6. Retesting the defect: Here you need to retest the defect and, if it is actually fixed, you will close it and mark the test case as passed.
Above is the overall lifecycle of any testing project from a junior tester's point of view.
Well most of the time if you find any of the following situations then you can safely say the software has a bug and can log a defect against it:
1. The software doesn't do something that the product specification says it should do.
2. The software does something that the product specification says it shouldn't do.
3. The software does something that the product specification doesn't mention.
4. The software doesn't do something that the product specification doesn't mention but should.
Verification and validation are often used interchangeably but have different definitions. These differences are important to software testing.
Verification is the process confirming that the software meets its specification. Validation is the process confirming that it meets the user's
requirements. These may sound very similar, but an explanation of the Hubble space telescope problems will help show the difference.
Though software testing may be viewed as an important part of the software quality assurance (SQA) process, in SQA software process
specialists and auditors take a broader view of software and its development. They examine and change the software engineering process itself to
reduce the amount of faults that end up in the delivered software: the so-called defect rate.
What constitutes an "acceptable defect rate" depends on the nature of the software. For example, an arcade video game designed to simulate
flying an airplane would presumably have a much higher tolerance for defects than mission critical software such as that used to control the
functions of an airliner that really is flying!
Although there are close links with SQA, testing departments often exist independently, and there may be no SQA function in some companies.
Software Testing is a task intended to detect defects in software by contrasting a computer program's expected results with its actual results for a
given set of inputs. By contrast, QA (Quality Assurance) is the implementation of policies and procedures intended to prevent defects from
occurring in the first place.
Software testing methods are traditionally divided into black box testing and white box testing. These two approaches are used to describe the
point of view that a test engineer takes when designing test cases.
White box testing, in contrast to black box testing, gives the tester access to the internal data structures and algorithms (and the code that
implement these).
This is good enough for a start. Software testing has many areas, and there are many testing methods which you need to learn to be successful in
your testing career. Please go through the articles present in this site and also feel free to post your questions. I will try to answer it within 24
hours if I know the answer.