|
Software Testing Methods
Part:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
(Continued from previous part...)
What is Software Testing?
Software testing is more than just error detection;
Testing software is operating the software under controlled conditions, to
(1) *verify* that it behaves "as specified"; (2) to *detect* *errors*, and
(3) to *validate* that what has been specified is what the user actually
wanted.
1. *Verification* is the checking or testing of items, including
software, for conformance and consistency by evaluating the results against
pre-specified requirements. [*V**erification: Are we building the
system right?*]
2. *Error Detection*: Testing should intentionally attempt to make
things go wrong to determine if things happen when they shouldn't or things
don't happen when they should.
3. *Validation* looks at the system correctness – i.e. is the process
of checking that what has been specified is what the user actually wanted.
[*Validation: Are we building the right system?*]
In other words, validation checks to see if we are building what the
customer wants/needs, and verification checks to see if we are building that
system correctly. Both verification and validation are necessary, but
different components of any testing activity.
The definition of testing according to the ANSI/IEEE 1059 standard is that
testing is the process of analysing a software item to detect the
differences between existing and required conditions (that is
defects/errors/bugs) and to evaluate the features of the software item.
Remember: The purpose of testing is verification, validation and error
detection in order to find problems – and the purpose of finding those
problems is to get them fixed.
Software Testing
Testing involves operation of a system or application under controlled conditions and evaluating the results.
Every Test consists of 3 steps :
Planning : Inputs to be given, results to be obtained and the process to proceed is to planned.
Execution : preparing test environment, Completing the test, and determining test results.
Evaluation : compare the actual test outcome with what the correct outcome should have been.
Automated Testing
Automated testing is as simple as removing the "human factor" and letting the computer do the thinking. This can be done with integrated debug tests, to much more intricate processes. The idea of the these tests is to find bugs that are often very challenging or time intensive for human testers to find. This sort of testing can save many man hours and can be more "efficient" in some cases. But it will cost more to ask a developer to write more lines of code into the game (or an external tool) then it does to pay a tester and there is always the chance there is a bug in the bug testing program. Reusability is another problem; you may not be able to transfer a testing program from one title (or platform) to another. And of course, there is always the "human factor" of testing that can never truly be replaced.
Other successful alternatives or variation: Nothing is infallible. Realistically, a moderate split of human and automated testing can rule out a wider range of possible bugs, rather than relying solely on one or the other. Giving the testere limited access to any automated tools can often help speed up the test cycle.
Release Acceptance Test
The release acceptance test (RAT), also referred to as a build acceptance or smoke test, is run on each
development release to check that each build is stable enough for further testing. Typically, this test suite consists of entrance and exit test cases plus test cases that check mainstream functions of the program with
mainstream data. Copies of the RAT can be distributed to developers so that they can run the tests before
submitting builds to the testing group. If a build does not pass a RAT test, it is reasonable to do the following:
- Suspend testing on the new build and resume testing on the prior build until another build is received.
- Report the failing criteria to the development team.
- Request a new build.
Functional Acceptance Simple Test
The functional acceptance simple test(FAST) is run on each development release to check that key features of the program are appropriately accessible and functioning properly on the at least one test configuration (preferable the minimum or common configuration).This test suite consists of simple test cases that check the lowest level of functionality for each command- to ensure that task-oriented functional tests(TOFTs) cna be performed on the program. The objective is to decompose the functionality of a program down to the command level and then apply test cases to check that each command works as intended. No attention is paid to the combination of these basic commands, the context of the feature that is formed by these combined commands, or the end result of the overall feature. For example, FAST for a File/Save As menu command checks that the Save As dialog box displays. However, it does not validate that the overall file-saving feature works nor does it validate the integrity of save files.
Deployment Acceptance Test
The configuration on which the Web system will be deployed will often be much different from develop-and-test configurations. Testing efforts must consider this in the preparation and writing of test cases for installation time acceptance tests. This type of test usually includes the full installation of the applications to the targeted environments or configurations.
(Continued on next part...)
Part:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|