Tuesday 27 February 2018

Building Robust Test Automation Framework with Selenium – Best Practices


We ought to consider the underneath abilities while planning our test computerization structure to think of a more solid, strong mechanization contents to test items/highlights us dispatch. By utilizing business catchphrases/include documents, we ought to have the capacity to include new tests.
Test Automation – A Brief History:
QTP was overwhelming the test robotization world around them and it was extremely costly. Not every person could manage. That is the point at which I had begun my profession in IT.
The majority of the general population had no clue about selenium training in Bangalore test mechanization systems around then. Engineers were not engaged with test robotization and QA individuals were for the most part doing record and playback with basic parameterization. They would think of some prescribed procedures and enhance their tests in view of their past missteps. For the most part the contents required more support work because of poor plan. The greater part of the QA individuals would not have any thought regarding the outline designs/standards.
Abruptly the cell phones began flying up all around, cloud advances came up, numerous mind boggling online applications were fabricated, spry procedures was taken after… and so forth. Amid this time everybody comprehended the significance of test mechanization. When Selenium WebDriver has been presented which is FREE and Open source in a similar time, It stood out enough to be noticed. Some QA/Dev progressed toward becoming SDET (Software Development Engineer in Test), presented plan standards and assembled better systems.
Part of SDET:
SDET's part is exceptionally noteworthy in building a hearty test robotization system. When I had an opportunity to investigate the test structure made by a Software Architect who was designer of the application under test. They had actualized all the most recent advances like smaller scale administrations around then which was awesome. In any case, the test structure was made like a unit/coordination testing system. They were utilizing DB dump records for information provisioning.
With a specific end goal to construct a powerful test mechanization system, we ought to have both the attitude of both QA + Dev and have a decent comprehension of
·         OOPs Concepts
·         Plan standards
·         Configuration designs
·         QA particular difficulties
Fundamental Requirements of a Test Automation Framework:
1.      Tests ought to be anything but difficult to peruse and take after: 
·         I by and by don't incline toward any 'new' catchphrases in my tests. No factors/objects instatement in the tests.
·         Anyone/less specialized individual ought to have the capacity to contribute in test robotization
·         Keywords/BDD style should help here 
2.      Ability to include new tests: 
·         Time to include another test into the current suite ought to be less.
·         Design designs/SOLID plan standards should help here.
·         Use business catchphrases to construct new tests like login,logout, seek, arrange, alter, scratch off and so forth 
3.      Abstract away low level charges: 
·         Use Advanced Page Object configuration design
·         Tests should converse with Page Objects, Page Objects converse with Page Forms/Components/Fragments which thus converses with WebDriver API
·         There ought not be any driver.findElement() in the tests.
·         No thread.sleep anyplace in the tests
·         Use familiar sit tight APIs for page synchronization 
4.      Separate locator from page objects: 
·         Separate the locators from the page objects – keep them in a different documents like properties/XML/JSON/CSV 
5.      Separate test information from tests: 
·         Do not utilize any hard coded test information in the tests/page objects
·         Test information ought to be kept up in a different documents like XML/JSON/CSV
·         This will make your tests information driven 
6.      Easy information provisioning: 
·         Tests may anticipate that a few information will display in the application. Such information ought to be made by the tests itself naturally.
·         Each tests ought to have a setUp and tearDown techniques to make and erase the test information.
·         Avoid coordinate DB calls for information provisioning which will influence your tests to run just in the lower conditions.
·         Use the application APIs – This is the best approach for information provisioning.
·         Use the application highlights like import/trade for information provisioning. 
7.      Easy upkeep: 
·         In instance of any adjustments in the application, the tests ought to require simple upkeep.
·         Single Responsibility dependable + Page parts/segments should help here. 
8.      Ability to coordinate with different instruments like junit/testng/insect/expert/jenkins and so on: 
·         The apparatus/structure we pick should bolster CI/CD process. 
9.      Version Control:
 ·         Keep track of the considerable number of changes 
10.    Ability to run the robotized test contents in any given condition like QA, Pre-Production, Production: 
·         As part of CI/CD process, the test computerized tests ought to have the capacity to keep running in any condition – selenium courses on Bangalore including generation.
·         Use of config records – one of each test condition
·         Jenkins ought to have the capacity to abrogate these configs at run time. 
11.  Simple to share the outcomes: 
·         As soon as a smoke test is performed, convey an email warning with the status to all the colleagues
·         Create a pleasant HTML report with steps performed 
12.  Simple to investigate: 
·         Report ought to have every one of the means performed with time stamps + screen captures for simple investigating the fizzled tests.
·         Results history ought to be kept up in a different DB

No comments:

Post a Comment