A highly flexible / adaptable Automation Test Framework architecture used to accommodate the ever changing test cases dynamically in today’s customer centric testing environment. [Published in IEEE: http://ieeexplore.ieee.org/search/searchresult.jsp?newsearch=true&queryText=rohan+kachewar&x=0&y=0]
2. What is an automation framework
Theoretical definition: A test automation framework is a
set of assumptions, concepts and tools that provide support
for automated software testing.
My perception: A good test automation framework is a
skeleton structure which facilitates easy maintenance ,
reuse, execution of tests and report generation.
There are many more parameters than this but listed above
would be the major ones.
4. Issues with Agile Environments
Today’s competitive world:
Each product based company tries to cater multiple
customers
They end up maintaining numerous customer specific
branches/builds.
Maintaining different tests scripts for each customer
Conclusion: This requires again branch specific:
Storage of test scripts/executables
Test case related Meta data.
Also for same branch (Customer), different version specific
categorization of above data.
5. Primitive solution
Hard Code the tests
Write separate test suite
for each customer
Write Never ending
decision statements to
remember which suite to
execute on which branch
or simply remember this
suite to branch mapping
.
6. New Approach: The Chameleon
Model
Features:
Separate the test data
from tests
The overhead logic of
deciding which tests to
execute is passed on to
build system instead of
Test framework
7.
8. Block Diagram and Work Flow
Build
Build/automation
Execute Test
Case
32 bit
Generi
c Target
Results
Test Case Meta
ID File Data
Platform
Check
SVN/automation
64 bit
64 bit
32 bit
32 bit
Test
Harness Scheduler
Generi Test
Generi Test
c
c Binary
Binary
Test Case Meta
IDTest Case
File Meta
Data
ID File Data User
8
9. Conclusion
This chameleon model as name suggests, is highly flexible
/ adaptable so as to integrate ever changing test cases
dynamically in today’s customer centric testing
environment.
The framework design also facilitates easier addition of test
cases and test data for the Manual QA team thus reducing
the dependency on dedicated automation team (which
might lack the knowledge to define which tests to run for
which customer). Thus reducing the communication gap
and achieving more focused testing.
Also this framework model facilitates QA to dynamically
create test suites containing the test cases they want to run
as per the different builds/branches