Tuesday, February 25, 2020

When do you choose what test case to be automated

When do you choose what test case to be automated?

It is impossible to automate all testing, so it is important to determine what test cases should be automated first. The benefit of automated testing is linked to how many times a given test can be repeated. Tests that are only performed a few times are better left for manual testing. Good test cases for automation are ones that are run frequently and require large amounts of data to perform the same action.
There are many situations, when you realize that Automation Testing must be done:
1) To Optimize the Speed & Efficiency

2) To Increase the Quality and Decrease the Cost: In software development processes, time-to-market is always on priority. Automation test design for Regression testing, Functionality testing, Re-testing the existing modules, so that auto-scripts run fast and frequently. It’ll surely reduce the time, cost and increase the speed.

3) When there is a repetition or a need to run the test cases a lot number of times in a test cycle.

4) When there are number of test cases under one test-suite: In this case you’ll feel tired after executing each test cases from that test suite, then automation can provide you better results.

5) When there is a requirement of running the test cases in a defined order: While doing software testing, there are scenarios in which you need to test specific feature/module before the others. To achieve this in manual testing its required to remember the order, or you’ll write the order in some other file(.doc, txt, excel) and will refer that. But with automated testing, you can design the scripts in such manner as per our needs.

6) To Increase the Test Coverage: As a human, there are some areas remain left while doing Regression/Retesting. So Automation test helps you to cover all test cases for each module.

7) When you need to run the same test cases on different machines at the same time: When there is a requirement to run the same set of test cases simultaneously on multiple machine, then automation is your answer. Under manual testing process, you cannot execute same test case at the same time on several machines.

8) When you need to test single functionality with multiple data sets: At the time of testing process, you need to run the same test case with multiple data. Then data driven automation testing framework comes in picture to minimize your effort & time. The data is fetch from an external source (e.g. Excel) and pass the multiple and big-size data to each test case. In manual testing, you get bored of testing same functionality and chances of error can increases.

9) When you need to run Regression/Sanity/Smoke Test Suite: Regression test suite consists selected number of test cases, which need to be tested after every defect fix cycle. For regression/sanity testing there is a need of automation testing, because:

  • Its test cases never/rarely change.
  • Repeated execution of test-cases (after each new functionality).

10) Generation of Detailed Reports: Mostly all automated testing tools generate test reports automatically once the testing cycle completes. This eases the job of identifying defects and allow the test team to make decision to reliability of the product. So Automation is the solution.
You should refer this cycle before starting with automation:

Automation Testing


What is Automation Testing?

Automation testing is an Automatic technique where the tester writes scripts by own and uses suitable software to test the software. It is basically an automation process of a manual process. Like regression testing, Automation testing also used to test the application from load, performance and stress point of view.
In other word, Automation testing uses automation tools to write and execute test cases, no manual involvement is required while executing an automated test suite. Usually, testers write test scripts and test cases using the automation tool and then group into test suites. Automation testing is a technique uses an application to implement entire life cycle of the software in less time and provides efficiency and effectiveness to the testing software. The main goal of Automation testing is to increase the test efficiency and develop software value.

Image result for what is automation testing with example

Testing tool selection: Phase where you identify and select the automation tool for automation testing. Test Tool selection largely depends on the technology the Application Under Test is built on.

Define scope of automation: What are you going to automate and won't you automate. The scope of automation is the part your application that needs to be automates. It can be determined with the following..

  • Common functionalities across the application
  • Features that are crucial for your business
  • The complexity of test cases
  • Capability to use similar test cases for cross browser testing
Panning, Design And Development: Once you have identified the test cases to be automate, you can design and develop the automation suite, implementing relevant design pattern and framework. During this phase, you create an Automation strategy & plan, which contains the following details-
  • Automation tools selected
  • Framework design and its features
  • In-Scope and Out-of-scope items of automation
  • Schedule and Timeline of scripting and execution
  • Deliverable of Automation Testing
Test Execution: Execute the above designed test case and record the test result.
Maintenance: As new functionalities are added to the System Under Test with successive cycles, Automation Scripts need to be added, reviewed and maintained for each release cycle. Maintenance becomes necessary to improve the effectiveness of Automation Scripts.

Thursday, February 20, 2020

Role of a developer in different phases of SDLC

(Q). What is the role of a developer in different phases of sdlc?
The Software Developers (front-end and back-end) are responsible for using the technical requirements from the Technical Lead to create cost and timeline estimates.
The Software Developers are also responsible for building the deliverable and communicating the status of the software project to the Technical Lead or Project Manager.
It is critical that the other team members effectively communicate the technical requirements to the Software Developers to reduce project risk and provide the software project with the greatest chance of success.
Image result for What is the role of a developer in different phases of sdlc


Featured Posts