Friday, January 21, 2011

Silktest2010R2

Silktest 2010R2 has been released in this month and Release notes - SilkTest_ReleaseNotes_en.pdf

Enhancements
Microfocus has improved the support for 64 bit Operating Systems and improved the features for Silk4NET and Silk4J Plugins.

  • Java AWT/Swing Application and Applet Record and Replay Support
  • Adobe Flex Version 4.x Support
  • 64-bit Support for .NET and Windows API-based Applications
  • Default Recording Mode for xBrowser Applications is Low-Level Native User Input
  • Dynamically Invoke Methods
  • SilkTest Workbench - Importing and Exporting Assets, ObjectMaps, Embedded Scripting Language & Integration with Additional Micro Focus Products
  • SilkTest Classic - Dynamic Object Recognition Supports Recording Locator Keywords

End-Of-Life (EOL) Components
I am wondering after seeing MSUIA technology in EOL list. Without that I'm sure that no body can support silverlight automation. Are they serious about this?
  • Adobe Air 1.x
  • Classic OCR
  • Firefox 3.0
  • IBM JRE 1.5
  • Java version 1.5
  • MSUIA technology domain (the WPF technology domain is still supported)

This time, Microfocus has developed few more documents and I like the effort for Migrating from the SilkTest Classic Agent to the Open Agent. More details from below links:
Silktest 2010R2 Release materials
Silktest 2010R2 Classic Documentation

Monday, December 27, 2010

Silverlight Automation

Few of our web applications were migrated to Silverlight technology. I was looking tools for Silverlight Automation. Still many of the leading automation tools have partial support. Few tools like Silktest do not have any support for Silverlight components. Even Microsoft's codedUI test didn't have support upto October 2010. So far, I have seen WebUI Test (Telerik's product) and QALiber (open source) have better support for Silverlight components.

Interestingly all of these UI tools are using MS UIA to identify and interact with Silverlight components. UIA is the successor technology to MSAA (Microsoft Active Accessibility). It is freely available from DotNet Framework. Recent Microsoft Operating Systems (Windows 7, Windows 2008 R2) have better support for UIA.

Microsoft UI Automation provides a single, generalized interface that automation clients can use to examine or operate the user interfaces of a variety of platforms and frameworks. UI Automation enables both accessibility applications such as screen readers and quality-assurance (test) code to examine user-interface elements and simulate user interaction with them from other code.

UIA Supporting Applications

  • Silverlight Applications
  • WPF Applications
  • .NET Windows Forms applications
  • Win32 Applications

Few References:
MS UIA (UI Automation)
Microsoft Documentation - Silverlight Accessibility Overview
UI Automation of a Silverlight Custom Control

WebUI Test tool - Commercial
QALiber tool - Open Source
WHITE tool - Open Source

Wishing you and your family a very happy, healthy and prosperous new year. Have a wonderful year ahead!!!

Sunday, December 26, 2010

Database Testing

Today database becomes as engine to many of the enterprise applications. System would be affected badly if the transactions and queries produced the false conditions. Due to lack of database testing, applications may go to dead lock, data corruption and data loss conditions. These type of issues would take more time to identify and fix. Database testing includes verifying stored procedures, table indexes, exceptions, schemas and compatibility.

Different types of Database Testing

  • Structural testing
  • Functional testing
  • Boundary testing
  • Stress Testing

Few Sample Scenarios
  • Creating an user account from GUI - How would you ensure the details are stored into table correctly?
  • Executing stored procedures in different conditions like valid and invalid conditions.
  • Varying data definitions - The data type and length for a particular attribute may vary in tables though the semantic definitions are same. Example: Account number declared as Number ( 9 ) in one table and the same as varchar2( 11 ) in another table.
  • Varying data codes and values - The data representation of the same attribute may vary with and across tables. Example: Yes or No may be represented as "Y", "y", "N", "n", "1", "0".
  • Misuse of integrity constraints - When referential integrity constrains are misused, foreign key values may left "dangling". Example: Employee record deleted but dependent records not deleted.
  • Nulls - Null may be ignored when joining tables or doing searches on the column.
  • Inaccessible data - Inaccessible data due to missing or reduntant unique identifier value. Example: Uniqueness not enforced.
  • Incorrect data values - Data that is misspelled or inaccurately recorded. Example: Indra Nagar - Indra ngr.
  • Inappropriate use of views - Data is updated incorrectly through views. Example: Data is properly fetched from the database but first record or last record is not displayed

Sunday, September 12, 2010

SQL Basics

I thought to write few posts about SQL and Database testing. This post is the result of that interest.

SQL - Structured Query Language. SQL is used to interact with databases. SQL is a non-procedural language and has few standards. SQL is standardized by the American National Standards Institute (ANSI).

Rules for writing SQL statements

  • It is not case sensitive.
  • It cannot be abbreviated or split across lines.
  • It can be on one or more lines.
  • Indents are used to enhance readability.
  • Clauses are usually placed on separate lines.

SQL's Components / Sub Languages
SQL consists of few components and given below:
  • DDL - Data Definition Language - Create, Alter, Drop, Truncate - For creating, altering and dropping the database objects like tables, viewes, indexes, synonyms,sequences and contraints.
  • DML - Data Manipulation Language - Insert, Update, Delete - For reading and updating data.
  • DRL - Data Retrieval Language - SELECT - For querying the data. SELECT has many clauses.
  • TCL - Transaction Control Language - Commit, Rollback, SavePoint - These allow to group one or more DML statements into units of work or transactions. All statements in a transaction either succeed or fail as a single group.
  • DCL - Data Control Language - Grant, Revoke - For managing database security, by creating user ids and assigning or removing privileges from them.

Tuesday, August 17, 2010

Silktest 2010

Microfocus released silktest 2010 last month. It has few additional features and enhancements. First time, release notes are published in PDF format. SilkTest_ReleaseNotes - pdf

Silktest 2010 Features

  1. Visual Tests- SilkTest Workbench lets you quickly record and playback visual tests. Visual tests comprise the basic building
    blocks of an automated testing solution. SilkTest Workbench uses visual tests to mimic the actions that are
    performed while testing an application.
  2. Embedded Scripting Language - SilkTest Workbench's scripting language is Microsoft's Visual Basic, a robust programming language that gives
    you total control over any application running in the Microsoft .NET framework. .NET scripts contain the functionality of a high-level programming language as well as features designed specifically for software control and testing.
  3. Integration with Additional Micro Focus Products- The SilkTest product suite includes two plugins, Silk4NET and Silk4J, which both work with SilkTest Recorder. Additionally, SilkTest Workbench works with SilkCentral Test Manager (SCTM).

I was expecting Silverlight Support in this release. I know that Mirofocus were working for Silverlight support. Microfocus may release the Silverlight support in next version.

Silk4J - Java as scripting language, introduced in Silktest 2008.
Silk4NET - C# or VB.NET as scripting language, introduced in Silktest 2010

End-Of-Life (EOL) Components
Also it has announced End of support for few OS and other features. The following operating systems, features, and integrations are not supported in SilkTest 2010.
  1. SilkTest Classic 4Test outline Editor mode Note: SilkTest Classic will continue to be supported. This change will not affect most SilkTest Classic users.
  2. Windows XP SP2
  3. Windows 2003 Server
  4. Java 1.4
  5. StarTeam integration
  6. PVCS integration

Friday, July 30, 2010

Visual Studio 2010 - Testing Features

I attended a presentation Visual Studio 2010 - Testing Features. Microsoft Visual Studio 2010 has different set of licenses. Apart from development features, VS2010 can be used for project management, testcase managment, UI automation, unit testing, defect tracking and Load testing.

Microsoft targets testing tools market. As of now, it is supporting microsoft technologies. I am sure that Microsoft would have reasonable share in testing tools market within next three years. Definitely it would be tough competitor for QuickTest Professional in near future. Tool has to be enhanced for object storage and simple scripting.

Few links for your reference:
VS 2010 Testing Capabilities (Videos)
Getting started with VS 2010 Defining Your Testing Effort Using Test Plans
Creating Manual Test Cases Recording and Playing Back Manual Tests
Testing the User Interface with Automated UI Tests (CodedUI Test)
Supported Configurations and Platforms for Coded UI Tests and Action Recordings
How to: Create a Coded UI Test (Documentation):
How to: Create a Coded UI Test Tutorial
Administering Team Foundation
Administration Guide for Microsoft Visual Studio Team System 2010 Team Foundation Server
Update on Silverlight support
Partial Silverlight support

Monday, May 31, 2010

Keystroke automation through VBScript

I was looking for a solution, which should do collapse all for silktest code. It is needed before do code comparison. I tried simple VBScript and it is working fine. It is fully based on keystrokes. Below I've shared the code.

VBScript - Sending Keystrokes

' To Collapse All opened Silktest files ' Usage: wscript silktest_collapse.vbs 100 Dim WshShell, iItem, iCount If WScript.Arguments.Count > 0 Then iCount = CInt(WScript.Arguments.Item(0)) Else iCount = 10 End If Wscript.Echo "Count " & CStr(iCount) Set WshShell = Wscript.CreateObject("Wscript.Shell") 'WshShell.AppActivate "Silktest - *" WshShell.SendKeys "%{TAB}" Wscript.Sleep 5000 For iItem=1 to iCount 'To Collapse -> Alt+L+L WshShell.SendKeys "%" WshShell.SendKeys "l" Wscript.Sleep 200 WshShell.SendKeys "l" Wscript.Sleep 1000 'To Save -> Ctrl+S WshShell.SendKeys "^s" Wscript.Sleep 900 'To Close -> Alt+F+C WshShell.SendKeys "%" WshShell.SendKeys "f" Wscript.Sleep 200 WshShell.SendKeys "c" Wscript.Sleep 700 Next Wscript.Echo "Completed."

Tuesday, April 27, 2010

Rules for Object Recognition

Object Recognition is very important thing in any GUI testing tool. Silktest also having set of formats and limitations to identify the objects.

MicroFocus/Borland used to publish "Rules for Object Recognition" document for each silktest release. It is available at techpubs-Rules for Object Recognition

Rules for Object Recognition
Caption - Restricted to 127 characters
WindowID - Restricted to 63 characters
Closest Static Text or Attached Text
4Test Produces – Window Declaration Identifier, Single Tag or Multitag
Agent Produces – Index, Prior Text, Location
Extension Produces – WindowID, Caption

We can manage the automation suite properly for minor application changes by making proper tags. I have given few tips to control the UI changes in the application.
Window declarations Level
1. Object caption change. Use multiple tags
2. Object level change. Assume that UserName text field is under a HtmlTable. Now you set a window variable to have same object level.
3. Same set of objects are in multiple pages. Create a class.
4. Use Variables for page title changes.

Functions Level
1. Navigations. For example, clicking a link, clicking a button.
2. Micro functions. Split to small functions as you have to change in only one place.
3. Use some wrapper functions for all classes. For example, an object is a htmlcheckbox and now it is changed to radio button.

Monday, February 22, 2010

Selenium RC configuration for Java

Few months back, I was trying to run selenium script with Selenium RC Java. Initially I faced few issues to configure the classpath settings. We need to pass the proxy details, if the net connection is based on proxy. I created three batch scripts to run the server and client. You should have latest java version. For more info about Selenium RC, check out Selenium RC documentation .

Selenium Server to start with proxy
Here user can set the username and password for proxy connection. Checkout java options to do that.

REM ******************************************** REM To Run Selenium server REM Author: Palani Selvam REM ******************************************** REM Selenium server path set SeleniumServer=D:\Selenium_trial\tool\selenium-remote-control-0.9.2\selenium-server-0.9.2 REM to run the Selenium server with proxy d: cd %SeleniumServer% java -Dhttp.proxyHost=proxy.mycompany.com -Dhttp.proxyPort=8080 -jar selenium-server.jar

Selenium Server to start without proxy
It will be useful for non-proxy connection.
REM ******************************************** REM To Run Selenium server REM Author: Palani Selvam REM ******************************************** REM Selenium server path set SeleniumServer=D:\Selenium_trial\tool\selenium-remote-control-0.9.2\selenium-server-0.9.2 REM to run the Selenium server without proxy d: cd %SeleniumServer% java -jar selenium-server.jar

To run the Selenium client
Below I have given the batch script to run the GetAllStockQuotes.java. Source code is available at Indian Stock Quotes through Selenium

REM ******************************************** REM To Run Selenium client (Java). Also sets path and classpath REM Author: Palani Selvam REM ******************************************** REM to set class path and path env variables to run selenium set javaClientPath=D:\Selenium_trial\tool\selenium-remote-control-1.0.1\selenium-java-client-driver-1.0.1 Set javaClientJars=%javaClientPath%\selenium-java-client-driver.jar REM JUnit jar Set jUnitJars=D:\java\JUnit\junit46.jar REM Selenium Script (Java) dir path set Stockspath=D:\Selenium_trial REM Setting classpath set classpath=%classpath%;%javaClientJars%;%jUnitJars%;%Stockspath%\classes; d: cd %Stockspath% REM Compiling test scripts Selenium-java code javac -d classes GetAllStockQuotes.java REM Running the test scripts java junit.textui.TestRunner com.palani.tests.GetAllStockQuotes

For more details of Selenium tools configuration, you can refer 5 Minute Guide To Selenium IDE and Selenium Remote Control (Java) Test Tools

Monday, February 1, 2010

New release Silktest 2009 R2

Last week, I attended Microfocus webinar which is about the new features implemented in Silktest, Silkperformer and SilkCentral Test Manager. Silktest 2009 R2 was released on December 2009. I have given the silktest features below:

Features
Web 2.0/RIA suppot

  • Ajax
  • Adobe Flex
  • Embedded browser controls (Win32, SWT, WinForms,WPF)
Standalone Recorder
  • Improved usability through extensive script generation support
Agile enablement
  • Eclipse Plugin
  • Silk4j
Open agent technology
  • Dynamic object recognition
Other Improvements
  • WinForms
  • IE 8.0 on classic agent
  • Workflow integrations
  • Open Agent Support for GUI-Level Testing
Additional Platform support
  • Windows 7
  • Windows 2008 Server

Both tools (Silktest and Silkperformer) look will be same in new versions and tried the same language. Have done many improvements for open agent. Microfocus has done many improvements to SilkCentral Test Manager. SCTM can integrate with many unit testing tools and few other type of tools like VersionOne and Rally etc.