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

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 trang 1

Trang 1

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 trang 2

Trang 2

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 trang 3

Trang 3

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 trang 4

Trang 4

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 trang 5

Trang 5

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 trang 6

Trang 6

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 trang 7

Trang 7

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 trang 8

Trang 8

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 trang 9

Trang 9

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 trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 23 trang xuanhieu 1100
Bạn đang xem 10 trang mẫu của 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", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

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

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:

  • pdfthu_nghiem_danh_gia_ap_dung_mot_so_ky_thuat_kiem_thu_de_nang.pdf