⟩ How actually ST works internally from developers point of view?
Answer1:
Silk interacts with the GUI to submit operations to the application automatically, i.e., it drives the application.
It consists of two distinct software components:
(i) The Silk host software, and
(ii) The 4Test Agent software.
The host software is the program you use to develop, edit, compile, run, and debug your 4Test scripts & test plans.
The 4Test Agent is the software process that translates the commands in your 4Test scripts into GUI-specific commands. One Agent can run locally on the host machine, and in a networked environment, any number of Agents can run on remote machines.
Answer2:
Silk - or any compitant GUI auotmation tool works this way:
1. You need to record the GUI of the application .. this is like telling Silk what its goign to work on.
2. Using the recorded GUI of the application, you scrript your test cases,
3. On a new build, you re-execute your test cases.
Any failures are due to :
1. Application error
2. Script error
In case of script error it might be:
1. A logical error,
2. Change in product behavior leading to script error (so the script needs to be updated)
3. OR, the GUI of the application has changed, which means that you need to update the GUI recorded with Silk
When an auotmation tool records the GUI, it basically captures each GUI object along with certain properties of that GUI. These properties are needed to identify the GUI to the tool the next time automation is run
To give you an example, lets say that on a typically user login page, there are three gui entities:
1. The Username field
2. The password filed
3. The login button
assuming login button has an htm lid=login, silk would record this gui as a HTMLPushButton having the id property = login. (The text caption associated with the button might be different i.e. "Log in")
Lets say that it was decided to change the caption of this button to "Sign In", leaving the html iid property the same i.e. login. In this case Silk would continue to playback the GUI automation scripts w/o problem.
BUT in case
In the next buildl, the dev has kept the Button caption same; i.e "Log in" but chnaged the html id of the button to "signin", then Silk WILL NOT recognize the button, even if for the user (i.e. the person) nothing has changed (he still continues to see a button with text "Log in")
This is the basic principle on which most automation tools work.
Answer3:
Basically SilkTest has two software
(i) The Silk host software, and
(ii) The 4Test Agent software.
The host software is the program you use to develop, edit, compile, run, and debug your 4Test scripts & test plans.
The 4Test Agent is the software process that translates the commands in your 4Test scripts into GUI-specific commands.
But question arrises how it wors and see or identify object ??
While you record window declarations, SilkTest attempts to identify the class of each object in your GUI and assign the appropriate class from the built-in class hierarchy. If it is success and belongs to a standard class either MFC or JFC class then objects is idenified. SilkTest contains algorithms to interrogate the objects based upon the standard libraries. When these algorithms work the object is identified,if not then SilkTest reports the object as a CustomWin. An object is defined by:
· Its actual class name
· The underlying software code that creates and manipulates it