摘要(英) |
In the field of software engineering, software testing is an important and major method to ensure software quality. In practical software testing, regression testing software tools have matured and varied. Regression test automation is to make sure that the system features that function correctly are not affected by software changes. On the other hand, “automated test case generation” remains to be very difficult in practice. The construction of the “GUI Model” is an important step toward GUI test case generation. If we can construct the GUI model of the system under test (such as application, webpage, etc.) accurately and quickly, it can be used to achieve GUI test case generation.
Most attempts to construct the GUI model are done by reverse engineering the program on specific platform, environment, or even analyzing the source code of the program when there is poor support from platforms. In some modern platforms, they can use the API provided by the platforms to extract and operate GUI components (called “control-items”). However, these approaches introduce very high dependency and coupling to the underlying platform and the results are not applicable to another platform. For example, approaches that aim for web technology are not applicable to Windows or Linux.
This paper proposes a new method for GUI component detection of the system under test using image processing and basic universal input devices. It is totally platform-independent. Finally, we will use this method to test different types of system under test to verify and evaluate the feasibility of the method. |
參考文獻 |
[1] Memon, Atif, Ishan Banerjee, and Adithya Nagarajan. “GUI ripping: Reverse engineering of graphical user interfaces for testing.” 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings.. IEEE, 2003.
[2] Memon, Atif M. “An event‐flow model of GUI‐based applications for testing.” Software testing, verification and reliability 17.3 (2007): 137-157.
[3] Kull, Andres. “Automatic GUI model generation: State of the art.” 2012 IEEE 23rd International Symposium on Software Reliability Engineering Workshops. IEEE, 2012.
[4] Nguyen, Bao N., et al. “GUITAR: an innovative tool for automated testing of GUI-driven software.” Automated software engineering 21.1 (2014): 65-105.
[5] Lee, Shin-Jie, et al. “Test Command Auto-Wait Mechanisms for Record and Playback-Style Web Application Testing.” 2018 IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC). Vol. 2. IEEE, 2018.
[6] Memon, Atif M., Mary Lou Soffa, and Martha E. Pollack. “Coverage criteria for GUI testing.” ACM SIGSOFT Software Engineering Notes 26.5 (2001): 256-267.
[7] Grilo, André MP, Ana CR Paiva, and João Pascoal Faria. “Reverse engineering of GUI models for testing.” 5th Iberian Conference on Information Systems and Technologies. IEEE, 2010.
[8] White, Lee, and Husain Almezen. “Generating test cases for GUI responsibilities using complete interaction sequences.” Proceedings 11th International Symposium on Software Reliability Engineering. ISSRE 2000. IEEE, 2000.
[9] Smokris. “How can I detect elements of GUI using OpenCV?”: Stack- Overflow. 7 March 2012. 2 April 2019 <https://dsp.stackexchange.com/questions/1657/how-can-i-detect-elements-of-gui-using-opencv>.
[10] Yun, Young-Sun, et al. "Detection of GUI Elements on Sketch Images Using Object Detector Based on Deep Neural Networks." International Conference on Green and Human Information Technology. Springer, Singapore, 2018.
[11] Redmon, Joseph, et al. "You only look once: Unified, real-time object detection." Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.
[12] .NET Framework Documentation: Using UI Automation for Automated Testing. 30 March 2017 <https://docs.microsoft.com/en-us/dotnet/framework/ui-automation/using-ui-automation-for-automated-testing>.
[13] Yeh, Tom, Tsung-Hsiang Chang, and Robert C. Miller. "Sikuli: using GUI screenshots for search and automation." Proceedings of the 22nd annual ACM symposium on User interface software and technology. 2009.
[14] Cheng, Yung-Pin, Deron Liang, and Wei-Jen Wang. "KORAT—A platform independent test automation tool by emulating keyboard/mouse hardware signals." 2016 IEEE AUTOTESTCON. IEEE, 2016.
[15] Chang, Tsung-Hsiang, Tom Yeh, and Robert C. Miller. "GUI testing using computer vision." Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. 2010.
[16] Bakaev, Maxim, et al. "Auto-extraction and integration of metrics for web user interfaces." Journal of Web Engineering 17.6 (2018): 561-590.
[17] Li, Yingjun, S. U. N. Yingji, and Z. H. A. O. Qingyu. "Ui automation based on runtime image." U.S. Patent Application No. 13/787,801.
[18] OpenCV. “MSER Class Reference”: OpenCV Documentation. 2 April 2019 <https://docs.opencv.org/3.4/d3/d28/classcv_1_1MSER.html>.
[19] Windows File Explorer: Wikipedia. 11 April 2019 <https://en.wikipedia.org/wiki/File_Explorer>.
[20] TeamViewer. 11 April 2019 <https://www.teamviewer.com/>.
[21] PuTTY. 11 April 2019 <https://www.putty.org/>.
[22] Home: E-Invoice Platform. 11 April 2019 <https://www.einvoice.nat.gov.tw/>.
[23] Firefox Support. 11 April 2019 <https://support.mozilla.org/zh-TW/products/firefox>.
[24] Home: Central Weather Bureau. 11 April 2019 <https://www.cwb.gov.tw/>. |