Monday, 9 November 2015

Essential Software Test Processes



Software Testing is a process to evaluate a system or its component(s) with the purpose to detect that whether or not it satisfies the specific requirements. Software Testing in simple words is the execution of a system to identify any missing requirements, errors or gaps in contrary to the actual needs or desire. Within the fundamental test process, the activities of analyzing a software item to find the differences between existing and required conditions (i.e. errors/ defects/bugs). In order to achieve Software Quality Assurance to the clients the total testing process goes through the following phases:




Test Cycle:

1. Test Planning 

In this phase the Project Manager decides things to be tested along with the budget. Proper planning at this step can greatly lessen the risk of low quality software. This planning is going to be an ongoing procedure with no end point. Activities at this stage include preparation of high level test plan.

The Software Test Plan (STP) is intended to set the approach, scope, schedule and resources of all testing activities. The plan should identify the items and features to be tested, the types of testing to be carried out, the personnel in charge of testing, the schedule and resources required to complete testing in addition to the risks associated with the preparation. Almost all of these activities are revolved around a software test plan.

2. Analysis and Design

This phase includes the following activities:

- Reviewing the test basis.

The test basis is the information required to initiate the test analysis and create your own test cases. It is basically documentation and test cases such as requirements, architecture and interfaces, product risk analysis and design specifications are based on it. The test basis documents can be used to understand what the system must do once built.


- Identifying test conditions.

- Designing the tests.

- Evaluating testability of the system and requirements.

- Designing the test environment set-up and identifying required tools and infrastructure.

3. Implementation and Execution

At this stage, the test situation is acquired in order to formulate them to test conditions as well as test software to create the test environment. Test implementation and execution is where the most visible test activities are performed and usually involve the following major responsibilities:

- Building and prioritizing test cases, preparing test data, writing test procedures, and optionally, creating test harnesses as well as writing automated test scripts.

- Accumulating test cases into test suites, where tests are run in sequence for efficiency.

- Checking whether the test environment set-up is accurate.

- Running test cases in the determined order, either manually or by means of test execution tools.

- Keeping a log of testing tasks, including the result (success/failure) along with the versions of data, tools, software, and testware such as scripts.

- Comparing actual outcomes with expected outcomes.

- Reporting inconsistencies as incidents in a detailed manner, including preferably causal analysis (inaccurate test specification, code defect, test execution or test data error).

- Repeating test activities where necessary when changes have been made, for instance, re-executing a test that previously failed so as to confirm a fix (retesting), executing a corrected test as well as previously passed tests to verify that defect have not been raised (regression testing).


4. Assessing Exit Criteria and Reporting

In this phase of the fundamental test process, test execution is evaluated against the defined objectives. The activities include the following:

- Verifying whether the previously decided exit criteria have been met.

- Finding out if more tests are required or if the specific exit criteria need changes.

- Writing up the outcome of the testing tasks for the business sponsors as well as other stakeholders.

5. Test Closure Steps

It’s the final stage where test closure activities focus on ensuring that everything is resolved, reports written, defects closed and then deferred for another phase. The test closure spats include the following:

- Making sure the documentation is in order, planned deliverables are properly delivered and all incident reports are determined.

- Finalizing and archiving the test infrastructure¸ test environment and testware used.

- Passing on the testware to the maintenance team.

- Evaluating how Software testing went and learning lessons from this testing project for future releases and projects.