Software Testing
Definition
Software testing measures the completeness, correctness
and quality of the software. Because these can be somewhat
subjective depending on who is doing the testing, There have
been many attempts to formalize testing requirements.
ISO, International Specification Organization, has developed
a quality model that includes the following categories.
Efficiency - The relationship between the system
performance and the resources required to produce that
performance.
Functionality - Does the system do what it is required
to do.
Accuracy
Compliance
Interoperability
Security
Suitability
Maintainability - Pertaining to the supportability
of the software.
Readily Changable
Readability
Stability
Portability - The ability to move the application
into another environment.
Adaptability
Installation
Upgradable
Reliability - The performance of the system in relation
to the required specifications.
Recovery
System Maturity
Usability - The end users ability to use the system.
Ease of Learning the system
Intuitiveness
Operability
Common Software Testing Definitions
Unit Testing - This is usually done by the developer.
This is testing the functionality of the change to verify that
the change works.
Smoke Test - After a successful build, a smoke test is
run to ensure the newly developed code does not break the
operational system and that the new code is stable enough to
be more thoroughly tested.
Integration Tests - is designed to expose bugs in connectors
and interactions between the integrated components of the system.
System Tests - verify the application meets it's requirements.
Regression Tests - ensure that previously working functionality
continues to work appropriately after new functionality is added.
Acceptance Tests - are conducted by the end-user to determine
if they accept the software is working as required.
How the test cycle works through the SDLC,
Software Development Lifecycle
Define - This is where the requirement analysis is done.
During this phase, Testing would analyze what aspects are testable.
Plan - During the Planning phase, the test strategy
and plans are formulated.
Construction - As the developers start writing the new
code, the test cases and sceneries are being scripted.
Software Testing - This is where the testing and test scripts
are being run. This in-turn spurs defect finding and reports.
Which leads to retesting and more regression tests.
Deployment - Final acceptance.

|