Easy Way To Learn Testing Principles: Understanding STLC and V-Model

Software testing is a process of executing a program with the aim of finding the error. Principles to make our software perform perfect, it should be error and bug free. If testing is done successfully it will remove all the errors and bugs from the software with all Principles of Testing.

Principles of Testing:

principles of testing
  1. Testing shows presence of defects
  2. Exhaustive testing is not possible
  3. Early testing
  4. Defect clustering
  5. Pesticide paradox
  6. Testing is context dependent
  7. Absence of errors fallacy

1.Testing shows presence of defects – The goal of software testing is to make the software fail. Software testing reduces the presence of defects. Software testing talks about the presence of defects and does talk about the absence of defects. Software testing ensure that defects are present but it cannot prove that software is defects free.

Ten multiple testing can never ensure that software is 100% bug-free. Testing can reduce the number of defects but not removes all defects.

2.Exhaustive testing is not possible– It is the process of testing the functionality of a software in all valid and invalid inputs and pre-conditions is known as exhaustive testing. Exhaustive testing is impossible means the software can never test at every test cases.

It can test only some test cases and assume that software is correct and it will produce the correct output in every test cases. If the software will test every test cases then it will take more cost, effort, etc. and which is impractical.

3.Early Testing– To find the defect in the software, early test activity shall be started. For better performance of software, software testing will start at initial phase i.e. testing will perform at the requirement analysis phase.

4.Defect clustering- In a project, a small number of the module can contain most of the defects. Pareto Principle to software testing state that 80% of software defect comes from 20% of modules. The Pareto Principle, named after esteemed economist Vilfredo Pareto which is also known as the Pareto Rule or the 80/20 Rule.

5.Pesticide paradox (inconsistency)– Repeating the same test cases again and again will not find new bugs. So it is necessary to review the test cases and add or update test cases to find new bugs.

6.Testing is context dependent – Testing approach depends on context of software developed. Different types of software need to perform different types of testing.

For example, the testing of the e-commerce site is different from the testing of the mobile application.

7.Absence of errors fallacy –  If built software is 99% bug-free but it does not work as per the user requirement then it is unusable. It is not only necessary that software is 99% bug-free but it also mandatory to fulfil all the customer requirements.

Software Testing Life Cycle (STLC):

  • STLC is a sequence of different activities performed during the software testing process.

Characteristics of STLC :

  • STLC is a fundamental part of Software Development Life Cycle (SDLC) but STLC consists of only the testing phases. STLC Starts as soon as requirements are defined or software requirement document is shared by stakeholders.
  • STLC produces a step-by-step process to ensure quality software.
  • In the initial stages of STLC, while the software product or the application is being developed, the testing team analyses and defines the scope of testing, entry and exit criteria and also the test cases. It helps to reduce the test cycle time and also enhance product quality.
  • As soon as the development phase is over, testing team is ready with test cases and start the execution. This helps in finding bugs in the early phase.
  • Depending on the difficulty and goal of a project, STLC may be informal or high formal. Software Testing Life Cycle has seven key phases. But it’s not essential follow all of them while you are working on your project.
  • The choice of STLC phases depends on many factors, including the type of product, time, and resources you have complete.
software testing life cycle(stlc)

1. Requirement Analysis: Requirement Analysis is the first step of Software Testing Life Cycle (STLC). In this phase quality assurance team understands the requirements like what is to be tested.

If anything is missing or not understandable then quality assurance team meets with the stackholders to better understand the detail knowledge of requirements.

2. Test Planning: Test Planning is most efficient phase of software testing life cycle where all testing. plans are defined. In this phase manager of the testing team calculates estimated effort and cost for the testing work. This phase gets started once the requirement gathering phase is completed.

3. Test Case Development: The test case development phase gets started once the test planning phase is completed. In this phase testing team note down the detailed test cases. Testing team also prepare the required test data for the testing. When the test cases are prepared then they are reviewed by quality assurance team.

4. Test Environment Setup: Test environment setup is the important part of the STLC. Basically test environment decides the conditions on which software is tested. This is independent activity and can be started along with test case development. In this process the testing team is not involve and developer or customer creates the testing environment.

5. Test Execution: After the test case development and test environment setup test execution phase gets started. In this phase testing team start executing test cases based on prepared test cases in the earlier step.

6. Test Closure: This is the last stage of STLC in which the process of testing is analysed.

Verification and Validation Model (V-Model):

(V-testing Life cycle):

  • The V-model is a System Development Life Cycle (SDLC) model where execution of processes happens in a sequential manner in a V-shape. It is also known as Verification and Validation model.
  • The V-Model is an extension of the waterfall model and is based on the association of a testing phase for each corresponding development stage. In this model, every phase of SDLC is tested. This is a highly-disciplined model and the next phase starts only after completion of the previous phase.

FOLLOW ON TWITTER

V-Model – Design:

  • Under the V-Model, the corresponding testing phase of the development phase is planned in parallel. So, there are Verification phases on one side of the V and Validation phases on the other side. The Coding Phase joins the two sides of the V- Model.

Verification:  It involves static analysis technique (review) done without executing code. It is the process of evaluation of the product development phase to find whether specified requirements meet.

Validation : It involves dynamic analysis technique (functional, non-functional), testing done by executing code. Validation is the process to evaluate the software after the completion of the development phase to determine whether software meets the customer expectations and requirements.

So V-Model contains Verification phases on one side of the Validation phases on the other side. Verification and Validation phases are joined by coding phase in V-shape.

Design Phase: Requirement Analysis: This phase contains detailed communication with the customer to understand their requirements and expectations. This stage is known as Requirement Gathering.

System Design: This phase contains the system design and the complete hardware and communication setup for developing product.

Architectural Design:

System design is broken down further into modules taking under different functionalities. The data transfer and communication between the internal modules and with the outside world (other systems) is clearly understood.

principles of testing

Module Design: In this phase the system breaks into small modules. The detailed design of modules is specified, also known as Low-Level Design (LLD).

Testing Phases: Unit Testing: Unit Test Plans are developed during module design phase. These Unit Test Plans are executed to eliminate bugs at code or unit level.

Integration testing: After completion of unit testing, Integration testing is performed. In integration testing, the modules are integrated and the system is tested.

Integration testing is performed on the Architecture design phase. This test verifies the communication of modules among themselves.

System Testing: System testing test the complete application with its functionality, inter dependency, and communication. It tests the functional and non-functional requirements of the developed application.

User Acceptance Testing (UAT): UAT is performed in a user environment that resembles the production environment. UAT Verifies that the delivered system meets user’s requirement and system is ready for use in real world.

Principles of v-model :

Large to Small: V-Model, testing is done in a hierarchical perspective, For example, requirements identified by the project team, create High-Level Design, and Detailed Design phases of the project, As each of these phases is completed the requirements, they are defining become more and more refined and detailed.

 Data Process Integrity: This principle states that the successful design of any project requires the incorporation and interrelation of both data and processes. Process elements must be identified at each and every requirements.

Scalability: This principle states that the V-Model concept has the flexibility to

accommodate any IT project of its size, complexity or duration. Cross Referencing: Direct corelation between requirements and corresponding testing activity is known as cross-referencing.

Tangible Documentation: This principle states that every project needs to create a document. This documentation is required and applied by both the project development team and the support team. Documentation is used to maintaining the application once it is available in a production environment.

Industrial Challenge: As the industry has evolved, the technologies have become more complex, increasingly faster, and forever changing. Accurately define and refine user requirements.

Design and build an application according to the authorized user requirements. Validate that the application they had built adhered to the authorized business requirements.

V-Model – Pros and Cons:

The advantage of the V-Model method is that it is very easy to understand and apply. This is a highly-disciplined model and Phases are completed one at a time. Simple and easy to understand and use.

Works well for smaller projects where requirements are very well understood. The simplicity of this model also makes it easier to manage. Each phase has specific deliverables and a review process.

The disadvantages of the V-Model method are as:

High risk and uncertainty. Not a good model for complex and object-oriented projects. Poor model for long and ongoing projects. Not suitable for the projects where requirements are at a moderate to high risk of changing Once an application is in the testing stage, it is difficult to go back and change functionality.

Static and Dynamic Testing:

Static Testing: Static Testing is a type of a Software Testing method which is performed to check the detects in software without actually executing the code of the software application. Static testing is performed in early stage of development to avoid errors as it is easier to find sources of failures and it can be fixed easily.

Dynamic Testing: Dynamic Testing is a type of Software Testing which is performed to analyse the dynamic behaviour of the code. It includes the testing of the software for the input values and output values that are analysed.

NEW POST SOFTWARE TESTING

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *