Software
Testing or Software Quality Assurance verifies and validates the software
application against its initial technical requirements. It is used for determining
software quality factors like reliability, usability, security, integrity,
capability, efficiency, portability, compatibility etc. The procedures may
differ as per the purpose for which the software is being tested. This also
needs to be performed well within its specified budget and time limits.
Software
Testing Goals:
In
testing, goals can be defined as intended outputs. It has the following goals:
Verify and Validate: Software testing is a quality control
measure. It is used to verify that the application or product works as desired.
It reports the status of the actual application in comparison to the
requirements. Hence, it should reveal as many inconsistencies as possible,
verify if the software is meeting its initial requirement specifications and
further validate its quality.
Prioritization of Test coverage: As already stated,
exhaustive testing is not possible due to many constraints mainly budgetary and
time limitations. Therefore, the test coverage areas should be defined properly.
Highly frequent functions should be tested more thoroughly than infrequent
functions. For optimized results, highly used components should be isolated and
tested more thoroughly.
Balance: Testing needs to be balanced
between the negotiated requirements, the practical limitations and user
expectations. The end users viewpoints cannot be all that matter as all the
needs may not be achievable due to limitations in time, budget and technical
feasibility.
Deterministic: While testing, it should
be clear as to what is being tested and what will be its possible outcome. All
the errors and defects should be exposed while performing a particular testing.
This clean insight helps in determining the cost, time and the overall
development.
Traceability: Comprehensive documents
need to be maintained as testing is being performed. This helps to avoid chaos
and hence eliminate duplicate testing.
The
Limitations:
The
limitation of testing needs to be considered to set a realistic expectation of
its outcome. The main limitations of testing can be listed as follows:
-
It
is done with the intention of finding errors. Exposing failures make this
process more effective. Thus it cannot show the absence of errors.
-
It
only delays the process. It provides no help to decide on the product's
immediate deployment or to delay its release.
-
It
cannot ensure the overall compatibility of the system rather it establishes its
compatibility only on a specified combination of the system.
-
Software
Testing does not enable locating the exact error. Rather it just establishes
the existence of one.
-
A
total or exhaustive software testing is practically not feasible. This leads to
compromise and thus it cannot be ensured that the final delivered product is
entirely bug-free.
Conclusion:
Software
testing can give excellent results if they are performed efficiently and
effectively. It helps to improve an application by identifying its defects and
problems. Independent Software testing is aimed at achieving both implicit and explicit goals. To
achieve this, everyone who is involved with this process must be aware of its goals,
its principles and its limitations.

No comments:
Post a Comment