What is the QTA

QTA is a cross-platform test automation tool for backend, native, or hybrid client applications. Within Tencent, QTA is the oldest automated test project of Tencent. It has been eight years since its development. The tool’s capability has also expanded from only supporting UI automated test on Windows terminal to test automation of Android, iOS, Web, background and cloud services. QTA is also the most widely used automation testing framework within Tencent, including the automation of PCQQ, mobile QQ, Space, music, Tencent cloud and other products. Currently, QTA is used.

In the history of Tencent open source, QTA is also a “generation”. QTA, opened in 2016, is one of Tencent’s earliest open source projects, currently stored in three Github repositories:

·QTAF (QTA Framework) :

https://github.com/Tencent/QTAF

·QT4A (Quick Test for Android)

https://github.com/Tencent/QT4a

·QT4i (Quick Test for iOS)




QTAF (QTA Framework) is the basic Framework of QTA, including TestBase and TUia modules. QT4A and QT4i are UI test automation solutions for Android and iOS respectively.

The advantage of QTA

The ROI of UI automation is an industry consensus — in addition to testability, the UI test automation tools themselves are challenging to design and use, and many peers have abandoned or resisted using UI test automation because of these issues.

QTA team has accumulated rich practical experience in Tencent. Under the construction and operation of many star business teams, it has formed a sustainable automated test process, including QQ, QZone, AUDIO and video SDK, Now Live, Penguin E-Sports, Tencent Video, Tencent Cloud and other product projects.

As for QT4A (Android automated Testing), which has been open source at present, 1.7W + automatic scripts have been built in Tencent. On average, 2.9W + automatic use cases and 700+ test tasks were executed every day. The QTA team has maintained 500+ execution nodes and built a cluster of 750+ Android virtual machines to serve the needs of test execution. For QT4i (iOS automated testing), we have accumulated 6K + cases, performed 600+ tasks every week, and performed 3k+ test cases on average every day.

Which takes the application deep into the phone
Take QQ products for example:

AndroidQQ system test cases have 1000+, the daily pass rate is basically stable at more than 90%, at the same time, CI automatically triggers BVT test every day, the product without functional bug, the pass rate is basically 100%. In addition, there are other pre-launch verification tests. The Android QQ membership project executes about 270 tasks every day, most of which are completed within 10 minutes.

(QT4A Demo)

The number of iOS QQ function test cases is 200+, and the number of daily implementation cases is 600+, among which, CI automatically triggers BVT test every day, and the pass rate is guaranteed to be over 95% under the condition that the product is bug free. The number of iOS QQ membership projects is 300+, and the number of daily execution cases is 500+. Most tasks are executed within 30 minutes, and each task needs the support of about 10 execution nodes on average.

(QT4i Modifying the device name demo)

QTA has been widely used in Tencent and has accumulated a lot of experience and achievements. The QTA team also hopes that this open source update can share the methodology and practical experience of automated testing with the industry. Based on this open source, share and build a UI automation test tool that can be used in engineering.

Major release updates

As one of the first open source projects, for a long time,

Due to the functional orientation, the QTA team is not sufficiently involved in open source projects. This time, Tencent’s organizational structure has been adjusted, and the QTA team has become a part of the newly established Cloud and Intelligent Industry Business Group (CSIG). The subsequent QTA will be based on Tencent Cloud to help customers of industrial Internet and bring new vitality to QTA open source.

To this end, QTA has launched a major open source release update synchronizing new features that are already in continuous use internally, including:

·QTAF added resource management module and test planning function, making it more convenient for QTA framework to integrate with other test execution systems;

·QT4A supports non-root versions, supports Android6 and above systems, and supports 64-bit apps;

·QT4A optimized the efficiency of screen capture, and added the function of screen recording;

·QT4i optimized the simulator Agent startup mode and supported the latest iOS12 and XCode10;

·QT4A and QT4i support PIP installation to simplify installation and deployment;

·QT4A and QT4i improve usage and design documentation.

Follow-up plan

QT4W, QT4C and QT4Mac are preparing for open source in QTA’s UI automated testing system, which respectively deliver UI automated testing capabilities on Web, Windows and Mac terminals. In particular, QT4W — the ability to automate Web testing, which provides the foundation for web-based capabilities in both QT4i and QT4A automated testing, will soon be available to developers. The QTA team is also actively working on Python 3 compatibility improvements, one of the most popular sounds from the community.

In the long term, QTA team is studying ways of AI and algorithm to enhance the ability of automation and reduce the cost of automation maintenance, improve the ability of self-iteration of tools, and hope to open source after gradual optimization.

In addition, QTA is cooperating with Tencent Cloud Tencent Hub (developing file storage and DevOps workflow orchestration service) team to integrate QTA’s capabilities into Tencent Hub. Currently, QTA’s community users are in the joint verification stage. You will soon be able to experience QTA test automation services on Tencent Cloud.

In addition, the QTA team has recently done a review of the open source development process. The new development mode makes the community VERSION of QTA and Tencent internal QTA version of the code management clear and smooth, which helps to make the internal new features can be quickly synchronized to the open source community code base, from the open source community contributors can be smoothly integrated into the code. In terms of the maintenance of the open source community, with the acceleration of the cloud rhythm of Tencent business team, the QTA development and maintenance team is growing, and they will work together to provide support for external open source users. Welcome to make suggestions to QTA team through Github Issue and QQ group, and build a more user-friendly automated testing tool together!