Introduction to Software Testing

By Whyttest Team 2 years ago1 Comment

What is Software Testing

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.

In this article, we will give you a short run about some aspects of Software Testing, including what is Software testing, what is the SDLC (Software Development Life Cycle), what are some of the most used development models and the difference between an defect, bug or fault in Software Testing.

adult-apple-device-business-340152

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 the Software 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.

What are the Software Development Life Cycle (SDLC) phases?

There are various software development approaches defined and designed which are used/employed during development process of software, these approaches are also referred as “Software Development Process Models” (e.g. Waterfall model,incremental model, V-model, iterative model, etc.). Each process model follows a particular life cycle in order to ensure success in process of software development.

Software life cycle models describe phases of the software cycle and the order in which those phases are executed. Each phase produces deliverables required by the next phase in the life cycle. Requirements are translated into design. Code is produced according to the design which is called development phase. After coding and development the testing verifies the deliverable of the implementation phase against requirements.

There are following six phases in every Software development life cycle model:

1) Requirement gathering and analysis:  Business requirements are gathered in this phase. This phase is the main focus of the project managers and stake holders. Meetings with managers, stake holders and users are held in order to determine the requirements like; Who is going to use the system? How will they use the system?  What data should be input into the system?  What data should be output by the system?  These are general questions that get answered during a requirements gathering phase. After requirement gathering these requirements are analyzed for their validity and the possibility of incorporating the requirements in the system to be development is also studied.

Finally, a Requirement Specification document is created which serves the purpose of guideline for the next phase of the model.

2)  Design:  In this phase the system and software design is prepared from the requirement specifications which were studied in the first phase. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture. The system design specifications serve as input for the next phase of the model.

3)  Implementation / Coding:  On receiving system design documents, the work is divided in modules/units and actual coding is started. Since, in this phase the code is produced so it is the main focus for the developer. This is the longest phase of the software development life cycle.

4)  Testing:  After the code is developed it is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase. During this phase unit testing, integration testing, system testing, acceptance testing are done.

5)  Deployment: After successful testing the product is delivered / deployed to the customer for their use.

6) Maintenance: Once when the customers starts using the developed system then the actual problems comes up and needs to be solved from time to time. This process where the care is taken for the developed product is known as maintenance.

What are the Software Development Models?

The development models are the various processes or methodologies that are being selected for the development of the project depending on the project’s aims and goals. There are many development life cycle models that have been developed in order to achieve different required objectives. The models specify the various stages of the process and the order in which they are carried out.

The selection of model has very high impact on the testing that is carried out. It will define the what, where and when of our planned testing, influence regression testing and largely determines which test techniques to use.

There are various Software development models or methodologies. They are as follows:

  1. Waterfall model
  2. V model
  3. Incremental model
  4. RAD model
  5. Agile model
  6. Iterative model
  7. Spiral model

Choosing right model for developing of the software product or application is very important. Based on the model the development and testing processes are carried out.

Different companies based on the software application or product, they select the type of development model whichever suits to their application. But these days in market the ‘Agile Methodology’ is the most used model.

‘Waterfall Model’ is the very old model. In ‘Waterfall Model’ testing starts only after the development is completed. Because of which there are many defects and failures which are reported at the end. So,the cost of fixing these issues are high. Hence, these days people are preferring ‘Agile Model’. In ‘Agile Model’ after every sprint there is a demo-able feature to the customer. Hence customer can see the features whether they are satisfying their need or not.

‘V-model’ is also used by many of the companies in their product. ‘V-model’ is nothing but ‘Verification’ and ‘Validation’ model. In ‘V-model’ the developer’s life cycle and tester’s life cycle are mapped to each other. In this model testing is done side by side of the development.

Likewise ‘Incremental model’, ‘RAD model’, ‘Iterative model’ and ‘Spiral model’ are also used based on the requirement of the customer and need of the product.

What is Defect or bugs or faults in software testing?

  • A defect is an error or a bug, in the application which is created. A programmer while designing and building the software can make mistakes or error. These mistakes or errors mean that there are flaws in the software. These are called defects
  • When actual result deviates from the expected result while testing a software application or product then it results into a defect. Hence, any deviation from the specification mentioned in the product functional specification document is a defect. In different organizations it’s called differently like bug, issue, incidents or problem.
  • When the result of the software application or product does not meet with the end user expectations or the software requirements then it results into a Bug or Defect. These defects or bugs occur because of an error in logic or in coding which results into the failure or unpredicted or unanticipated results.

What is a Defect Life Cycle or a Bug lifecycle in software testing?

Defect life cycle is a cycle which a defect goes through during its lifetime. It starts when defect is found and ends when a defect is closed, after ensuring it’s not reproduced. Defect life cycle is related to the bug found during testing.

Software Testing Manager
Category:
  Testing
this post was shared 0 times
 600

One Comment

Leave a Reply

Your email address will not be published.