Sunday, March 30, 2008

Testing GUI Applications - By Kapil Sharma

GUIs have become the established alternative to traditional forms-based user interfaces.

GUIs are the assumed user interface for virtually all systems development using modern technologies.

There are several reasons why GUIs have become so popular:

  • GUIs provide the standard look and feel of a client operating system.
  • GUIs are so flexible that they can be used in most application areas.
  • The GUI provides seamless integration of custom and package applications.
  • The user has a choice of using the keyboard or a mouse device.
  • The user has a more natural interface to applications: multiple windows can be visible simultaneously, so user understanding is improved.
  • The user is in control: screens can be accessed in the sequence the user wants at will.
Test Principles Applied to GUIs :

Our proposed approach to testing GUIs is guided by several principles, most of which should be familiar. By following these principles we will develop a test process which is generally applicable for testing any GUI application. Note that the proposed test approach does not cover white-box testing of application code in any depth. This approach concentrates on GUI errors and using the GUI to exercise tests so is very-oriented toward black-box testing.

# Focus on errors to reduce the scope of tests

We intend to categorize errors into types and design test to detect each type of error in turn. In this way, we can focus the testing and eliminate duplication.

# Separation of concerns (divide and conquer)

By focusing on particular types of error and designing test cases to detect those errors, we can break up the complex problem into a number of simpler ones.

# Test design techniques where appropriate

Traditional black box test techniques that we would use to test forms based applications are still appropriate.

# Layered and staged tests

We will organize the test types into a series of test stages. The principle here is that we bring tests of the lowest level of detail in components up front. We implement integration tests of components and test the integrated application last. In this way, we can build the testing up in trusted layers.

# Test automation...wherever possible

Automation most often fails because of over-ambition. By splitting the test process into stages, we can seek and find opportunities to make use of automation where appropriate, rather than trying to use automation everywhere.

GUI (Graphical User Interface) applications are software applications that provide a visual interface for users to interact with the underlying functionality of the software. Testing GUI applications involves checking that the software functions correctly, looks visually appealing, and is easy to use.

Here are some common approaches to testing GUI applications:

Manual testing: This involves manually interacting with the application's graphical user interface and performing tests to ensure that all functionality works as expected. Manual testing can be time-consuming, but it allows testers to evaluate the application from a user's perspective and identify any usability issues.

Automated testing: Automated GUI testing involves using software tools to simulate user interactions with the application's graphical user interface. This approach is faster and more efficient than manual testing, and it can help identify bugs and issues that might be missed during manual testing. Automated GUI testing can also be used to perform regression testing to ensure that new updates or changes to the application do not break existing functionality.

Accessibility testing: Accessibility testing involves checking that the application's graphical user interface is usable by individuals with disabilities, such as those who are visually impaired. This testing may involve using assistive technology tools, such as screen readers or magnifiers, to ensure that the application's graphical user interface is accessible to all users.

Usability testing: Usability testing involves evaluating the application's graphical user interface to ensure that it is easy to use and navigate. This testing may involve conducting user surveys or running focus groups to gather feedback from users and identify any areas where the application's graphical user interface could be improved.

Performance testing: Performance testing involves testing the application's graphical user interface to ensure that it is responsive and fast. This testing may involve stress testing, where the application is tested under heavy loads to ensure that it remains stable and responsive.

Overall, testing GUI applications involves a combination of different approaches to ensure that the software is reliable, easy to use, and visually appealing. 

Friday, February 29, 2008

Inability to find all faults

A problem with software testing is that testing all combinations of inputs and preconditions is not feasible when testing anything other than a simple product.


This means that the number of defects in a software product can be very large and defects that occur infrequently are difficult to find in testing.

More significantly, parafunctional dimensions of quality--for example, usability, scalability, performance, compatibility, reliability--can be highly subjective; something that constitutes sufficient value to one person may be intolerable to another.

Monday, January 28, 2008

Testing Measurement :

Any measurement program can be divided into two parts. The first part is to collect data, and the second is to prepare metrics/chart and analyse them to get the valuable insight which might help in decision making. Information collected during any measurement program can help in:
  • Finding the relation between data points,
  • Correlating cause and effect,
  • Input for future planning.
Normally, any metric program involves certain steps which are repeated over a period of time. It starts with identifying what to measure. After the purpose is known, data can be collected and converted in to the metrics. Based on the analysis of these metrics appropriate action can be taken, and if necessary metrics can be refined and measurement goals can be adjusted for the better.

Monday, December 17, 2007

Test Strategy

Test Strategy : It is a way to do testing of certain functions of an application or some time whole application, in nut shell it is not a test plan it is a extended sub-plan or certain specific pre-determined set of steps for testing of the module or system.

Sunday, November 25, 2007

What is Unit Testing ?


[Ans.] Unit testing has been recently popularized by Kent Beck as part of eXtreme programming. By no means does that the only use of unit testing is within eXtreme programming - it has many uses in many different development processes ranging from the standard waterfall model to the most agile processes today.


The name "unit testing" is the key to understanding what unit testing brings to the table: the ability to test individual units of code. A class, function, SQL stored procedure, web pages, or even a specific part of a protocol (or may be whole protocol) can be considered a "unit".

And in nut shell to test a unit code known as unit testing.

Tuesday, October 23, 2007

Types of Performance Testing


Performance Testing Types :


P.T = L.E.S.S

Performance Testing = Load, Endurance, Stress, Spike

So, there are four types of P.T mentioned above.

Sunday, July 01, 2007

Testing Outline Analysis

Testing Outline Analysis :--

The objective of this analysis is to relate evaluation, (revealing) defects, and quality of a software under test or AUT (Application under testing).

We can use two approaches to achieve these objectives :--

A) Static analysis methods where the software artifact is examined manually,
or with a set of tools, but not executed.

B) Dynamic analysis methods where the software artifact is executed
using a set of input values, and its output behavior is then examined
and compared to what is expected.

Connected Roads: (V2V Communication)

V2V is like a wireless conversation between cars . Using high-speed signals, vehicles constantly share information with one another, such as...