The Linux Desktop Testing Project (LDTP) is a
testing tool
In software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive bu ...
that uses computer
assistive technology
Assistive technology (AT) is a term for assistive, adaptive, and rehabilitative devices for Disability, people with disabilities and the elderly. Disabled people often have difficulty performing activities of daily living (ADLs) independently, ...
to automate
graphical user interface
A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
(GUI) testing. The GUI functionality of an application can be tested in
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
,
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
Solaris
Solaris is the Latin word for sun.
It may refer to:
Arts and entertainment Literature, television and film
* ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem
** ''Solaris'' (1968 film), directed by Boris Nirenburg
** ''Sol ...
,
FreeBSD
FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
, and
embedded system
An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is e ...
environments. The macOS version is named PyATOM, and the Windows version is Cobra. The LDTP is released as
free and open-source software
Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
under the
GNU Lesser General Public License
The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
(LGPL).
LDTP can test any accessibility-enabled
GNOME
A gnome () is a mythological creature and diminutive spirit in Renaissance magic and alchemy, introduced by Paracelsus in the 16th century and widely adopted by authors, including those of modern fantasy literature. They are typically depict ...
application,
Mozilla
Mozilla is a free software community founded in 1998 by members of Netscape. The Mozilla community uses, develops, publishes and supports Mozilla products, thereby promoting free software and open standards. The community is supported institution ...
,
OpenOffice.org
OpenOffice.org (OOo), commonly known as OpenOffice, is a discontinued open-source office suite. Active successor projects include LibreOffice (the most actively developed) and Collabora Online, with Apache OpenOffice being considered mostly d ...
, any Swing-based
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
,
Qt 4-based and
KDE
KDE is an international free software community that develops free and open-source software. As a central development hub, it provides tools and resources that enable collaborative work on its projects. Its products include the KDE Plasma gra ...
4.x applications.
LDTP is/was used by the following companies and organizations:
*
GNOME
A gnome () is a mythological creature and diminutive spirit in Renaissance magic and alchemy, introduced by Paracelsus in the 16th century and widely adopted by authors, including those of modern fantasy literature. They are typically depict ...
*
Mozilla
Mozilla is a free software community founded in 1998 by members of Netscape. The Mozilla community uses, develops, publishes and supports Mozilla products, thereby promoting free software and open standards. The community is supported institution ...
*
Openoffice.org
OpenOffice.org (OOo), commonly known as OpenOffice, is a discontinued open-source office suite. Active successor projects include LibreOffice (the most actively developed) and Collabora Online, with Apache OpenOffice being considered mostly d ...
*
KDE
KDE is an international free software community that develops free and open-source software. As a central development hub, it provides tools and resources that enable collaborative work on its projects. Its products include the KDE Plasma gra ...
*
Novell
Novell, Inc. () was an American software and services company headquartered in Provo, Utah, that existed from 1980 until 2014. Its most significant product was the multi-platform network operating system known as NetWare. Novell technolog ...
/
SuSE
*
Palm Source
*
VMware
LDTP can be used to remotely test applications.
History
LDTP version 0.1.0 was released in January 2005 and then showcased and discussed at GNOME Users And Developers European Conference (
GUADEC
GUADEC, formerly the GNOME Users And Developers European Conference, is an annual developer conference whose prime topic is the development of the GNOME desktop environment and its underlying base software such as GTK, GStreamer
GStreamer i ...
) 2005. It was then used at the
Google Summer of Code
The Google Summer of Code, often abbreviated to GSoC, is an international annual program in which Google awards stipends to contributors who successfully complete a free and open-source software coding project during the summer. , the program is ...
in 2006 for
Tinderbox
A tinderbox, or patch box, is a container made of wood or metal containing flint, firesteel, and tinder (typically charcloth, but possibly a small quantity of dry, finely divided fibrous matter such as hemp), used together to help kindle a fi ...
integration,
Evolution
Evolution is the change in the heritable Phenotypic trait, characteristics of biological populations over successive generations. It occurs when evolutionary processes such as natural selection and genetic drift act on genetic variation, re ...
automation, and LDTP regression suite under
GNOME
A gnome () is a mythological creature and diminutive spirit in Renaissance magic and alchemy, introduced by Paracelsus in the 16th century and widely adopted by authors, including those of modern fantasy literature. They are typically depict ...
organization. Then again in 2007,
it was used by the Mozilla Foundation for
Firefox
Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements curr ...
automation and
Tinderbox
A tinderbox, or patch box, is a container made of wood or metal containing flint, firesteel, and tinder (typically charcloth, but possibly a small quantity of dry, finely divided fibrous matter such as hemp), used together to help kindle a fi ...
integration.
Example
This is an example of how LDTP would test writing in
gedit
gedit ( or ) is a text editor designed for the GNOME desktop environment. It was GNOME's default text editor and part of the GNOME Core Applications until GNOME version 42 in March 2022, which changed the default text editor to GNOME Text Edi ...
:
#!/usr/bin/env python3
# The standard import stuff.
from ldtp import *
from ooldtp import context as locate
from time import sleep
# Here we open the app.
launchapp("gedit")
# Now we find it and make sure it is open.
gedit_win = locate("*gedit")
gedit_win.waittillguiexist()
# Now we type into gedit.
text_field = gedit_win.getchild("txt1")
text_field.enterstring("G'Day mate!")
# Save a picture to prove we did it.
imagecapture("*gedit", "/tmp/foo.png")
# Quit gedit.
quit = gedit_win.getchild("mnuQuit")
quit.selectmenuitem()
# Close without saving.
dont_save = locate("Question")
dont_save.waittillguiexist()
button = dont_save.getchild("btnClosewithoutSaving")
button.click()
# Wait until gedit is gone.
gedit_win.waittillguinotexist()
Diagram of how LDTP works
See also
*
List of Linux GUI testing tools
*
Desktop Linux
Besides the Linux distributions designed for general-purpose use on desktops and servers, distributions may be specialized for different purposes including computer architecture support, embedded systems, stability, security, localization to a spe ...
References
External links
*
MagoUbuntu wrapper using LDTP
{{FOSS
Freedesktop.org
Free software programmed in Python