Header Ads

How to Speed up Automation Framework?


ktip
Introduction:
What is the catch for defining and developing new framework? somebody might tell the cost for development should low. High productivity.Easy maintenance might be another aspect.But we never consider the time factor for running the scripts. After all this is computer assisted testing.Who cares about the timing? As long as it is a unmanned execution ,nobody cares for execution. This article talks about the a brief idea about how to speed up an automation execution time.
Every scripts are based on some framework.May be a record playback or a serious framework. So if you can configure your framework effectively, run time or execution time will go low.
I have jotted down few improvement areas 
We need to design our automation such a way that we can swap to different tools when needed. We need to preserve the tool independence. Apart from these test engineers should take advantages of some of the downtime or judiciously takes time away from regular tasks that have a due date pretty format, a lot can be accomplished.Object oriented design allowed us to play into test harness in a standard way and reuse existing components to test new features,minimizing the code(power of re usability).
Speeding up automation does not mean a good architecture or a well defined framework. Even though with lot of investment if we create a good architecture for extendable automation framework and script design.it may still fail even though if found high quality bugs.Initial success is no guarantee of long term success.Technical aspects are not the only factors that influence a project.

Before going into details of speeding up automation,we must consider 2 aspects of architectures.

  1. Technical architecture(Software engineering/experience)
  2. Business architecture (Goal of business,bug test case automation)
The business architecture should always exists. It is not only automator's property or a part of his workflow. Manager should push others to learn about automation framework.Manager also should know and understand the power of automation.
The framework creator should be given enough time or encouragement to share his knowledge and expertise.The engineers also need to understand the programming knowledge and enhance the skill.
The automation effort should be tracked in to a good way in a holistic manner.
Speeding up automation also can be found by finding the real objective. The objectives needs to be identified,reduce manual labor costs,improved product quality ,increased testing flexibility,free manual resource for more area to test,reducing strain on network resources as fewer testers are required.Strong support from management continued with the assurance that issues such as funding,test design quality,originally from outside the team and affecting the automation's progress needs to be addressed.Sometime it is better to have a view from outsiders about the process,framework and code.The feedback may a give a lot of internal changes.

Independent testing team concept is a booming concept.Now a days it has become a service line for many companies.Independent testing service optimizes resources availability provides standardize methodology,quality. This process also ensures minimizing defect risks for predefined requirements. For really going good, I recommend, to divide the group into two different ways:
  • Testers
  • Core automation engineers
Testers: Mainly the test engineers who drives testing(Functional testers,QA or acceptance testers).They are more close to the business. They understand the business goal.
 The responsibilities are:   
  • Defines the testing scope,define what is to be tested.
  • Defines the test plan that contains testing quote.
  • Create manual test scripts,entry and exit criteria(outline of the test). 
  • Create report as a proof after executing the testcase manually
  • Supply test data as when it is required
Core Automation Engineers: They are the one who translates the manual scripts into an automation testcases. They may be far from business goals more close to technical aspects nearer to developers. They should have a great programming knowledge.
The responsibilities are:
  • Prepare a road map/test plan for each system to be tested.
  • Prepare automation test script to cover or apply each test quote
  • Write reliable scripts to collect final outcome(It should contain report,bugs,logs etc) suitable for manual test engineers.
  • Become an expert in execution who can understand the script,API.
The separation between testers and automation engineers is necessary as  testing and emulation of user input should not clouded and cross contaminated. Automation engineers needs to have testcases to automate. The testers group are the one who provides them. To bring up speed, testers need to have a constant flow of manual scripts towards automation. Many automation projects either fail or become slow if they don't perform this activity seriously. Converting manual test engineers to automaton test engineer gives a poor result or the strategy may fail.But this way of creating a testing team could be an issue in hiring as testing team grows high. Recent trend is to hire developer vs tester ratio becomes 1:2 from 1:3 to 1:4.So funding could be an issue.

The test automation architect is a key player who is responsible for developing and maintaining the test framework.Architect defines and deploys best practice and coding standards to be used in implementation of the tests and train  test engineers to do minor changes in the abstraction layer. So when your test set is little mature, hiring a test architecture will definitely ed up the scripting and further process.

Abstraction Layer:your abstraction layer should be a balanced one. If the abstraction layer is too thin(too many fields are set in a specific test script), it could lead to a cumbersome maintenance activity. (if any of these filed gets updated,hundreds of field needs to be maintained). If your abstraction layer is too thick(too large or too advanced), the complexity will be too huge for this layer

If we are advancing towards an upgraded framework,test engineers need to learn new technologies,new techniques. It means we need more upgraded class room training or offline training. So hiring experts or creating an expert group who can train and step in when needed,is a good idea.But that may significantly hit the ROI.But we can not overlook the cost of learning and upgraded yourself.

When your testing process are really matured and want to do more speedy testing. Daily Build Engineers come into play. The person in charge of daily builds ensures that the test batch is executed ,makes the first analysis of the result and pass the work needed to analyze the test result to the automation test engineers or QA.A good CI(Continuous Integration) process is must.Hudson or jenkins or cruse control etc will make the automation process more speedy.
  



Powered by Blogger.