SolutionsProductsServicesPartnersSupporteLibraryAbout Segue
support

SilkTest

Updating Existing Automation to Eliminate Obsolete Specifiers

In version 8.0, SilkTest will discontinue support for certain platforms and application environments:

  • Windows 95, NT4 6A, Windows 2000 SP 1,2,3
  • IE 4 (SP2), IE 5.01, IE 5.5, IE 6 SP 0 a.k.a. Gold
  • Netscape 4.x, 6.x
  • PowerBuilder 6.5, 7, 8
  • J2SE 1.1, 1.2.2, 1.3.0, 1.4.0, 1.4.1
  • AOL 7, 8 and 8 Plus
  • SilkTest’s VO extensions (see Note Regarding Discontinuation of Support for VO Extensions below)
  • JInitiator

In general, SilkTest attempts to preserve backward compatibility. However, the discontinuation of support for VO extensions, leaving only one extension (the DOM extension) per browser version, made it desirable to streamline the list of browser specifiers in 4Test.inc. Additionally, 4Test.inc included several GUI specifiers that represented platforms that have not been supported for quite a few versions of SilkTest, so the list of GUI specifiers has also been trimmed. If your automation uses GUI or browser specifiers that have been eliminated, then you will need to modify it. The information presented below will describe the changes to the specifier lists and will aid you in updating your automation.

The following table describes the modifications that will be made in SilkTest 8.0 to the lists of GUI and browser specifiers in 4Test.inc. The modifications include:

  • The elimination of obsolete specifiers, in other words specifiers that represent platforms or browsers that are no longer supported.
  • The addition of specifiers for newly supported platforms or browsers.
  • The changing of one existing set specifier to a simple browser type specifier.
  • The changing of the string descriptions of two browser specifiers.

 

Changed in 4Test.inc

Reason for Change

GUI Specifiers:

Added the following GUI specifier:

msw2003

Limited support had been added for Microsoft Windows Server 2003 in SilkTest 6.5, but no corresponding GUI specifier had been created.

Modified the following GUI set specifiers:

mswnt, msw9x, msw

x11

The set specifiers were updated to eliminate obsolete GUI specifiers and to add new GUI specifiers.

Deleted the following GUI specifiers that represent simple types:

mac

msw95, mswdos, mswnt35, mswnt40

oimsw, oint, oix

pm

galaxy95, galaxyMSW, galaxyNT35, galaxyNT35, galaxyX

The specifiers represent platforms that will not be supported in SilkTest 8.0, and for the most part have not been supported in the last several versions.

Deleted the following GUI set specifiers:

oi

galaxyNT, galaxy

The set specifiers contain only obsolete GUI type specifiers.

Browser Specifiers:

Added the following browser specifiers:

explorer7

firefox1_5

SilkTest 8.0 will add support for Internet Explorer 7 and Firefox 1.5. (Specifically, there will be new DOM-based extensions for these browsers.)

Added the following browser set specifier:

firefox

The new set specifier was added to reflect the introduction of support for the Firefox browser.

Added or modified the following browser set specifiers:

explorer, explorer_DOM

firefox

netscape, netscape_DOM

The set specifiers were updated to eliminate obsolete browser specifiers and to add new browser specifiers.

 

Note that explorer_DOM and netscape_DOM have been maintained for backward compatibility purposes. However, the preferred specifiers are explorer and netscape.

Changed AOL_IE from a browser set specifier to a simple browser type specifier

SilkTest does not declare much of the chrome for AOL browser versions, so rather than creating separate specifiers for AOL9 and future versions, the single specifier AOL_IE will be used to represents the set of all supported AOL versions. The inclusion of “_IE” in the specifier emphasizes that SilkTest supports the IE embedded browser within AOL.

Modified the string descriptions of the following browser and set specifiers:

explorer6_DOM

netscape7_DOM

explorer_DOM

netscape_DOM

 

The string descriptions no longer contain the word “DOM” at the end, to reflect that there are no longer multiple extensions for each browser (DOM and VO). The new descriptions are, respectively:

"Internet Explorer 6"

"Netscape Navigator 7"

“Internet Explorer”

“Netscape”

Note that “Internet Explorer 6” was previously used as the description for specifier explorer6, whereas “Netscape Navigator 7” is a new description. The descriptions “Internet Explorer” and “Netscape” are the same as the descriptions for the explorer and netscape set specifiers.

Deleted the following browser specifiers:

explorer3, explorer4, explorer5, explorer6, explorer5_DOM

netscape3, netscape4, netscape6_DOM

AOL7_IE

The specifiers represent browser versions that will not be supported in SilkTest 8.0.

Deleted the following browser set specifiers:

explorer4_or_5, explorer4up

premozilla, netscape6s

The set specifiers contain only obsolete browser type specifiers.

Deleted the following browser set specifiers:

explorer5s

netscape7s, netscape4x

Although the set specifiers still contained some valid browser specifiers, they were redundant:

·         Most of these set specifiers were created to group together specifiers for VO and DOM extensions. Now that VO specifiers have been eliminated, there is no need for such a grouping.

·         Note that only one general set specifier should be needed for each browser in order to group together specifiers for multiple versions, as noted above. However, for backward compatibility purposes, the browser sets ‘explorer_DOM’ and ‘netscape_DOM’ have been maintained.

 

Updating your automation to use only the specifiers supported by SilkTest 8.0 will require you to search through your frame files (.inc), test scripts (.t) and testplan files (.pln), and manually delete or replace specifiers and associated code.

  • When searching testplan files, please keep in mind that you do not necessarily need to modify testplan attributes and queries that relate to platforms or browsers, although you may want to. You only need to modify GUI or browser specifiers that are used as symbol values or as testcase parameters.
  • You can either manually search the files for obsolete specifiers, or you can use the compiler to detect obsolete specifiers. The SilkTest compiler will see obsolete specifiers as undefined keywords, so compiling automation that uses those specifiers will lead to a sequence of syntax errors. The “Syntax error” messages will usually mention the undefined specifier, although in some cases it may mention “tag” or another keyword that is prefaced by an undefined specifier. The disadvantages of using the compiler are:
    • Several passes may be required because the compiler will not detect errors in a block of code that sits within a statement that contains an error. For example, if an if or else expression contains an error, then errors will not be detected within the statements for the if or else actions.
    • If you remove a line (or lines) of code, then finding subsequent compiler errors (e.g, by using the F4 shortcut key) may take you to the wrong line of code because of the offset caused by removing earlier code.
    • The compiler will not detect instances of GUI or browser specifier names, or specifiers that have been converted to strings (e.g., via the @ operator).
    In case you would like to use the compiler to help you update your automation before SilkTest 8.0 is released, a set of .inc files is provided. The files are only a preview of the SilkTest 8.0 versions; the released versions will differ, although not with respect to the GUI and browser specifiers.
  • Whether you manually search for obsolete specifiers or use the compiler to detect them, you should not simply find and replace them. Instead, you should analyze the code containing the specifier. If a specifier is part of a list for a single line of code that also contains valid specifiers, then you could simply delete or replace the obsolete specifier(s). For example, in the line:

    [ ] explorer5_DOM, explorer6_DOM tag “The caption for IE”

    You could just delete explorer5_DOM. However, it would be better to either eliminate the browser specifiers or, if you need one because the DOM extension for another browser has a different tag, then replace explorer6_DOM by explorer. If the line of code contains only obsolete specifiers, then you should just delete the entire line.
  • In many cases, GUI or browser specifiers will be used with a single line of code, such as a tag in a window declaration. However, blocks of code in testcases, functions or methods may also use GUI or browser specifiers. Usually such blocks of code will contain conditional expressions that test the result of a function that returns a specifier, such as GetGuiType(), GetBrowserType(), GetDefaultBrowserType() or GetBrowserTypeName(). If a block of code refers only to obsolete specifiers, then you should delete that block of code, and make the necessary adjustments to the conditional (or branching) statement (e.g., if..else, switch).
  • The following table lists general guidelines for eliminating or replacing obsolete GUI and browser specifiers. As explained above, deleting the specifier may require deleting the entire line of code, or deleting or modifying the associated block of code.

 

Obsolete Specifiers

Action to Take Upon the Specifier

Mac

msw95, mswdos, mswnt35, mswnt40

oimsw, oint, oix, oi

pm

galaxy95, galaxyMSW, galaxyNT35, galaxyNT35, galaxyX, galaxyNT, galaxy

Delete (along with associated code)

explorer3, explorer4, explorer5, explorer5_DOM, explorer6

explorer4_or_5, explorer4up

netscape3, netscape4, netscape6_DOM

premozilla, netscape6s

Delete (along with associated code)

AOL7_IE

Replace by AOL_IE

explorer6_DOM

If it is known that different code is needed for other versions of Internet Explorer, then keep it

If it is known that different code is needed for Internet Explorer versus other browsers, then replace by specifier: explorer

Otherwise, eliminate the browser specifier (but keep the associated code)

explorer5s

If it is known that different code is needed for Internet Explorer versus other browsers, then replace by specifier: explorer

Otherwise, eliminate the browser specifier (but keep the associated code)

netscape7_DOM

If it is known that different code will be needed for other versions of Netscape, then keep it

If it is known that different code is needed for Netscape versus other browsers, then replace by specifier: netscape

Otherwise, eliminate the browser specifier (but keep the associated code)

netscape4x

If it is known that different code is needed for Netscape versus other browsers, then replace by specifier: netscape

Otherwise, eliminate the browser specifier (but keep the associated code)

netscape7s

If it refers to something specific to the Netscape 7 browser chrome, then replace by specifier: netscape7_DOM

Otherwise, replace by specifier: netscape

 

Note Regarding Discontinuation of Support for VO Extensions

In SilkTest 8.0, support for VO extensions for browsers has been discontinued for the following reasons:

  • The DOM extension is easier to use and is better for cross-browser compatibility than VO.
  • Support for Internet Explorer 4 and Netscape 4 (and earlier) has been discontinued, and they were the only browser versions for which SilkTest has not had a DOM extension.

VO extensions for different browsers, or even for different versions of a browser, could give significantly different results for tags or for method return values, so that VO automation often required the use of browser specifiers to accommodate differences between extensions. In contrast, the DOM extensions for different browsers are compatible. Test scripts developed (recorded or scripted) for the DOM extension of one browser should play back on another browser with very little modification, and window declarations captured with the DOM extensions for different browsers are almost always identical.

Thus automation that is developed for DOM extensions should rarely require browser specifiers. Instead, for the most part, browser specifiers will be used to denote differences in the chrome (controls) of the browser itself, rather than to denote differences in recognition of web pages. The names of the browser specifiers have been updated to reflect this change in usage.

NOTE: There are some cases in which browser specifiers may be required to distinguish between tags for DOM extensions for different browsers. For example, tags for HtmlText windows derived from body text may differ between browsers. Also, windows that use Agent closest static text for their tags may show tag differences because rendering is slightly different between browsers such as IE and Netscape.

Note for Automation for the IE6 VO Extension (explorer6 browser specifier):

If you are running automation against the IE6 VO extension, then you must update the automation to use the IE6 DOM extension. There are significant changes between the VO and DOM extensions. For information about converting VO extension automation to use the DOM extension, see the on-line help topic Differences between DOM and VO (index entry DOM: differences between DOM and VO) and its related topics, such as Changing existing VO automation to the DOM extension.