Category Archives: Perormance testing

Compatibility of software with Operating systems (Linux, Windows, Mac etc)

Compatibility testing is a part of non-functional software tests. Compatibility is nothing but capacity of existing or living together. In computer world, compatibility is to check whether your software is able to run on different operating systems, applications, hardware, network environments or mobile devices. This testing is conducted to evaluate the application’s compatibility with the computing environment that may contain some or all of the elements mentioned below:

  • Computing ability of Hardware Platform (HP 9000, IBM 360, etc.)
  • Compatibility of peripherals (DVD drive, Printer, etc.)
  • Bandwidth handling ability of networking hardware
  • Operating systems (Linux, Windows, Mac etc.)
  • Database (MySQL, Oracle, SQL Server, etc.)
  • Other System Software (Networking/ messaging tool, web server, etc.)
  • Browser compatibility (Firefox, Chrome, Internet Explorer, Netscape, Safari, etc.)

Browser compatibility testing can be more aptly referred to as user experience testing. This aims to ensure that the web applications are tested on multiple web browsers, to make sure the following:

  • Users have the same visual experience regardless of the browsers through which they view the web application.
  • The application should behave and respond the same way in terms of functionality across multiple browsers.
  • Carrier compatibility (Orange, Verizon, Sprint, O2, AirTel, etc.)
  • Backwards compatibility
  • Hardware (various phones)
  • Runs on several host/guest Emulators
  • Different Compilers (compile the code appropriately)

Certification testing falls under the category of compatibility testing. Product vendors run the entire testing procedure on the new computing scenario in order to get their software or application certified for Databases or particular Operating Systems (Windows, Linux, Mac etc).

Let’s take a closer look into the types of OS compatibility testing:

  • Operating Systems: Your software should be compatible with different Operating Systems like Windows, UNIX, and Mac OS etc.
  • Hardware: It checks whether the software is compatible with several hardware configurations.
  • Software: It tests the compatibility of your developed software with other software. For instance, MS Word application must be compatible with other software such as MS Outlook, MS Excel and VBA.
  • Browser: This testing is conducted to ensure that your website is compatible with different browsers like Google Chrome, Internet Explorer, Firefox etc.
  • Network: This process basically aims to evaluate performance of system in network with different parameters such as Operating speed, Bandwidth, Capacity. It also tests the application in different networks with all of these parameters.
  • Devices: It checks your software’s compatibility with different devices such as USB port Devices, Scanners and Printers, Blue tooth and other media devices.
  • Mobile: It checks you software is compatible with mobile platforms such as iOS, Android, etc.
  • Software Versions: It verifies the compatibility of your software application with different software versions. For instance, it tests your Microsoft Word to make sure it is compatible with Windows 7 SP1, Windows 7, Windows 7 SP 2, Windows 7 SP 3 etc.

Types of Version Checking

There are two types of checking versions of the software:

  • Backward compatibility Testing: It is conducted to check the behavior of the developed software or hardware with their older versions.
  • Forward compatibility Testing: It verifies the behavior of the developed software or hardware with their newer versions.

Tools for compatibility testing

  • Adobe Browser Lab: This browser compatibility testing tool helps in checking your application in various browsers.
  • Secure Platform: This hardware compatibility tool includes essential drivers for a specific hardware platform and it provides information on tool to test CD burning procedure with CD burning tools.
  • Virtual Desktops: This operating system compatibility tool is used to run the applications in manifold operating systems as virtual machines. N number of systems can be linked and evaluate the results.

The most imperative use of compatibility testing is intended to check whether developed software works under diverse configurations as mentioned in requirements documentation. This testing is essential to check whether the application is well-suited with the client’s environment.

To endure today’s competitive market, it is important that the software or applications you provide to buyers are worth the amount they are paying. And when it comes to delivering the good quality product it is very important to test the application or software in different development stages including reliability¸ compatibility, quality and delivery.

 

What is Load testing and five tips to do it effectively

 Can my IT system perform as intended when the workload is high?

What is the maximum load that my system can take?

How long the server can stay up and running under constant load?

Load testing can ONLY help you answer these questions!

Before you launch an application or a system / software, it’s better to know how it performs under peak work load, its response time, utilization of resources, output etc. also, its breaking point. By load testing, you can ensure a software application or an IT system performs successfully as intended and thus can be deployed to production.

Load testing is conducted by applying normal or ordinary load within the defined parameters. Load is increased constantly and steadily on the system till the threshold limit to determine the upper load limit of different components say database, hardware and network etc. that an application / IT system can handle.

As an independent testing services company, with 10+ years of extensive experience coupled with deep-domain expertise, Gallop provides the following suggestions for a successful load testing.

Identify the key areas to be tested

At the outset, the key areas or the areas / scenarios to be tested have to be identified. The key areas are those which have specific goals to perform or which have a significant impact on performance of the application / system or which usually perform multiple activities.

Define the load and metrics right in the beginning

For each of the key scenarios identified, the workload in terms of number of users, rate of requests, request patterns etc. have to be defined including duration. It might not be possible to include the entire mix of operations in the load testing scenarios. However, it’s important to create a combination that depicts real-time scenarios and covers the majority of transaction load. So, the workload has to be chosen carefully.

Likewise, the metrics specific to network, system, platform, application and service level, that need to be measured while running load test, should also be identified. These metrics help the tester to measure the performance of an application vs. performance objectives while stimulating load. After all, the sole purpose is to determine how much load a system can take.

Employ the right tool

There are numerous tools available today for load testing. Evaluating and choosing the right tool is not easy as they differ in terms of functionalities, scaling, cost, deployment model, etc. Hence, clarity on the load testing requirements is needed to choose and employ the right tool.

 

Test in production-like environment

Though test environment varies from case to case, it is suggested to conduct load testing in production environment or production-like environment for effective results. The validity of testing results is highly dependent upon the environment that it is carried out. The farther the test environment from production, the more subjective would be the results.

Adopt agile testing methodology

Proper load testing technically requires a near-complete system. Actual system performance and user engagement load can be accurately simulated and put to test at the end of production cycle. However, if the load testing is pushed off to the last phase of the development cycle, often developers find little time or no time to make any needed changes. Continuous load testing in an agile environment can identify performance-related issues early before they turn out to be costly to fix. Thus, ‘test early, test often’ is the mantra to avoid unwarranted delays and costs.

Find out how Gallop’s Performance Test Accelerator can help you maximize the return from Load testing.

Does your application crumble under load?

Performance testing is an intrinsic part of the whole testing process which involves testing the applications with varied amount of load, stress and strategic performance related parameters. In addition to the current expected load, applications also need to be future proof to handle organic load scalability driven by greater product adoption.

An application crash not only causes significant revenue loss but also increases the chances of loss of credibility and trust. This it becomes imperative for all software applications to be tested for scalability and increased resource usage in the future. Let us take a look at performance testing process which ensures your application runs seamlessly at varied loads and even stays afloat in case of sudden traffic spikes.

There are news items every holiday & festive season that e-commerce sites have crashed when more than expected number of visitors turn up to the portal. The most common response is site loads forever. Performance testing helps predict and prevent bottlenecks to ensure applications run as expected under load. For online applications it becomes even more important as it affects the search engine rankings as well as while the users abandon the site due to late responses.

Performance testing comprises of various subsets like Stress testing, Load testing, Volume testing, Spike Testing and Scalability testing. The motive of all these testing practices is to make sure that your system performs as per the user expectations and gives him an experience which is trouble free. Validation of the software’s performance under varied load conditions and putting it artificially under pressure gives the developers many loop holes on which they can work and improve the performance. Memory leakage is one of the common performance related issues which gets detected in performance testing. Scalability of system is also very important along with speed as it judges the performance of the system for future test cases and for some spike situations when the traffic might rise suddenly.

A Performance testing process comprises of designing and configuring the test cases in such a way that they try to subject the system by varying various load parameters. All this is accomplished using Performance testing automation tools. Most common performance related issues are related to Response time, Load time, Hardware utilisation of HDD & CPU, Network delay and Software configurations. Such issues are commonly identified by the software testers and reported.

Various automated performance testing tools are used to ease the task of testers who need to create the virtual environment to execute test cases to test the system. These testing tools put the software application under continuous and random stress, load to bring the best out of it and measure the response time and overall performance of the system. A test plan including the performance test process is a must and should comprise of the choice of right test tool to execute variety of test cases. Analysing the test results, fine tuning the application and then retesting the application removes the performance bottlenecks and makes it a user friendly application.

Performance testing is a major part of UI experience and should not be ignored as it can have wide ranging impact on the business operations and sales. It should be a major part of any software development process as it is directly related to the end user experience and a failed application can impact the customer’s perception of the brand.