Thursday, September 8, 2022

Software Testing and STLC (Software Testing Life Cycle)

Software Testing and Software Testing Life Cycle

Software Testing:

Testing is the process of exercising the software product in pre-defined ways to check if the behavior is the same as expected behavior. By testing the product, an organization identifies and removes as many defects as possible before shipping it out. Software testing means verification of Application under Test (AUT).  Software Testing is a method to check whether the actual software product matches expected requirements and to ensure that software product is defect or bug free.

Software testing undoubtedly forms an integral part of the application’s software development lifecycle (SDLC), with agile and DevOps software methodologies on the rise, and the enterprise's quest for faster releases and quality products, it requires software testing methods that are faster and efficient than manual testing methods. At this point, test automation frameworks fits in.

Purpose of software testing is to identify error, gaps, missing requirement in contrast to actual requirement and ensures a quality product is delivered to customers. Software Testing is important because if there is any bugs or error in software it can be identify early and can be solved before delivery of the software product. Testing is important because software bugs could be expensive or even dangerous.

 


Types of Software Testing

1.      Functional Testing: ensures that functions and features of the application work properly. It is a type of software testing that validates the software system against the functional requirements or specifications. The purpose of Functional tests are to test each function of the software application, by providing appropriate input, verifying the output against the Functional requirements.

a.      Unit Testing

b.      Integration Testing

c.      UAT

2.      Non-Functional Testing: has a goal to validate performance of software. It is to check non-functional aspects like performance, usability, reliability, etc. of software applications. It is designed to test readiness of a system as per nonfunctional parameters which are not addressed by functional testing.


a.      Performance

b.      Load

c.      Value

d.      Scalability

3.      Maintenance Testing: performed to either identify equipment problems, diagnose equipment problems, or confirm that repair measures have been effective

a.      Regression

b.      Maintenance

 

STLC (Software Testing Life Cycle):

STLC is a sequence of specific activities conducted during the testing process to ensure software quality goal are met. STLC is Software Testing Life Cycle. It consists of a series of activities carried out by Testers methodologically to test your software product.
Phases in Software Testing Life Cycle model:

1. Requirement Analysis

2. Test Planning

3. Test Case development

4. Test Environment Setup

5. Test Executive 

6. Test Cycle Closure


Black Box Testing: A test that only considers the external behavior of the system; the internal workings of the software is not considered.

White Box Testing: A method used to test a software taking into consideration its internal functioning. It is carried out by testers.

Black Box

White Box

Testing method where the internal structure / design is NOT known to the tester

Testing method where the internal structure / design is known to the tester

Applicable to higher levels of testing (e.g. Acceptance, integration & system)

Applicable to lower levels of testing(Units, component, some integration & system)

Programming knowledge not required

Programming knowledge required

User stories/specifications used as basis for test cases.

Detail design / code used as basis for test cases (inputs, outputs)

        All-pairs Testing

        Orthogonal Array / Combinatorial Testing

        Statement

        Branch (Decision)

        Path

        Full Regression


No comments:

Post a Comment

Software Testing and STLC (Software Testing Life Cycle)

Software Testing and Software Testing Life Cycle Software Testing: Testing is the process of exercising the software product in pre-define...