Friday 3 February 2017

What is 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.

Also software testing is a process of executing a program or application with the intent of finding the software bugs.

It can also be stated as the process of validating and verifying that a software program or application or product:

Meets the business and technical requirements that guided it’s design and development
Works as expected
Can be implemented with the same characteristic.

Let’s break the Definition of Software Testing into the following parts:

1) Process:  Testing is a process rather than a single activity.

2) All Life Cycle Activities: Testing is a process that’s take place throughout theSoftware Development Life Cycle (SDLC).

The process of designing tests early in the life cycle can help to prevent defects from being introduced in the code. Sometimes it’s referred as “verifying the test basis via the test design”.
The test basis includes documents such as the requirements and design specifications.

3) Static Testing:  It can test and find defects without executing code. Static Testing is done during verification process. This testing includes reviewing of the documents (including source code) and static analysis. This is useful and cost effective way of testing.  For example: reviewing, walkthrough, inspection, etc.

4) Dynamic Testing:  In dynamic testing the software code is executed to demonstrate the result of running tests. It’s done during validation process. For example: unit testing, integration testing, system testing, etc.

5) Planning:  We need to plan as what we want to do. We control the test activities, we report on testing progress and the status of the software under test.

6) Preparation:  We need to choose what testing we will do, by selecting test conditions and designing test cases.

7) Evaluation:  During evaluation we must check the results and evaluate the software under test and the completion criteria, which helps us to decide whether we have finished testing and whether the software product has passed the tests.

8) Software products and related work products:  Along with the testing of code the testing of requirement and design specifications and also the related documents like operation, user and training material is equally important.



Testing techniques include the process of executing a program or application with the intent of finding software bugs (errors or other defects).

It involves the execution of a software component or system component to evaluate one or more properties of interest. In general, these properties indicate the extent to which the component or system under test..
  • Meets the requirements as mentioned in its design and development,
  • Responds correctly to all kinds of inputs,
  • Performs its functions within an acceptable time,
  • Its sufficiently usable,
  • Can be installed and run in its intended environments, and
  • Achieves the general result its stakeholders desire.
As the number of possible tests for even simple software components is practically infinite, all software testing uses some strategy to select tests that are feasible for the available time and resources.

As a result, software testing typically (but not exclusively) attempts to execute a program or application with the intent of finding software bugs (errors or other defects).

Software testing can provide objective, independent information about the quality of software and risk of its failure to users and/or sponsors.

Software testing can be conducted as soon as executable software (even if partially complete) exists. The overall approach to software development often determines when and how testing is conducted.

For example, in a phased process, most testing occurs after system requirements have been defined and then implemented in testable programs. In contrast, under an Agile approach, requirements, programming, and testing are often done concurrently.

1 comment:

  1. I like your post there is a lot of information about software testing, which i would like to learn, thank you for the great guide. Very useful post and I think it is rather easy to see from the other comments as well that this post is well written and useful. I bookmarked this blog a while ago because of the useful content and I am never being disappointed. Keep up the good work.. Read more about QA Services

    ReplyDelete