Does TestComplete support writing tests in Java? - testcomplete

I am trying to learn TestComplete automation tool, and I am familiar with the Java programming language. Does TestComplete supports writing tests in Java?

TestComplete 12 (the current version at the time of writing) does not support writing tests in Java, although it supports testing of Java applications.
Available languages for writing tests are:
JavaScript (ECMAScript 6)
Python 3.4
JScript (Microsoft's implementation of ECMAScript 3)
VBScript
DelphiScript
C++Script and C#Script (not to be confused with C++ and C#)

Related

Advantages of using jython vs. jacl in wsadmin scripting (WebSphere Application Server 7+)

Facing the programming for the wsadmin scripting client I see that you can use both jacl and jython.
I've the same level of confidence with both two languages.
I'm wondering if, in the specific of wsadmin programming , there are advantages of using one language over the other; such as robustness, availability of examples or libraries for websphere administration, or something like that arisen from your experience in the use and building of this kind of scripts.
Jython is the language to prefer:
Rational Application Developer has tooling support for Jyton (Jython editor, debugger, command completition, and ability to test your scripts against your test server inside IDE).
WebSphere administrative console provides console command assistance; it gives you scripting equivalents of the operations you perform using administrative console in case you want to automate them. This assistance uses Jython as language.
Even if Jacl had been the default language for wsadmin, IBM promotes Jython for future, and even provided a tool to convert Jacl scripts to Jython. Quoting from description of this tool at given link;
When selecting a scripting language, Jython is the strategic direction
as the administration scripting language for WebSphere Application
Server because future enhancements of the scripting language is
focused on the use of Jython.
I'm not trying to question any of previous responses, just add some facts.
Although Jython is the "strategic" directions, Jacl has been there since WAS v4. In WAS v8.5 it is still the default (and deprecated!).
The administrative API was written with Jacl in mind. With Jython one you have to do tricks like this one to get server list as list:
for srv in AdminConfig.list('Server').splitlines():
print srv
whereas in Jacl one can simply do this:
foreach srv [$AdminConfig list Server] {
puts $srv
}
Obviously, many AdminConfig and AdminControl methods return lists as newline-separated string.
IBM has really cornered itself with Jython and Jacl. They're still using Jython 2.1 (released in 2002, even in the latest and greatest WAS v8.5). Jacl isn't actively supported by the community. The API is Jacl-friendly, wasn't rewritten for Jython. Lots of client solutions are based on the tricks you have to do in Jython, there's plenty of Jacl-based solutions. Even IBM internally has a plenty of dependencies on that legacy. This might be the reason why Jacl is deprecated since WAS v5.1 and still default.
In short:
If you're going to write a small script for a specific task, Jacl may be more convenient for you (since you've mentioned that you're comfortable with both Python and Tcl)
Should you however be interested in developing larger framework for managing your WAS infrastructure, then Jython with its object-orientation may be a better option. But don't expect too much from that version of Jython - it's quite buggy and you won't be able to use too many Python libraries simply because they dropped Python2.1 support loooong time ago.
The conclusion is: it's not that simple answer (which means that you've asked a good question).

Automating UI on Windows 7 platform

I am a beginner in C++ application development. I use Visual Studio and I have an application which process the image like Photoshop does. I wish to automate the UI of my app and test various scenarios automatically by saving processed files. I use Visual studio on my Win 7 machine for development, do not have .NET. What options I have to automate my testing?
Thanks
On Windows 7 (and Vista/XP, if you install an update) you can use the COM-based Microsoft UI Automation API to write UI automation clients in C++.
I've successfully automated the UI of Windows apps this way. It works pretty well, and with a little extra work can even be called from C-based scripting language interpreters that understand COM (e.g. Python and Ruby).
Finding documentation on the UIA COM API can be a little tricky since searches for "MS UI Automation" usually turn up info on the .NET interface rather than the COM interface (the COM interface is much newer and not as well-known).
As Boann mentions you can use third-party libraries too, like AutoIt. That can ease some of the learning curve and extra work. AutoIt exposes its own COM interface (AutoItX) that you can likely use from a C++ app.
If you want to read about writing COM UIA apps in C++ here are some links to get started:
The UI Automation Client Programmer's guide on MSDN:
http://msdn.microsoft.com/en-us/library/ee684021(v=VS.85).aspx
http://msdn.microsoft.com/en-us/library/ee671216(v=VS.85).aspx
The IUIAutomation interface:
http://msdn.microsoft.com/en-us/library/windows/desktop/ee671406(v=vs.85).aspx
A couple of helpful articles with sample code:
http://www.code-magazine.com/articleprint.aspx?quickid=0810052&printmode=true
http://blogs.msdn.com/b/winuiautomation/archive/2011/05/18/building-ui-automation-client-applications-in-c-and-c.aspx
Windows accessibility and automation forum:
http://social.msdn.microsoft.com/Forums/en-US/windowsaccessibilityandautomation/threads
A language called AutoIt Script is designed specifically for Windows UI automation. Sadly it's a Basic-like rather than C-like language, but it does what it says well:
http://www.autoitscript.com/site/autoit/

What to learn for windows programming(that doesn't require any framework installation for end-users)?

Exactly what the titles says, What should I learn to be able to create software that doesn't require any framework installation for end-user(the software user)?
So that rules out .net and Java.
What other options do i have available? Is win32 api the only way to write native applications for windows?
Does Qt require installation any installation at user end?
I am open to adapting to any programming language and framework to be able to create native applications.
Please mention the programming languages and framework I should learn to do so.
Delphi. A superb implementaion of object-oriented Pascal, with apps that can be deployed as single .exe files.
The best way of writing native applications for Windows - and always has been.
The built-in framework (VCL) hides the complexity of the Win32 API, without preventing you from going as deep into the OS as you want to.
C and unmanaged C++ are the most obvious choices for developing a stand-alone Windows executable. Really, any language that compiles down to executable code will work.
However, you can develop an application in Python and convert it to a standalone executable -- no external dependencies -- with py2exe.

Can Ruby be used to develop simple Windows applications?

I've been developing Windows based applications for a long time and most of my present clients still desire a desktop or client/server Windows application. Is it possible to use Ruby for such applications as opposed to its primary purpose of being a Web-programming language?
Ruby is not primarily a web programming language even though Ruby on Rails is certainly suited for web development. Ruby is a general purpose scripting language.
The FXRuby and WxRuby frameworks are the most fully featured GUI frameworks for Ruby. You can write the apps in Ruby and then generate a Windows executable. The frameworks are cross-platform, so you could also run the apps written in these on other platforms, like Linux or Mac OS X.
There are also a few other less popular approaches like QtRuby and Shoes, and you can even use IronRuby (a CLR Ruby implementation) to write a .Net application.
Ruby is a general purpose object oriented scripting language. Ruby on Rails is a web application framework. Ruby predates Rails by about ten years. Don't confuse the two.
Yes, you can. Ruby is a full scripting language. You might want to start with the Ruby language homepage to see the capabilities and libraries that are available.
However, just because you can doesn't mean that you should. Before jumping in and using Ruby for a project, see if Ruby can give you things that other languages can't or if there are any disadvantages to using Ruby.
I know this thread is old, but for future reference to anyone who's looking into options for using Ruby for a GUI app, don't use QtRuby. I had developed a project for school in about a week, fully functional and pretty, only to find out that I could not release it. There was simply no way to package and distribute the application without having your users simulate your exact environment (install all the gem dependencies, build Qt development libraries etc). I tried using:
Crate: supposedly cross-platform, but I found only 1 usage example that's written in 2008 out of ~2 hours of googling, and the example basically covers a very specific subset of applications (some ssl/https authentication gem or w/e...)
Ocra: this looks like a candidate, but it's windows-only and didn't meet my requirements, as I had to target the three primary platforms
tar2rubyscript + rubyscript2exe: I had spent most of my time trying to get this to work because I've come across many who claimed that this is the way to go for distributing GUI apps built in ruby (albeit using other toolkits, Tk/GTK/wxRuby) but it didn't work either; I was endlessly faced with a cryptic error that basically breaks Qt::UiLoader functionality, in other words, you can't load .ui sheets you create with QtDesigner so...
Yes I'm angry and frustrated honestly, because I don't see the point of creating software that you just can't release for anyone to use. Now I'm left with a deadline coming up in a week, and I just hope I make it in time porting the app to C++.
So my answer is, don't use QtRuby. At least for now.
On a mac, you can use the Ruby Cocoa lib to create (what appear to be) native applications. If you want something more cross platform then you might consider a wrapper like shoes or qt.
The Qt toolkit seems the most popular way to do it. The website is http://www.darshancomputing.com/qt4-qtruby-tutorial/
I'm currently writing a little app in a wrapper called Shoes. This seems to make it as simple as pie to create windowed apps in ruby. http://shoes.heroku.com/ is the website.
At the moment Shoes looks suitable only for small personal apps. I say this because it's author recently went AWOL and it's not clear whether it will be developed further. I'm using it to write a game log parser to generate statistics from a flight sim. It's ticking along nicely.
Ruby can be used for developing GUI applications, whether Windows specific or cross-platform.
For Windows targetted you should look at the work going on with IronRuby since they have good integration with the .NET framework overall and with Silverlight, in the event you want to do apps that can bridge web and desktop. At this point IronRuby can be used to develop for Windows Presentation Foundation (WPF) or WinForms.
For cross-platform you have Ruby bindings for QT, FOX and others.
You should look at IronRuby - WPF and windows forms are both supported:

Suggestions for choosing an automation QA package?

What QA package offers the widest possible support and is the easiest/fastest to develop for? The qualities I am looking for are:
widest support of scripting languages, or which language your preferred package supports
capability to test webpages for interaction against forms and user interfaces
capability to test data input for qualitative/quantitative analysis against definitions you provide
is fastest to write definitions for
Selenium is currently gaining some popularity and supports several languages (1). In addition, the robot framework makes for a nice way to run selenium and non-selenium based tests.
(1) java, groovy, ruby, C#, perl, PHP, python as of this writing

Resources