big-automation / automation-engine

Standalone Selenium ATE without OSGI framework
Apache License 2.0
0 stars 0 forks source link

A smart ate feature design #179

Open peidong-hu opened 9 years ago

peidong-hu commented 9 years ago

design of pageServiceSmartTester (May have included the Page Recognizer as Yuanqiao mentioned in item 3) for generic automation test script generator in vertical market. Pilot project will be job application robot

1) Trainer will be in charge of training the industrial automation test service (step sets) model. Trainer is an incremental trainer. (better use google prediction api since it supports this type of training.)

a. Model needs to be ready to handle both page common services (ex, Main navigation menus) and specific interesting services for test. User needs to train the handler to know what is the common services provided by pages (for example main menus), and what is specific service interesting to the test. b. Trainer will have a gui interface for user to operate the training activity on the scripting/debug stage. We call this as offline training. c. Testing data will be collected in 1b) d. Offline training could also directly read data file to train the model. e. Tester model should be a testcase/service(step sets and pageElementParser)/step(testobjects|element|action) decision tree.

2) ServiceRecommander is the object to give recommandation of what type of service (step sets) that the current page under test is serving a. SR could provide GUI interface for user to correct low probability recommendation. Either give multiple suggestion, or creating a new service category in the model. b. Threthold of low and high probability needs to be researched and adjustable. c. Testing data will be collected in the 2a) as well d. Recommander is also an on-the-fly trainer or saving data for offline training by trainer in 1d)

3) PageKeyElementsParser retrieves all the page elements which could be the key elements for the services hosted by the page. Key elements will become the trainer inputs and also the serviceReommender inputs a. The assumption here is that each page (virtual page) is solely serving for one task (service). However, the side links, for example, main navigation menu could become the noise of judging what service this page is providing. User needs to train the handler to know what is the common services provided by pages (for example main menus), and what is specific service (or interesting service to test). b. PKEP will enhance and reuse the smart locator provided by yuanqiao c. Yuanqiao has mentioned the parser's name is page recognizer which could use ML technologies as well.

4) Model (PMML files) will be hosted in cloud and either shared or kept privately

5) Analysis on models could be used to give BigData BI suggestion to the software maker, for example the recruiting software maker to improve their software workflow (in Job Application Robot project). (This could be branded as Big Data BI.)

6) Another example of use case is the analysis on the shopping web sites to compare each web sites' shopping scenario and give recommandation for the online store to change their online shopping workflow for consumers.

peidong-hu commented 9 years ago

brain storm a) ML will help 1) engineA decide which elements on the page are interesting elements for test case. 2) engineB find proper value/action pair for specific element in element action 3) engineC find proper step or service name

peidong-hu commented 9 years ago

brain storm b) 1) ML could help to train service decision tree, engineD. (Is it machine learning or just a tree?) And ate will use the tree to know what service is going to do on this page and what are the interesting elements (steps) on the page. This training is actually emulating a test case writting procedure in nature language. (high level and key words collected and structured case scenarios are built into the tree.) The testing in a project is actually a procedure of traversing the decision tree (or test cases trees/forest) I. Data to train the tree is collected manually. For example, the job application service decision tree is going to be build by manually going through the indeed job applications. and records the data. II. data format will be pair of ServiceName with Step or Element/Action name pair iii. the step/element/action data will be collected here too? or seperately collected for 3)? 2) in engineD, service decision tree node is the unique service name. attributes on the node is the elements or steps action names invoked by the service. With this decision tree, ate can search in the page and know what is the possible current service and rule out the elements not interesting to the specific service on the page. This sounds that ML could help.

3) ate will grab all the interesting elements and use brain storm a) engineB to find the value/action pair for the elements,

ericlu312 commented 9 years ago

This ideal is very good, but how to build a step decision tree? Every webpage is different. BTW, I have finished the issue #117 : Erase the "name " attribute from XML file.

Regards,

Eric Lu

Date: Thu, 2 Jul 2015 13:24:00 -0700 From: notifications@github.com To: automation-test-engine@noreply.github.com Subject: Re: [automation-test-engine] A smart ate feature design (#179)

ML could help to build step decision tree? And ate will use the tree to know what step is going to do on this page and what are the interesting elements on the page.

― Reply to this email directly or view it on GitHub.

ericlu312 commented 9 years ago

Could you review it by teamview? thanks

Regards,

Eric Lu

From: ericlu2007@hotmail.com To: reply@reply.github.com Subject: RE: [automation-test-engine] A smart ate feature design (#179) Date: Mon, 6 Jul 2015 00:08:22 -0400

This ideal is very good, but how to build a step decision tree? Every webpage is different. BTW, I have finished the issue #117 : Erase the "name " attribute from XML file.

Regards,

Eric Lu

Date: Thu, 2 Jul 2015 13:24:00 -0700 From: notifications@github.com To: automation-test-engine@noreply.github.com Subject: Re: [automation-test-engine] A smart ate feature design (#179)

ML could help to build step decision tree? And ate will use the tree to know what step is going to do on this page and what are the interesting elements on the page.

― Reply to this email directly or view it on GitHub.