Nghiên cứu một số phương pháp sinh đầu vào kiểm thử tự động cho android (tt)

24 359 0
Nghiên cứu một số phương pháp sinh đầu vào kiểm thử tự động cho android (tt)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mu ̣c lu ̣c Mu ̣c lu ̣c Đặt vấn đề Chương Nền tảng Android 1.1 Giới thiệu chung Android 1.2 Bản kê khai ứng dụng AndroidManifest 1.2.1 Hoạt động (activity) 1.2.2 Dịch vụ (service) 1.2.3 Bộ nhận quảng bá (Broadcast Receiver) 1.2.4 Trình cung cấp nội dung (Content Provider) Chương Sinh đầu vào kiểm thử tự động 2.1 Phương pháp kiểm thử Fuzz (Fuzzing) 2.1.1 Kiểm thử Fuzz là gı̀?? 2.1.2 Các giai đoa ̣n của kiể m thử Fuzz 2.1.3 Phân loa ̣i kiểm thử Fuzz 2.1.4 Các lỗ hổ ng đươ ̣c phát hiê ̣n bởi kiểm thử Fuzz 2.1.5 Ưu nhươ ̣c điể m của kiể m thử Fuzz 2.1.6 Một số công cụ kiể m thử Fuzz 2.2 Phương pháp dựa mơ hình (Model based Testing)9 2.2.1 Kiểm thử dựa mơ hình gì? 2.2.2 Các loại MBT 10 2.2.3 Các mô hình khác kiểm thử 10 2.2.4 Tiến trình kiểm thử dựa mơ hình 10 2.2.5 Ưu nhược điểm kiểm thử dựa mơ hình 12 2.2.6 Một số cơng cụ kiểm thử dựa mơ hình 12 Chương Mô ̣t số công cụ sinh đầu vào kiểm thử tự động cho ứng dụng Android 13 3.1 Công cu ̣ kiể m thử ngẫu nhiên – Monkey tool 13 3.1.1 Tổ ng quan chung về Monkey tool 13 3.1.2 Kiểm thử Fuzz với Monkey 13 3.2 Công cu ̣ kiể m thử dựa mô hı̀nh – DroidBot 14 3.2.1 Tổng quan chung về DroidBot 14 3.2.3 Kiểm thử dựa mơ hình với DroidBot 15 Chương 4: Nghiên cứu thực nghiê ̣m 17 4.1 Thiế t lâ ̣p môi trường thực nghiệm 17 4.1.1 Chuẩn bị công cụ kiểm thử 17 4.1.2 Chuẩn bị thiế t bi ̣kiể m thử 17 4.2 Xây dựng ứng du ̣ng kiể m thử 17 4.3 Tiế n hành kiểm thử 18 4.4 Kế t quả thực nghiê ̣m 18 4.5 Phân tích – đánh giá 18 4.5.1 Tính hiệu việc phát lỗi 18 4.5.2 Tính hiệu chiến lược khám phá 18 4.5.3 Tính khả dụng 19 Kết luận 20 Tài liệu tham khảo 22 Đặt vấn đề Như biết nhu cầu sử dụng thiết bị di động thông minh người ngày cao, số lượng nhà sản xuất thiết bị ngày nhiều đa dạng chủng loại, mẫu mã Mỗi điện thoại thông minh ngày không đơn để nghe, gọi nhắn tin trước, mà giống máy tính để bàn thu nhỏ, lướt web, chat wifi, mua hàng trực tuyến, tìm kiếm thơng tin, xử lý thơng tin mạng, kết nối thiết bị ngoại vi, điều khiển ô tô, điều khiển robot, giải công việc với đối tác nơi đâu vơ vàn lợi ích lớn lao khác Để thiết bị di ̣ng có sức mạnh trước hết nhờ công ty phát triển phần mềm mà cụ thể Google với Android, Apple với iOS và Microsoft với Windows Phone Các công ty này tập trung lớn nguồn lực họ vào việc phát triển tảng di động kể để đưa chúng lên tầm cao trước đây, mà ngày thường hay gọi “HỆ ĐIỀU HÀNH” Trong số hệ điều hành cho thiết bị di động, Android hệ điều hành phổ biến lớn mạnh Với tính chất nguồn mở, Android thu hút nhiều nhà sản xuất thiết bị giới Sony, Samsung, LG, HTC, v.v… Ngày Android không sử dụng hệ điều hành điện thoại thơng minh máy tính bảng, mà ứng dụng vào dự án khác như: đồng hồ thông minh (smartwatch), nhà thông minh (smart home), tivi thông minh (smart tivi), robot, điều khiển ô tơ, kính thực thể ảo … Theo số liệu thống kê, Android nắm giữ 86% [1] tổng thị phần cho hệ điều hành di động Sự phổ biến ngày tăng thiết bị Android có tác động trực tiếp đến cửa hàng ứng dụng Google Play Đây cửa hàng ứng dụng lớn giới có 3.3 triệu ứng dụng (tháng 9/2017) có sẵn để tải xuống Chỉ riêng quý năm 2017, có gần 17 tỷ lượt tải xuống ứng dụng từ Google Play Với số thống kê trên, thấy việc xây dựng ứng dụng cho thiết bị Android đã, xu hướng phát triển mạnh mẽ bền vững Trong vòng đời phát triển phần mềm, kiểm thử hoạt động quan trọng bỏ qua phần mềm nói chung ứng dụng Android nói riêng Hoạt động kiểm thử tiến hành cách thủ công nhiên điều thời gian, tốn chi phí đơi khơng mang lại hiệu cao Thậm chí vài phương pháp kiểm thử, hoạt động kiểm thử thủ cơng khơng thể thực Do đòi hỏi phải có hình thức kiểm thử tự động hỗ trợ Tuy nhiên kiểm thử tự động có nhiều kỹ thuật khác với các mức ̣ tự đô ̣ng khác Đối với nhiều cơng cụ kiểm thử, cần có tham gia kiểm thử viên vào trình Kiểm thử viên phải xây dựng kịch kiểm thử hồn tồn thủ cơng để cơng cụ kiểm thử thực thi từ kịch Đây công việc không đơn giản, tốn thời gian nhân lực Vậy câu hỏi đặt ra, để hoạt động kiểm thử hoàn toàn tự động, từ thao tác sinh kịch kiểm thử việc thực thi kịch kiểm thử Đã có nhiều nghiên cứu kỹ thuật sinh liệu kiểm thử tự động Và nội dung luận văn tìm hiểu kỹ thuật sinh liệu kiểm thử tự động, cụ thể áp dụng vào trình kiểm tra tự động cho ứng dụng Android Chương Nền tảng Android 1.1 Giới thiệu chung Android Android hệ điều hành mã nguồn mở, dựa Linux, tạo cho loạt thiết bị yếu tố hình thức bao gồ m thành phầ n chın ́ h: - Tầng hạt nhân Linux - Lớp trừu tượng phần cứng (Hardware Abstraction Layer - HAL) - Thời gian chạy Android (Thời gian chạy Android – ART) - Tầng thư viện C/C++ - Tầng khung Java API 1.2 Bản kê khai ứng dụng AndroidManifest 1.2.1 Hoạt động (activity) Hoạt động thành phần phụ trách giao diện người dùng ứng dụng Một hoạt động giao diện người dùng trực quan mà người dùng thực kích hoạt Một ứng dụng có nhiều hoạt động chúng gọi đến chuyển hoạt động với Mỗi hoạt android.app.Activity động dẫn xuất lớp 1.2.2 Dịch vụ (service) Một dịch vụ (service) đoạn mã thực thi ngầm hệ thống mà người sử dụng không thấy Mỗi dịch vụ mở rộng từ lớp sở dịch vụ gói android.app 1.2.3 Bộ nhận quảng bá (Broadcast Receiver) Bộ nhận quảng bá thành phần khơng làm nhận phản hồi lại thơng báo quảng bá 1.2.4 Trình cung cấp nội dung (Content Provider) Trình cung cấp nội dung có chức cung cấp tập hợp phương thức cho phép ứng dụng lưu trữ lấy liệu quản lý trình cung cấp nội dung Chương Sinh đầu vào kiểm thử tự động 2.1 Phương pháp kiểm thử Fuzz (Fuzzing) 2.1.1 Kiểm thử Fuzz là gı?̀ ? Kiểm thử Fuzz kỹ thuật phát lỗi phần mềm cách tự động bán tự động sử dụng phương pháp lặp lại thao tác sinh liệu sau chuyển cho hệ thống xử lý 2.1.2 Các giai đoa ̣n của kiể m thử Fuzz - Bước 1: Xác đinh ̣ mu ̣c tiêu (Indentify target) - Bước 2: Xác đinh ̣ đầ u vào (Indentify inputs) - Bước 3: Sinh dữ liê ̣u mờ hay còn go ̣i là ta ̣o các ca kiể m thử (generate fuzzed data) - Bước 4: Thực thi dữ liê ̣u mờ (execute fuzzed data) - Bước 5: Giám sát dữ liê ̣u mờ (monitor for execution fuzzed data) - Bước 6: Xác đinh ̣ khả khai thác (determine exploitability) 2.1.3 Phân loa ̣i kiểm thử Fuzz - Kiểm thử Fuzz dựa đô ̣t biế n (Mutation based Fuzzing) - Kiểm thử mờ dựa ̣ (Generation based Fuzzing) 2.1.4 Các lỗ hổ ng đươ ̣c phát hiêṇ bởi kiểm thử Fuzz Kiểm thử Fuzz làm viê ̣c tố t nhấ t đố i với các vấ n đề mà gây lỗi chương trình là: tràn bơ ̣ nhớ (buffer overflow), kịch hóa chéo trang(XSS), từ chối dịch vụ (DoS), lỗi chuỗi định da ̣ng (Format String Errors), chèn câu truy vấ n (SQL Injection) v.v Vı̀ thế với kiểm thử Fuzz người ta có thể kiểm tra an toàn trình, dịch vu ̣, thiết bị, hệ thống, mạng máy tı́nh v.v… 2.1.5 Ưu nhươ ̣c điể m của kiể m thử Fuzz 2.1.6 Một số công cụ kiể m thử Fuzz 2.2 Phương pháp dựa mơ hình (Model based Testing) 2.2.1 Kiểm thử dựa mơ hình gì? 2.2.1.1 Mơ hình gì? 2.2.1.2 Kiểm thử dựa mơ hình Kiể m thử dựa mơ hình kỹ thuật kiểm tra, nơi mà hành vi thời gian chạy phần mềm kiểm thử kiểm tra để chống lại dự đoán thực đặc tả mơ hình thức 2.2.2 Các loại MBT - Offline/ a priori: Sinh kiể m thử trước thực thi chúng Bộ kiể m thử chı́nh là tâ ̣p hơ ̣p các ca kiể m thử - Online/ on-the-fly: Sinh kiểm thử thực thi kiể m thử 2.2.3 Các mơ hình khác kiểm thử 2.2.1.1 Máy trạng thái hữu hạn 2.2.1.2 Biểu đồ trạng thái 2.2.1.3 Ngôn ngữ mơ hình hóa thống (UML) 2.2.4 Tiến trình kiểm thử dựa mơ hình Hı̀nh 2.12: Các bước kiể m thử dựa mô hı̀nh 2.2.4.1 Mô hình hóa Tiến hành việc xây dựng mơ hình cho hệ thống kiểm thử dựa tảng yêu cầu 2.2.4.2 Lựa chọn yêu cầu kiểm thử: Các thao tác thực bước là: - Các tiêu chí lựa chọn trường hợp kiểm thử xác định - Các tiêu chí lựa chọn trường hợp kiểm thử sau chuyển đổi thành đặc tả ca kiểm thử Một số tiêu chí bao phủ sử dụng để đánh giá cho kiểm thử sinh ra: - Tiêu chí bao phủ cấu trúc - Tiêu chí bao phủ liệu - Tiêu chí dựa lỗi - Tiêu chí bao phủ yêu cầu 2.2.4.3 Sinh kiểm thử Một mô hình đặc tả ca kiểm thử xác định, kiểm thử trừu tượng tạo 2.2.4.4 Cụ thể hóa kiểm thử (chuyển đổi) Trong bước này, thực cụ thể hóa kiểm thử trừu tượng sinh bước thành kịch kiểm thử thực thi công cụ 2.2.4.5 Thực thi kiểm thử Thực thi kịch kiểm thử, kết thực tế đầu so sánh với kết mong đợi từ mà đưa kết Pass, Fail cho kịch kiểm thử 2.2.5 Ưu nhược điểm kiểm thử dựa mơ hình 2.2.6 Một số cơng cụ kiểm thử dựa mơ hình Chương Mô ̣t số công cụ sinh đầu vào kiểm thử tự động cho ứng dụng Android 3.1 Công cu ̣ kiể m thử ngẫu nhiên – Monkey tool 3.1.1 Tổ ng quan chung về Monkey tool Monkey mô ̣t phầ n của Android SDK đươ ̣c phát triể n bởi Google sử du ̣ng cho việc kiểm thử tự động các ứng du ̣ng Android Với việc tích hơ ̣p sẵn Android Studio, Monkey mô ̣t công cụ hữu ích cho lâ ̣p trình viên viê ̣c kiể m tra ứng dụng quá trı̀nh phát triể n Nó sử du ̣ng kỹ thuâ ̣t ngẫu nhiên/ mờ việc sinh sự kiện người dùng làm đầ u vào cho quá trı̀nh kiể m thử 3.1.2 Kiểm thử Fuzz với Monkey Bước 1: Xác định hệ thống mục tiêu: truyền tham số gói danh mục ứng dụng cần thực thi kiểm thử vào lệnh chạy Bước 2: Xác định đầu vào: lựa chọn thiết lập tỉ lệ kiện mong muốn sinh trình thực thi kiểm thử Bước 3: Sinh liệu kiểm thử: Monkey tiến hành việc sinh đầu vào kiểm thử kiện tương ứng với yêu cầu đưa Bước 4: Thực thi kiểm thử: Các lệnh ADB truyền tới thiết bị kiểm thử Bước 5: Giám sát hành vi hệ thống: kiện sinh lưu lại dạng tệp tin log Bước 6: Đăng lỗi phân tích 3.2 Cơng cu ̣ kiể m thử dựa mô hın ̀ h – DroidBot 3.2.1 Tổng quan chung về DroidBot DroidBot công cụ sinh đầu vào kiểm thử mã nguồn mở dạng nhẹ dựa UI cho ứng dụng Android, phát triển Yuanchun Li, nghiên cứu sinh Học viện phần mềm, Đại học Bắc Kinh DroidBot cung cấp sinh đầu vào theo hướng dẫn UI dựa mơ hình chuyển đổi trạng thái tạo chạy Sau sinh đầu vào kiểm thử theo hướng dẫn UI dựa mơ hình chuyển tiếp Thành phần DroidBot mô đun Adapter dùng để cung cấp tính trừu tượng thiết bị ứng dụng kiểm thử Mô đun Brain nhận thông tin thiết bị ứng dụng tạo từ Adapter thời gian chạy gửi đầu vào kiểm thử sinh đến Adapter Hình 3.3 Kiến trúc tổng quan DroidBot 3.2.3 Kiểm thử dựa mơ hình với DroidBot Bước 1: Mơ hình hóa Để thực việc mơ hình hóa, DroidBot lấy thông tin GUI từ ứng dụng kiểm thử: UI, DroidBot ghi lại ảnh chụp hình phân cấp UI Bước 2: Lựa chọn u cầu kiểm thử DroidBot tích hợp bốn thuật tốn thăm dò khác naive depth-first, naive breadth-first, greedy depth-first greedy breadth-first bên cạnh lựa chọn khám phá Monkey Bước 3: Sinh kiểm thử Các loại đầu vào kiểm thử DroidBot hỗ trợ bao gồm đầu vào UI, intent, tài liệu tải lên liệu cảm biến (tín hiệu GPS, v.v…) Bước 4: Cụ thể hóa kiểm thử DroidBot tìm nạp thơng tin thiết bị/ ứng dụng từ thiết bị gửi đầu vào kiểm thử tới thiết bị thông qua ADB Bước 5: Thực thi kiểm thử Các kiện sinh DroidBot thông qua ADB thực thi thiết bị kiểm thử Chương 4: Nghiên cứu thực nghiêm ̣ Trong chương này, tiến hành thực thực nghiệm nhỏ: kiểm thử số ứng dụng Android với công cụ kiểm thử tự động giới thiệu chương Monkey DroidBot kiểm thử thủ cơng Hình 4.1: Quy trình tiến hành thực nghiệm 4.1 Thiế t lâ ̣p môi trường thực nghiệm 4.1.1 Chuẩn bị công cụ kiểm thử Cài đặt Monkey DroidBot, chuẩn bị kiểm thử thủ công 4.1.2 Chuẩn bị thiế t bi kiể ̣ m thử Samsung Galaxy Note (N920I), hệ điều hành Android Nougat 7.0 4.2 Xây dựng ứng du ̣ng kiể m thử Bước 1: Tải mã nguồn ứng dụng Các ứng du ̣ng đươ ̣c lấ y mã nguồ n từ https://fdroid.org/ Bước 2: Sử dụng Jacoco, build lại apk để đo độ bao phủ mã nguồn 4.3 Tiế n hành kiểm thử Bước 1: Cài đặt ứng du ̣ng và lầ n lươ ̣t thực hiê ̣n kiể m tra tự động với Monkey và Droidbot, kiểm tra thủ công người dùng Bước 2: lấ y tâ ̣p tin ec và sinh báo cáo cho độ bao phủ mã nguồn Bước 3: Tổ ng hơ ̣p số liê ̣u phân tı́ch kế t 4.4 Kế t quả thực nghiêm ̣ 4.5 Phân tích – đánh giá 4.5.1 Tính hiệu việc phát lỗi Droibot Monkey hiệu việc tìm lỗi so với kiểm thử thủ cơng 4.5.2 Tính hiệu chiến lược khám phá Khi thực thi với số lượng kiện nhỏ khả bao phủ mã nguồn Monkey tốt so với DroidBot Mặc dù vậy, công cụ tự động có hạn chế gặp phải giao diện có trường nhập thông tin chứa yêu cầu đặc biệt ĐỘ BAO PH Ủ M Ã NG UỒ N INSTRUCTIONS 38% 29% 24% 55% 43% 39% Droidbot BRANCHES 4.5.3 Tính khả dụng Cả Monkey DroidBot công cụ chạy dòng lệnh, việc cài đặt sử dụng không phức tạp Tuy nhiên, với số lượng kiện, thời gian thực DroidBot lớn nhiều so với Monkey Kết luận Sau trình nghiên cứu tìm hiểu đề tài “Nghiên cứu số phương pháp sinh đầu vào kiểm thử tự động cho Android”, kết mà luận văn đạt là: Đầu tiên, luận văn giúp đưa nhìn tổng quan kiểm thử tự động dành cho phần mềm nói chung kiểm thử tự động cho ứng dụng Android nói riêng Từ nhìn tổng quan kiểm thử tự động, luận văn giúp đưa khái niệm chi tiết sinh đầu vào kiểm thử tự động với kỹ thuật phổ biến sử dụng để sinh đầu vào kiểm thử tự động: phương pháp kiểm thử Fuzz phương pháp kiểm thử dựa mơ hình Đưa ưu, nhược điểm phương pháp để từ giúp người đọc có đánh giá, so sánh đưa lựa chọn phương pháp phù hợp cho mục đích sử dụng Luận văn đưa tìm hiểu số hướng tiếp cận phương pháp áp dụng cho ứng dụng Android Để có nhìn cụ thể chi tiết hai phương pháp sinh đầu vào kiểm thử tự động trình bày trên, luận văn lựa chọn hai công cụ tự động tiêu biểu tương ứng cho hai phương pháp DroidBot Monkey để tìm hiểu Bên cạnh việc tìm hiểu lý thuyết, tiến hành làm thực nghiệm để so sánh với đồng thời so sánh với việc kiểm thử thủ công Sau thực nghiệm thu kết số lượng lỗi, độ bao phủ mã nguồn, thời gian thực thi công cụ Từ kết thu giúp đưa so sánh, phân tích đánh giá cho tính hiệu phương pháp kiểm thử Tuy nhiên luận văn có hạn chế việc tiến hành thực nghiệm: số lượng cơng cụ kiểm thử hạn chế, số lượng ứng dụng lựa chọn chưa phong phú Với hạn chế nêu trên, số hướng mở rộng nghiên cứu tìm hiểu tương lai: - Mở rộng thực nghiệm với số lượng công cụ lựa chọn lớn hơn, tiến hành kiểm tra với số lượng ứng dụng nhiều có độ phức tạp cao hơn, đồng thời kiểm tra với số lượng kiện lớn - Có kế hoạch cho việc lựa chọn cơng cụ thích hợp để cải tiến phát triển, để áp dụng thực tế vào công việc kiểm thử phần mềm cho ứng dụng Android Samsung Tài liệu tham khảo [1] [2] [3] [4] [5] [6] [7] [8] [9] "Statista," [Online] Available: https://www.statista.com/statistics/266136/global-marketshare-held-by-smartphone-operating-systems/ "Android Developer," [Online] Available: https://developer.android.com/guide/platform/index.html "Android Developer," [Online] Available: https://developer.android.com/reference/android/app/Activity html "Android Developer," [Online] Available: https://developer.android.com/guide/components/services.htm l "Android Developer," [Online] Available: https://developer.android.com/guide/topics/manifest/receiverelement.html "Android Developer," [Online] Available: https://developer.android.com/guide/topics/providers/contentproviders.html Abel Méndez-Porras, Christian Quesada-López, and Marcelo Jenkins, "Automated Testing of Mobile Applications: A Systematic Map and Review," p Hitesh Tahbildar, Bichitra Kalita, "Automated software test data generation: Direction of research," in International Journal of Computer Science & Engineering Survey (IJCSES) Vol.2, 2011, pp 2-3 WANG Tao, LI Yanling,MA Yingli,GUO Wei, "Research and Application of a New Fuzz-test Framework," p [10] “VIBLO,” [Trực tuyế n] Available: https://viblo.asia/p/timhieu-ve-fuzz-testing-YWOZrDzv5Q0 [11] "Guru99," [Online] Available: https://www.guru99.com/fuzztesting.html [12] P Garg, "Fuzzing - mutation vs generation".INFOSEC Institute [13] "Tutorials point," [Online] Available: https://www.tutorialspoint.com/software_testing_dictionary/fu zz_testing.htm [14] “Khoa CNTT, Đại học Duy Tân,” [Trực tuyế n] Available: http://kcntt.duytan.edu.vn/Home/ArticleDetail/vn/128/2461/ba i-01-so-luoc-ve-fuzzing-testing [15] "OWASP," [Online] Available: https://www.owasp.org/index.php?title=File:CLASP_Vulnera bilities_SDLC_Phases.gif&setlang=en [16] "Guru99," [Online] Available: https://www.guru99.com/fuzztesting.html [17] R T M N Aravind MacHiry, "Dynodroid: An Input Generation System for Android Apps" [18] J R Raimondas Sasnauskas, "Intent Fuzzer: Crafting Intents of Death" [19] ANTOJOSEPH, "DROID-FF – THE ANDROID FUZZING FRAMEWORK" [20] "Guru99," [Online] Available: https://www.guru99.com/model-based-testing-tutorial.html [21] Zoltan Micskei, Istvan Majzik, "Model-based test generation," Software and Systems Verification (VIMIMA01), pp 13-17 [22] E Karaman, "Model Based Software Testing," SWE550 Boaziỗi University, pp 7-17 [23] P Ana, "Model – based testing," MDSE – Model Driven Software Engineering, pp 3-12 [24] Shauvik Roy Choudhary, Alessandra Gorla, Alessandro Orso, "Automated Test Input Generation for Android: Are We There Yet?" [25] "Android Developer," [Online] Available: https://developer.android.com/studio/test/monkey.html [26] Yuanchun Li, Ziyue Yang, Yao Guo, Xiangqun Chen, "DroidBot: A Lightweight UI-Guided Test Input Generator for Android" [27] [Online] Available: https://f-droid.org/ ... chi tiết sinh đầu vào kiểm thử tự động với kỹ thuật phổ biến sử dụng để sinh đầu vào kiểm thử tự động: phương pháp kiểm thử Fuzz phương pháp kiểm thử dựa mơ hình Đưa ưu, nhược điểm phương pháp để... kịch kiểm thử việc thực thi kịch kiểm thử Đã có nhiều nghiên cứu kỹ thuật sinh liệu kiểm thử tự động Và nội dung luận văn tìm hiểu kỹ thuật sinh liệu kiểm thử tự động, cụ thể áp dụng vào trình kiểm. .. nhiên, với số lượng kiện, thời gian thực DroidBot lớn nhiều so với Monkey Kết luận Sau trình nghiên cứu tìm hiểu đề tài Nghiên cứu số phương pháp sinh đầu vào kiểm thử tự động cho Android , kết

Ngày đăng: 17/01/2018, 11:14

Từ khóa liên quan

Mục lục

  • Mục lục

  • Đặt vấn đề

  • Chương 1. Nền tảng Android

    • 1.1. Giới thiệu chung về Android

    • 1.2. Bản kê khai ứng dụng AndroidManifest

      • 1.2.1. Hoạt động (activity)

      • 1.2.2. Dịch vụ (service)

      • 1.2.3. Bộ nhận quảng bá (Broadcast Receiver)

      • 1.2.4. Trình cung cấp nội dung (Content Provider)

      • Chương 2. Sinh đầu vào kiểm thử tự động

        • 2.1. Phương pháp kiểm thử Fuzz (Fuzzing)

          • 2.1.1. Kiểm thử Fuzz là gì??

          • 2.1.2. Các giai đoạn của kiểm thử Fuzz

          • 2.1.3. Phân loại kiểm thử Fuzz

          • 2.1.4. Các lỗ hổng được phát hiện bởi kiểm thử Fuzz

          • 2.1.5. Ưu nhược điểm của kiểm thử Fuzz

          • 2.1.6. Một số công cụ kiểm thử Fuzz

          • 2.2. Phương pháp dựa trên mô hình (Model based Testing)

            • 2.2.1. Kiểm thử dựa trên mô hình là gì?

            • 2.2.2. Các loại MBT

            • 2.2.3. Các mô hình khác nhau trong kiểm thử

            • 2.2.4. Tiến trình kiểm thử dựa trên mô hình

            • 2.2.5. Ưu nhược điểm của kiểm thử dựa trên mô hình

            • 2.2.6. Một số công cụ kiểm thử dựa trên mô hình

            • Chương 3. Một số công cụ sinh đầu vào kiểm thử tự động cho ứng dụng Android

              • 3.1. Công cụ kiểm thử ngẫu nhiên – Monkey tool

                • 3.1.1. Tổng quan chung về Monkey tool

Tài liệu cùng người dùng

Tài liệu liên quan