Tag Archives: testers

Performances Testing vs Performance Engineering: The Real Difference

Performance of the software or the finished output is a universal quality which is often affected by each aspect of its code, means for execution as well as its design. It has been found out that half of the executives in majority of the IT concerns face performance issues with respect to 20 % of the projects that they are handling. Ensuring sound performance of the software applications is crucial for the growth of the IT firms and more so in the mobile devices. The success also depends on the user experience to a considerable extent as many times poor performance leads to frustration and dissatisfaction amongst the clients.

Adoption of mobile technology is the latest as well as the phenomenon in the history that demonstrates the fastest technology adoption curve. The mobile application market is expected to experience a tremendous growth within the next few years. Sound performance of the application that are deployed to the mobile devices becomes highly significant as poor performance often hampers the revenue levels, brand image and lead to decline in customer loyalty.

To achieve sound performance standards with respect to the software applications, performance engineering and performance testing both are crucial and needs to be undertaken. Both of these need to be optimized and used appropriately to drive great performance standards.

Performance Engineering

Performance engineering in case of Software Development with respect to mobile platforms has been observed to be one of the fastest growing areas in Software Engineering. Through performance engineering, the connection between recognition of a business and success of the application when the same is applied to mobile based software is now largely becoming apparent.

Performance engineering encompass a set of roles, activities, skills, tools, practices and deliverables that are applied at each and every phase of the SDLC that leads to ensuring that a solution is going to be designed, implemented, and finally operationally supported for meeting the non-functional requirements in case of performance like latency, throughput or even memory usage.

With the connection between the success of the application and that of the business gradually gaining recognition especially in terms of the mobile devices, performance engineering has adopted a perfective and preventive role within the SDLC.

  • It is invasive and involves people from different units of an organization but chiefly within the IT company.
  • It helps in increasing the business revenue by means of ensuring that the system is able to process transactions in the required timeframe.
  • It helps in eliminating late deployment of the system and system rework owing to issues related to performance
  • It also helps in elimination of avoidable efforts with respect to system tuning.
  • Performance Engineering helps in avoiding unnecessary as well as additional acquisition costs of hardware.
  • Helps in the reduction of increased costs with respect to software maintenance owing to performance related problems in case of production.

Performance Testing

In case of software engineering, performance testing is an in general and non functional testing that is carried out in order to determine the performance of a system with respect to stability and responsiveness in face of a specified workload. Often this type of testing helps in the investigation of measure, validation or verification of other attributes of a system that establishes the quality of the same like reliability, scalability and usage of resources.

  • It serves a number of purposes like demonstrating of the system that fulfils performance criteria.
  • It can also be employed for comparing the performance of two systems for finding out the one that performs better. It can also measure the part of a system or the specific workload that are the basic causes accounting for bad or poor performance of a system.

Performance Testing consists of a number of testing like Stress testing, Load Testing , Spike Testing, Soak Testing, Isolation testing and Configuration testing.

Performance engineering does not merely encompass the supporting infrastructure and the software itself but more than that. Due to its macro approach, it has evolved into an altogether separate discipline in case of a number of the organizations. Its adherence to the non functional requirements also gets validated post the deployment of the same through monitoring of the production systems. On the other hand, being a subset of Performance Engineering, Performance Testing is a practice that strives for establishing sound performance into the design, implementation and architecture of the system.

API Readiness – Gallop and SmartBear Joint Webinar

Business organizations are demanding excellence in software and digital media to capture market. In order to   deliver greater efficiencies in reduced time lines, software developers are integrating APIs at staggering speed from public, private and partner resources. APIs help interacting with the software world, saving time and resources the reason why developers relay upon APIs. With the rise of disruptive technologies and adoption of digital technologies in the systems of engagement, quality issues in the use of APIs are getting amplified resulting in loss of brand credibility and trust. IT teams need pragmatic processes, tools and techniques to test & fix bugs in APIs to deliver higher quality. For early risk mitigation, developers need to prioritize the importance of testing APIs for their security, integrity and vulnerabilities.

If already working with APIs one can understand the importance of APIs and testing APIs. If not it must be surprising, What APIs are and how harmful it can be to use APIs without testing.

Starting with what are APIs?

In the simplest terms, APIs are sets of requirements that govern how one application can talk to another. It’s a software-to-software interface. The user is unaware of the interaction between different software which happens at the background before a task is completed. For example: if a user want to book a ticket online for a movie from the website, the website sends the user credit card credentials to a remote application for verifying the information and a movie ticket is issued only after the payment is confirmed. It is called seamless integration where the user doesn’t know what goes on in the background.

How do they work?

An API is a set of functions, procedures, and other points of access which an operating system, an application, a library etc., is made available to programmers in to allow it to interact with other software. APIs and Web services are not visible to Web site surfers and software users. They run silently in the background, providing a way for applications to work with each other to get the user the information or functionality needs. For example:    The icons to share articles on Google+, Facebook, LinkedIn, Twitter or Reddit. These are links which help to do the service of posting or tweeting without leaving the webpage. The user need not leave the current webpage to do the posting. It makes it easier that one need not develop applications from scratch. It saves time and resources.

API readiness

Testing APIs to track how the API handles problems helps to fix discrepancies.   API testing helps to identify whether the API crashes or handles the problem? When it crashes to how much level is the crash? Shipping software with API failures leads to loss of customers and brand credibility. Ensuring API readiness through testing ensures quality and integrity of the software making it trustworthy software from a reliable branded company.

A real time cost benefit analysis of offshoretesting vs. QA staffing

A real time cost benefit analysis of offshoretesting vs. QA staffing

A software development process is incomplete without testing. After a software product is developed, it is the task of the testers to find out if the product meets the performance and practical requirements. If not, then it is the task of the developers to rework on the project until or unless the performance requirements are met. It is a practice that every responsible and credible IT service provider needs to provide to their clients as based on the quality of products delivered, payments are dispatched from the end users.

Cost Cutting Techniques by Testing Using QA Staffing

If a company has its own testing facility then it becomes simple to conduct testing but at the same time becomes a bit cost effective. Efficient QA staffing or hiring testers on a full-time or contract basis for testing purposes help resolves issues pertaining to handling such IT process.

IT Companies look for profits and that can be attained if cost cutting measures are adopted in the testing procedure. Following cost cutting measures can be attained by hiring testers by an IT firm.

  • In this context, it needs to be said that both money and time is saved if the defects in the software are identified early.
  • Also once a flaw is detected in the software during the testing process, money is saved if the time taken to rectify the software is less.
  • Better customer service helps in comprehending the user requirements and this is a good thing from the testing perspective.
  • If the end users demand modification or enhancement in the software, it is necessary for the service provider to respond accordingly.
  • For an IT company to deliver quality and efficient services, it becomes easy to identify the lacunas associated with the company’s developers and programmers.

Cost Cutting using Offshore Testing Services

All the above steps do contribute to cut costs so far as software testing is concerned. Yet another method that can be implemented to reduce cost is through outsourcing of software testing. IT companies engaged in the development process have identified that offshore testing contributes significantly to cut costs thereby raising the profit margin. There are a number of service providers that do testing for companies at comparatively low rates.

For a client company who wants its software to be tested by a service provider, does not have to incur unnecessary expenditure on recruiting testers and this cut costs for the company drastically.However, there are certain disadvantages associated with such process. The prime being that the company doing the outsourcing has to depend totally on the service provider doing the outsourced jobs.If the service provider fails to make timely delivery of the projects, then the company image is very much tarnished in front of the end users. Often this results in the company losing business.

But in general it is observed that outsourcing is the preferred choice of most IT companies

Reduction of expenses with resources

  • There is a significant reduction of expenses with resources.
  • The providers of testing services are not only adept in using the costly testing tools, but they own them.Because of this, the testing process is a cost saver.
  • For the small software development firms which do not have the resources to hire a testing team, outsourcing is the best option.

Use of quality software

  • In most cases off shore testing is associated with the use of quality software.
  • The pertinent service providers usually stick to best practices in the process that incorporates prompt identification of defects, smart approaches in preparing test cases, thereby saving time, effort and cost.

Faster testing cycles

  • The testing service providers use skills in automating testing resulting is faster testing cycles.
  • They also optimize staffing thereby enabling handling of fluctuations in demands.
  • Also, since most of them cater only to the testing process, their focus is to provide quality and timely testing services.

Safe practice

  • As compared to QA staffing for testing purposes by IT companies, it is observed that outsourcing is a safe practice provided the service providers approached for accomplishing the tasks have the requisite credentials in terms of experience, infrastructure, human resources.
  • Therefore, emerging companies, with limited IT infrastructure prefer outsourcing rather than building in house testing facilities.

The IT companies in this process access dexterous team of software testers. The professionals engaged in such testing process are skilled in using the different testing tools.

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.