| 研究生: |
黃章軒 Chang-Hsuan Huang |
|---|---|
| 論文名稱: |
C++之單元測試環境下使用共享指標標記物件方式減少因加入測試而產生的編譯錯誤 Using shared memory pointer to mark objects in C++ unit testing environment to reduces compile errors for adding testing project |
| 指導教授: |
王尉任
Wei-Jen Wang |
| 口試委員: | |
| 學位類別: |
碩士 Master |
| 系所名稱: |
資訊電機學院 - 資訊工程學系在職專班 Executive Master of Computer Science & Information Engineering |
| 論文出版年: | 2024 |
| 畢業學年度: | 112 |
| 語文別: | 中文 |
| 論文頁數: | 56 |
| 中文關鍵詞: | C++ 、相依性 、單元測試 、專案測試 |
| 外文關鍵詞: | C++, Dependency, Unit Testing, Project Testing |
| 相關次數: | 點閱:18 下載:0 |
| 分享至: |
| 查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
軟體開發往往以多人團隊分工為主,單元測試往往也是開發者與測試者為同一批人,但在特殊團隊環境下,有可能出現不同人的狀況,這時測試者對於程式的單元測試操作就會比較消耗時間。雖然能夠協助專案進行單元測試的工具有很多樣,但是他們大多適用在興新的高階語言,而傳統且使用廣泛的 C/C++較少出現類似工具,因此本文提出一種以記憶體轉發的方式來減少程式所在的檔案(computer file)間直接呼叫的工具,用以減少單元測試專案在加入程式區塊時,所產生的編譯錯誤數目,藉此減少測試人員必要的程式修改需求進而加快工作效率。
Software development often involves division of labor within a team, and unit testing is frequently performed by the same group of developers and testers. However, in specialized team environments, it’s possible that different individuals handle different tasks, which can make unit testing more time-consuming for testers. While there are many tools available to assist with unit testing, most of them are tailored for modern high-level languages, and similar tools are scarce for traditional and widely-used languages like C/C++. Therefore, this paper proposes a tools that memory forwarding method to reduce directly called between the computer files. Thereby reduce the number of compilation errors generated when unit testing adds program blocks, thereby reducing the need for testers to modify the necessary programs and speeding up work efficiency.
[1] Sumeet Kaur Sehra, Harpreet Kaur and Dr. Navdeep Kaur,” Effect of Decomposition of Classes on Software Architecture Stability”, International Conference on Recent Trends in Information, Telecommunication and Computing, ITC 2014, At: Chandigarh, Association of Computer Electronics and Electrical Engineers 2014, doi: 02.ITC.2014.5.114
[2] Darijus Strasunskas, Sari E. Hakkarainen, ” Domain model-driven software engineering: A method for discovery of dependency links”, Information and Software Technology, Volume 54, Issue 11, November 2012, Pages 1239-1249, doi:https://doi.org/10.1016/j.infsof.2012.06.004
[3] Hojin Cho; Kwanwoo Lee; Kyo C. Kang,” Feature Relation and Dependency Management: An Aspect-Oriented Approach”, 2008 12th International Software Product Line Conference, Page(s):3 - 11, 08-12 September 2008, Location:Limerick, Ireland, doi: 10.1109/SPLC.2008.23
[4] Eric Horton; Chris Parnin, ” DockerizeMe: Automatic Inference of Environment Dependencies for Python Code Snippets”, 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE), Page(s):328 - 338, 25-31 May 2019, Location:Montreal, QC, Canada, doi: 10.1109/ICSE.2019.00047
[5] Julien Gori; Han L. Han; Michel Beaudouin-Lafon, ” FileWeaver: Flexible File Management with Automatic Dependency Tracking”, UIST '20: Proceedings of the 33rd Annual ACM Symposium on User Interface Software and Technology, Virtual Event USA, October 2020, Pages 22–34, New York, United States, doi:https://doi.org/10.1145/3379337.3415830
[6] Mark Weiser,” Program Slicing”, IEEE Transactions on Software Engineering ( Volume: SE-10, Issue: 4, July 1984), Page(s): 352 - 357, doi: 10.1109/TSE.1984.5010248
[7] Baowen Xu; Ju Qian; Xiaofang Zhang; Zhongqiang Wu; Lin Chen,” A brief survey of program slicing”, ACM SIGSOFT Software Engineering Notes, Volume 30 , Issue 2, March 2005, pp 1–36, doi:https://doi.org/10.1145/1050849.1050865
[8] Soonho Kong; Nikolai Tillmann; Jonathan de Halleux,” Automated Testing of Environment-Dependent Programs - A Case Study of Modeling the File System for Pex”, 2009 Sixth International Conference on Information Technology: New Generations, Page(s):758 - 762, 27-29 April 2009, Location: Las Vegas, NV, USA, doi: 10.1109/ITNG.2009.80
[9]” kubeflow”, Available:https://www.kubeflow.org/docs/components/pipelines/v1/introduction/, accessed 2023
[10]” airflow”, Available: https://airflow.apache.org/docs/apache-airflow/stable/tutorial/pipeline.html, accessed 2023
[11] Pei Wang; Jingiu Yang; Lin Tan; Robert Kroeger; J. David Morgenthaler,” Generating precise dependencies for large software”, 2013 4th International Workshop on Managing Technical Debt (MTD), Page(s):47 - 50, 20-20 May 2013, Location: San Francisco, CA, USA, doi: 10.1109/MTD.2013.6608678
[12] BenceBabati,NorbertPataki,” Analysis of Include Dependencies in C++Source Code”, Communication Papers of the 2017 Federated Conference on Computer Science and Information Systems, ISSN 2300-5963 ACSIS, Vol.13, pp.149–156(2017) , doi:10.15439/2017F358
[13] K. Alsubhi; F. Alsolami; A. Algarni; E. Albassam; M. Khemakhem; F. Eassa; K. Jambi; M. Usman Ashraf”, A Tool for Translating Sequential Source Code to Parallel Code Written in C++ and OpenACC”, 2019 IEEE/ACS 16th International Conference on Computer Systems and Applications (AICCSA), Page(s):1 - 8, 03-07 November 2019, Location: Abu Dhabi, United Arab Emirates, doi: 10.1109/AICCSA47632.2019.9035292
[14] Gábor Márton; Zoltán Porkoláb”, Unit testing in C++ with compiler instrumentation and friends”, Acta Cybernetica Vol 23 No 2 (2017), pages 659-686, doi: https://doi.org/10.14232/actacyb.23.2.2017.14
[15] G´abor M´arton, ” access_private”, Available:https://github.com/martong/access_private, accessed 2023
[16] Tsung-Wei Huang, Chun-Xun Lin, Guannan Guo, and Martin Wong, ” Cpp-Taskflow: Fast Task-based Parallel Programming using Modern C++”, 2019 IEEE International Parallel and Distributed Processing Symposium (IPDPS), Page(s):974 - 983, 20-24 May 2019, Location: Rio de Janeiro, Brazil, doi: 10.1109/IPDPS.2019.00105
[17] Chun-Xun Lin, Tsung-Wei Huang, Guannan Guo, Martin D. F. Wong”, A Modern C++ Parallel Task Programming Library”, MM '19: Proceedings of the 27th ACM International Conference on MultimediaOctober 2019, Pages 2284–2287, October 2019, New York, United States, doi: https://doi.org/10.1145/3343031.3350537
[18] Tsung-Wei Huang; Dian-Lun Lin; Chun-Xun Lin; Yibo Lin”, Taskflow: A Lightweight Parallel and Heterogeneous Task Graph Computing System”, IEEE Transactions on Parallel and Distributed Systems ( Volume: 33, Issue: 6, 01 June 2022), Page(s): 1303 - 1320, doi: 10.1109/TPDS.2021.3104255
[19] Tsung-Wei Huang, ” taskflow”, Available:https://github.com/taskflow/taskflow, accessed 2023
[20] Madhuri R. Marri, ” An Empirical Study of Testing File-System-Dependent Software with Mock Objects”, 2009 ICSE Workshop on Automation of Software Test, Page(s):149 - 153, 18-19 May 2009, Location: Vancouver, BC, Canada, doi: 10.1109/IWAST.2009.5069054
[21] IEEE Spectrum’s 10th annual rankings of the Top Programming Languages,” https://spectrum.ieee.org/the-top-programming-languages-2023”, accessed 2024
[22] Python Brochure, ” https://brochure.getpython.info/”, accessed 2024
[23] Ivor Horton; Peter Van Weert ,”Beginning C++17: From Novice to Professional(5th Ed.)”,ISBN 978-1-4842-3365-8,Published:1 January 2018