New to software testing? Want to learn more about your craft? Come and join us at the Software Testing Club
Software testing
Software
testing is
an investigation conducted to provide stakeholders with information about the
quality of the product or service under test. Software testing can also
provide an objective, independent view of the software to allow the business to
appreciate and understand the risks of software implementation. Test techniques
include, but are not limited to, the process of executing a program or
application with the intent of finding software bugs (errors or other defects).
Software testing can be
stated as the process of validating and verifying that a computer
program/application/product:
- Meets the requirements that guided its design and development, works as expected,
- can be implemented with the same characteristics, and satisfies the needs of stakeholders.
- Software
testing, depending on the testing method employed, can be implemented at
any time in the development process. Traditionally most of the test effort
occurs after the requirements have been defined and the coding process has
been completed, but in the Agile approaches
most of the test effort is on-going. As such, the methodology of the test
is governed by the chosen software development methodology.
Different software
development models will focus the test effort at different points in the
development process. Newer development models, such as Agile, often
employ test-driven
development and place an increased portion of the testing in
the hands of the developer, before it reaches a formal team of testers. In a
more traditional model, most of the test execution occurs after the
requirements have been defined and the coding process has been completed.
Defects
and failures
Not all software defects are caused by coding
errors. One common source of expensive defects is caused by requirement gaps,
e.g., unrecognized requirements, that result in errors of omission by the
program designer.[6] A common source of requirements
gaps is non-functional
requirements such as testability, scalability, maintainability, usability, performance,
and security.
Software faults occur through the following
processes. A programmer makes an error (mistake), which results in a defect (fault,
bug) in the software source code. If this
defect is executed, in certain situations the system will produce wrong
results, causing a failure.[7] Not all defects will
necessarily result in failures. For example, defects in dead code will never result in failures.
A defect can turn into a failure when the environment is changed. Examples of
these changes in environment include the software being run on a new computer hardware platform, alterations
in source data or interacting with different
software.[7] A single defect may result in a
wide range of failure symptoms
Comments
Post a Comment