Thử nghiệm đánh giá áp dụng một số kỹ thuật kiểm thử để nâng cao độ tin cậy cho ứng dụng di động trong môi trường phát triển linh hoạt
Hệ sinh thái ứng dụng di động đã phát triển rất nhanh với hàng triệu ứng dụng và hàng
trăm nghìn nhà phát triển trong những năm gần đây. Trong xu hướng cạnh tranh, để sản phẩm
ứng dụng di động được tin dùng, các nhà phát triển cần có các kỹ thuật, phương pháp và
công cụ để (i) nâng cao hiệu quả việc kiểm thử trong quá trình phát triển và xác định những
thất bại tiềm ẩn trước khi ứng dụng được phát hành, (ii) đánh giá độ tin cậy phần mềm từ
các dữ liệu thực nghiệm của các pha trong quá trình phát triển sản phẩm phần mềm, dựa vào
các kỹ thuật đánh giá nhằm tính toán giá trị độ đo độ tin cậy phần mềm và (iii) hiệu suất
khi đối mặt với các điều kiện khác nhau khi sử dụng thực tế. Trong nghiên cứu này, chúng
tôi sử dụng mô hình tăng trưởng độ tin cậy NHPP (Non-Homogeneous Poisson Process) để
đánh giá, xác định độ tin cậy của các ứng dụng di động thông qua việc áp dụng các kỹ
thuật, phương pháp kiểm thử và kiểm thử tự động đã được chúng tôi công bố ở các nghiên
cứu trước như (1) kỹ thuật tối ưu mã nguồn, (2) kiểm thử hướng ngữ cảnh One2explore, (3)
ứng dụng Heuristics và Machine learning trong kiểm thử, (4) sinh kiểm thử tự động từ user
stories và acceptance criteria. Kết quả nghiên cứu và thực nghiệm đánh giá trên 2 dự án thực
tế, và thử nghiệm trên một số ứng dụng Android từ kho mã nguồn FOSS cho kết quả tích
cực có thể giúp cho các nhà phát triển ứng dụng Android cải tiến chất lượng, nâng cao độ
tin cậy và hiệu năng khi phát triển các ứng dụng di động trong môi trường phát triển linh
hoạt và cạnh tranh hiện nay
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Thử nghiệm đánh giá áp dụng một số kỹ thuật kiểm thử để nâng cao độ tin cậy cho ứng dụng di động trong môi trường phát triển linh hoạt
ình bày kết quả nghiên cứu và thực nghiệm các kỹ thuật nâng cao độ tin cậy cho ứng dụng di động trong môi trường phát triển Agile áp dụng mô hình tăng trưởng độ tin cậy phần mềm NHPP. Các đóng góp khoa học chủ yếu của nghiên cứu này bao gồm: • (1) Tổng hợp và trình bày một số vấn đề liên quan đến độ tin cậy của phần mềm, các mô hình đánh giá độ tin cậy của phần mềm, từ đó đề xuất vận dụng các mô hình tăng trưởng độ tin cậy phần mềm NHPP để áp dụng cho lĩnh vực phát triển ứng dụng di động. • (2) Đề xuất áp dụng 03 kỹ thuật kiểm thử trong quy trình Scrum nhằm nâng cao chất lượng cũng như độ tin cậy cho ứng dụng di động: tối ưu hóa mã nguồn, phân tích và kiểm thử mã nguồn, kỹ thuật sinh test case, test input tự động để thực hiện kiểm thử sớm ứng dụng. Thực nghiệm đánh giá ở các dự án thực tế. Do điều kiện về thời gian, số lượng các dự án thực tế đánh giá chưa phải là nhiều, nhưng kết quả thực nghiệm cũng đã cho thấy rằng, các phương pháp, kỹ thuật đề xuất trong nghiên cứu này là phù hợp và có giá trị ứng dụng cho các nhà phát triển sản phẩm phần mềm trên các thiết bị di động Android nói riêng, một số kỹ thuật cũng có thể vận dụng cho phát triển các loại ứng dụng khác. 53 Section on Information and Communication Technology (ICT) - No. 13 (6-2019) Hướng nghiên cứu và phát triển tiếp theo chúng tôi sẽ hoàn thiện thành một bộ công cụ plug-in và tài liệu hóa quy trình, áp dụng đánh giá các kỹ thuật đồ thị hóa kiểm thử thăm dò, áp dụng hueristics và học máy vào kiểm thử nhằm giúp cho việc ứng dụng một cách có hiệu quả các kỹ thuật cũng như thực nghiệm mở rộng cho nhiều loại dự án khác nhau trong tương lai. Tài liệu tham khảo [1] Penzenstadler, B., Duboc, L., Venters, C., Betz, S., Seyff, N., Wnuk, K., Becker, C.,"Software Engineering for Sustainability: Find the Leverage Points", IEEE Software, ISSN: 0740-7459, Volume:35, Issue: 4, Jul. 2018. [2] A. I. Wasserman, "Software engineering issues for mobile application development", FoSER ’10 Proceedings of the FSE/SDP workshop on Future of software engineering research, pp. 397-400, ISBN: 978-1-4503-0427-6, 2010. [3] H. Verkasalo, C. López-Nicolás, F. J. Molina-Castillo, and H. Bouwman, "Analysis of users and non-users of smartphone applications", Journal Telematics and Informatics, vol. 27, no. 3, 2010. [4] S. Meskini, A. B. Nassif, and L. F. Capretz, "Reliability Models Applied to Mobile Applications", Proceedings of the 2013 IEEE Seventh International Conference on Software Security and Reliability Companion, pp. 155- 162, June 18 - 20, 2013. [5] Norman Fenton, James Bieman, Software Metrics: A Rigorous and Practical Approach, CRC Press, 2014. [6] I. No, R. Mohd, and M. Nazir,"Reliability of Software Development Using Open Source Technology", International Journal of Advanced Research in Computer Science, vol. 2, No. 5, pp. 479–485, 2011, ISSN 0976-5697. [7] R. M. Shah, S. M. K. Quadri, and N. Ahmad, "A Comparative Overview of Software Reliability Growth Models", Int. J. Adv. Res. Comput. Sci., vol. 2, no. 1, pp. 99–104, 2011. [8] M. Razeef and M. Nazir, "Software reliability growth models: Overview and applications", Journal of Emerging Trends in Computing and Information Sciences, vol. 3, no. 9, 2012. [9] J. Xavier, A. Macêdo, R. Matias, and L. Borges, "A survey on research in software reliability engineering in the last decade", Proceedings of the 29th Annual ACM Symposium on Applied Computing - SAC ’14, pp. 1190–1191, Gyeongju, Republic of Korea — March 24 - 28, 2014, DOI:10.1145/2554850.2555161. [10] W. Wu, K. Han, C. He, and S. Wu, A dynamically-weighted software reliability combination model, International Conference on Quality, Reliability, Risk, Maintenance, and Safety Engineering, pp. 148–151, 2012. [11] M. I. M. Saidi, M. A. Isa, D. N. A. Jawawi, and L. F. Ong, "A survey of software reliability growth model selection methods for improving reliability prediction accuracy", Proccedings of 9th Malaysian Software Engineering Conference (MySEC), pp. 200-205, 2015. [12] R. C. Cheung, "A User-Oriented Software Reliability Model", IEEE Transactions on Software Engineering, vol. SE-6 , no. 2, pp. 118 - 125, 1980. [13] S. Farooq and S. Quadri, "Evaluating Effectiveness of Software Testing Techniques With Emphasis on Enhancing Software Reliability", Journal of Emerging Trends in Computing and Information Sciences, ISSN 2079-8407, vol. 2, no. 12, pp. 740–745, Dec. 2011. [14] P. Frankl, D. Hamlet, B. Littlewood, and L. Strigini, "Choosing a Testing Method to Deliver Reliability", Proceedings of the (19th) International Conference on Software Engineering, pp.68-78, 1997. [15] R. Lai and M. Garg, "A detailed study of NHPP software reliability models", Journal of Software, vol. 7, no. 6, 2012. [16] A. C. Spataru, "Agile development methods for mobile applications", Master of Science Thesis, School of Informatics University of Edinburgh, 2010. [17] M. M. Kirmani, "Agile Development Method for Mobile applications: A Study", International Journal of Advanced Research in Computer Science, vol. 8, no. 5, pp. 1421–1425, 2017. [18] A. Sands and V. Tseng, Smart Phone reliability: Apple iPhones with fewest failures, and major Android manufacturers not far behind, https : //www.wired.com/imagesblogs/gadgetlab/2010/11/SquareT radeC ellP honeC omparisonS tudy.pdf [19] Y. K. Malaiya and J. Denton, "What do the software reliability growth model parameters represent?", Proceedings of the Eighth International Symposium on Software Reliability Engineering, pp. 124–135, 1997. [20] John D. Musa, "Software Reliability Measurement", Journal of Systems and Software,vol. 1, pp. 223-241, 1979-1980. 54 Journal of Science and Technique - Le Quy Don Technical University - No. 199 (6-2019) [21] Man D. Nguyen, Thang Q. Huynh and Hung T. Nguyen,Improve the Performance of Mobile Applications based on Code Optimization Techniques using PMD and Android Lint, Proceedings of 5th International Symposium, IUKM 2016, Da Nang, Vietnam, November 30 – December 2, 2016, pp. 343-356, LNAI 9978, Springer International Publishing AG 2016. DOI : 10.1007/978 − 3 − 319 − 49046 − 529, ISBN978 − 3 − 319 − 49046 − 5. [22] Huỳnh Quyết Thắng, Nguyễn Đức Mận, Đỗ Lê Nam, "Một số kỹ thuật tối ưu và kiểm thử hiệu năng áp dụng trong phát triển ứng dụng trên Android", Kỷ yếu Hội nghị Quốc gia lần thứ VII về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR), trang 365-375, ISBN: 978-604-913-300-8, 2014. [23] Nguyễn Đức Mận, Huỳnh Quyết Thắng, Trần Xuân Hoàng, "Một số kỹ thuật áp dụng trong mô hình kiểm thử mã nguồn cho các phương thức của lớp trong Java", Kỷ yếu Hội thảo quốc gia lần thứ XVII - Một số vấn đề chọn lọc của Công nghệ thông tin và truyền thông, trang 167-174, ISBN 978-604-67-0426-3, 2014. [24] Huỳnh Quyết Thắng, Nguyễn Đức Mận, Nguyễn Thị Bảo Trang, Nguyễn Thị Anh Đào, "Kỹ thuật kiểm thử hồi quy hiệu quả cho phát triển ứng dụng di động", Kỷ yếu Hội nghị khoa học công nghệ quốc gia lần thứ IX về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR), trang 255-265, ISBN 978-604-913-472-2, 2016. [25] Hoang-Nhat Do, Duc-Man Nguyen, Quyet-Thang Huynh, Nhu-Hang Ha, "One2Explore - Graph Builder for Exploratory Testing from a Novel Approach", New Trends in Intelligent Software Methodologies, Tools and Techniques, vol. 303, pp. 637 - 649 (SOMET 2018), DOI: 10.3233/978-1-61499-900-3-637, 2018. [26] Duc-Man Nguyen, Hoang-Nhat Do, Quyet-Thang Huynh, Nhu-Hang Ha, "Shinobi: A Novel Approach for Context-Driven Testing (CDT) using Heuristics and Machine Learning for Web Applications", INISCOM 2018 - 4th EAI International Conference on Industrial Networks and Intelligent Systems, 2018. [27] L. A. Oubelli, "Test Cases Evolution of Mobile Applications", Master Thesis, Universite de Nantes, https://hal.archivesouvertes.fr/hal-01271467, 2016. [28] Mobile Labs, Enterprise Mobile App Development and Testing: Challenges to Watch Out for In 2017, Kindle Edition, Amazon Digital Services LLC, 2017. [29] H. Kim, H. Yeo, H. Hwang, C. Ramos, and G. Marreiros, "Effective Mobile Applications Testing Strategies", Advanced Software Engineering and its Application Conference, 2016. [30] C. Johnson, "SPEST - A Tool for Specification-Based Testing", Master Thesis, Faculty of California Polytechnic State University, 2016. [31] U. Badhera, G. N. Purohit, and D. Biswas, "Test Case Prioritization Algorithm Based Upon Modified Code Coverage in Regression Testing", International Journal of Software Engineering and Applications, vol. 3, no. 6, pp. 29–37, 2012. [32] Assessing Product Reliability: (Last Access on Dec 1, 2018) [33] Reliability Analysis Center, Introduction to Software Reliability: A state of the Art Review, Reliability Analysis Center (RAC), 1996. [34] C. Wohlin, M. Host,¨ P. Runeson and A. Wesslén, Software Reliability, Encyclopedia of Physical Sciences and Technology (third edition), vol. 15, pp. 25-39, 2001. [35] Michael R. Lyu, Handbook of Software Reliability Engineering, IEEE Computer Society Press and McGraw- Hill Book Company, 1995 [36] A. V. Aho, M. S. Lam, R. Sethi, and J. D. Ullman,Compilers: principles, techniques and tools. Pearson Education India, 2nd Edition, 2007. [37] https://www.stonetemple.com/mobile-vs-desktop-usage-mobile-grows-but-desktop-still-a-big-player/ (Last Ac- cess on Dec 1, 2018) [38] https://www.smartinsights.com/mobile-marketing/mobile-marketing-analytics/mobile-marketing-statistics/. (Last Access on Dec 1, 2018) [39] Z. Jelinski and P. B. Moranda, "Software Reliability Research", Statistical Computer Performance Evaluation, Academic Press, pp. 465-484, 1972. [40] X. Chengjie, "Availability and Reliability Analysis of Computer Software Systems Considering Maintenance and Security Issues", Doctoral dissertation, National University of Singapore, 2011. [41] John D. Musa, Software Reliability Engineering: More Reliable Software Faster and Cheaper, Authorhouse Publisher, 2004, ISBN:1418493880. [42] G. Gayathry1 and R. Thirumalai, "Classification of Software Reliability Models to Improve the Reliability of Software", Indian Journal of Science and Technology, vol. 8, no. 29, Nov. 2015. [43] Agile Alliance. org/.(Last Access on Dec 1, 2018) [44] S. Rawat, R.S. Rawat, and M. Ram, "A review on software reliability: Metrics, models and tools", Mathematics in Engineering, Science and Aerospace, vol. 6, no. 2, pp. 135–156, 2015. 55 Section on Information and Communication Technology (ICT) - No. 13 (6-2019) [45] H. Pham and X. Zhang, "NHPP software reliability and cost models with testing coverage", European Journal of Operational Research, vol. 145, no. 2, pp. 443–454, 2003. [46] T. Dingsøyr and C. Lassenius, "Emerging themes in agile software development: Introduction to the special section on continuous value delivery", Information and Software Technology, vol. 77, no. 1, pp. 56-60, 2016. [47] Nguyen Hung-Cuong, Huynh Quyet-Thang and Le Hai-Trieu, "Different Ranking of NHPP Software Reliability Growth Models with Generalized Measure and Predictability", International Journal of Applied Information Systems,vol. 7, no. 11, Nov. 2014. [48] Nguyen Hung-Cuong, Huynh Quyet-Thang. "New NHPP SRM Based On Generalized S-Shaped Fault- Detection Rate Function", International Conference on Nature of Computation and Communication, 2014. [49] Duc-Man Nguyen, Nhu-Hang Ha, Quyet-Thang Huynh, Thanh-Hung Nguyen, "Automated Test Input Genera- tion Via Model Inference Based on User Story And Acceptance Criteria for Mobile Application Development", Data Technologies and Applications Journal, (final review). [50] M. Zhu and P. Hoang, "A software reliability model with time-dependent fault detection and fault removal", Vietnam Journal of Computer Science, vol. 3, no. 2, pp. 71-79, 2016. [51] SRATS2010, https://github.com/okamumu/SRATS2010, Accessed date April 11, 2019. Ngày nhận bài 02-1-2019; Ngày chấp nhận đăng 14-5-2019. Nguyễn Thanh Hùng là nghiên cứu viên / giảng viên tại Viện Công nghệ Thông tin và Truyền thông, Đại học Bách Khoa Hà Nội. Ông đã nhận bằng tiến sĩ Khoa học máy tính từ Học viện Công nghệ Grenoble. Hướng nghiên cứu của ông tập trung vào mô hình hóa và xác minh các hệ thống dựa trên thành phần, phân tích chương trình, phương pháp tiên tiến trong phát triển phần mềm. Nguyễn Đức Mận là nghiên cứu sinh tại Đại học Duy Tân. Chuyên ngành của ông là về Kỹ thuật phần mềm và Quản lý hệ thống thông tin. Ông có hơn 15 năm kinh nghiệm trong việc phát triển và cố vấn phần mềm cho các dự án Capstone. Hướng nghiên cứu là kiểm thử phần mềm, kiểm thử ứng dụng di động và xử lý dữ liệu. 56 Journal of Science and Technique - Le Quy Don Technical University - No. 199 (6-2019) Huỳnh Quyết Thắng đang làm việc tại Viện Công nghệ Thông tin và Truyền thông, Đại học Bách Khoa Hà Nội với chức danh Phó Giáo sư. Ông nhận bằng tiến sĩ Khoa học Máy tính từ Đại học Kỹ thuật Varna, Bulgaria. Hướng nghiên cứu của ông liên quan đến: Mã hóa an toàn, Phân tích chương trình, Phương pháp nâng cao trong phát triển phần mềm; Các kỹ thuật và mô hình toán học trong Dự đoán / Đo lường chất lượng phần mềm, Đánh giá chi phí phần mềm. EVALUATION APPLYING SOME TESTING TECHNIQUES TO IMPROVE RELIABILITY FOR MOBILE APPLICATIONS IN AGILE DEVELOPMENT ENVIRONMENT Abstract The mobile application ecosystem has grown very fast with millions of applications and hundreds of thousands of developers in recent years. In the competitive trend, for mobile application products to be trusted, developers need to have the techniques, methods, and tools to (i) improve the effectiveness of testing in the process of development and deter- mine potential failures before application is released, (ii) evaluate software reliability from experimental data of phases in software product development process, based on evaluation techniques to calculate the software reliability measurement value and (iii) performance used in different conditions in practice. In this study, we used the reliability growth model NHPP (Non-Homogeneous Poisson Process) to evaluate and determine the reliability of mobile applications through the application of techniques and methods. Automated testing and testing solutions have been published in our previous studies such as (1) source code optimization techniques, (2) One2explore context-driven testing, (3) Heuristics and Machine learning applications in testing, (4) automated test generation based on user stories and acceptance criteria. Research and experimental results evaluated on two real projects and tested on some Android applications from FOSS source code repository for positive results that can help Android developers improve quality, improve reliability and performance of mobile applications in the agile and competitive development environment. 57
File đính kèm:
- thu_nghiem_danh_gia_ap_dung_mot_so_ky_thuat_kiem_thu_de_nang.pdf