Subscribe by Email


Showing posts with label Compatibility testing. Show all posts
Showing posts with label Compatibility testing. Show all posts

Sunday, December 11, 2011

What are different characteristics of compatibility testing?

First let us clear up with the concept of compatibility.

Compatibility of a software system or an application or any hardware system or components can be defined as the ability of that software system or hardware component to work efficiently with all the versions either newer or older of all CPU architecture designs and operating systems.

- Compatibility is one of the most important properties of any software system or application and hardware system.
- Not every where, every one uses the same CPU architecture designs and operating systems.
- Therefore, it becomes necessary to make software and hardware compatible will all sorts of systems available.
- Otherwise, the software or the hardware will remain confined to only one CPU architecture and operating system.
- There will be no benefit to the software and hardware developers who developed that software or hardware.

In other words, the software or the hardware product or artifact get promotion and hence it would not be widely accepted.
Keeping in view all these issues, care is taken to provide maximum compatibility to the software or the hardware system. Before its release to the open public, the software or the hardware product needs to undergo testing for determining its compatibility.
Such testing is called compatibility testing.

- Compatibility is categorized under non functional testings.
- Compatibility testing can be defined as the testing that is conducted on the software application or the hardware component to determine the concerned product’s compatibility with the computing technological environment.

A proper computing technological environment contains all of the below mentioned aspects:

- Bandwidth handling capacity: the environment should be able to handle bandwidth of the networking software and hardware.
- It should have a computing capacity of hardware platform like HP 9000 and IBM 360 etc.
- It should be compatible with all kinds of peripherals. In other words, it should have compatibility of peripherals. Peripherals include DVD drive, printers, monitors, speakers and so on.
- It should be compatible with all operating systems including UNIX, MVS, windows and so on.
- It should support all types of data bases like oracle, DB2, Sybase etc.
- It should be well compatible with other software systems like messaging tools, networking systems and web servers.
- It should be browser compatible. It should support all the available browsers till date like Netscape, internet explorer, Firefox, Google chrome, safari etc.

The above aspects together make up a proper and efficient computing environment to carry out compatibility testing for the software and hardware products.

Compatibility testing comprises many other small testings like peripheral compatibility testing, browser compatibility testing etc. browser compatibility testing is also known as user experience testing.
It involves the checking of web and network applications on all the available different browsers.

It is done to ensure the following:
- The application under testing should respond exactly in the same way with all the different browsers. It should exhibit same features and functionalities when run under different browsers.
- The visual experience for the users must be the same irrespective through which browser they are using the web application.
- The applications should be backwards compatible i.e., it should work with the older versions of the browser as well.
- The applications should be carrier compatible i.e., data transformation should be same no matter which carrier is being used. Some famous carriers include orange, sprint, Verizon, Airtel, O2 etc.
- Apart from software compatibility, the application should be hardware compatible.
- The applications should be compiler compatible i.e., there should be no difference in compilation by different compilers. All the compilers should compile the source code correctly.
- The applications should be able to run on emulators.


Friday, December 9, 2011

How lack of compatibility causes software failure?

A software system or application is said to be compatible if it is able to execute efficiently on all the models available in that particular family of the gadget of computers. Different types of computers vary less or more in different aspects like reliability, resilience, performance and so on. These differences or variations affect the execution of the software system. Also the outcome or the result of the program is affected.

- Software compatibility can be defined as the compatibility that particular software system, application or program has when it runs on a particular CPU or central processing unit architecture.

For example, Intel, Pentium, power PC etc. software compatibility is not only confined to different kinds of computers.

- It extends over a vast area.
- Software compatibility can also be defined as the ability of a software system, application or program to run on different operating systems.
- It happens very rarely that a fully compiled software system or application is able to run on many different CPU architectures.
- Usually a software system or application is developed and compiled for various different CPU architectures as well as operating systems to allow the software system to be compatible with the different kinds of operating and CPU systems.
- In contrast to compiled software system or applications, interpreted software, can easily run on many different operating systems and CPU architectures.
- But, this can happen only if the interpreter is available for that particular CPU architecture or the operating system as the case may be.

Software incompatibility is quite common with fresh releases of any software system or application and generally occurs quite a many times for the new software system released for a newer version of CPU architecture or an operating system which is quite incompatible with the older version of that particular CPU architecture or operating system.


- This is because the software system or application might be lacking some of the features and functionalities required to make it compatible with the wanted CPU architecture or operating system.
- There’s another concept that comes into scenario of the compatibility of software called “backward compatibility”.
- The software systems and applications which are able to work with the older versions of CPU architecture or operating systems are said to be backward compatible.

Apart from software compatibility we also have hardware compatibility.
- It can be defined as the compatibility of the hardware components of a computer system which has a particular CPU architecture, operating system and other things like bus; mother board etc. compatible hardware doesn’t necessarily gives its optimum performance as stated.
Best example is given by RAM chips.

- Hardware can be compatible only with those operating systems for which kernel drivers and devices are available. For example, hardware components for Mac Os do not work with Linux operating system.
- Compatibility is essential and useful but it is very difficult to keep the extraneous features and functionalities with the software and the hardware system for a very long term and that too just for the sake of compatibility.

- Compatibility is the ability of the software system or device to work with another system or device.
- Compatibility is concerned with various degrees of partnership among the software and hardware components of a system.
- Two devices or programs are said to be compatible if they respond to the software and hardware commands exactly in the same way.
- Some components achieve compatibility by making the software system believe that they are some different machines.
- Such a process is called emulation. It’s important to note that the hardware compatibility not always considers expansion slots.


Friday, September 30, 2011

What are different stages involved in web application testing?

Web application is a dynamic extension of an application server. Testing of a web application is done by a web application tester. Testing a web application involves different stages as follows:

Functionality testing:
In functionality testing, tests are made to check the links in web pages, database connection, forms used in web pages to submit or retrieve information from users.

Testing the links involves the following:
- Checking the outgoing links in all the pages from the specific domain under test.
- Internal links testing.
- Checking the links that jump on the same pages.
- The Links through which the email will be sent to the admin or to other users from different web pages must be checked.
- All the above mentioned links must be checked for broken links.

Testing the forms in all the web pages:
- Each field in a form must be checked for validity.
- Default values of each field must be checked.
- Options for creating, modifying, viewing or deleting a form must be verified during testing.

Testing of cookies:
The application must be tested by enabling or disabling cookies in browser options. The cookies must be tested for encryption before writing to user system. The session cookies must be tested for login sessions and user status after session ends.

Testing of database:
Data integrity must be monitored every time when data is created, modified, viewed or deleted within a database. Every database related functionality must be tested.

Usability testing:
Usability determines the ease with which a user can handle the application. The webpage designed must be user friendly with appropriate main menu in each page. It is very important to ensure that the application is readable and understandable by a user. It is recommended to use commonly accepted standards for font, frames and colors. Anchor text links must be analyzed.

Interface testing:
Web server, application server and database server are the main interfaces. Ensure whether each interaction between each of the interfaces is executed without any errors. Errors when occurred must be handled appropriately.

Compatibility testing:
Compatibility of a web application is a very important testing aspect. A web application must be compatible mainly with Browser and Operating System.

Browser compatibility:
A web application must be tested with different browsers to ensure its compatibility. Various browsers have different settings and configurations with which the application must be compatible. Web coding must be compatible with cross browser platform. If java scripts or AJAX calls are used for UI functionality and performing security checks or validations, browser compatibility must be given importance.

OS compatibility:
New technologies such as graphic designs, interface calls used in web development must be compatible with various browsers, which are popularly used.

Performance testing:
Performance of an application is measured by its ability to sustain load and stress. Load testing and stress testing are two main types of performance testing.

Load testing:
When large number of users requests the same page, the application must have the ability to sustain the load and perform appropriately. Performance of an application must be tested on different internet connections with varying speed.

Stress testing:
In stress testing the application is put beyond its limit of sustainability, to check the reaction of the application to stress or to check how the system recovers from crash.

Security testing:
Security testing must ensure that only authorized users can use the application and none of the internal pages must be opened for non registered users. CAPTCHA can be utilized to improve security in application.


Sunday, October 17, 2010

Validation Phase - System Testing - Compatibility Testing and Recovery Testing

System testing concentrates on testing the complete system with a variety of techniques and methods. System testing comes after unit testing and Integration testing.

Compatibility Testing
This testing concentrates on testing whether the application performs well with third party tools, software or hardware platforms. For example, a website should run on different kind of web browsers. Similarly, an application that is developed on a particular platform should run well on other platforms as well. This is the main goal of compatibility testing.
Compatibility tests are also performed for various client/server based applications where the hardware changes from client to client. This testing is very crucial to organizations developing their own products. The products have to be checked for compliance with the competitors of the third party tools, hardware, or software platform.
A good way to ensure compatibility is to have a few resources assigned along with their routine tasks to keep updated about such compatibility issues and plan for testing when and if the need arises.

Recovery Testing
It is a system test that focuses the software to fall in a variety of ways and verifies that recovery is properly performed. If it is automatic recovery then re-initialization, check pointing mechanisms, data recovery and restart should be evaluated for correctness. If recovery requires human intervention, the mean time to repair (MTTR) is evaluated to determine whether it is within acceptable limits.


Monday, August 23, 2010

Overview and Features of Compatibility Testing

Compatibility testing is performed to ensure compatibility of an application or Web site with different browsers, operating systems, and hardware platforms. Compatibility testing is one of the several types of software testing performed on a system that is built based on certain criteria and which has to perform specific functionality in an already existing setup/environment.

- Compatibility testing can be performed manually or can be driven by an automated functional or regression test suite.
- The customer has different kinds of platforms, operating systems, browsers, databases, servers, clients, and hardware.
- Different versions, configurations, display resolutions, and Internet connect speeds all can impact the behavior of your product and introduce costly and embarrassing bugs.
Therefore, compatibility testing becomes necessary.
- Software is rigorously tested to ensure compatibility with all the operating systems, software applications and hardware you support.
- Compatibility testing will ensure that the code is stable in both environments and that any information/error messages or user interaction is handled and presented in the same way regardless of the OS.
- Compatibility testing can be easily accommodated in manual tests by having different members of the team work on varying screen resolutions to see what issues arise.
- Compatibility testing should take account of the varying connection speeds available to the user base.
- Compatibility testing may be undertaken as part of Performance Testing and so it is always worth checking out what the non-functional test team on a given project are planning to run in order to see if this is covered.
- Compatibility testing can be used to evaluate the performance of system/application/website on network with varying parameters such as bandwidth, variance in capacity and operating speed of underlying hardware etc.
- Compatibility testing can be used to evaluate the performance of system/application in connection with various systems/peripheral devices.
- Database compatibility testing is used to evaluate an application/system’s performance in connection to the database it will interact with.


Facebook activity