Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 143 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
143
Dung lượng
5,87 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DUY TÂN - NGUYỄN ĐỨC MẬN NGHIÊN CỨU PHÁT TRIỂN KỸ THUẬT VÀ GIẢI PHÁP KIỂM THỬ ỨNG DỤNG DI ĐỘNG MÃ SỐ CHUYÊN NGÀNH: 9480101 LUẬN ÁN TIẾN SĨ KHOA HỌC MÁY TÍNH Đà Nẵng, 12-2019 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DUY TÂN - NGUYỄN ĐỨC MẬN NGHIÊN CỨU PHÁT TRIỂN KỸ THUẬT VÀ GIẢI PHÁP KIỂM THỬ ỨNG DỤNG DI ĐỘNG MÃ SỐ CHUYÊN NGÀNH: 9480101 CÁN BỘ HƯỚNG DẪN KHOA HỌC: PGS, TS HUỲNH QUYẾT THẮNG TS NGUYỄN THANH HÙNG LUẬN ÁN TIẾN SĨ KHOA HỌC MÁY TÍNH Đà Nẵng 12-2019 LỜI CAM ĐOAN Tơi xin cam đoan tất nội dung luận án "Nghiên cứu phát triển kỹ thuật giải pháp kiểm thử ứng dụng di động" cơng trình nghiên cứu riêng Các số liệu, kết luận án trung thực, trích dẫn đầy đủ chưa cơng bố cơng trình khác Đà Nẵng, ngày 15 tháng 12 năm 2019 Người hướng dẫn khoa học Tác giả luận án PGS, TS Huỳnh Quyết Thắng Nguyễn Đức Mận i LỜI CẢM ƠN Lời đầu tiên, xin chân thành cảm ơn Thầy hướng dẫn PGS, TS Huỳnh Quyết Thắng TS Nguyễn Thanh Hùng người định hướng, dẫn, hướng dẫn tận tình tồn q trình thực nghiên cứu luận án Thầy đồng hành, động viên, khích lệ kịp thời ln chu đáo, nghiêm túc công tác nghiên cứu, điều giúp cho trưởng thành đường học thuật, nghiên cứu khoa học thân Tôi xin gửi lời cảm ơn đến nhà khoa học, thầy cô phản biện, thầy cô hội đồng cấp nhà khoa học độc lập có đóng góp, góp ý chi tiết giúp tơi hồn thành tốt luận án Tôi xin chân thành cảm ơn thầy cô lãnh đạo cán khoa học Khoa Sau đại học trường Đại học Duy Tân, đặc biệt giúp đỡ PGS, TS Nguyễn Gia Như trình học tập nghiên cứu Khoa Sự hỗ trợ người giúp cho trình học tập nghiên cứu tơi có nhiều thuận lợi Tôi xin gửi lời cảm ơn đến Hội đồng Quản trị Ban Giám Hiệu Trường Đại học Duy Tân, tập thể cán giảng viên Khoa Đào tạo Quốc tế hỗ trợ, tạo điều kiện cho tơi q trình làm việc học tập, nghiên cứu để tơi đạt kết ngày hôm Tôi xin cảm ơn Cơng ty MeU-Solutions nhóm dự án cơng ty, đặc biệt cảm ơn Anh Đỗ Hoàng Nhật, CEO công ty MeU Solutions tạo điều kiện, hỗ trợ nghiên cứu cho nơi thực thử nghiệm nghiên cứu luận án Cảm ơn thành viên nhóm nghiên cứu tham gia cơng trình cơng bố cho phép sử dụng kết nghiên cứu luận án Cuối cùng, tơi xin gửi lời cảm ơn đến gia đình, người thân yêu bạn bè đồng hành, chia sẻ giúp đỡ nhiều tình cảm vật chất trình học tập, nghiên cứu Đặc biệt gia đình tơi, chỗ dựa vững mặt, động lực để giúp hoàn thành tốt luận án Mặc dù thân tác giả có nhiều cố gắng, nỗ lực trình làm việc thời gian điều kiện nghiên cứu cịn nhiều hạn chế, luận án cịn nhiều thiếu sót Tác giả luận án mong nhận đóng góp ý kiến người nhằm giúp tơi hồn thiện nội dung khoa học luận án hướng mở rộng sau đường khoa học thân Tác giả luận án Nguyễn Đức Mận ii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii DANH MỤC CÁC HÌNH TRONG LUẬN ÁN vi DANH MỤC CÁC BẢNG TRONG LUẬN ÁN viii DANH MỤC THUẬT NGỮ, TỪ VIẾT TẮT x MỞ ĐẦU 1 Giới thiệu .1 Mục tiêu nghiên cứu luận án Phương pháp nghiên cứu .7 Đối tượng nghiên cứu phạm vi thực Cấu trúc luận án Các đóng góp khoa học luận án 10 CHƯƠNG TỔNG QUAN KIỂM THỬ ỨNG DỤNG 11 DI ĐỘNG VÀ PHƯƠNG PHÁP PHÁT TRIỂN LINH HOẠT 11 1.1 Giới thiệu tổng quan 11 1.2 Phân loại ứng dụng di động 13 1.3 Kiểm thử ứng dụng di động 15 1.3.1 Đặc điểm ứng dụng di động .16 1.3.2.Tính đặc thù ứng dụng di động ảnh hưởng đến việc kiểm thử phần mềm 17 1.4 Phương pháp phát triển linh hoạt 18 1.4.1 Phát triển hướng kiểm thử TDD .19 1.4.2 Phát triển hướng hành vi BDD .20 1.4.3 Kiểm thử môi trường phát triển Agile Scrum .22 1.5 Các thách thức kiểm thử ứng dụng di động 22 1.6 Kết chương 26 CHƯƠNG CÁC KỸ THUẬT TỐI ƯU HĨA, TÁI CẤU TRÚC VÀ PHÂN TÍCH MÃ NGUỒN CỦA ỨNG DỤNG DI ĐỘNG 28 2.1 Đặt vấn đề 28 2.2 Kỹ thuật phân tích tái cấu trúc mã nguồn để nâng cao hiệu ứng dụng di động dựa PMD Android lint 30 2.2.1 PMD Android lint 30 2.2.2 Kiểm thử hiệu 32 2.2.3 Các kỹ thuật tối ưu phát triển ứng dụng Android 33 2.2.3.1 Tối ưu mã nguồn java 33 2.2.3.2 Sử dụng nhớ hiệu 36 2.2.3.3 Đa luồng đồng hóa 37 2.2.3.4 Tối ưu hóa mã nguồn sử dụng JNI 38 2.2.4 Phân tích tái cấu trúc mã nguồn dựa PMD Android lint .39 2.2.4.1 Đề xuất kỹ thuật phân tích tái cấu trúc mã nguồn PMDlint 39 2.2.4.2 Sử dụng luật phân tích mã nguồn .41 2.2.4.3 Sử dụng luật thay đổi mã nguồn .41 2.2.4.4 Chiến lược áp dụng luật phân tích thay đổi mã nguồn 42 2.2.4.5 Cài đặt luật phân tích thay đổi mã nguồn 43 iii 2.2.4.6 Kết thử nghiệm 45 2.3 Kỹ thuật phân tích mã nguồn tìm lỗi tiềm ẩn cho phương thức lớp Java 48 2.3.1 Đề xuất mơ hình phân tích mã nguồn kiểm thử hộp trắng 48 2.3.2 Biểu đồ cấu trúc điều khiển 49 2.3.3 Mơ hình điều kiện 52 2.3.4 Sinh liệu kiểm thử 53 2.3.5 Thực trình kiểm thử 54 2.3.6 Phân tích kết kiểm thử .55 2.3.7 Phân loại lựa chọn liệu kiểm thử 55 2.3.8 Kết cài đặt thử nghiệm 57 2.4 Kết chương 61 CHƯƠNG CÁC KỸ THUẬT KIỂM THỬ VÀ XÂY DỰNG GIẢI PHÁP TÍCH HỢP TRONG MÔI TRƯỜNG PHÁT TRIỂN LINH HOẠT .62 3.1 Đặt vấn đề 62 3.2 Kỹ thuật sinh ca kiểm thử liệu dựa yêu cầu người dùng điều kiện chấp nhận 65 3.2.1 Một số thuật ngữ liên quan .65 3.2.2 Đề xuất tiếp cận sinh trường hợp kiểm thử liệu kiểm thử 67 3.2.2.1 Xây dựng giải pháp AgileUATM .67 3.2.2.2 Bài toán thực nghiệm cho phương pháp đề xuất 77 3.2.2.3 Phân tích liệu thực nghiệm so sánh hiệu giải pháp AgileUATM 82 3.3 Phương pháp ứng dụng học máy đồ thị hóa kết kiểm thử 87 3.3.1 Đồ thị hóa hoạt động kết kiểm thử 87 3.3.1.1 Đề xuất cách tiếp cận 87 3.3.1.2 Chi tiết kỹ thuật xây dựng đồ thị Graph .89 3.3.1.3 Kết thực nghiệm 90 3.3.1.4 Một số đánh giá giải pháp 94 3.3.2 Phương pháp ứng dụng học máy cho kiểm thử ứng dụng di động 95 3.3.2.1 Đề xuất cách tiếp cận 95 3.3.2.2 Xây dựng huấn luyện phân loại nhận diện đối tượng .97 3.3.2.3 Xây dựng thư viện heuristics .99 3.3.2.4 Kiến trúc mức tổng quát Shinobi 100 3.3.2.5 Phân tích kết thực nghiệm 101 3.3.2.6 Đánh giá kết .104 + 3.4 Giải pháp AgileScrum tích hợp kỹ thuật phương pháp PMDLint, UniTest, AgileUATM, One2Explore Shinobi 104 + 3.4.1 Đề xuất giải pháp tích hợp AgileScrum 105 3.4.2 Cách tiếp cận thực nghiệm đánh giá kỹ thuật, phương pháp qui trình + AgileScrum .107 3.4.2.1 Mơ hình tăng trưởng độ tin cậy phần mềm .107 3.4.2.2 Mơ hình hàm mũ Poision không đồng 108 3.4.2.3 Các bước tiến hành thực nghiệm đánh giá 110 3.4.2.4 Kết thực nghiệm đánh giá 112 3.5 Kết chương 116 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 118 Kết luận 118 Hướng phát triển luận án .121 iv DANH SÁCH CÁC CƠNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ LIÊN QUAN ĐẾN LUẬN ÁN 123 TÀI LIỆU THAM KHẢO 125 v DANH MỤC CÁC HÌNH TRONG LUẬN ÁN Hình 1.1 Thị trường ứng dụng điện thoại thơng minh [79] 12 Hình 1.2 Quy trình phát triển TDD [7] 19 Hình 1.3 Mơ hình BDD – TDD Agile mơ Paul Littlebury [12] .21 Hình 2.1 Kiến trúc PMDLint đề xuất luận án 40 Hình 2.2 Cấu hình điện thoại a) Motorola moto X, b) HTC One XL .46 Hình 2.3 Giao diện thực phân tích tái cấu trúc mã nguồn 47 Hình 2.4 Mơ hình tổng quan kiểm thử hộp trắng mã nguồn phương thức lớp Java 49 Hình 2.5 Mã nguồn phương thức sumAbsolute 50 Hình 2.6 Biểu đồ luồng điều khiển phương thức sumAbsolute 51 Hình 2.7 Mơ hình hóa lại biểu đồ cấu trúc điều khiển phương thức sumAbsolute 51 Hình 2.8 Mơ hình kỹ thuật phân loại, lựa chọn liệu kiểm thử 56 Hình 2.9 Một số hình kết thử nghiệm 60 Hình 3.1 Mơ hình hoạt động giải pháp AgileUATM đề xuất 68 Hình 3.2 Xây dựng cú pháp định nghĩa cho ngôn ngữ myDSL 71 Hình 3.3 Ví dụ đặc tả myDSL cho tính đăng ký tài khoản Register 72 Hình 3.4 Workflow sinh test script cho Unit test (BDD) 75 Hình 3.5 Màn hình cơng cụ sinh BDD Testscript .76 Hình 3.6 Giao diện ứng dụng ACM .77 Hình 3.7 Đặc tả hình thức cho US Register gọi myDSL.agt 81 Hình 3.8 Kết sinh Unit test cho Register class sử dụng tính sinh kịch BDD 82 Hình 3.9 Kết so sánh hai lần thực kiểm tra 91 Hình 3.10 Đồ thị tổng hợp kết thực thi Master Graph 92 Hình 3.11 Một kết so sánh thực thi thực thi trước (Master) 93 Hình 3.12 Shinobi framework 96 Hình 3.13 Faster R-CNN [107,118]: 98 Hình 3.14 (a) Độ xác với giá trị loss mức 0,8, (b) Độ xác với giá trị loss mức 0,02 .99 Hình 3.15 Kiến trúc mức tổng quát Shinobi 100 Hình 3.16 Kết nhận diện đối tượng web từ liệu kiểm thử 102 vi Hình 3.17 Shinobi nhận diện web controls không tương tác 102 Hình 3.18 Tất kiểu đối tượng điều khiển nhận diện sử dụng heuristic data attack để đề xuất giá trị thích hợp 103 Hình 3.19 Kết nhận diện liệu kiểm thử nhập vào khơng có ý nghĩa 103 Hình 3.20 Qui trình phát triển Scrum tích hợp kỹ thuật kiểm thử tối ưu hóa mã + nguồn AgileScrum 106 Hình 3.21 Qui trình thực đánh giá độ tin cậy 111 Hình 3.22 (a) Độ tin cậy sản phẩm -đội A (b) Độ tin cậy sản phẩm -đội B 115 Hình 3.23 (a) Số lượng lỗi tích lũy phát theo thời gian -đội A (b) đội B 115 Hình 3.23 (a) Tỷ lệ lỗi -đội A (b) Tỷ lệ lỗi -đội B 115 vii DANH MỤC CÁC BẢNG TRONG LUẬN ÁN Bảng 1.1 So sánh kỹ thuật, công nghệ phát triển loại ứng dụng di động .14 Bảng 1.2 Phân loại ứng dụng di động theo đặc thù riêng kiểm thử tương ứng [74] 17 Bảng 2.1 So sánh thời gian thực sau tinh chỉnh mã nguồn [69] 34 Bảng 2.2: Danh sách luật thực phạm vi luận án 43 Bảng 2.3: Thống kê % sử dụng CPU kiểm thử Motorola moto X 46 Bảng 2.4: Thống kê % sử dụng CPU kiểm thử HTC One XL .46 Bảng 2.5 – Thống kê % sử dụng CPU kết kiểm thử HTC One XL cho luật 47 Bảng 2.6: Bảng định phân loại liệu kiểm thử dựa vào kết kiểm tra điều kiện mơ hình 56 Bảng 2.7: Kết kiểm thử phương thức lớp UtilityTasks.java 58 Bảng 2.8: Tổng hợp kết kiểm thử tất phương thức lớp UtilityTasks.java 59 Bảng 3.1 Ví dụ mẫu mơ tả user story 69 Bảng 3.2 Ví dụ đặc tả tiêu chuẩn chấp nhận cho tính Register 69 Bảng 3.3 Mô tả cú pháp ngôn ngữ đặc tả myDSL 71 Bảng 3.4 Ví dụ mơ tả cú pháp chuyển đổi từ MyDSL sang Z3 72 Bảng 3.5 Ví dụ test case / test input sinh cho tính Register 73 Bảng 3.6 Các chức công cụ AgileUATM 76 Bảng 3.7 Danh sách user stories ứng dụng ACM 78 Bảng 3.8 Đặc tả điều kiện chấp nhận cho chức Register (US01) .80 Bảng 3.9 Kết thực theo phương pháp kiểm thử truyền thống 83 Bảng 3.10 Kết thực áp dụng giải pháp AgileUATM 83 Bảng 3.11 Danh sách nhóm dự án mời tham gia thực nghiệm giải pháp đề xuất luận án 84 Bảng 3.12 Kết thực nghiệm phương pháp đề xuất AgileUATM 85 Bảng 3.13 Thông tin đối tượng người dùng dự án lấy ý kiến phản hồi (360-degree feedbacks) 93 Bảng 3.14 Kết phản hồi đối tượng (360-degree feedbacks) testers, trưởng nhóm kiểm thử khách hàng 94 Bảng 3.15 Kết thực áp dụng kỹ thuật PMDlint UniTest cho dự án mã nguồn FOSS dự án nhóm nghiên cứu thực .112 viii đóng góp khoa học thứ hai luận án: Xây dựng thử nghiệm kỹ thuật kiểm thử cho phát triển ứng dụng di động: sinh ca kiểm thử liệu kiểm thử tự động dựa câu chuyện người dùng tiêu chí chấp nhận; sử dụng phương pháp đồ hóa hoạt động kiểm thử thăm dò (Graph exploratory), phương pháp heuristics học + máy kiểm thử hướng ngữ cảnh Đề xuất giải pháp AgileScrum tích hợp kỹ thuật mơi trường phát triển Agile Scrum Trình bày Chương có báo liên quan: CT4, CT5, CT6, CT7, có 02 cơng trình Hội nghị Scopus 01 Tạp chí ISI (Q3) 117 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Luận án trình bày với cấu trúc 03 chương bao gồm nội dung Mỗi nội dung trình bày chi tiết đóng góp giá trị gia tăng cho lĩnh vực kiểm thử phần mềm nói chung lĩnh vực kiểm thử phần mềm cho ứng dụng di động nói riêng mặt khoa học thực tiễn Nội dung thứ nhất, luận án trình bày kỹ thuật tối ưu hóa, tái cấu trúc phân tích mã nguồn cho ứng dụng di động Nội dung thể 02 kết kỹ thuật PMDlint UniTest (1) Kỹ thuật PMDLint kỹ thuật tối ưu mã nguồn, phân tích mã nguồn tái cấu trúc mã nguồn ứng dụng di động Android dựa PMD Android lint PMDLint xây dựng gồm 49 qui tắc (được gọi luật) để hỗ trợ kỹ sư phát triển kỹ sư kiểm thử thực việc phân tích mã nguồn, tối ưu tái cấu trúc mã nguồn nhằm giảm việc tiêu thụ lượng ứng dụng di động, nâng cao hiệu cho ứng dụng di động Đi với kỹ thuật đề xuất công cụ plug-in PMDLint môi trường phát triển tích hợp IDE Java (2) Kỹ thuật UniTest kỹ thuật kiểm thử hộp trắng đề xuất phát triển nhằm giúp kỹ sư phát triển kỹ sư kiểm thử phân tích mã nguồn để mã nguồn có lỗi lỗi gì, nằm đâu mã nguồn, khơng khoanh vùng vị trí lỗi xác loại lỗi chương trình thực thi với liệu kiểm thử cụ thể Việc phân tích thực thi kiểm thử cung cấp tất thông tin chi tiết mức độ bao phủ mã nguồn, bao phủ nhánh, bao phủ đường, thông tin lỗi, thông tin liệu vào giúp phát lỗi thơng tin liệu vào mà chương trình chưa xử lý chặt nhằm giúp người lập trình có đủ thơng tin để tìm cách sửa lại phần mã nguồn chưa hay chưa hiệu quả, thông qua tăng độ xác, độ tin cậy hiệu chương trình viết Cơng cụ kèm với kỹ thuật gọi UniTest Nội dung thứ thể đóng góp khoa học thứ luận án là: Xây dựng thử nghiệm kỹ thuật tối ưu tái cấu trúc mã nguồn nhằm nâng cao 118 hiệu cho ứng dụng di động sử dụng nhớ hiệu quả, đa luồng đồng hóa, xây dựng luật sử dụng Programming Mistake Detector Android Lint để tối ưu mã nguồn cho tiết kiệm lượng, nâng cao hiệu cho ứng dụng; Xây dựng thử nghiệm mơ hình kiểm thử hộp trắng cho phương thức lớp tìm lỗi tiềm ẩn nhằm nâng cao chất lượng mã nguồn độ tin cậy cho ứng dụng Đóng góp cơng bố 03 báo khoa học nước 01 báo hội nghị quốc tế Scopus Nội dung thứ hai, luận án trình bày kỹ thuật, phương pháp kiểm thử ứng dụng di động giải pháp tích hợp kỹ thuật, phương pháp kiểm thử qui trình phát triển linh hoạt Agile Scrum Nội dung thể qua 03 kết kỹ thuật AgileUATM, phương pháp One2Explore & Shinobi giải pháp tích hợp + AgileScrum (1) AgileUATM kỹ thuật sinh trường hợp kiểm thử liệu kiểm thử tự động dựa câu chuyện người dùng điều kiện chấp nhận môi trường phát triển linh hoạt Theo cách tiếp cận đề xuất, ngôn ngữ tự nhiên người dùng, chiến lược tiếp cận heuristics chuyển đổi linh hoạt sang ngơn ngữ hình thức từ sử dụng Z3 SMT Solver để thực tìm kết Có kịch kiểm thử liệu kiểm thử giúp cho kỹ sư phát triển kiểm thử sử dụng vào mục đích, giai đoạn họ muốn cho chức năng, tính sản phẩm Cơng cụ AgileUATM có nhiều ưu điểm liên quan đến việc tạo liệu, tối ưu hóa theo yêu cầu kỹ sư kiểm thử kỹ sư phát triển Điều đáp ứng vấn đề thực kiểm thử sớm, tiết kiệm thời gian công sức xây dựng trường hợp kiểm thử liệu kiểm thử, hỗ trợ cho kiểm thử tự động hướng liệu (data-driven testing) phương pháp kiểm thử hướng hành vi BDD khả bảo trì sử dụng lại cách có hiệu (2) One2Explore Shinobi phương pháp trực quan hóa hoạt động, kết kiểm thử theo phương pháp kiểm thử thăm dò phương pháp ứng dụng học máy vào nhận diện đối tượng để hỗ trợ kiểm thử ứng dụng web, ứng dụng web di động Kết nghiên cứu chứng minh việc trực quan hóa kết kiểm thử mang lại khác biệt việc áp dụng thực tiễn tốt 119 kiểm thử hướng ngữ cảnh Nghiên cứu đề xuất sử dụng đồ thị phương pháp để hiển thị hoạt động thực thi kiểm thử thơng tin có liên quan giúp nâng cao suất, hiệu kỹ thuật kiểm thử thăm dò Cùng với phương pháp đề xuất công cụ One2Explore hỗ trợ nhằm giúp cho kỹ sư kiểm thử khách hàng sử dụng kiểm thử phần mềm Kết đánh giá phản hồi từ khách hàng tiềm đội ngũ kỹ sư MeU-Solution báo cáo biểu đồ tạo One2Explore hiệu cho người quản lý kiểm thử kiểm sốt cơng việc, hoạt động kiểm thử nhóm dự án Còn phương pháp ứng dụng học máy xem PoC để chứng minh ý tưởng sử dụng AI-ML người trợ lý kiểm thử ảo (Virtual tester assistant) Phương pháp tiếp cận đề xuất công cụ Shinobi giúp cải thiện chất lượng kiểm thử sản phẩm “người huấn luyện kỹ sư kiểm thử trở thành kỹ sư kiểm thử thực thụ” Ở kết nghiên cứu hoàn thành heuristics nhấn mạnh vào yếu tố UI ứng dụng web web di động Shinobi sử dụng ML để làm cho hoạt động kiểm thử thông minh từ việc học hỏi kinh nghiệm từ người kiểm thử theo thời gian ứng dụng Shinobi sử dụng Tensorflow Faster R-CNN để phát điều khiển kiểu chúng, sử dụng thư viện heuristic để đề xuất ý tưởng kiểm thử cho người kiểm thử, nhận diện liệu nhập vào có ý nghĩa hay khơng; nắm bắt tìm hiểu tất lần thực kiểm thử để đề xuất ý tưởng kiểm thử; báo cáo kết thực kiểm thử cách trực quan + (3) AgileScrum giải pháp tích hợp kỹ thuật, phương pháp nghiên cứu luận án PMDLint, UniTest, AgileUATM, One2Explore Shinobi vào qui trình phát triển Agile Scrum phát triển ứng dụng nói chung ứng dụng di động nói riêng Kỹ thuật AgileUATM ứng dụng vào sau giai đoạn phân tích yêu cầu (Sprint backlog), sử dụng kết sinh trường hợp kiểm thử, liệu kiểm thử cho giai đoạn lập trình giai đoạn kiểm thử chấp nhận (dùng cho data-driven testing phương pháp kiểm thử BDD) PMDLint UniTest áp dụng tích hợp vào giai đoạn lập trình nhằm tối ưu mã nguồn, tìm lỗi tiềm ẩn, hỗ trợ cho kỹ sư phát triển nâng cao chất lượng mã nguồn, tối 120 ưu hóa kiểm thử đơn vị One2Explore Shinobi đề xuất sử dụng giai đoạn kiểm thử chấp nhận, kỹ sư kiểm thử người dùng sử dụng để kiểm thử sản phẩm mức hệ thống Giải pháp tích hợp AgileScrum + thực nghiệm đánh giá thông qua 02 dự án thực tế 09 dự án từ kho mã nguồn FOSS phương pháp đo độ tin cậy phần mềm thông qua mô hình tăng trưởng độ tin cậy phần mềm NHPP hàm mũ Kết đạt có giá trị khả thi, giúp cho nhà phát triển ứng dụng Android cải tiến chất lượng, nâng cao độ tin cậy hiệu phát triển ứng dụng di động môi trường phát triển linh hoạt Kết nội dung thứ hai thể đóng góp khoa học thứ hai luận án là: Xây dựng thử nghiệm kỹ thuật kiểm thử cho phát triển ứng dụng di động: sinh ca kiểm thử liệu kiểm thử tự động dựa câu chuyện người dùng tiêu chí chấp nhận; sử dụng phương pháp đồ thị hóa hoạt động kiểm thử thăm dò, phương pháp heuristics học máy kiểm thử hướng ngữ cảnh Đề xuất giải + pháp AgileScrum tích hợp kỹ thuật mơi trường phát triển Agile Scrum Các kết nội dung nghiên cứu thứ hai công bố cơng trình khoa học CT4, CT5, CT6, CT7, có 02 cơng trình Hội nghị Scopus 01 tạp chí ISI (Q3) Bên cạnh kết đạt luận án, kết nghiên cứu luận án hạn chế, tồn kỹ thuật, phương pháp đề xuất công cụ cần có đủ thời gian thực nghiệm cho nhiều dự án thực tế khác để đánh giá toàn diện đầy đủ Các hạn chế tác giả luận án với nhóm nghiên cứu liên quan triển khai tiếp tục thực hiện, nghiên cứu nhiệm vụ cụ thể trình bày hướng phát triển Hướng phát triển luận án Phát triển công cụ plug-in hoàn chỉnh để phục vụ kiểm thử tĩnh: phân tích mã nguồn, tối ưu hóa mã để nâng cao chất lượng mã, cải thiện hiệu suất, giảm tiêu thụ lượng phát vấn đề tiềm ẩn mã nguồn để hỗ trợ nhà phát triển kiểm thử thử nghiệm ứng dụng di động 121 Tiếp tục phát triển thuật toán liên quan đến sinh ca kiểm thử liệu kiểm thử tự động, cải tiến cơng cụ AgileUATM để tích hợp IDE phát triển Java Eclipse, IntelliJ Cải tiến công cụ One2Explore để khắc phục hạn chế hiển thị liệu đồ thị cách sử dụng phương pháp phân lớp Mỗi lớp chứa loại thông tin cụ thể Dữ liệu lưu trữ nhiều định dạng: sở liệu theo dõi lỗi, tệp hình ảnh, XML CSV Đồ thị sở liệu lớn sử dụng để lưu trữ phân tích liệu để đưa khuyến nghị tốt để định phương pháp kiểm thử chất lượng kiểm thử Cải tiến hiệu suất cơng cụ Shinobi, nghiên cứu số mơ hình khác, giải thuật sử dụng để tăng tốc độ Nghiên cứu heuristic khác để vận dụng vào Shinobi nhằm bao quát khía cạnh khác SFDIPOT (Cấu trúc Chức - Dữ liệu - Giao diện - Nền tảng - Hoạt động - Thời gian) 122 DANH SÁCH CÁC CƠNG TRÌNH KHOA HỌC ĐÃ CƠNG BỐ LIÊN QUAN ĐẾN LUẬN ÁN CT7 Nguyễn Thanh Hùng, Nguyễn Đức Mận, Huỳnh Quyết Thắng (2019), 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, Section on Information and Communication Technology (ICT) - No 13, Journal of Science and Technique - Le Quy Don Technical University - No 199, ISSN 1859-0209 CT6 Duc-Man Nguyen, Nhu-Hang Ha, Quyet-Thang Huynh, Thanh-Hung Nguyen (2019), Automated Test Input Generation via Model Inference based on User Story and Acceptance Criteria for Mobile Application Development, Int'l Journal of Software Engineering and Knowledge Engineering, ISSN: 0218-1940, ISI, Q3 Accepted 05-Oct-2019 CT5 Duc-Man Nguyen, Hoang-Nhat Do, Quyet-Thang Huynh, Dinh-Thien Vo, and Nhu-Hang Ha (2019), Shinobi: A Novel Approach for Context-Driven Testing (CDT) using Heuristics and Machine Learning for Web Applications In: Duong T., Vo NS (eds) Industrial Networks and Intelligent Systems INISCOM 2018 Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering, vol 257 Springer, Cham, ISBN 978-3-030-05872-2, pp 86-102, DOI: 10.1007/978-3-030-05873-9_8, SCOPUS Indexed CT4 Hoang-Nhat Do, Duc-Man Nguyen, Quyet-Thang Huynh, Nhu-Hang Ha (2018), One2Explore - Graph Builder for Exploratory Testing from a Novel Approach, New Trends in Intelligent Software Methodologies, Tools and Techniques, Volume 303, 2018, pp 637 - 649 (SOMET 2018), DOI: 10.3233/978-1-61499-900-3-637, SCOPUS Indexed CT3 Man D Nguyen, Thang Q Huynh and Hung T Nguyen (2016), Improve the Performance of Mobile Applications based on Code Optimization Techniques using PMD and Android Lint, The International Symposium on Integrated Uncertainty in Knowledge Modeling and Decision Making (IUKM2016), Lecture Notes AI Springer-Verlag Vol.9978, pp.343-355, SCOPUS Indexed CT Nguyễn Đức Mận, Huỳnh Quyết Thắng, Trần Xuân Hồng (2015), Một số kỹ thuật áp dụng mơ hình kiểm thử mã nguồn cho phương thức lớp 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ông nghệ thông tin truyền thông - Đắk Lắk, 30-31/10/2014, trang 167174, ISBN 978-604-67-0426-3 CT Huỳnh Quyết Thắng, Nguyễn Đức Mận, Đỗ Lê Nam (2014), Một số kỹ thuật tối ưu kiểm thử hiệu áp dụng phát triển ứng dụng Android , Kỷ yếu Hội nghị Quốc gia lần thứ VII Nghiên cứu ứng dụng Công 123 nghệ thông tin (FAIR) - Thái Nguyên, ngày 19-20/6/2014, trang 365-375 ISBN: 978-604-913-300-8 124 TÀI LIỆU THAM KHẢO [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] Acceptance Test-Driven Development – ATDD, https://www.agilealliance.org/ glossary/atdd Last accessed Dec 18, 2018 A Frank Ackerman, Priscilla J Fowler, and Robert G Ebenau, "Software inspections and the industrial production of software," in Proc of a symposium on Software validation: inspection testing verification alternatives, 1984, pp 13-40 A.F Ackerman, L.S Buchwald, and F.H Lewski, "Software inspections: an Effective Verification Process," IEEE Software, 1989 M Akour, A A Al-zyoud, B Falah, S Bouriat, and K Alemerien, “Mobile Software Testing: Thoughts , Strategies , Challenges , and Experimental Study”, Int J Adv Comput Sci Appl., vol 7, no 6, pp 12-19, 2016 Amalfitano, D., A.R Fasolino, P Tramontana, and N Amatucci Considering Context Events in Event-Based Testing of Mobile Applications in Software Testing, Verification and Validation Workshops (ICSTW), 2013 IEEE Sixth International Conference on 2013 D Amalfitano, A R Fasolino, P Tramontana, B D Ta, and A M Memon, MobiGUITAR A Tool for Automated Model-Based Testing of Mobile Apps, IEEE Softw., vol 32, no 5, 2014,pp 53-59 Android Fragmentation Visualized http://opensignal.com/reports/2014/androidfragmentation/ An introduction to Test-Driven Development (TDD) – Scott W Ambler (Ambysoft Inc.) http://www.agiledata.org/essays/tdd.html Last accessed Dec 18, 2018 Boštjan Arzenšek and Marjan Heričko, “Criteria for Selecting Mobile Application Testing Tools”, Third Workshop on Software Quality Analysis, Monitoring, Improvement and Applications SQAMIA 2014, 2014 Astels, Dave Test driven development: A practical guide Prentice Hall Professional Technical Reference, 2003 Lujo Bauer , Lori Flynn, Limin J ia, Will Klieber , F red Long, Dean F Sutherland, and David Svoboda, “Mobile SCALe: Rules and Analysis for Secure Java and Android Coding”, Technical Report, CMU/SEI-2013-TR-015, ESC-TR-2013-015, 2013 BDD overview https://docs.cucumber.io/bdd/overview/ Last accessed Dec 18, 2018 BeanShell: http://www.beanshell.org Last accessed Dec 18, 2018 Behaviour-Driven Development (BDD), https://www.agilealliance.org/glossary/bdd Last accessed Dec 18, 2018 B Beizer, Software Testing Techniques, 2nd ed., New York: Van Nostrand Reinhold Co.,1990 C Bron and J Kerbosch, Algorithm 457: Finding All Cliques of an Undirected Graph, Communication of the ACM, vol 16, no 9, pp 575577, 1973 CapGemini, Sogeti and Micro Focus: World Quality Report 2017-18, 9th edn (2017) G Chen and D Kotz, “A Survey of Context-Aware Mobile Computing Research,” Hanover, NH, USA, Tech Rep., 2000 Chan, Brian, Ying Zou, Ahmed E Hassan, and Anand Sinha, Visualizing the results of field testing, In Program Comprehension (ICPC), 2010 IEEE 18th International Conference on, pp 114-123 IEEE, 2010 Chen, Jun-Cheng, Shivsubramani Krishnamoorthy, Bao N Nguyen, Praveen Vaddadi, and Ching Lik Teo, ViViz-A Visualization Tool to Support GUI Testing, 2008, 125 [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] https://pdfs.semanticscholar.org/44e0/65933201787d8ca91597fa6661d983f18e7c.pdf, last accessed date: Jun-05, 2018 M Cohn, User Stories Applied for Agile Software Development Addison Wesley, 2004 COMSCORE WHITEPAPER,The 2017 U.S Mobile App Report, https://www.comscore.com/Insights/Presentations-and-Whitepapers/2017/The-2017-USMobile-App-Report Last accessed Mar 10, 2019 Corral, Luis, Alberto Sillitti, and Giancarlo Succi "Software development processes for mobile systems: Is agile really taking over the business?." In Engineering of Mobile-Enabled Systems (MOBS), 2013 1st International Workshop on the, pp 19-24 IEEE, 2013 M Cristi and C Frydman, “Applying SMT Solvers to the Test Template Framework”, Electron Proc Theor Comput Sci., vol 80, no Mbt, 2012, pp 28-42 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, Series Volume 7, Number 11, November 2014 ISSN 2249: 0868 pp 1-6 DOI: 10.5120/ijais14-451257 Nguyen Hung-Cuong, Huynh Quyet-Thang New NHPP SRM Based On Generalized SShaped Fault-Detection Rate Function International Conference on Nature of Computation and Communication, November 24–25, 2014 Ho Chi Minh City, Vietnam Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering, Volume 144, Springer 2015, ISBN 978-3-319-15391-9, pp 121-221 DOI 10.1007/978-3-319-15392-6_21 Series ISSN 1867-8211 Marcelo d'Amorim, Carlos Pacheco, Tao Xie, Darko Marinov, Michael D Ernst, “An Empirical Comparison of Automated Generation and Classification Techniques for ObjectOriented Unit Testing,” Automated Software Enginerring, 2006 ASE ’06 21st IEEE/ACM International Conference 2006, page 59-68 Dehlinger, Josh, and Jeremy Dixon "Mobile application software engineering: Challenges and research directions." Workshop on Mobile Software Engineering Vol 2011 Eguide, T.: The Impact of Software Failure - And How Automated Testing Reduces Risks Tricentis (2017) https://www.stickyminds.com/tricentis-eguideimpact-software-failureand-how-automated-testing-reduces-risks Last accessed Dec 18, 2018 M D Ernst, J Cockrell, W G Griswold, and D Notkin, “Dynamically discovering likely program invariants to support program evolution,” IEEE Transactions on Software Engineering, 27(2):1–25, Feb 2001 A previous version appeared in ICSE ’99, Proceedings of the 21st International Conference on Software Engineering, pages 213–224, Los Angeles, CA, USA, May 19–21, 1999 Norman Fenton, James Bieman, Software Metrics: A Rigorous and Practical Approach, Third Edition, CRC Press, 2014, ISBN 9781439838235 Flora, Harleen K., and Swati V Chande "A review and anaysis on mobile application development processes using agile methodlogies." International Journal of Research in Computer Science 3, no 4, 2013 Flora, Harleen Kaur "Adopting an agile approach for the development of mobile applications." International Journal of Computer Applications (0975 – 8887)Volume 94 – No.17, May 2014.pp 43-50 M Fowler, Domain Specific language Addison-Wesley Professional, 2010 Franke, D., S Kowalewski, C Weise, and N Prakobkosol Testing Conformance of Life Cycle Dependent Properties of Mobile Applications in IEEE Fifth Int'l Conf on Software 126 [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] Testing, Verification and Validation (ICST), 2012 Franke, D., C Elsemann, and S Kowalewski Reverse Engineering and Testing Service Life Cycles of Mobile Platforms in Database and Expert Systems Applications (DEXA), 2012 23rd Int'l Workshop on 2012 Dr Garbage, “Source Code Visualizer,” http://www.drgarbage.com/sourcecodevisualizer.html Marie-Claude Gaudel, “How can Formal Specifications benefit to Software Testing?” http://tase2017.unice.fr/sites/default/files/tase2017gaudelslides.pdf Accessed Dec-10th, 2017 Global market share held by the leading smartphone operating systems in sales to end users from 1st quarter 2009 to 2nd quarter 2018, [Online] Available: https://www.statista.com/statistics/266136/global-market-share-held-by-smartphoneoperating-systems/ Accessed 10 Feb 2019 Robert Gold, “Control Flow Graphs and Code Coverage,” Int J Appl Math Comput Sci., 2010, Vol 20, No 4, 739–749 GoogleCode Android open issues, http://code.google.com/p/android/issues/list Accessed 10 Feb 2019 Hao, S., Li, D., Halfond, W.G.J., Govindan, R.: Estimating mobile application energy consumption using program analysis In: 2013 35th International Conference on Software Engineering (ICSE), pp 92–101 IEEE 2013 Hervé Guihot, “Pro Android Apps Performance Optimization”, apress, 2012 Hamsini, R., and G R Smitha "Agile Development Methodology and Testing for Mobile Applications-A Survey." International Journal of New Technology and Research ISSN:2454-4116, Volume-2, Issue-9, September 2016 Pages 98-101 Haseman, C., Creating Android Applications: Develop and Design 2011, Peachpit Press R M Hierons et al., “Using formal specifications to support testing”, ACM Computing Survey, vol 41, no 2, pp 176, 2009 How to write a PMD rule, http://pmd.sourceforge.net/snapshot/-howtowritearule.html A H Ian Dees, Matt Wynne, Cucumber Recipes -Automate Anything with BDD Tools and Techniques The Pragmatic Programmers, LLC., 2013 IDC Worldwide Quarterly Mobile Phone Tracker, May 30, 2018 https://www.idc.com/getdoc.jsp?containerId=prUS43856818 Accessed 10 Feb 2019 Gopinath Jayamalrao, Mobile Testing Trends, Cognizant, 2011 C Johnson, SPEST - A Tool for Specification-Based Testing, California Polytechnic State University, 2016 Girish Janardhanudu, Ken van Wyk “White Box Testing” Official website of the Department of Homeland Security https://buildsecurityin.uscert.gov/articles/bestpractices/white-box-testing/white-box-testing Kaleel, Shakira Banu, and Ssowjanya Harishankar, "Applying agile methodology in mobile software engineering: Android application development and its challenges", Computer Science Technical Reports, pp.1-11, 2013 Haeng-Kon Kim, Mobile Applications Software Testing Methodology, Springer Proceedings, International Conferences SIP - WSE and ICHCI 2012, ISBN 978-3-64235269-0, pp.157-166 H Kim, H Yeo, H J Hwang, and C Ramos, “Effective Mobile Applications Testing Strategies”, Adv Sci Technol Lett., vol 139, no Asea, pp 246-251, 2016 127 [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] M M Kirmani, Agile Development Method for Mobile applications: A Study, International Journal of Advanced Research in Computer Science, ISSN 0976-5697, Vol 8, No 5, MayJune 2017, pp 1421–1425 D.Knott, “Mobile App Testing Challenges, Solutions and Best Practices”, 2012 Available: https://docplayer.net/1738460-Mobile-application-testing-challenges-best-practices.html Accessed 10 Feb 2019 R Lai and M Garg, A detailed study of NHPP software reliability models, Journal of Software, ISSN: 1796-217X, Vol 7, No 6, June 2012, DOI:10.4304/jsw.7.6.1296-1306 A Van Lamsweerde, “Formal Specification: a Roadmap”, in Proceedings of the Conference on the Future of Software Engineering, 2000, pp 147-159 Lee, W.-M., Beginning Android application development 2012: Wiley com Li, X., Gallagher, J.P.: A Source-level Energy Optimization Framework for Mobile Applications arXiv preprint arXiv:1608.05248, 2016 A Machiry, R Tahiliani, and M Naik, Dynodroid: An Input Generation System for Android Apps, Proc 2013 9th Jt Meet Found Softw Eng., 2013, pp 224-234 Y K Malaiya and J Denton, What the software reliability growth model parameters represent?, Proceedings of the Eighth International Symposium on Software Reliability Engineering, 2-5 Nov 1997, Albuquerque, NM, USA, pp 124–135, DOI: 10.1109/ISSRE.1997.630857 Manotas, I., Pollock, L., Clause, J.: SEEDS: a software engineer’s energy-optimization decision support framework In: Proceedings of the 36th International Conference on Software Engineering, pp 503–514 ACM 2014 Markets and Markets, "Heterogeneous Mobile Processing & Computing Market by Component (processor, GPU, DSP, connectivity), Technology Node (45NM-5NM), Application (Consumer, Tele-communication, Automotive, MDA, Medical), & Geography - Forecast & Analysis to 2014 – 2020," 2014 Available: http://www.marketsandmarkets.com/Market-Reports/heterogeneous-mobile-processing97computing-market-173926586.html Accessed 22 February 2018 Mathuria, M.: AI and Machine Learning to Optimize Software Testing https://www.readitquik.com/articles/ai/ai-and-machine-learning-to-optimizesoftwaretesting/ Accessed 28 Apr 2018 von Mayrhauser, A., Anderson, C., Mraz, R.: Using a neural network to predict test case effectiveness In: The IEEE Aerospace Applications Conference Proceedings, no level 1, pp 77–91, 1995 Microsoft Research, “Z3 guide”, https://rise4fun.com/z3/tutorial Accessed Jan-15th, 2018 Greg Milette, Adam Stroud, “Professional Android Sensor Programming”, John Wiley & Sons, Inc, 2012 25 Mobile App Usage Statistics To Know In 2019, https://mindsea.com/app-stats/ Accessed 28 Feb 2019 Mobile Apps: What Consumers Really Need and Want, https://docplayer.net/107560Mobile-apps-what-consumers-really-need-and-want-a-global-study-of-consumersexpectations-and-experiences-of-mobile-applications.html R Mohd and N Mohsin, Software Reliability Growth Models : Overview and Applications, J Emerg Trends Comput Inf Sci., Vol 3, No 9, pp 1309–1320, 2012, ISSN 2079-8407 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 128 [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] 5, pp 479–485, 2011, ISSN 0976-5697 Muccini, H., A Di Francesco, and P Esposito Software testing of mobile applications: Challenges and future research directions in 7th International Workshop on Automation of Software Test (AST), 2012 John D Musa, Software Reliability Measurement, Journal of Systems and Software, Volume 1, 1979-1980, pp 223-241, https://doi.org/10.1016/0164-1212(79)90023-2 G Myers, The Art of Software Testing, 3nd ed., Hoboken, NJ: John Wiley & Sons, Inc., 2011 Neotsys, “Mobile Load Testing Challenges”, white paper, 2013 Number of free mobile app downloads worldwide from 2012 to 2017 (in billions), https://www.statista.com/statistics/241587/number-of-free-mobile-app-downloadsworldwide/ Accessed 10 Feb 2019 Number of apps available in leading app stores as of 3rd quarter 2018, https://www.statista.com/statistics/276623/number-of-apps-available-in-leading-app-stores/ Accessed 10 Feb 2019 L A Oubelli, J Mottu, and C Attiogb, Test Cases Evolution of Mobile Applications: Model Driven Approach, [Research Report] Universit e de Nantes, 2015 O Oluwagbemi and H Asmuni, An Approach for Automatic Generation of Test Cases from UML Diagrams, Int J Softw Eng Its Appl., vol 9, no (2015) 87-106 Pacheco, C., & Ernst, M D Eclat: Automatic generation and classification of test inputs In European Conference on Object-Oriented Programming (pp 504-527) Springer, Berlin, Heidelberg, 2005 Rama Krishna Pagadala, “Testing the Mobile Application's Performance- Case Study on Communicator Mobile”, Microsoft Corporation, 2012 P Pandit and S Tahiliani, AgileUAT: A Framework for User Acceptance Testing based on User Stories and Acceptance Criteria, Int J Comput Appl (0975 8887), vol 120, no 10, pp.16-21, 2015 Papadopoulos, P., Walkinshaw, N.: Black-box test generation from inferred models In: 4th IEEE/ACM International Workshop on Realizing AI Synergies in Software Engineering, pp 19–24, 2015 Petito, Michael "Eclipse refactoring," http://people clarkson edu/~ dhou/courses/EE564s07/Eclipse-Refactoring pdf (2007): 2010 Object Detection with Faster R-CNN in Chainer https://github.com/mitmul/chainer-fasterrcnn, last accessed April 28, 2018 Processes and Application Life Cycle 2014 [cited 2014 March]; Available: http://developer.android.com/guide/topics/processes/process-lifecycle.html# P P Rane, Automatic Generation of Test Cases for Agile using Natural Language Processing, State University, 2017 M J Rajasekaran, “Challenges in Mobile Application Testing: A Survey”, IJCTA, vol 9, no 27, pp 159-163, 2016 Regneri, Michaela, Finding all cliques of an undirected graph, SeminarCurrent Trends in IE WS, 2007 Research and Markets, "Mobile Cloud Market by Application (Gaming, Entertainment, Utilities, Education, Productivity, Business & Finance, Social Networking, Healthcare, Travel & Navigation), & By User (Enterprise User, Consumer)-Worldwide Market Forecast and Analysis (2014 - 2019)," Available: http://www.researchandmarkets.com/ 129 [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] research/7pj4cv/mobile_cloud Accessed 21 Feb, 2019 Roles and responsibilities for agile tester, https://www.amarinfotech.com/rolesresponsibilities-agile-tester.html, 2018 Sathyavathy, V.: Evaluation of software testing techniques using artificial neural network Int J Electr Comput Sci 6(3), 20617–20620, 2017 M Satpathy, M Butler, M Leuschel, and S Ramesh, Automatic Testing from Formal Specifications, pp 254-258, 2009 M Satyanarayanan, “Fundamental Challenges in Mobile Computing,” in Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing, ser PODC ’96 New York, NY, USA: ACM, 1996, pp 1–7 Available: http://doi.acm.org/10.1145/248052.248053 B Schilit, N Adams, and R Want, “ContextAware Computing Applications,” in Proceedings of the 1994 First Workshop on Mobile Computing Systems and Applications Washington, DC, USA: IEEE Computer Society, 1994, pp 85–90 Available: http://dl.acm.org/citation.cfm?id=1439278.1440041 A Schmidt, “Implicit human computer interaction through context,” Personal and Ubiquitous Computing, pp 191–199, 2000 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, ISSN 0976-5697 Sharkey, Jeff, "Coding for life–battery life, that is," Google IO Developer Conference 2009 Shaukat, H., Marselis, R.: Testing of Artificial Intelligence-AI Quality Engineering Skills An Introduction SOGETI 2017 Smartphone Market Share, IDC, https://www.idc.com/promo/smartphone-market-share/os Accessed 15-Jan, 2019 Smoczyńska, A., Pawlak, M., & Poniszewska-Marańda, A (2018) Hybrid Agile Method for Management of Software Creation Engineering Software Systems: Research and Praxis, 101–115.doi:10.1007/978-3-319-99617-2_7 I Sommerville, Software Engineering 9th Edition Addison-Wesley, 2011 Spataru, Andrei Cristian "Agile development methods for mobile applications." Master of Science Thesis submitted to Computer Science School of Informatics, University of Edinburgh 2010 Stepien, Bernard, Liam Peyton, and Mohamed Alhaj, Visualizing Execution Models and Testing Results, The Third International Conference on Advances and Trends in Software Engineering, 2017 S Ren, K He, R Girshick, and J Sun: Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks IEEE Trans Pattern Anal Mach.Intell., Vol 39, No 6, pp 11371149, 2017 Sypolt, G.: AI Test Automation: The AI Test Bots Are Coming https://saucelabs.com/blog/ai-test-automation-the-ai-test-bots-are-coming Accessed 28 Apr 2018 TESTAR: Automated Robustness Testing At The Ui Level, https://tanjavos.com/testar/, last accessed date: Jun-10th, 2018 Testing Role in Scrum, https://study.com/academy/lesson/testing-role-in-scrum.html Thompson, Chris, et al "Optimizing mobile application performance with model–driven engineering." Software Technologies for Embedded and Ubiquitous Systems Springer 130 [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] Berlin Heidelberg, 2009 36-46 K Thoms, J Dicks, and T Kutz, “Language Workbench Challenge 2013” Xtext Submission, 2013 N Tracey, J Clark, K Mander, J McDermid, “An automated framework for structural testdata generation,” 13th Annual International Conference on Automated Software Engineering (ASE’98), pages 285–288, Honolulu, Hawaii, Oct 14–16, 1998 Tricentis, Exploratory Testing: The Heart of All Things Testing, 2016, https://www.tricentis.com/wpcontent/uploads/2016/11/201610Exploratory-Testing Whitepaper.pdf, last accessed Apr-3, 2018 Tricentis, Special Report The Impact of Software Failure And How Automated Testing Reduces Risks, 2017 Vaishnavi Patil , Sanjana Panicker , Maitreyi KV Use of Agile Methodology for Mobile Applications International Journal of Latest Technology in Engineering, Management & Applied Science (IJLTEMAS) Volume V, Issue X, October 2016 | ISSN 2278-2540 Vallon, Raoul, Lukas Wenzel, Martin E Brüggemann, and Thomas Grechenig "An Agile and Lean Process Model for Mobile App Development: Case Study into Austrian Industry." JSW 10, no 11, 2015: 1245-1264 Lilian Weng, Object Recognition for Dummies Part 3: R-CNN and Fast/Faster/Mask RCNN and YOLO.https://lilianweng.github.io/lillog/2017/12/31/object-recognition-fordummies-part-3.html#faster-r-cnn, last accessed April 28, 2018 C Wang, F Pastore, A Goknil, L Briand, and Z Iqbal, Automatic Generation of System Test Cases from Use Case Specifications, ISSTA15, pp 385-396, 2015 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, Santa Fe, New Mexico, USA — November 07 - 08, 2010, DOI: 10.1145/1882362.1882443 Wedyan, F., Alrmuny, D., Bieman, J.M.: The effectiveness of automated static analysis tools for fault detection and refactoring prediction In: International Conference on Software Testing Verification and Validation ICST 2009 IEEE 2009 Wegener, J., Baresel, A., Sthamer, H.: Evolutionary test environment for automatic structural testing Inf Softw Technol 43(14), 841–854, 2001 Whittaker, James A, Exploratory software testing: tips, tricks, tours, and techniques to guide test design, Pearson Education, 2009 S Wierckx, Behavior Driven Testing with Cucumber demystified, 2013 Xtext Documentation, 2014 Zein, Samer, Norsaremah Salleh, and John Grundy "A systematic mapping study of mobile application testing techniques." Journal of Systems and Software 117, 2016: 334-356 S Yu and S Takada, Mobile Application Test Case Generation Focusing on External Events, in Proceedings of the 1st International Workshop on Mobile Development, 2016, pp 41-42 Z Liu, X Gao, and X Long, Adaptive random testing of mobile application, in 2010 International Conference on Computer Engineering and Technology, 2010, vol 2, pp 297301 131