QUALITY ASSURANCE

QUALITY ASSURANCE
Software quality assurance is an integral part of the software development lifecycle. Its aim is to verify the quality of a program based upon a provided software specifications. It is the responsibility of the software testing team to carry out the proper tests necessary to ensure a project meets business requirements from a functional and user perspective. QA is also encouraged to provide input in regards to overall usability, flow and even aesthetics

Software Testing Types

Integration Testing

In order to properly perform integration testing, testers must possess substantial knowledge of the software architecture for the project Unlije unit testing which focuses solely on functionality, integration testing concentrates on the interaction and communication between different components within the software.

The goal here is to verify that data or information is being passed and processed throughout modules in a system according to previously defined specifications. Examples of this include testing between a client-side we application and its database backend, or a function calling a credit card processing system.

Smoke Testing

Smoke is the initial testing process excercised to check whether the software under test is ready/stable for further testing

The term 'Smoke Testing' is came from the hardware testing, in the hardware testing initial pass is done to check if it didn't catch the fire or smoked in the initial switch on.

Prior to start Smoke testing few test cases need to created once to use for smoke testing. These test cases are executed prior to start actual testing to check critical functionalities of the program is working fine. This set of test cases written such a way that all functionality is verified but not in deep. The objective is not to perform exhaustive testing, the tester need check the navifation's & adding simple things, the tester needs to ask simple questions "Can tester able to access software application?", "Does user navigates from one window to other?", "Check the GUI is responsive" etc  (GUI is an abbreviation for Graphical User Interface) etc.

Sytem Testing

System testing of software or hardware is conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. System testing falls within the scope of black box testing, and as such, should require no knowledge of the inner design of the code or logic.

Regression Testing

Software develpment is not a static process. Throughout testing phases, Developers make modifications and additions which alter the way in which a program is structured. In these situations, regression testing is required to verify that the software is functioning as expected after alterations have been made.

In order to perform proper regression testing, take note of which components have been modified and test the functionality of these components in addition to any interactions they have with other unaltered components. This will ensure that the modified code is being used to its full capacity and has not adversely affected the functionality of the overall program.

User Acceptance Testing (UAT)

Often performed by a small group of actual users or other related stakeholders, user acceptance testing (UAT) usually does not take place until the standard quality assurance process has been completed and a product free from major defects has been delivered. UAT accesses the software from a user-perspective looking at flow, functionality and usability in the field.

Performance and Load Testing (stress testing)

Often times, software is developed with the intention of having multiple users which can put strain on a system. Performance and load testing is meant to simulate an environment in which the software is actively engaged by a realistic number of users. In doing so, any problems related to loading, performance and speed should come to light.

From a testing perspective, it is important to understand the difference between client-side and server-side processing, which refers to the location where most of the processing power for the software lies - either with the client's device or with the software provider(server).

Testing the overall speed and performance of a project on a number of different client devices will provide insight into the range and capabilities of the software which may expose weaknesses or simply provide useful information for inclusion in user manuals or guides.

Load testing tipically tests the limits of a server as overall performance tends decrease as the number of concurrent users increases.

There are a number of programs available in the market aimed at simulating load for the purposes of testing.

Comentarios

Entradas populares