Methodological Testing Approach

Methodological Testing Approach

Software testing is the process of evaluating a software product and its functioning against what was desired and expected, on the basis of given requirements and specifications.

A software product may be tested using various approaches, defined for each specific purpose. Each of these methodological testing approaches caters to fulfil the need of testing a software application through various angles and perspective, but with the motive of achieving the quality prospect, by removing maximum number of bugs and defects.

Let’s have a glance over these approaches, based on different aspect.

Functional Testing Approach

The functional testing approach consists of four different types of testing methodology, which is used to test the functional attribute of a software product, at each different level. The testing types covered under this approach may be seen as under:

  • Unit Testing:It is the first testing technique of a testing phase. In unit testing, smallest component of a system i.e. unit is tested. It is generally performed by the developers, itself and may be carried out, with the help of automation tools.
  • Integration Testing:After verifying and validating the each unit/module, these are integrated and are being tested as a whole system. The basic purpose behind this technique is to ensure the reliability and stability of the components, after the integration process. Further, it is used to locate (if any) the interface error occurred in the application, after the integration.
  • System Testing: This technique is used to evaluate the overall integrated system, against the pre-defined and specified requirements and specifications. It is a type of black box testing, which does not requires the in-depth testing, but just checks the working of a software application, externally.
  • Acceptance Testing:Based on the user and business requirements, a software product is being evaluated from different user perspectives, so that it may be accepted at the client or user side. Basically, acceptance criteria is defined and created, based on the user requirements and needs, in the real world environment. A software needs to pass these norms, so as to declare it acceptable or non-acceptable, for its use by the users.

Non-Functional Testing approach

The approach is used to assess the non-functional traits of a software product, which ensures the performance and other non-functional aspects of a software application, under multiple variant conditions. This testing methodology generally comprises of following testing types:

  • Performance testing: It is carried out to evaluate and assess the stability, scalability, behaviour, responsiveness and other similar quality attributes of a software product, under multiple variants of workload.
  • Stress Testing: This testing technique emphasizes on the robustness quality of a software product, where a software product is made to work, beyond its capability or threshold limit. It is a type of performance testing, which ensures the smooth functioning of a software application, under maximum possible load.
  • Compatibility Testing : This testing type ensures the software’s compatibility to run and execute on multiple platforms, under different environments, irrespective of hardware and software requirement.
  • Security Testing: This testing technique is used to identify and locate the vulnerable areas, loopholes or gaps, present in the security mechanism and feature of a software product, so as to fix them and prevent a system from the security breaches and attacks. Security testing ensures the protection, authenticity, confidentiality and integrity of the information and data.
  • Efficiency Testing:It is used to measure the amount of code being used by a software application, while performing/executing a task or operation. The basic purpose of this testing is to assess the usage of software product resource to perform a particular operation, thereby ensures the efficiency of a software product.
  • Usability Testing: It focuses on user interface, interaction and user friendliness feature of a product, to ensure the smooth interaction and functioning of a software product by its end users.

Basic Testing approach

  • Black Box Testing: It is a testing approach, where the functioning of a software product is tested on the basis of available specifications, and without having knowledge and understanding of the internal features and structure of the software. It is used to evaluate a software product, externally, without considering its internal structure and working.
  • Stress Testing: This testing technique emphasizes on the robustness quality of a software product, where a software product is made to work, beyond its capability or threshold limit. It is a type of performance testing, which ensures the smooth functioning of a software application, under maximum possible load.
  • White Box Testing: Opposite to black-box, white box testing methodology considers and makes use of the internal structure and code, to assess the functioning of a software product. A tester needs to have detailed knowledge of the internal code of a software product, to carry out white box testing.
  • Gray Box Testing: This testing approach reflects the mixed blend of white box and black box testing features, where a tester having limited or partial knowledge of the internal structure develops test strategies and test cases and subsequently execute them, to assess the functioning of the product, externally, from the users-perspective.

Testing approaches based on Development Models

  • Waterfall Model: It follows a top-down and non-iterative approach. This methodology consists of sequential execution of multiple phases, where a phase could be initiated only if its previous phase has been completed. It phases are:
  1. Requirement analysis
  2. Test case design
  3. Test case implementation
  4. Testing, debugging, and validating the code or product
  5. Deployment and maintenance
  • Iterative Model: In an iterative approach, whole process is divided into number of smaller sub-tasks, where each task, is taken and completed iterations. Testing is carried out, immediately after each iteration and its feedbacks, suggestions or recommendation are implemented in the next iteration. The process continues, until no sub-task is left to execute.
  • Agile Model: This model provides the software product, in incremental releases and requirements are gradually developed after each iteration through collaboration between the team members and the client. Testing is carried out after each cycle or release, with the intent to find out defects (if any) in the current release and fixing it before the next release, in the next sprint.
  • Extreme Programming: It is one of the agile methodology, which involves the frequent delivery of a software product, in short development life cycle, and on regular & incremental basis, to the customers or stakeholders, so that their valuable feedback and reviews, may be implemented, in the next cycle of development. The testing activity involves, verifying and validating the functionality of the code, which is carried out by the programmer, itself. Acceptance testing, is a common seen testing technique, in the extreme programming.