GUI Testing tools forBusiness analaysts - testing

I have been looking around stackoverflow for automated GUI tools for testing our web app gui from a Business analyst point of view, so that means strictly requirements-record-playback kind of testing since we are not really programmers.
We have used selenium in the past but unfortunately it is no longer compatible with Firefox 4.
Is there a similar tool to selenium that allows recording and playback of GUI tests that does not require a lot or any scripting on a windows platform? thanks

You can use the FireFox add on compatibility reporter to get Selenium working on FF4
https://addons.mozilla.org/en-US/firefox/addon/add-on-compatibility-reporter/
Or alternatively drop down to FireFox 3.x and use that just for your testing!

For the server component Selenium-RC (necessary to execute tests), You must run Selenium-RC 2.0b3 (or higher if it become) to be compatible with Firefox 4. I have used it succesfully with FF4.
Selenium IDE, the recording tool, for firefox is indeed not available as a plugin for FF4 (but I speculate it will be coming soon).

I think that you can benefit from AutoIt (http://www.autoitscript.com/site/autoit/) I`d been using it to test Windows based GUI, but to the best of knowledge there are lot of scripts to test/play on-line games, thus it is applicable to Web Sites.
It does not require deep technical knowledge, but of course it will be much better and frequently mandatory to optimize the generated code. I`ve started my experience with this tool, and I was doing my work flawlessly.
At one company, I was developing automated tests for web app by means of TestPartner (Compuware company) it was one of the best tools Ive ever worked with, it generates VB code quite 'intelligently' and supports user with administration features. But Im not sure whether it is possible to use it without paying.
Good luck !

Related

How to test/debug cross-platforms desktop apps(Windows, MacOS) with limited resources

I am trying to build a desktop app.
I am thinking of using electron on the recommendation of a web-developer friend of mine, but as I am the only sole developer, I don't have the means to test the software on different platforms(OS, hardware etc.).So I am anticipating that this will cause a problem later, in the end, to test/debug software on different platforms and different OS.
I have ruled out web-apps because of some privacy concerns of the users for the remote data hosting.
Software is pretty lightweight and is almost equivalent to the image viewer apps with some slight modifications.
How to solve the problem of variations of different platforms?
Any literature suggestions pointing me in the general direction are also welcome.
Sometimes it helps to think of Electron as two processes.
The renderer vs the main processes. Generally the renderer process which runs the HTML/CSS/JS is it's own isolated component, and you communicate to the main process using IPC.
So generally for the UI, you can use mostly any web based testing framework to test reliability. At Amna, for example, we use Cypress as our E2E testing platform. You an also use something like QAWolf. Both should work with localhost. In general, most website testing tools should work fine, and consistently across platforms.
Where this gets tricky is when a UI functionality makes a call to the OS or the main process. For example, saving to the disk, or launching a program.
The general flow is this, and I've yet to find radically simpler options:
Set-Up a VM or buy a machine with the corresponding OS. I used Spot VMs in Azure for this.
Manually test the scenarios you care about in each VM before you ship
If you have a lot of cases that rely on the OS, then you should be able to further optimize this by using an automated test runner like Spectron.
From experience, what I've realized is that most of the iterations I do happen more on the UI than the underlying functions with the cross-platform capabilities. And if your code has good separation (e.g. contextIsolation:true, nodeIntegration:false), it should be pretty obvious when you need to do an entire "cross-platform" test vs just UI tests.
I'm not familiar with a lot of large-scale electron testing frameworks, I do know that ToDesktop handles package building and generating binaries to perform a smoke test and verify things open across different operating systems.
It depends.
The answer depends on what you are building, so it makes sense to figure out what you actually want to build. Some questions you might ask yourself:
Do I need a database?
Do I need authentication?
Do I need portability?
Do I need speed to market?
Do I want to pick a language I'm familiar in?
These are all good questions and there are dozens more we all ask ourselves. However, back to your original question.
Electron is a fine choice
Yes, there are alternatives. But Electron is used for Visual Studio Code, Facebook Messenger, Microsoft Teams and Figma. Choosing Electron means there are other developers making apps and there are proven apps in the market so you don't have to worry about a dead ecosystem.
Electron is easy to onboard if you know web technologies, think js, html and css. If you know these, you can transfer your web dev knowledge and make a cross-platform app. You don't have to worry about learning each OS since the UI is the webpage which will look mostly* the same between each OS. (*some very minor differences, but essentially the same).
Cross-platform deployment is easy
There are a few ways of bringing your app to multiple platforms, I happen to be most familiar with electron-builder, but the other two solutions work as well.
Many templates to start with
I am biased, since I'm the author of secure-electron-template which is one of the many templates you can choose from when starting an app. However, I recently reviewed all Electron templates and found that only 4 do not have serious security vulnerabilities.
The Electron framework frequently is updated, and over the course of the past few years there has been a shift in the way Electron apps are made. Some earlier frameworks didn't have good secure defaults which some of the older Electron templates inherited and thus, aren't as secure as new frameworks that follow security guidelines.
If you decide on Electron, give my template a try. It's got a number of features I'm building out in order to help the community with features they might want (ie. internationalization (i18n), saving local data, custom context menus, page routing, e2e unit testing, and how one can use license key validation, to name a few things).

Selenium and Database testing

I am totally new to the web application and automation testing.
I am learning selenium from youtube videos and developing frameworks.
while looking into the videos most of them cover only testing the Application as such.
I found very few videos which state about interacting with the database and verifying them.
I just wanted to know how will this be in real time projects?
In real time projects will they automating scenarios like configuring something in the UI, then validating it in the database, coming back to the UI and continuing the UI flow or will it be simply only verifying the UI.
I want to know more about how to do database testing.
Any info here will be of great help
Selenium is one of the best choice available in today's market when it boils down to Automation of Web Application. Selenium have support for Mozilla'a geckodriver, Google's chromedriver, Microsoft's IEDriverServer & even Safari etc. Hence Selenium is widely accepted as the best Web Automation tool as of today.
Having said that, though you too can perform Database Testing through Selenium but it's not the ideal candidate. Database Testing can include transaction rates & round-trip calculations for which there are other tools which does those work better and you may like to explore those as well. Alternatively, you can also integrate those tools in your Project Framework and work with Selenium in tandem.

Targeting different platforms (Browser, OS) using WebDriver?

I am a newbie to Automated Testing using WebDriver, so I have a few questions just to clear some things in my head. On a few pages, I saw the samples of executing WebDriver tests on different platforms by just targeting these for the capabilities of the browser or OS.
capability= DesiredCapabilities.firefox();
capability.setBrowserName("firefox");
capability.setPlatform(org.openqa.selenium.Platform.ANY);
or
capability= DesiredCapabilities.internetExplorer();
capability.setBrowserName("iexplore");
capability.setPlatform(org.openqa.selenium.Platform.WINDOWS);
As mentioned in:
Executing tests Concurrently on different OS and Browsers with WebDriver using Java and TestNG
So, if I understand that correctly, actually it is possible to run tests and verify those on the different OS and Browsers just by using the libraries provided by the Selenium?
If so, how accurate are these tests for typical cross browser/platform html/JavaScript issues?
Thank you
This is a great question. I'm going to try to break this down into smaller packets of information so that it hopefully makes sense for old pros and newbies alike.
Without Selenium Grid:
For starters, it is possible to use individual drivers for all the different browser/OS combinations you wish to run the tests on. The drawback is you have to make some (though usually minimal) code adjustments for each browser's driver. This also means breaking the DRY principle. To learn more about writing these kinds of tests check out this documentation. (Also note that if you wanted to run these tests on each build via CI on something like Jenkins you need to have the actual browsers running on a slave on your own hardware, but these are more the DevOps concerns.)
Using Selenium Grid:
More commonly used for the sort of goals you mentioned (and referenced in the other post you linked to), Selenium Grid is a server that allows multiple instances of tests to run in different web browsers on remote machines. The more intro oriented docs for this are here and more forward looking docs are here.
Running Local or in the Cloud:
With Selenium Grid you are going to go one of two ways.
Run on your own hardware locally (or wherever your company has machines to remote into)
Use an online service like Sauce Labs or Testing Bot
A nice "what this might look like in Java" for having an online service provide the browsers is shown in this Sauce Labs page and for Testing Bot here.
Selenium Can be Written in a Ton of Languages:
Selenium follows the WebDriver API and for C#, Java, Perl, PHP, Python, Ruby, JavaScript (Node) or other languages, you still can write test scripts in any of these (and they provide the “frameworks” for some of these officially, while others are community driven) and still have the run tests run solidly in all modern browsers.
Concerning Mobile Devices
There is some good discussion over here that discusses how "close to the real thing" you want your mobile browser tests to be, since the iPhoneDriver and AndroidDriver are largely based on use through WebView, which is less close to the real thing. They are now finding themselves being replaced by ios-driver, Selendroid, and Appium.
To Sum It Up
So to answer what I think you’re getting at with,
... is possible to run tests and verify those on the different OS and Browsers just
by using the libraries provided by the Selenium
the answer is that you can use Selenium Grid and an online service or you will have to use base Selenium/Selenium Server along with a number of other libraries to test all modern browser and OS combinations, but I'm sure many shops do just that because they have the experience and expertise to pull it off.
Alternate (Non-Selenium) Option to Write Once and Test Across Browsers:
If you have a team with JavaScript experience and you're looking to hit the same goal of testing across browsers without the overhead of Selenium, Automates JavaScript Unit Testing
with Sauce Labs (formerly Browser Swarm) would be a good option.

There is an offline software to test a website in different browsers?

I'm looking for an offline software that can speed up the testing of a website in different browsers.
Yes, I can install Opera, Firefox, Chrome, IE and Safari and test in each one, but this slow down the process because there are a lot of changes to be done in the website I am working and each change must be tested in all browsers.
More specifically, I am looking for something similar to IETester, but for different browsers. I'm not interested in online services (there are a lot), but offline.
So, someone knows something like this?
I find the Selenium tool [ http://seleniumhq.org/ ] very useful for such needs:
there are drivers for almost all modern and not-so-modern browsers: firefox, IE, Opera, Chrome, Safari..
scales quite well through the webdriver thing (remote control execution of tests on many different hosts), and
is well established: there are many resources available around to develop and deploy it.
Main drawback, as for my own experience: the learning curve is somewhat tough.
There is also a nice test management tool especially targeted at Selenium: Bromine (disclaimer: I did not yet use Bromine, but saw great comments on it).
Regards,
--
boris
Adobe BrowserLab for Desktop Browsers (Free) As noted in the comments, this has been discontinued. But they recommend Sauce labs, and Browser Stack instead.
Adobe Edge Inspect aka Shadow is also available and does all the above quite well. It is primarily for Mobile Browser testing and debugging.
Microsoft's Expression Suite also has its own Cross-Browser Testing utility, called Expression Web Super-Preview.
In Microsoft's words,
You can view browser renderings side-by-side horizontally or
vertically, or overlay them to identify differences. You can use
rulers and guides to measure and highlight visual problems. You can
zoom in and out of a page and see all the browser renderings update in
tandem.
You can try BrowseEmAll (http://www.browseemall.com) which is a desktop application for windows (and sadly windows online).
Still it contains all major browsers and simulators for iOS and Android which should make the testing easier than switching between different browsers manually.
If you like groovy, then try Spock.
I've experimented with Spock and Gem for BDD tests.

Selenium, Siebel and QTP

I am about to start work on a UI automation project for a client who is using Siebel 7.5. I have been looking around and it seems that there is not a lot of info out there on if it is possible to automate GUI tests in siebel using Selenium. The question is, Is it possible to automate Siebel using selenium. I hear there are two modes for Siebel, SI and HI, what is the difference?
On another note, i have heard that there are issues automating early versions of Siebel using HP QTP. What are these issues and what is the best workaround.
I realise this is more than one question, i will vote up whoever answers a component and the answer will go to the person who answers the most components
Thanks in advance
HI stands for "Hi Interactivity" it is used for sites that are accessed over the LAN most objects in an HI Siebel application are ActiveX controls.
SI stands for "Standard Interactivity" it is used for sites that are accessed externally and is usually pure HTML.
Starting in version 7.7 Siebel starter supplying Siebel Test Automation (STA) which provides an API for testing tools, this API is used by QTP for testing Siebel 7.7 and later. STA is relevant only for HI applications, for SI applications Siebel adds some hints to the HTML in order to help testing tools.
I don't know of specific problems with QTP testing classic (pre 7.7) Siebel applications and I don't know about Selenium at all so I hope the general information I provided is useful.
As said above, HI mode can have test hooks enabled but these are pretty basic and need some additional software to work with easily. Also, HI only works in IE which does not have the great Selenium recording tool.
On the other hand, SI mode is just HTML and works in Firefox, therefore should be testable with Selenium. Does require a little set-up and please bear in mind that there will be differences between the test results for SI and what the users will see in the much-more-usable HI mode - but if you can ignore the use of special applets, and avoid client-side coding, it should work.
You could use a combination of Ruby watir-classic and rautomation plus a bit of javascript to interact with almost all of the Siebel HI Components. The two Ruby gems use WIN32OLE API and COM, so in essence you could use any language that supports the Windows API. It's a huge effort, but pays off in the end, cause it's all open source, whereas tools like QTP and TestComplete cost a fortune.