Category: Recent Software Developments


PowerMock

In my recent contract with the Repositories program, I had an opportunity to use PowerMock. It takes EasyMock to a new level. It has options to mock static methods.

More information here – http://java.dzone.com/articles/powermock-features-and-use

PowerMock can be downloaded here – http://code.google.com/p/powermock/

Nice SOA Cheat Sheet

This simple cheat sheet contains all the key goals, principals and design patterns that you should be aware of when designing SOA services and contains helpful links to places where you can find more in-depth information on each topic.

SOA Cheat Sheet

Cloud computing performance testing company SOASTA has launched , a new appliance billed as the world’s largest platform for testing the performance of web and mobile applications. SOASTA CloudTest Pro is intended to give testing teams control to build performance tests on a single platform that integrates data center infrastructure and private clouds with external resources including public clouds.

Positioned as the first commercial software solution to integrate heterogeneous clouds alongside other data resources, CloudTest Pro works enterprise hybrid and private clouds built with technologies from VMware, Eucalyptus Systems and Cloud.com; public clouds including Microsoft Azure, IBM Cloud, and Amazon Web Services; and test communities like uTest.

“The massive resources of ‘the cloud’ have changed the game for performance testing, enabling organizations to test their consumer-facing Web and mobile applications fast, affordably, and at scale,” said Tom Lounibos, CEO of SOASTA. “There’s now no excuse for the type of website disasters we’ve seen in the past that cost businesses millions in revenues and perhaps more in reputation. Effective website performance testing can reach a massive scale and it’s important that customers have the freedom to efficiently and securely utilize their own internal infrastructure, as well as public clouds and test communities, to get the resources they need for internal and external performance testing.”

SOASTA CloudTest Pro is designed for businesses with internal testing teams that want to engage in continuous testing in the lab and in live production environments, testing from internal and external sources and real-time resolution of performance issues. SOASTA CloudTest Pro appliance provides:

•Test Building: patented visual test creation tools that support dynamic content such as AJAX, HTML5, Flash, mobile, and streaming video;
•Test Management: automated, global test cloud provisioning and management;
•Real-time Analytics: real-time results aggregation and correlation with an interactive, visualization dashboard that supports multi-dimensional views and drill-down capabilities;
•Access to SOASTA’s Global Test Cloud: The largest global network of public and private clouds available for immediate test deployment.

In the world of automated web testing, Selenium 2/WebDriver is the new kid on the block, but it is also arguably the most compelling web testing tool around at the moment. Selenium 2/WebDriver is the result of the merging of two popular open source web testing frameworks: Selenium 1 and WebDriver, in an effort to learn the lessons gleaned from both of these older libraries. And the teams have learned their lessons well, and come up with a slick, elegant and functional testing framework.

Selenium 2, like Selenium, is a cross-browser tool – it is equally happy to run through both Firefox and Internet Explorer. But it also works with HTMLUnit which simulates a browser by sending HTTP requests and analyzing the HTML responses. You can pick from several drivers, including HTMLUnit (which great for fast testing of more conventional web applications), as well as browser-based drivers for Firefox, Chrome and InternetExplorer. The basic API is identical, though milage will vary from one driver to another, particularly if you are testing AJAX-based applications – for example tests for some AJAX apps will work with the Firefox browser, but not with the HTMLUnit browser. The good news is that it is trivially simple to switch between drivers.

Advances in Selenium 2 allow Selenium to work more tightly with browsers, offering high fidelity emulation of interactions such as clicking and typing so companies can ensure the performance of their web applications across the diverse base of browsers in use today. Key advances include:

Support for iPhone and Android testing – Selenium 2 includes built-in Android and iPhone emulators to allow developers and QA teams to expand their use of Selenium to support the growing demand for mobile applications.

New API – The Selenium 2 API is more developer friendly and is also conceptually simpler because it directs users to focus on only two basic objects: WebDriver (browsers) and WebElements (anything on a web page) to construct tests. Selenium provides API libraries for most modern programming languages. In Selenium 2, every API library has been tailored to each programming language for easier usability.

Improved architecture – Selenium 2 now features more advanced automation bindings for each browser to provide the best, most stable way to test applications. The low-level approach that Selenium 2 uses to control browsers is a more solid base for the project to add features for currently supported browsers, and provides a better framework for supporting more browsers in the future.

Enhanced scalability – The new Selenium 2 architecture allows developers and QA teams to “scale up and down”. When a developer or QA wants to test locally on a single machine, Selenium 2 is more streamlined and “scales down” — no longer requiring the use of a background server process to control the browser from their test scripts. Therefore, simple test scenarios only call for a simplified test infrastructure. However, when teams want to run tests across multiple machines with multiple browser configurations, Selenium still retains the power necessary to handle upward scaling needs.

Cloud Computing – “Cloud computing is Internet-based computing, whereby shared resources, software, and information are provided to computers and other devices on demand, as with the electricity grid. Cloud computing is a natural evolution of the widespread adoption of virtualization, Service-oriented architecture and utility computing.” – Wikipedia. Sounds totally confusing!!!

Here’s how I understand it –

Cloud computing is a technology that uses the internet and central remote servers to maintain data and applications. Cloud computing allows consumers and businesses to use applications without installation and access their personal files at any computer with internet access. This technology allows for much more efficient computing by centralizing storage, memory, processing and bandwidth.

A simple example of cloud computing is Yahoo email or Gmail etc. You dont need a software or a server to use them. All a consumer would need is just an internet connection and you can start sending emails. The server and email management software is all on the cloud ( internet) and is totally managed by the cloud service provider Yahoo , Google etc. The consumer gets to use the software alone and enjoy the benefits. The famous analogy is , ‘If you only need milk , would you buy a cow ?’ All the users or consumers need is to get the benefits of using the software or hardware of the computer like sending emails etc. Just to get this benefit (milk) why should a consumer buy a (cow) software /hardware ?

Cloud computing is broken down into three segments: “applications,” “platforms,” and “infrastructure.” Each segment serves a different purpose and offers different products for businesses and individuals around the world.