Header Ads

How to make use of Automation Testing at different levels of Software Testing

 

Test Line of Defence


Introduction

There are number of reasons why you may like to create different line of defence against different faults and failures arising in the system during the development process of you application or software system. The defects arising during different phases or levels require varied testing strategies to uncover them. As the software systems under development gets more feature rich the probability of faults and failures increases and require tailor made engineering processes for development life cycle which include introducing test automation processes and strategies which are also tailor made.



Types of Automation Testing
Types of Automation Testing

Types of Automation Testing:

  • Unit Testing: Automated Unit Testing also called as white box testing is used to find defect in the logic implemented by developer. Such tests can be executed before check-in and becomes the first line of defence. As the software is constantly changing there is a chance that some part of the already implemented functionality is no longer required and needs to be removed such types of technical debt can be reduced using automated unit testing by using code analysis tools along with automated unit testing.
  • Automated Integration Testing: How the different modules are tested for correctness when interacting with each other is called integration testing. automated integration system can be black box or white box testing depending on requirement. As development is scattered along different development teams for different modules even though the business logic is correct the the failure may occur interacting with other modules of the system.
  • Automated Functional Testing: Functional testing is type of black box testing where functionality is tested against expected user requirement. Functional tests can be further classified as follows:
      • Smoke Tests: Subset of overall functional tests which includes testing basic functionality to testify latest build quality is good enough for QA team for System Testing or Regression Testing.
      • Regression Testing: Type of functional tests to verify incremental addition or modification to software system the existing features are intact and not broken by the change.
      • Sanity Tests: Type of testing to verify functionality on stable build. Usually occurs after a minor modification or bug fixing.
  • End to End Automated Tests: The type of testing to verify the end to end scenario as per the user in the production environment. These tests are like user acceptance tests which are executed in real world environment.

Test Automation Strategy:

Test automation types when coupled with right automation strategy for required type of testing can make software engineering processes more efficient, measurable, accurate and minimize human error while executing different type of tests under different conditions.

Access the scope of automation Project:

Benefits of Automation while considering Scope:

  1. Automated Unit Tests are time consuming taking roughly 25% more time than development without unit tests. However TDD enables greater confidence in code by the developer and enables code analysis and gives instantaneous feedback about code.
  2. Automated Integration Tests are most time consuming and require to check system as whole. Automating integration tests in white box approach should not test the same business logic already tested in unit test but should focus on implementing tests to uncover defects across modules by testing against multiple interfaces.
  3. Automated Functional Tests saves time in the testing process as testing is exhaustive process and when automation solution is used for functional tests these tests can be executed multiple times when required and saves the manual effort and errors during the testing. Most ROI from automation testing can be derived from automating functional tests.
  4. The end to end tests are executed on production or production like environment. So with minor change in functional tests and by using production configuration and data functional tests can be reused to test user acceptance testing.

Automation Approach:

Approach differs for different type of automation, as approach is dependent on skill, budget, automation tool and scope defined. Through thought process and planning is required prior to implementation automation solution.

Automation Environment:

This phase requires necessary hardware, software and other interfaces for functioning of automation tools and processes

Automation Development:

Manual tests cases are developed to execute automatically on software under test. Development of test cases require knowledge of testing processes and automation tool or programming language required to automate those test cases.

Automation Execution:

Based on type of automation tests, these tests are executed with known frequency at the specified testing level and time and results are generated.

Automation Reporting & Analysis:

Generated reports are analysed and bugs found during automation are analysed and reported to stakeholders.


Conclusion:

Automation tests not only used for uncovering defects found in functional testing but automation testing can be used at all levels of software testing thereby improving efficiency, increased ROI on testing, precise measurement and reduces human error and effort.

2 comments:

automationglance.com. Powered by Blogger.