Software Testing

Learn Software Testing skills.

Data Structures and Algorithms

Learn how to store and manipulate data efficiently using data structures and algorithms.

Programming

Learn the basics of coding and object oriented programming.

Tuesday, June 25, 2024

GUI Testing

Graphical user interface (GUI) testing is the process of testing a product’s GUI to ensure it meets its specification. 

The difficulty in accomplishing this task is twofold: to deal with domain size and with sequences. In addition, the tester faces more difficulty when they have to do regression testing.

A GUI may have many operations that need to be tested. For example, a small program such as WordPad has 325 possible GUI operations. In a large program, the number of operations can easily be an order of magnitude larger.

The second problem is the sequencing problem. Some functionality of the system may only be accomplished with a sequence of GUI events. For example, to open a file a user may have to first click on the File menu, then select the Open operation, use a dialog box to specify the file name and focus the application on the newly opened window. Increasing the number of possible operations increases the sequencing problem exponentially. This can become a serious issue when the tester is creating test cases manually.

Regression testing becomes a problem with GUIs as well. A GUI may change significantly, even though the underlying application does not. A test designed to follow a certain path through the GUI may then fail since a button, menu item, or dialog may have changed location or appearance. These issues have driven the GUI testing problem domain towards automation. Many different techniques have been proposed to automatically generate test suites that are complete and that simulate user behavior.

GUI testing tools serve the purpose of automating the testing process of software with graphical user interfaces.

Name

Supported platforms
(testing system)

Supported platforms
(tested system)

Developer

License

Appium

Windows, Linux, Mac
(Python, C#, Ruby, Java, Javascript, PHP, Robot Framework)

iOS, Android (both native App & browser hosted app)

JS Foundation

Apache

iMacros

Web (cross-browser)

Web

iOpus

Proprietary

Katalon Studio

Windows, Linux, OS X

Web (UI & API), Mobile apps

Katalon LLC

Proprietary

Robot Framework

Web (cross-browser)

Web

(Collaborative project)

Apache

Selenium

Web (cross-browser)

Web

(Collaborative project)

Apache

TestComplete

Windows

Windows, Android, iOS, Web

SmartBear Software

Proprietary

Unified Functional Testing (UFT)
previously named HP QuickTest Professional (QTP)

Windows

Windows, Web, Mobile, Terminal Emulators, SAP, Siebel, Java, .NET, Flex, others...

Hewlett-Packard Enterprise

Proprietary

Share:

Monday, June 24, 2024

Compatibility testing

Compatibility is the capability of the software product to interact with one or more specified components or systems.

Compatibility testing is a part of non-functional testing conducted on application software to ensure the application's compatibility with different computing environment or determine the interoperability of a software product.

Compatibility is a characteristic or degree to which a software system can exchange information with other systems whilst sharing the same software and hardware. The degree to which a product can perform its required functions efficiently while sharing a common environment and resources with other products, without detrimental impact on any other product is known as co-existence while interoperability is the degree to which two or more systems, products or components can exchange information and use the information that has been exchanged. In these contexts, compatibility testing would be information gathering about a product or software system to determine the extent of co-existance and interoperability exhibited in the system under test.

Environments may contain the below mentioned elements:

  • Hardware Platform: IBM, HP, etc
  • Bandwidth capacity of networking hardware
  • Peripherals: Printer, external hard drive, etc
  • Operating systems: Windows, Mac, Linux, etc
  • Database: SQL Server, MySQL, Oracle, etc
  • System Software: Web server, networking/messaging tool, etc
  • Browser: Chrome, Firefox, Edge, etc
Share:

Translate