Again on SilkTest Job Opportunities

The Indian competitor of job portal Dice.com - Naukri has today thirty three job postings for engineers with Silk Test knowledge comparing with seventy four on Dice.com. As usual job details are not very specific on both sites. For example the following short job description is not clear about position at all. Do they want to hire QA Lead or just QA Tester? Do they hope to use all automated tool in the same time?

Job Description
- This QA lead / Testing lead / QA Tester will analyze the test requirements specifications and contributes in developing the test strategy.
- Develops test scenarios.
- Periodically reviews the test cases developed and the test execution results.

Desired Profile
- QA Lead / Testing Lead / QA Tester with minimum four yrs of experience out of which at least 1+ year of experience in any of the automated testing tools (Winrunner, Loadrunner, Visual Test, Rational Robot, SilkTest etc.).
- Engineering Graduate/MCA
- Must understand SDLC.

SilkTest Question 49: What does this code print?

There is one more puzzle for interviewee during hiring process in of the top tech company located in Bengalooru, India.

What does the following 4test code print and why?

SilkTest FAQ

Unfortunately more then seventy five percent of candidates for SilkTest Testing Engineer position would give a wrong answer: "53" "54". Perhaps they forgot or never knew about using the type cast operator to perform explicit type conversion. The result of casting a string to integer is the numeric value of the first character in string. Thus in the example above the second print operator would produce "53" too, which is decimal value of the ASCII character 5.

SilkTest Question 48: Do you recommend installing WinRunner and Silktest on the same machine?

Scanning job search site dice.com the eager job hunter may notice a lot of Quality Assurance engineers with different automating tools in the resume. I would suggest asking about ideas to work with WinRunner and Silktest installed on the same machine. In most cases such setup would work fine, but suddenly a new difficulty may arise, for example with Java applets testing. Last week one of our outsourced team member in India installed SilkTest on a computer that already had WinRunner installed by somebody else. The tests were working well until she started trying to enable extensions for Java applets. As a result of this Silk Test recognize IE6 browser as a client/server application. The Borland (Segue) support told us that WinRunner installs own Java classes that may conflict with SilkTest extension and they do not recommend installing both testing tool on the same machine in any Test Lab.

Current SilkTest Job Opportunities

Senior QA Engineer - Automation

LOCATION: San Francisco, CA

OVERVIEW: In this position, the Senior QA Engineer will be helping to deliver high quality products to our websites, on schedule, in a fast paced environment. You will be responsible for expanding and maintaining our functional test automation suite, as well as designing, building and executing load, performance and reliability tests. As a senior member of the team, you will be mentoring and training junior QA engineers.

RESPONSIBILITIES:

• Design, build and execute load, performance and reliability tests.
• Build upon and maintain existing SilkTest automation suite.
• Create test plans, and provide estimates for project scheduling.
• Investigate new test methodologies and tools.
• Mentor junior team members.

BACKGROUND:

• Understanding and knowledge of software development life cycle and software engineering best practices.
• A solid understanding of testing methodologies.
• Demonstrated knowledge of Internet technologies and experience testing web applications.
• Experience developing automated testing harnesses.
• Experience with SilkTest, and facility with its 4Test Scripting language.
• Experience with load testing tools, JMeter a plus.
• Demonstrated knowledge of databases and facility with SQL.
• Facility with and knowledge of Windows platforms (Win9x, Win2K, Win XP).
• Knowledge of UNIX servers and environments (Solaris).
• Some experience with J2EE containers (Resin, Tomcat, Jetty, etc.)
• Additional programming experience a plus, e.g: Scripting languages such as shell scripting, Perl, Ant, etc; Compiled languages like C, C++ or Java.
• I18N (internationalization) and L10N (localization) testing experience.
• Good technical troubleshooting skills.
• Good written and verbal communication skills.

Please send your cover letter with compensation requirements and resume via email to jobs@planetoutinc.com (no attachments please). Please include the job title: Senior QA Engineer

SilkTest Question 46: How to get machine hostname in SilkTest?

Could you create function with 4Test script which would return machine hostname?

There are at least two ways of getting desired value using 4test script. One of them using SYS_Execute function and one more is with SYS_GetEnv function. The both 4test code examples are posted below:

Silk Test

The SYS_Execute function uses Windows XP command prompt networking tool hostname which displays the host name portion of the full computer name. The SYS_GetEnv function returns the value of the COMPUTERNAME environment variable. The second method would work a little bit faster and definitely would be preferable for extensive regression testing.

SilkTest Question 45: How to fix no license for silktest_gui error?

My coworker Senior QA Engineer started to ask the question about no license for silktest_gui 8.0 error to filter candidates without practical experience. The question sounds as the following: In preparation for major production release of your application you tried to start Silk Test 8.0 automation tool and suddenly getting the following windows pop up with error.

SilkTest license
Everything was working perfect in the quality assurance lab yesterday. Give at least two ideas how to fix it?

The most plausible reason would be that SilkTest license was not installed at all or in case it was installed you pointed your Silk Test to the wrong server address or wrong port number.

One more explanation is that everyone else in your QA team use floating licenses and your coworkers exhaust all SilkMeter's resources. You need to open the SilkMeter User Policy Administrator and verify that your licenses are still there and not checked out by anyone else.

By the way the error for SilkTest 2006 would be no 'license for silktest_gui 8.1' and you would not find anything about this error in SilkTest documentation.

SilkTest Question 44: How to email test results using Microsoft Outlook?

My indolent QA Manager wants me to send him the result of execution functional test every night and I'm been sluggish don not want to create and send emails manually. Can I send email with attachment using Silk Test?

Everything is possible in SikTest world. I use "partner -resextract -r "C:\Program Files\Segue\SilkTest\Projects\Winrunner\TestCase.pln" to extract test report. Next I created code below and save it as qtp.vbs (note vbs extension) and run newly created file with the following command "wscript qtp.vbs".

Dim objOutlook
Dim objOutlookMsg
Set objOutlook = CreateObject("Outlook.Application")
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
objOutlookMsg.To = "manager@automated.software.testing.com"
objOutlookMsg.CC = "debug@automated.software.testing.com "
objOutlookMsg.BCC = ""
objOutlookMsg.Subject = "Nightly build verification completed"
objOutlookMsg.Body = "Dear SQA Manager, attached is the result of execution of my lame test"
objOutlookMsg.Attachments.Add "test report"
objOutlookMsg.Send

SilkTest Question 43: How to count the number of open browsers?

Let’s assume that interviewer for Software Quality Assurance Engineer position wants you to implement the function for counting number of browsers which he recently opened on his/her computer. No one knows the real need for such function, because average tester prefers to work just with one browser and as a part of test case preparation would close all remaining Internet Explorers or Firefoxes. The first question to ask is what type of browser do you want to check and after meaningful answer you can create something like following function written in 4test language which returns the required number for Internet Explorer.


integer GetBrowserCount ()
integer browsers = 1
while (MainWin ("$explorer6_DOM[{browsers}]").Exists ())
browsers ++
return (browsers -1)

SilkTest Question 42: How to get substring of the string variable?

Imagine you have a string variable that holds the sixteen digits MasterCard or Visa debit card number. Can you name one of the many ways to obtain string with last four digits during run time?

The QA engineer may use multiple ways to get for testing purposes last four digits from sixteen digits string. Let’s name for practical purpose variables name with credit card number as sMCnumber and result string as sResult. The following two lines of 4test code would return the same test result:

sResult=Right (sMCnumber,4)
sResult=Substr(sMCnumber,13,4)

By the way I used one of the best practices to name string variables on 4test script.

SilkTest Question 41: What is the latest version of Silktest?

In the preparation for interviewing, I like to review the resume of potential QA Tester candidate to verify time line of using correct version of SilkTest tool and if I see something like "Automated regression testing of new builds utilizing Segue SilkTest" dated between 2000-2002, I would definitely ask about version of automated test tool you were using back then. So I would recommend updating as soon as possible your QA resume with published below short version of Silktest releases.
  • June, 2012 - Borland SilkTest 13
  • November, 2011 - Micro Focus SilkTest 2011
  • May, 2011 - Micro Focus SilkTest 2010 R2 WS 2
  • December, 2010 - Micro Focus SilkTest 2010 R2
  • July, 2010 - Micro Focus SilkTest 2010
  • August 12, 2009 - SilkTest 2009
  • July, 2008 - SilkTest 2008 SP1
  • April, 2008 - SilkTest 2008
  • September, 2007 - SilkTest 2006 R2 Service Pack 2
  • June, 2007 - SilkTest 2006 Release 2 Service Pack 1
  • January, 2007 - Silk Test 2006 R2
  • September, 2006 - SilkTest 2006
  • May, 2006 - SilkTest 8.0
  • September, 2005 - SilkTest 7.6
  • June, 2005 - SilkTest 7.5
  • October, 2004 - SilkTest 7.1
  • November 2003, - SilkTest 6.5
  • November 2002, - SilkTest 6.0
  • September 1999, - SilkTest 5.0.1
  • November 1996, - QA partner 4.0 as part of QualityWorks client/server testing suite

What is the latest version of QuickTest Professional?

How can QA engineer execute SilkTest from the command line?

The interview question 34 was updated with SilkTest tips on running tool for automated testing on Microsoft Windows 2003 server shipped by default with enabled Internet Explorer Enhanced Security Configuration.

Open position for automation tool specialist

More then two productive testing months have passed and three more fully tested software applications were shipped to customers of our Software Quality Assurance department since I compared the job postings for QA Engineer position with automated testing tool experience on the following job search engines: dice.com and craigslist.org (for craigslist search is local, only for San Francisco Bay Area)

Dice.com
  • Silktest - 68; 164; 175; 180; 184.
  • Winrunner - 514; 519; 537; 516; 460.

Craigslist.org
  • Silktest - 17; 23; 26; 33; 17.
  • Winrunner – 28; 27; 30; 30, 21

The tracking of job posting started in April, 2006. The statistics for August and September were missed due to performance impact of testing and production environment issues.

SilkTest Question 40: Did you have any problem with FireFox and SilkTest 8.0?

This interview question is good to verify if candidate for automation QA Engineer position really worked with automation testing tool mention above. Not long ago Borland (BORL) has acknowledged the following defect in the SilkTest 8.0: the FireFox browser may suddenly crash during test script execution with the following mournful message "error loading C:\Program Files\Segue\SilkTest\nshlprfox.dll". It means if you examined web applications with 8.0 version of automated testing tool you definitely experienced capture issue with Firefox browser.

SilkTest Question 39: How to use verify statement?

How to use verify statement to check that actual value doesn't match what was expected, the error is logged, but SilkTest doesn't stop the 4test script execution and keeps running.

The following 4test code can be used by smart SQA Engineer for verification. As we see after exception was logged, the automated tool printed next line.

[-] testcase StringVerification() appstate none
[-] do
[ ] verify("silktest","interview")
[-] except
[ ] ExceptLog()
[ ] print ("the test case still works")

And the following is the result of test script execution

Script question39.t - 1 error
Machine: (local)
Started: 02:22:22PM on 26-Sep-2006
Elapsed: 0:00:05
Passed: 0 tests (0%)
Failed: 1 test (100%)
Totals: 1 test, 1 error, 0 warnings

[-] Testcase StringVerification - 1 error
*** Error: Verify value failed - got "silktest", expected "interview"
Occurred in Verify
Called from StringVerification at question39.t(3)
the test case still works

SilkTest 2006 released by Borland

I suspect the main reason for fresh release is only marketing in addition to Borland JBuilder 2006, Borland Delphi 2006, Borland C++ Builder 2006, Borland C# Builder 2006 the customers are going to have Borland SilkTest 2006. Reading through release notes I see that only two bugs were fixed in the new release and automation tool packaged with TrueLog Explorer which supposes to simplify root cause analysis of test case failures via visual verification. The SilkTest 2006 supports integration with Borland's StarTeam 2005, but you need to buy one. SilkTest International is no more and it is included in the new version and the same happened with .Net support. The bad new is that the price of upgraded automated tool skyrocketed from $6,500 to $9,000 and the same deal appears with SilkTest runtime license it went up to $4,000 from $3,250. Is time to buy BORL? Not yet! SilkTest 2006 only works in an United States locale environment (locale is a set of user preference information related to the user's language, environment and/or cultural conventions). As we all know Windows XP includes support 136 different locales and Borland tested tool only for one of them.

SilkTest Question 38: How to read value from read only text field?

Imagine that the text field has read only status or disabled. The Silk Test returns the unexpected error message "*** Error: Window '[HtmlTextField]Estimated:' is not enabled". Is it possible to obtain text field value?

As usual Lead QA engineer in automation can get value with Agent.SetOption features of SilkTest. The code to retrieve value of 'VMware' text field located on 'WinRunner' page of application under test posted below:

Agent.SetOption (OPT_VERIFY_ENABLED, FALSE)
Winrunner.VMware.GetText()
Agent.SetOption (OPT_VERIFY_ENABLED, TRUE)

SilkTest Question 37: How to fix "Mouse Coordinate (x,y) is off the screen" error?

During testing of web based application QA Engineer gets the following error "Mouse Coordinate (x,y) is off the screen" when the GUI object goes out of the screen. The issue appears when Silk Test tries to click the GUI objects which are out of screen area.

Provide the following 4test code above the code from where the mouse error occurs
  • Agent.SetOption (OPT_VERIFY_EXPOSED, FALSE)
Provide the following 4test code below the code from where the mouse error occurs
  • Agent.SetOption (OPT_VERIFY_EXPOSED, TRUE)

SilkTest Question 36: How to open and close browser?

There is Invoke method declared for the Browser window. The following 4test code invokes the currently defined browser - Browser.Invoke(). The Close method will close current browser windows – Browser.Close(), but in most cases this method can be used in combination with CloseOthers. The CloseOthers closes all instances of the current browser except the top most one. One more method would be useful for testing FireFox with SilkTest. The CloseOtherTabs closes all instances of the current browser tabs expect the left most one.

The 4test language examples:
Browser.Invoke()
Browser.Close()
Browser.CloseOthers()
Broswer.CloseOtherTabs()

SilkTest Question 35: Did you have any issues with SilkTest 8.0?

I guess this one is the nice question for someone who has the latest version of Borland SilkTest 8.0 in his/her resume. One of the answers may be the following:

While testing a huge webpage which has almost 1000 objects we figured out that automation tool is not able to see a lot of objects at the bottom of the webpage. The developers can not brake down the page into smaller web pages due to customer requirements. We tried to recognize objects with previous version of SilkTest 7.6 and with WinRunner 8.0 and both automated tools do not have such problem on this page. Our QA manager contacted Borland and currently they are trying to fix this issue in the future version. In the mean time we are trying to find a workaround, but not able to get any satisfactory solution.

SilkTest Question 34: How can QA engineer execute SilkTest from the command line

The full development version of SilkTest uses – partner.exe file, therefore the start command would be %SEGUE_HOME%\partner.exe -r winrunner.t

The runtime version of SilkTest uses - runtime.exe file, hence the command should be: %SEGUE_HOME%\runtime.exe -r winrunner.t

There are many options for execution automation tool from command line and one of the most useful is "-q" which quiets application after the script, suite, or test plan completes.

Silktest tips:
The experience with running runtime version on Microsoft Windows 2003 server has shown that runtime version is not able to execute 4test script for browser in case the 'Internet Explorer Enhanced Security Configuration' is enabled on computer. To disable one need to use the following instruction:

Press start, select Control Panel, and select Add/Remove Programs
Press on Add/Remove Windows Components image
As soon it is done find and uncheck the check mark next to Internet Explorer Enhanced Security Configuration. (click detail in case you would like to only disable it for administrators or only for users)
Press Next, and try to run your 4test script or test plan again.

SilkTest Question 33: How to stop a running test case before it completes?

From my experience as interviewer around 25% applicants for QA Engineers position don’t know answer on this interview question although everyone of them has at least 2 years of experience with SilkTest automated tool.

To stop running a test case before it completes:

  • if your application under test is running on your host computer, press SHIFT+SHIFT
  • if your application under test in on target computer other than host computer, select Run/Abort from SilkTest menu

SilkTest Question 32: Can you explain the standard flow of test case execution?

  • The test case drives the application under state from the initial stage to the state QA Engineer wants to test.
  • The test case verifies that the actual state matches the expected state. The QA department might use term baseline or basestate to refer to expected state.
  • The test case verifies that the actual result of execution matches expected result.
  • The test case declares that the test passes or failed
  • The test case cleans up application in preparation on next test case.

SilkTest Question 31 : How to update an Excel spreadsheet using SilkTest?

First of all the QA engineer should verify that ODBC data source, which SilkTest is going to use, is not set to read-only otherwise the Excel worksheet cannot be updated

The Microsoft's Excel OBDC driver does not support INSERT keyword, so QA Engineer will not be able to use this keyword in the SQL statement. Instead of INSERT keyword 4test code developer have to use to use the UPDATE keyword.

The following 4test example will update data in Microsoft Excel.

[ ]
[ ] HANDLE hDBC = DB_Connect("DSN=Documentation")
[ ]
[ ] HANDLE hSQL
[ ]
[ ] hSQLq = DB_ExecuteSQL(hDB, "UPDATE 'Sheet2$' SET 'Sheet2$'.Language='4Test' WHERE 'Sheet2$'.Name='Winrunner'")
[ ]
[ ] DB_Disconnect(hDBC)

Also take a look at SilkTest Interview Question 18: How to read data from Microsoft Excel worksheet?

Again on the job market for automated testing tools

The following results appeared after four months tracking the job postings for QA Engineer with automated testing tool experience on fashionable job search engines dice.com and craigslist (the craigslist search is local, only for San Francisco Bay Area)

I started to track since April, 2006 and as we see job market looks steady for both tools.

Dice.com
Silktest – 68; 164; 175; 180.
Winrunner - 514; 519; 537; 516.

Craigslist
Silktets – 17; 23; 26; 33.
Winrunner - 28; 27; 30; 30.

By the way today Hewlett-Packard announced that it will acquire management software company Mercury Interactive for $52 a share, or $4.5 billion in cash. Will it give boost for Winrunner and Quick Test Pro?

SilkTest Question 30: What are the important aspects of a test case?

The following important aspects of a test case applicable not only with Borland SilkTest 8.0, but with other automated testing tools like Mercury's Winrunner 8.2 and Quick Test Pro 9.0 . The manual testing required a little bit different approaches, but definition below applicable on manual testing of web based and client server applications.

In order for a testcase to be able to function properly, the application under test must be in a stable state when the QA engineer begins to execute test case. This stable state is called the base state. The recovery system is responsible for maintaining the base state in the event the application fails or crashes, either during a testcases execution or between test cases.

Each automated test case is independent; it should perform its own setup, driving the application to the state QA engineer wants to test, executing the testcase, and then returning the application to the base state. The QA team and the testcase should not rely upon the successful or unsuccessful completion of another testcase, and the order in which the testcase is executed should have no bearing on its outcome. If a test case relies on a prior testcase to perform some setup actions, and an error causes the setup to fail or, worse yet, the application to crash, all subsequent tescases will fail because they cannot achieve the state where the test is designed to begin

A test case has a single purpose – a single test case should verify a single aspect of the application under test. When QA team designed automated test case in this manner passes or fails, it's easy to determine for any team member specifically what aspect of the target application is either working or not working. If an automated test case contains more than one objective, many outcomes are possible.

In short the important aspect of test case for automated testing :
  • The testcase should always start from a predefined base state and return to the same base state.
  • The testcase must be independent from any other test cases.
  • The testcase must have only one test objective

SilkTest Question 29: How to hide password in the 4test script file?

My QA team is doing transition from Winrunner to SilkTest and we have a problem with the web application user name/password recording. The Winrunner records the password in the encrypted format, but SilkTest records password as a plain text. Can we do something to hide password?

There is no way to encrypt and decrypt password using 4test script, but QA engineer can make a work around with some external languages like Perl or Python. More advance solution is too never use your own account and create test accounts to access application under test.

UPDATE: SilkTest 2006R2 supports password encryption/decryption. Passwords can be encrypted, so that they are not displayed in recorded test scripts or when playing back test scripts.Two new functions, Decrypt() and Encrypt(), have been added to the 4Test language to support password encryption.

SilkTest Question 28: How to start installation testing?

The QA department assigned for installation testing of our software product. I as A Lead Test Engineer try to develop 4test script which will recognize the correct path for installation CD-ROM drive and launch application. Can you give me some clue to start?


To recognize drive letter to CD-ROM, you have to use API with name GetDriveType(). See the 4test code written below:

[-] dll "kernel32.dll"
[ ] long GetDriveTypeA(inout String strDrive)
[ ]
[-] testcase GetDriveName() appstate none
[ ] GetCDDriveLetter()
[ ]
[ ]
[-] String GetCDDriveLetter()
[ ] integer i
[ ]
[-] for i=67 to 90
[ ] String strDrive=chr(i)+":\"
[-] if GetDriveTypeA(strDrive)==5
[ ] print(strDrive)
[ ] return(chr(i))
[ ] return " "


To launch application from the installation CD you can use the following 4test script

use "bwcompat.inc"
[-] testcase LaunchFromCD () appstate none
[ ] STRING sStart = "{GetCDDriveLetter ()}:\{strPathToSetupFile.Exe}"
[ ] App_Start (sStart)

App_Start is described in bwcompat.inc file file that comes with Silk Test.

SilkTest Question 27: How to set correct browser extension for web based application?

The following steps describes setting browser extension for testing web based applications.

  • Start SilkTest application.
  • Start Internet Explorer browser
  • Enter the URL of the Web application into Internet Explorer address bar and leave the Internet Explorer window with the web based application. Do not minimize browser window!
  • Switch back to SilkTest window.
  • Select Workflow->Basic in SilkTest menu
  • Press Enable Extensions on the Workflow bar.
  • The Enable Extensions dialog will show up. In most cases the web based application running in the browser window will be listed in the dialog box.
  • Select your web based application and click select.
  • The Extension Settings modal dialog window will show up. Select radio button DOM and click OK to enable the DOM browser extension.
  • Restart your web based application as asked in Text Extension Setting window and press Test button.
  • The SilkTest window with text "Configuration of your Internet Explorer 6 application is complete" should appear in case of successful settings.

The job market for automation testing tools

The jobs postings for quality assurance engineers from popular job search engines shows that Winrunner again leads in the virtual race.

The search result from dice.com on June,28 2006:
  • silktest - 175 jobs
  • winrunner - 537 jobs
Both tools added around 10-15 job request comparing with last month.

The search result from Craigslist for San Francisco Bay Area on May,28 2006:
  • silktest - 26 jobs
  • winrunner - 30 jobs
Both tool added a few job and it seems job market is still going up.

SilkTest Question 26: How to repair *** Error: Application not ready error?

During automated regression testing of web based application QA Engineer presses one of the browser controls and gets the error described below:
*** Error: Application is not ready Occured in WaitForReady

The QA engineer could mumble only that the error above is not consistent, it happens sometimes on one of the computer on QA lab, but last month the same 4Test script works perfect on all computers during testing of previous release of the same application.


It looks like your web based application takes to long to respond and SilkTest times out. In this case the usual solution is to boost the timeout values. The test developer can set timeout values for individual script or set globally

The first value to check is 4Test agent OPT_APPREADY_TIMEOUT option, the number of seconds that agent waits for an application to become ready.

The second value to check nInvokeTimeout, an integer that specifies the number of seconds that SilkTest waits to the main window of application to appear.

SilkTest Question 25: How to fix the explorer6_Dom[1] error?

We have a few test scripts written by outsourced QA team in 4test language for regression testing of our web based application. During test script execution the error message ***Error: Window '[MainWin]$explorer6_Dom[1]' was not found appears. The problem is that the error message above is not shown every time when I run script, sometimes the code runs just fine, but it may happen that if I execute testing again the DOM error message appears. Not a single engineer in our QA team is able to find answer in SilkTest documentation. We asked for help from outsourced testing team, but they do not have any clue at all.

One of the solutions to fix *** Error: Window '[MainWin]$explorer6_DOM[1]' was not found is to verify that "Enable Third Party Browser Extensions" option of Internet Explorer is checked. You can find it under Tools/Internet Options/Advanced
Do not forget to reboot your computer after enabling this options.

SilkTest Question 24: What is the limitation of Silk Test automation tool?

The tool for automation testing has the following limitations:

Silk Test may not recognize some window frames.
Occasionally it will be thorny to activate application window.
It may be necessary to make some modifications if testing should be shifted to other browser/operating system.
Silk Test sometimes may not recognize some objects in a window or page because of various technical reasons.
The 'tag' value may get changed repeatedly.
During functional testing of web based applications, very often Silk Test will take the links as simple text.

SilkTest Question 23: How to set up proxy setting with 4test code?

In preparation for QA interview I try to develop script for setting up proxy server for Internet Explorer 6.0. So far I found two windows registry keys where proxy data are located on my Microsoft Windows XP testing machine.

I may turn proxy server on or off with 1 or 0 modifying
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable

I may define proxy server ip and port modifying
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer

What to do next?


The code below contain Silk Test code for turning on specified proxy server and as your home work for QA interview you can easily modify script for turning off proxy server. By the way before you change the registry, make sure to back it up and make sure that you or someone else in your company know how to restore the registry if a problem occurs or play with this script only on test environment.

[ ] // Turns on specified proxy
[ ] // sProxyName -> ip:port
[+] configureProxyServer(STRING sProxyName)
[ ]
[ ] integer iKey = HKEY_CURRENT_USER
[ ] string sPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings\"
[ ] string sProxyServer = "ProxyServer"
[ ] string sProxyEnable = "ProxyEnable"
[ ] string sProxyOn = "REG_DWORD: 0x00000001"
[-] do
[ ] SYS_GetRegistryValue(iKey, sPath, sProxyServer, TRUE)
[ ] SYS_SetRegistryValue(iKey, sPath, sProxyServer, sProxyName)
[-] except
[ ] Reg_CreateValue(iKey, sPath, sProxyServer, serverName)
[ ]
[-] do
[ ] SYS_GetRegistryValue(iKey, sPath, sProxyServer, TRUE)
[ ] SYS_SetRegistryValue(iKey, sPath, sProxyEnable, sProxyOn)
[-] except
[ ] Reg_CreateValue(iKey, sPath, sProxyEnable, sProxyOn)
[ ]
[ ]

SilkTest Question 22: Explain advantages of DOM extension over VO extension?

Document Object Model (DOM) browser extension has several advantages over
Virtual Object (VO) browser extension in Silk Test.
  • The recorder displays a rectangle which highlights the controls as QA Engineer is recording them.
  • The DOM extension recognizes text size and actual name of objects.
  • No dependency from browser size and text size setting.
  • Better support fir borderless tables.
  • The DOM extension provide more classes and properties than are available in VO extension.

SilkTest Question 21: How to fix bitmap failed to stabilize error?

Software Quality Assurance Manager suddenly asked me to create straightforward test case for bitmap verification. During test case recording I selected option to verify entire window, but the eerie error "*** Error: Bitmap failed to stabilize" appeared during test case execution. The whole QA team is not able to find solution related to this issue in SilkTest documentation and one of us have seen already prepared pink slips for the whole department in manager's office.

Described bitmap issue occurs if the verified windows in not stable i.e. there is something changing on the screen frequently. The automation testing tool captures the stable copy of the bitmap and would raise E_BITMAP_NOT_STABLE exception if didn't get tested window in the specified time.

Your QA engineers can use the different approaches to get stable bitmap.

Set the following options to 0 in code
Agent.SetOption (OPT_BITMAP_MATCH_COUNT, 0)
Agent.SetOption (OPT_BITMAP_MATCH_TIMEOUT, 0)
Agent.SetOption (OPT_BITMAP_MATCH_INTERVAL, 0)

or

if your manager don't want you to mess with 4test code park your mouse pointer outside the verified window during test plan execution.

or

go to Options -> Agent -> Bitmap and change appropriate values in tab.

SilkTest Question 20: How to use regular expression in Silk Test?

The QA engineer would like to know how to use regular expressions in the test case to verify that certain string has the valid format?

Unfortunately, SilkTest does not support POSIX or Perl style regular expressions even in the recent 8.0 version. The smart Quality Assurance Engineer can use question mark (?) to match any single character or asterisk (*) to match any string of zero or more characters. The following function SubStr, MatchStr and GetFiled might be useful, but all of them have some limitations.

SilkTest Question 19: How to execute the string as the function?

During SilkTest training session I was unsuccessfully tried to create script which can read string from a text file and execute string as the function. Is it possible?

The following 4test code use the @ operator for function reference. Make sure that that the calling function is defined or you will get an exception. For more details on the @ operator take a look into the appendix of the language reference provided by Borland.

[-] testcase foobar() appstate none
// prints directory on the host machine where startup include files located
[ ] string sFunc = "GetStartupDir"
[ ] string sDirectory = @(sFunc)()
[ ] print(sDirectory)

Update on job market for automation testing tools.

Today the regular monthly results for job openings for quality assurance engineers from popular job search engines shows that Winrunner leads again in the race.

Search result from dice.com on May,19 2006:
  • silktest - 164 jobs
  • winrunner - 519 jobs
The spike for Silk Test positions has an easy explanation. This time I run the search as boolean expression "(silk AND test) OR silktest", and dice.com added around 70 positions for QA Engineers based on this modified query.

Search result from Craigslist for San Francisco Bay Area on May,19 2006:
  • silktest - 23 jobs
  • winrunner - 27 jobs
It is not too many for Bay Area comparing with total 463 open positions for QA Engineers from the same Craigslist. Probably on the current stage of market the companies would like to hire more manual testers than people with automation testing skills.

SilkTest Question 18: How to read data from Microsoft Excel worksheet?

For QA purposes we are trying to read a block of cells from Excel spreadsheet and use values later for creating data driving automated test. The testing process set up in such way that we don’t want to use exact column names and prefer to just get data from cell numbers specified for example as B4:D11. Basically we want to obtain the cell values for all spreadsheet cells from B4 to D11 and print them out.

Try to create your test script based on the following code

[] hDBC = DB_Connect ("DRIVER=Microsoft Excel Driver (*.xls); FIRSTROWHASNAMES=1;READONLY=FALSE;
DRIVERID=790;DBQ=C:\QA.xls")
[] //run a SQL statement
[] hSQLq = DB_ExecuteSQL (hDBC, "SELECT * from [Sheet1$B4:D11]")
[] //while there are still rows to retrieve
[-] while DB_FetchNext (hSQLq, description, var1, var2)
[] print("{++i}:{ description } { var1} { var2} !")
[]
[] DB_Disconnect(hDBC)

For training purposes you have to take a look at SilkTest user manual for the following functions:
  • DB_Connect
  • DB_ExecuteSQL
  • DB_FetchNext
  • DB_FinishSql
and Datatypes:
  • HDATABASE
  • HSQL
Also take a look for the following answer about DBTester database functions.

SilkTest 8.0 released by Borland

I noticed just a few days ago in my blog posting SilkTest 8.0 is coming that probably we will see a new version of Silk Test very soon as an answer to Mercury Interactives's Quick Test Pro 9.0 and today Borland announced in press release about releasing improved version of application for automated testing. Actually I not expected that they will make it live so fast and I guess Segue already had some prototype in progress.

I briefly looked over technical specifications and I definately like the following features of SilkTest 8.0: it can be used for testing web based applications running in the Firefox 1.5 and Microsoft Internet Explorer 7.

Silktest Question 17: How to close all windows on desktop?

I would like to close all application windows on desktop not only Internet Explorer, but MS SQL Query Analyzer, Visual SourceSafe, SecureCRT and so on before stating to execute my test cases as was requested by my outsourced team in India.

Use the following code in 4Test language:

SilkTest

SilkTest 8.0 is coming

On recently updated supported environment page for SilkTest 7.6.1 the meticulous QA Engineer may notice petite mentioning of expected release of SilkTest 8.0. Borland (BORL) will phase out support in SilkTest 8.0 for some older technologies like Windows 2000, Internet Explorer 5.x, Netscape 6.x and so on, but there are no any information about support for new environment and when the new version will be released.

As some of QA Engineers know Borland's competitor in automated testing tools Mercury Interactive (MERQ) added support of Web services, .NET 2.0, Firefox 1.5, Netscape 8, Macromedia Flex 2, Win XP 64 bit, Internet Explorer 7 to the new version of QTP 9.0 introduced on April 3th, 2006.

Will Borland strike back?

Silktest Question 16: How to delete cookies files using the 4test language?

I created a 4test script to test our web based application and would like to know how to delete a specific cookie file during script execution?


The following 4test function can be used for deleting specific cookie file:

[-] RemoveCookies (String sPath, String sFile)
[ ] //*******************
[ ] //* The function for removing a stored web cookie file.
[ ] //* sPath The complete path to the directory where the cookie is stored
[ ] //* Example "C:\Documents and Settings\Administrator\Cookies\"
[ ] //* sFile unique part of the cookie file name
[ ] //* for example "*winrunner*"
[ ] //*******************
[ ] LIST OF FILEINFO lfInfo
[ ] LIST OF STRING lsFileName
[ ] INTEGER iCount
[ ] STRING sLFile
[ ] Boolean bFound
[ ]
[ ] lfInfo = SYS_GetDirContents (sPath) //obtain directory content
[-] for iCount = 1 to ListCount(lfInfo) //for every FILEINFO in lsInfo
[ ] ListAppend(lsFileName, lfInfo[iCount].sName) //append the name of the files
[ ]
[-] for each sLFile in lsFileName //for each file name in lsFileName
[ ] bFound = MatchStr (sFile, sLFile) //check if the sFile string is in the File Names
[-] if bFound == TRUE //if the sFile string is in file name
[ ] SYS_RemoveFile (sPath + sLFile) //delete the file from the sPath directory
[ ]

You can easily modify this 4test function to remove all files in the particular directory or within a loop delete a list of files.

Silktest Question 15: The SilkMeter license server is down. What can I do?

The server with SilkMeter license is down and would be not available this week, but I need to finish the testing of very important project by the end of this week. What can I do to complete my chores on time?

You need to call Borland support and ask for temporary or mobile license for SilkTest.

Silktest Question 14: How to test dynamic text in web based application?

I'm using Silk Test for testing a web based application. When I fill the form out and submit, the page shows a text message along with the username in the next page, for example "Successfully created test account for user John Winrunner". The message changes when different username is given, for example "Successfully created test account for user Andrew SilkTest". How to verify this dynamic text?


There must be a particular set of messages that you might be getting. Here are some few advices that you might want to use depending on your testing requirements.

1) Use the index of the message and not the caption to declare it, since the caption keeps on changing non-uniquely.

2) Declare each message separately, and check for their existence. At a time only one should exist and you can proceed depending on what is to be done on the occurrence of the corresponding message.

3) Setting Agent Option OPT_VERIFY_UNIQUE to false temporarily through 4Test code. For example :

Agent.SetOption (OPT_VERIFY_UNIQUE, FALSE)
// 4Test code that requires non-unique messages
Agent.SetOption (OPT_VERIFY_UNIQUE, TRUE)

Borland Software to cut work force by 300 employees.

I hope this lay off didn't affect the former Segue company employees and Borland will continue to work on Silk Test improvement and soon we would be able to evaluate and buy a new enhanced version of Silk Test.

Struggling Borland Software Corp. on Wednesday announced plans to lay off 300 employees, or about 20 percent of its work force, in a cost-cutting move aimed at reversing the company's recent losses.

Now Borland is trying to bounce back again after losing $29.8 million in 2005. The company widened the loss Tuesday from a previously reported $28.5 million after concluding that inadequate oversight over its accounting practices had caused some invoices to be improperly recorded in its financial statements.

Borland also restated its third quarter-results, widening its third-quarter loss to $5.3 million -- $446,000 higher than the company previously reported.

The headaches have discouraged investors. The company's stock price has plummeted by nearly 60 percent since the end of 2004. Borland's shares ( BORL )fell 6 cents to $4.94 during Wednesday's trading on the Nasdaq Stock Market.

Silktest Question 13: What is SilkTest Host?

SilkTest Host is a SilkTest module that manages and executes test scripts. SilkTest Host typically runs on a separate computer different than the computer where AUT (Application Under Test) is running.

Silktest Question 12: What are the database functions offered by DBTester?

DBTester presents 6 functions. You can use them straight in your 4Test scripts:

DB_Connect: Opens a database connection linking the data through the specified OBDC DSN name. DB_Connect returns a connection handle which can be used on other DBTester functions. SQL statements can be submitted to the database.
DB_Disconnect: Closes the database connection represented by the specified connection handle. All resources related to this connect are also released.
DB_ExecuteSql: Sends the specified SQL statement to the specified database connection for execution. DB_ExecuteSql returns a query result handler which can be used by the DB_FetchNext function.
DB_FetchNext: Retrieves the next row from the specified query result handler.
DB_FetchPrevious: Retrieves the previous row from the specified query result handler.
DB_FinishSql: Closes the specified query result handler

Silktest Question 11: What is the Borland Testing Methodology?

Borland testing methodology is a six-phase testing process:

Plan: Define the testing strategy and determine specific test requirements.

Capture: Categorize the GUI objects in your application and construct a framework for running your tests.

Create: Create automated, reusable tests. Use recording and/or programming to build test scripts written in Silktest's 4Test language.

Run: Select required tests scripts and execute them against the AUT (Application Under Test).

Report: Examine test results and create defect reports.

Track: Track defects in the AUT and perform regression testing.

Silktest Question 10: How to append to List Of List Of String?

Try the following code in 4Test language:

[ ] LIST OF STRING lsOptions = {}
[ ] LIST OF LIST OF STRING llsOptions = {{}}
[ ] STRING sLine
[ ]
[ ] hFile = FileOpen("{sDataDir}Installation\{sDataFile}",FM_READ)
[-] while FileReadLine(hFile,sLine)
[ ] lsOptions = Split(sLine,",")
[ ] ListAppend(llsOptions, lsOptions)

Borland SilkTest

The letter from Tod Nielsen - President and CEO, Borland Software

I am very excited today to announce that Borland and Segue Software are now officially operating as one company.

This is a great move for both of our organizations as we come together to tackle what we all know to be a key development challenge and the biggest opportunity for our industry — software quality. Borland and Segue have long shared a common belief that the challenge of software quality reaches far beyond testing and QA. Together we will approach this issue holistically, providing value at each stage of the software delivery lifecycle.

Our focus now is on the development of a comprehensive Lifecycle Quality Management solution — bringing together our unparalleled process improvement expertise with proper skills training and a true end-to-end quality technology offering. Our goal is alignment of people, process and technology, proactively driving higher standards of software quality while systematically reducing costs associated with rework and maintenance.

While continuing to enhance Segue’s quality and application performance technologies, we will also focus on delivering even tighter linkage with Borland’s broad portfolio of Application Lifecycle Management technologies. As part of a complete solution, these technologies will address quality across the entire lifecycle, eliminating quality issues at the root cause.

I hope that you share in the excitement of Borland and Segue coming together and more information can be found in our press release. We look forward to speaking with you more as we move our combined company forward, bringing to market solutions that shape the next generation of software development.

Silktest Question 9 : How to capture the contents of Microsoft Word document invoked in Internet Explorer browser.

The following code in 4test language will help to solve your problem with SilkTest and Microsoft Word.

[ ] STRING sSFileName="FileName"
[ ] STRING sTFileName="FileNameTarget"
[ ]
[-] window DialogBox DS
[ ] tag "{sSFileName} - Microsoft Word"
[ ]
[-] window DialogBox D1
[ ] tag "Document1 - Microsoft Word"
[ ]
[-] window DialogBox SaveAs
[ ] tag "Save As"
[ ] parent DS
[ ]
[-] window DialogBox Open
[ ] tag "Open"
[ ] parent D1
[ ]
[-] testcase Copy_Content_Of_Word_To_Notepad()
[ ] SYS_Execute("Start Winword.exe")
[ ] D1.SetActive()
[ ]
[ ] D1.TypeKeys("")
[ ] Open.TypeKeys("D:\{sSFileName}.doc")
[ ] Open.TypeKeys("-Word Document")
[ ] Open.TypeKeys("")
[ ] DS.SetActive()
[ ]
[ ] DS.TypeKeys("-a")
[ ] SaveAs.TypeKeys("-Text Only")
[ ] SaveAs.TypeKeys("D:\")
[ ] SaveAs.TypeKeys("")
[ ]
[ ] DS.DialogBox("Microsoft Word|$MessageBox").TypeKeys("")
[ ] DS.DialogBox("File Conversion - {sSFileName}").TypeKeys("")
[ ] DS.DialogBox("File Conversion - {sSFileName}").TypeKeys("")
[ ] DS.TypeKeys("-x")
[ ]

The 4test code will make an .txt file and you can read the content of this file and verify your data.

Silktest Question 8 : If I get an exception during executing DB_Connect, how do I know exactly what kind of exception it is?

The easiest way to handle exception is to wrap the DB_Connect call in a do..except, for example :

[-] do
[ ] Print ("MSSQL : dsn={sDsn};UID={SQL_User};PWD={SQL_Pwd}")
[ ] hdbc = DB_Connect ("dsn={sDsn};UID={SQL_User};PWD={ SQL _Pwd}")
[-] except
[-] ResOpenList ("Unable to connect to the DSN '{sDsn}' for the reasons below")
[ ] ExceptLog ()
[ ] ResCloseList()

Keep it generic. There could be huge number of reasons why the connection might fail, so checking for particular failure modes isn't appropriate here.

ExceptLog() will return the ODBC error number and text, QA engineer or Test Developer could parse the error message and programmatically respond depending on the error. Be aware though that the errors will be RDBMS specific.

Silktest Question 7 : Matching '?' character in a string

How to use MatchStr function to actually look for the '?' character vs. it's default wildcard meaning?

Use the following code:

[-] main ()
[ ] STRING s = "this is a test?"
[ ] Print (MatchStr ("*{Chr(63)}", s))

Silktest Question 6 : Silktest or Winrunner?

You don't know any of them and try to select one to study. Look at the following search result:

Search result from dice.com on April,13 2005:
  • silktest - 68 jobs
  • winrunner - 514 jobs
Search result from s.f. bayarea craigslist on April,13 2005:
  • silktest - 17 jobs
  • winrunner - 28 jobs
I will update this table monthly.

Silktest Question 5 : Why did Borland buy Segue?

Nielsen, Borland's president and chief executive officer said

Segue’s quality optimization products and services will add significantly to our growing portfolio of application lifecycle management solutions. This is a natural extension of our focus to expand beyond development and into software delivery, helping companies increase business value through successful software initiatives.

The decision to expand our emphasis on applicaion lifecycle management, and at the same time enable our IDE business to get the attention it deserves, enables us to do what’s right for our business, what’s right for our customers, and what’s right for the future of software development.


The Segue had suite of industry-leading products include automated tools for:
  • Test Management to provide a process-driven approach for planning, documenting and managing the entire testing process
  • Functional & Regression Testing to verify your application's ability to accurately address all requirements from build to build
  • Load, Stress & Performance Testing to maximize your application's performance, scalability and reliability by simulating real-world conditions before it goes live
  • Application Performance Management to to evaluate end-user experience and service-level fulfillment of your live application 24x7x365

Silktest Question 4 : Where can I buy any good basic or advance books on SilkTest?

The SilkTest tutorial and user guide will be shipped to your QA department as soon as your software company pays for SilkTest license to Segue (actually to Borland now). There are no SilkTest user guide or any other book on open market. I wish there was a book out something like "Teach Yourself Silk Test in 24 Hours", but no one has written one yet.

Related posts

  1. Top recommended HP QTP books
  2. Best Quality Assurance and Software Testing books review

Silktest Question 3 : Is SilkTest Extension Kit part of SilkTest?

Some features and tools are available only when they are purchased
separately and are licensed to you:

  • Extension Kit: if you purchased the Extension Kit, you must supply the password in order to install it during the SilkTest installation. Contact SilkTest Customer Service if you do not know your password


  • SilkTest Agent only: if you have purchased a license for the SilkTest Agent but not SilkTest, then only the Agent, sample applications, and the SilkTest Bitmap Tool are accessible after you install SilkTest.


UPDATES: Extension Kit is included at no extra cost starting with SilkTest 2006. If your maintenance contract is up to date, ask Borland about upgrade to SilkTest 2006R2. For older versions of tool, the extension kit was an add-on, which needed to be purchased separately. As soon as the Extension Kit is installed QA Engineer can get more information from Start -> Programs > Borland > SilkTest 2006 > Documentation -> Extension Kit Documentation and also from the SilkTest online Help file (Help > Help Topics)

Silktest Question 2 : SilkTest recognises Internet Explorer as a Client/Server Application

After enabling the extension by tools/extensions for browser, SilkTest shows browser as a client-server application and the following message appears

SilkTest detected a Client/Server application.
The required Extension has been enabled.

There is only one solution for this problem with SilkTest testing tool. You have to recreate your windows user profile on the machine: Login as administrator, go to the User Profiles tool from the Advanced tab of the System Properties dialog box. Once you do, select your user profile from the list and click the Delete button. Log on again as you and this will create a new user profile.

P.S. If you want to save information from the profile, save that information individually i.e. if the you want to save your favorites copy the favorites to an other location and after deleting the profile copy the favorites back.

Silktest Question 1 : SilkTest does not set DefaultBaseState for Internet Explorer

The error message from the results file shows:
[ ] *** DefaultBaseState is invoking Browser
[ ] *** Error: Unable to start Internet Explorer 6 DOM
[ ] Occurred in AppError
[ ] Called from Explorer.Invoke at extend\explorer.inc(470)
[ ] Called from Browser.Invoke at browser.inc(361)
[ ] Called from DefaultBaseState at defaults.inc(126)
[ ] Called from main at $ScriptMain(2)


First check to ensure that all of the extensions have been enabled properly within SilkTest. If this is fine, then ensure that there are not two versions of SilkTest installed on the machine.

If there are not two versions of SilkTest on the machine then there is the possibility that the machine was not restarted when uninstalling the older version of SilkTest prior to installing the new version.

In this case perform the following:

Uninstall SilkTest,
Restart the machine,
Reinstall SilkTest,
Restart the machine.

SilkTest interview questions for QA Testers