Luận văn phân tích đột biến trong kiểm thử phần mềm và áp dụng trong kiểm thử ứng dụng android

46 2 0
Luận văn phân tích đột biến trong kiểm thử phần mềm và áp dụng trong kiểm thử ứng dụng android

Đ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

MỞ ĐẦU Android mobile chương trình phần mềm chạy thiết bị di động chẳng hạn điện thoại thơng minh máy tính bảng Số lượng ứng dụng di động phát triển nhiều tảng trở nên có sẵn, chất lượng vấn đề nghiêm trọng gia tăng Các ứng dụng Android xây dựng hoàn toàn từ phần mềm truyền thống sử dụng cấu trúc, kết nối liệu kiểu [1] Cấu trúc ứng dụng di động khác với cấu trúc loại phần mềm khác, việc kiểm thử khác nên cần có phương pháp khác để kiểm thử phần mềm di động Phương pháp tiếp cận phương pháp để kiểm thử ứng dụng di động [2]và kiểm thử đột biến thường sử dụng cách để đánh giá mức độ đầy đủ trường hợp kiểm thử [8] Khi kiểm thử tất trường hợp xảy giảm thiểu rủi ro bàn giao sản phẩm dễ dàng việc vận hành, bảo trì phần mềm giai đoạn sau Từ cải thiện chất lượng phần mềm Sản phẩm phát triển theo yêu cầu khách hàng, đáp ứng mục tiêu mong muốn đồng thời đảm bảo chất lượng cao đáng tin cậy Trong luận văn áp dụng số kỹ thuật kiểm thử đột biến có cho phần mềm, ứng dụng di động sử dụng tảng Android Chi tiết phương pháp kỹ thuật trình bày chi tiết luận văn Nội dung luận văn chia thành chương sau: Chương 1: Luận văn trình bày ứng dụng Android toán kiểm thử ứng dụng thiết bị di động Chương 2: Luận văn trình bày phương pháp kỹ thuật toán tử đột biến kiểm thử ứng dụng Android thiết bị di động Chương 3: Luận văn trình bày mơ hình đề nghị để áp dụng kiểm thử Chương 4: Luận văn trình bày thực nghiệm cho việc kiểm thử ứng dụng Android Chƣơng ỨNG DỤNG ANDROID VÀ BÀI TOÁN KIỂM THỬ ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG Trong chương này, giới thiệu chung kiến thức kiểm thử phần mềm chung [10], khái niệm ứng dụng Android thiết bị di động, thách thức kiểm thử ứng dụng Android, phương pháp toán tử đột biến kiểm thử phần mềm ý nghĩa toán 1.1 Giới thiệu chung kiểm thử phần mềm Kiểm thử [10] trình thực sản phẩm phần mềm liệu đầu vào mẫu phân tích đầu Sản phẩm phần mềm khơng giống sản phẩm kỹ thuật khác, thường khơng có lỗi, có lỗi Nhưng sản phẩm phần mềm dễ bị lỗi, tích lũy lỗi tất giai đoạn vòng đời chúng (thông số kỹ thuật bị lỗi, thiết kế bị lỗi, thực bị lỗi, v.v.) Ngồi ra, khơng giống sản phẩm kỹ thuật khác, sản phẩm phần mềm cịn có lỗi hao mịn sản phẩm q trình sử dụng Lỗi phát sinh sản phẩm phần mềm hầu hết lỗi thiết kế, cung cấp với sản phẩm Kiểm thử phần mềm cung cấp mục tiêu, nhìn độc lập phần mềm, điều cho phép việc đánh giá hiểu rõ rủi ro thực thi phần mềm Kiểm thử phần mềm tạo điều kiện cho kiểm thử viên tận dụng tối đa tư đánh giá sáng tạo để phát điểm mà người khác chưa nhìn thấy Vì kiểm thử viên ngồi cách nhìn chung tổng qt, kiểm thử viên cịn có cách nhìn riêng Điều làm cho kiểm thử viên phát nhiều lỗi góc nhìn khác Mục đích kiểm thử phần mềm tìm lỗi chưa phát hiện, tìm cách sớm để bảo đảm lỗi sửa Mục tiêu kiểm thử phần mềm thiết kế tài liệu kiểm thử cách có hệ thống thiết kế trường hợp kiểm thử cụ thể chi tiết trường hợp kiểm thử Từ thực cho có hiệu quả, tiết kiệm thời gian, cơng sức chi phí 1.1.1 Vòng đời phát triển phần mềm Vòng đời phát triển phần mềm trải qua giai đoạn tiến hành từ giai đoạn phân tích yêu cầu đến giai đoạn vận hành bảo trì sản phẩm Hình 1[10] Hình 1.1 Các giai đoạn phát triển phần mềm  Requirements (phân tích yêu cầu): Phân tích yêu cầu quan trọng giai đoạn vòng đời phát triển phần mềm Ở giai đoạn này, người phân tích thiết kế xác định yêu cầu cụ thể phần mềm Từ cho phép người sử dụng lập trình viên, kiểm thử viên có nhìn tổng qt phần mềm  Architecture (cấu trúc phần mềm): Trong giai đoạn người thiết kế phân tích xác định thành phần bên mô tả chi tiết thành phần bên phần mềm, cách hệ thống triển khai, cách chia sẻ liệu, v.v  Design (thiết kế phần mềm): Trong giai đoạn thiết kế người thiết kế phân tích đưa định thiết kế toàn hệ thống Các thiết kế liên quan đến cấu trúc liệu, hiển thị liệu, thuật toán chia tách chức phần mềm thành đơn vị nhỏ để lập trình viên phát triển độc lập  Programming (lập trình): Giai đoạn lập trình thực lập trình viên dựa yêu cầu thiết kế kiến trúc phần mềm xác định trước đó, Trong giai đoạn này, kiểm thử viên thiết kế trường hợp kiểm thử đơn vị để sử dụng kiểm thử đơn vị để kiểm thử giai đoạn  Integration (tích hợp): Khi tất đơn vị phần mềm phát triển, đơn vị chức tích hợp với để tạo nên phần mềm hoàn chỉnh Trong giai đoạn này, kiểm thử viên thiết kế trường hợp kiểm thử tích hợp sử dụng kiểm thử tích hợp để kiểm thử giai đoạn  Delivery (bàn giao sản phẩm) : Khi phần mềm trải qua kiểm thử tích hợp kiểm thử viên kiểm thử chấp nhận Kiểm thử chấp nhận kiểm thử toàn phần mềm Kiểm thử giai đoạn thiết kế trường hợp kiểm thử với góc nhìn người sử dụng Khi kiểm thử chấp nhận hòa thành sản phẩm bàn giao  Maintenance (vận hành bảo trì) : Giai đoạn vận hành bảo trì giai đoạn cuối vòng đời phát triển phần mềm Nếu giai đoạn vận hành, sản phẩm phần mềm bị lỗi có yêu cầu thay đổi, thao tác bảo trì bắt đầu để thay đổi Khi hoàn thành thao tác bảo trì, hệ thống phần mềm hoạt động bảo trì liên quan đến phần giới hạn mã nguồn tập trung vào vài chức hệ thống Kiểm thử giai đoạn gọi kiểm thử hồi quy 1.1.2 Vòng đời kiểm thử phần mềm Hiện có nhiều mơ hình đưa phát triển phần mềm Trong phần trình vịng đời kiểm thử phần mềm cụ thể vòng đời kiểm thử phần mềm mơ hình chữ V Mặc dù kiểm thử thường coi pha, pha cuối vòng đời phần mềm Nhưng thực xem hoạt động diễn đồng thời tất giai đoạn vịng đời, từ đầu đến cuối Trong mơ hình chữ V, việc minh họa chất kiểm thử hoạt động diễn suốt vòng đời phần mềm việc kiểm thử lên kế hoạch bước một, cặp pha kết nối mũi tên nằm ngang Hình [10]và có mối liên hệchặt chẽ với Trong mơ hình chữ V pha hiệu chỉnh bên nhánh bên phải, sau kiểm tra tính hợp lệ trước Hình 1.2 Kiểm thử phần mềm tương ứng với mơ hình chữ V  Unit testing ( kiểm thử đơn vị): Unit test diễn trình lập trình lập trình viên kiểm thử viên thực Trong pha đơn vị phần kiểm thử nhỏ hàm thành phần đơn lẻ  Integration testing (kiểm thử tích hợp): Kiểm thử tích hợp phương pháp tích hợp thành phần sở, sau bổ sung thêm thành phần chức đơn vị thấp ứng dụng di chuyển lên Kiểm thử tích hợp module thấp tiến tới module cao ứng dụng Sự tích hợp tiếp tục tất module kiểm thử hoàn tất  System testing (kiểm thử hệ thống): Kiểm thử hệ thống cho phép kiểm thử viên theo dõi đánh giá hành vi hệ thống, hệ thống hồn chỉnh tích hợp đầy đủ chức yêu cầu chức xác định trước  Acceptance testing (kiểm thử chấp nhận): Kiểm thử chấp nhận thường diễn cuối xác nhận lại tin tưởng hệ thống, đặc tính thuộc chức phi chức hệ thống Ngoài kiểm thử chấp nhận thường kiểm thử viên nhìn nhận đánh giá phần mềm góc nhìn người sử dụng Vì lỗi phát giai đoạn thường mang ý nghĩa quan trọng 1.2 Ứng dụng Android thiết bị di động kiểm thử ứng dụng Android 1.2.1 Ứng dụng Android thiết bị di động Hiện ứng dụng di động ngày sử dụng rộng rãi nhà phát triển cho phép người dùng kết nối với theo nhiều cách, cơng việc nhà phát triển ứng dụng ngày trở nên quan trọng kinh tế toàn cầu Các ứng dụng di động mà sử dụng hàng ngày thay đổi cách tiến hành kinh doanh, giao tiếp, giải trí, làm việc học thêm điều Các thiết bị ứng dụng Android chiếm phần lớn thị trường Đem lại nhiều tính ứng dụng cao đời sống cho người sử dung Hệ điều hành Android không hệ điều hành điện thoại di động sử dụng rộng rãi nhất, mà nhiều ứng dụng phát hành tải xuống cho Android nhiều hệ điều hành khác Android hệ điều hành ưa chuộng Với ưu mã nguồn mở đơng đảo cộng đồng u thích, Android thu hút nhiều nhà phát triển từ khắp nơi giới dần khẳng định vị Nhờ Android mà hàng loạt ứng dụng games, ứng dụng di động gia tăng cách nhanh chóng Khi ứng dụng di động ngày sử dụng rộng rãi cho phép người dùng kết nối với theo nhiều cách, chất lượng phần mềm lại đặt lên hàng đầu Vì để giải tốn chất lượng, kiểm thử phần mềm nhà phát triển, lập trình viên kiểm thử viên quan tâm Hình 1.3 Minh họa ứng dụng Android Google Play 1.2.2 Kiểm thử ứng dụng Android Các thiết bị ứng dụng Android chiếm phần lớn thị trường Đem lại nhiều tính ứng dụng cao đời sống cho người sử dung Vì kiểm thử ứng dụng Android thiết bị di động cần thiết Và phân tích đột biến phương pháp kiểm thử phần mềm tiềm năng, đặc biệt việc kiểm thử ứng dụng Android Như tài liệu [1-7] đưa toán tử đột biến để kiểm thử ứng dụng Android [1] Và dẫn đến hiệu việc phân tích đột biến ứng dụng Android đề cập [2] Sử dụng đột biến để thiết kế kiểm thử cho mơ hình định hướng theo khía cạnh nói đến tài liệu [3] Các mơ hình định hướng khía cạnh để kiểm thử xuyên suốt đưa tài liệu[4] Bên cạnh kiến trúc phát triển toán tử đột biến tài liệu [6] Và xu hướng kiểm thử phần mềm tài liệu[7] Do việc sử dụng rộng rãi thiết bị Android, Android application (ứng dụng) có nhiều phiên phát hành, khách hàng người sử dụng mua hàng tải ứng dụng cho thiết bị di động [1] Đề xuất việc sử dụng đột biến theo định hướng mơ hình để kiểm tra mối quan tâm xuyên suốt Trong kiểm thử đột biến, phần mềm tạo chương trình mơ hình sửa đổi ln phiên, chương trình mơ hình thường gặp nhiều lỗi, phiên gọi đột biến [4] Tổng số ứng dụng Android có sẵn cửa hàng Google Play vượt 2, triệu ứng dụng Tuy nhiên, chất lượng ứng dụng Android vấn đề nghiêm trọng cần phải giải Nghiên cứu cho thấy nhiều ứng dụng có lỗi nghiêm trọng dẫn đến việc gặp lỗi thường xuyên trình sử dụng[2] Ý tưởng kiểm thử đột biến bắt buộc nhà phát triển phải thiết kế trường hợp kiểm thử để khám phá hành vi hệ thống mà để phát lỗi thường gặp Các loại lỗi khác mà người ta sử dụng tìm ra, dẫn đến trường hợp kiểm thử với thuộc tính khác Chúng thiết kế lại có sai số lập trình, ranh giới điều kiện kiểm thử, mô mục tiêu kiểm thử tiêu chí để kiểm tra kết cấu kiến trúc khác phần mềm Nói chung, phương pháp có đủ khả để điều chỉnh kiểm thử hầu hết trường hợp mà nhà phát triển muốn kiểm tra [8] Từ ta thấy kiểm thử phần mềm phần khơng thể tách rời quy trình đảm bảo chất lượng phần mềm Vì xem kiểm thử phần mềm phần chiến lược toàn diện đảm bảo chất lượng phần mềm [9] [10] 1.3 Những thách thức kiểm thử Android Đối với kiểm thử android, phần mã nguồn ứng dụng Android viết Java, kiểm thử ứng dụng Android có thách thức đòi hỏi kiểm thử viên phải nắm rõ để vượt qua Dưới thách thức mà kiểm thử viên phải nắm rõ Vòng đời độc đáo thành phần Android: Tất thành phần ứng dụng Android cần phải hoạt động theo vòng đời định trước Nếu xử lý khơng cách vịng đời thành phần hoạt động gây cố khơng mong muốn Ví dụ phát triển ứng dụng chơi trị chơi, việc xử lý liên tục kiện xảy quan trọng người dùng Khi có gọi đến, người dung nghe kết thúc gọi trị chơi có tiếp tục hay khơng trị chơi khơng tiếp tục diễn phần mềm xử lý hành động Sử dụng ngơn ngữ đánh dấu XML: Các chương trình Java truyền thống với giao diện người dùng đồ họa sử dụng tệp XML Ngồi ra, khơng có tiêu chí phạm vi kiểm thử để đo mức độ bao phủ cho tệp XML Rõ ràng, việc không kiểm tra tệp XML ứng dụng Android dẫn đến lỗi khơng mong muốn Vì kiểm thử viên cần phải ý đến tệp XML trình kiểm thử Đặc điểm nhận thức ngữ cảnh: Ứng dụng Android ứng dụng nhận thức ngữ cảnh nhận đầu vào từ thiết bị vật lý Những loại liệu không người dùng trực tiếp cung cấp, chúng phân loại thông qua cảm biến gia tốc kế, cảm biến nhiệt độ, cảm biến môi trường cảm biến từ trường, v.v Các kỹ thuật kiểm thử không xem xét loại đầu vào liệu lấy từ đầu vào lại ảnh hưởng đến phần mềm hoạt động kiểm thử Màn hình thiết bị di động: Thông thường thiết bị di động Android có hai loại hướng hình hình ngang hình dọc Nhiều ứng dụng Android có giao diện người dùng khác để thích ứng với kiện chuyển hình từ ngang sang dọc ngược lại Vì vậy, kiểm thử ứng dụng Android, kiểm thử viên cần phải xem xét tính này, gây lỗi chuyển hình từ ngang sang dọc Ứng dụng Android ứng dụng chạy chương trình dựa kiện, luồng thực thi chúng phụ thuộc vào hành động người dùng, chẳng hạn nhấp nhấn vào nút Các kiện xử lý trình xử lý kiện khác Ngồi ra, thiết bị Android trang bị ba nút hệ thống hình: Back, Home Recents Nên nút hệ thống làm gián đoạn luồng thực thi thông thường thường không nằm luồng thực thi thường mong đợi, kiểm thử viên không kiểm thử tác động nút hệ thống Hầu hết thiết bị Android trang bị nhiều dạng kết nối mạng, kết nối phổ biến kết nối liệu di động kết nối WiFi Bất có kết nối WiFi hệ thống Android cố gắng truyền liệu qua WiFi trước Nếu khơng có WiFi, hệ thống Android cố gắng chuyển sang kết nối liệu di động, kết nối di động tốn chi phí sử dụng nhiều pin Việc chuyển đổi gây số lỗi chạy ứng dụng Android Hầu hết thiết bị di động có nguồn pin thực hạn chế Và có ứng dụng làm tăng mức tiêu thụ lượng pin Android dẫn đến có ảnh hưởng đến thiết bị trình sử dụng 1.4 Khái niệm mơ hình kiểm thử dựa đột biến Kiểm thử đột biến kiểm thử dựa cú pháp giúp người kiểm tra thiết kế phần mềm cách hiệu đạt chất lượng cao Kiểm thử viên chèn lỗi vào chương trình kiểm thử để kiểm thử hoạt động chương trình Mơ hình định hướng theo khía cạnh [4] cách tiếp cận đề xuất để tránh mơ hình hành vi q phức tạp, sử dụng mơ hình định hướng định hướng cho mối quan tâm xuyên suốt Một mối quan tâm xuyên suốt áp dụng toàn trinh phần mềm có quan trọng độ tin cậy, hiệu suất, bảo mật hệ thống Các ví dụ điển hình bao gồm kiện địi hỏi ý Mối quan tâm xun suốt có xu hướng đảo lộn mơ hình, dẫn đến mơ hình phức tạp khó phân tích Trong mơ hình định hướng theo khía cạnh, mối quan tâm xun suốt mơ hình hóa theo mơ hình aspects, tách khỏi hành vi thơng thường, tạo mơ hình định hướng aspect-oriented model (AOM) Ý tưởng chung với AOM mơ hình hóa hành vi bình thường hệ thống mơ hình sở, để lại mối quan tâm xuyên suốt mơ tả mơ hình khía cạnh riêng biệt Bằng cách mơ hình hóa mối quan tâm cách riêng biệt sau tự động áp dụng vào mơ hình sau đó, mơ hình sau trở nên lộn xộn Phát triển dựa mơ hình sử dụng rộng rãi ngành công nghiệp phần mềm ngày Các mơ hình cung cấp nhìn trực quan phần mềm Ngồi ra, số loại mơ hình định, ví dụ biểu đồ trạng thái, lưới Petri tự động hóa thời gian hữu ích cho mục đích phân tích mơ hình Hơn nữa, mô 10 Trong luận văn thực ba thí nghiệm: thí nghiệm sử kỹ thuật Intent Payload Replacement (IPR) Thí nghiệm sử dụng kỹ thuật OnClick Event Replacement (ECR) Và thí nghiệm sử dụng kỹ thuật thuật Button Widget Switch (BWS) Dựa vào kết thực nghiệm, tiến hành đánh giá nhận xét rút kết luận đưa định hướng 3.3 Môi trƣờng thực nghiệm 3.3.1 Cấu hình phần cứng Bảng 3.1 cung cấp thơng tin cấu hình phần cứng tiến hành thực nghiệm luận văn Bảng 3.1 Cấu hình máy tính thực nghiệm Thành phần CPU RAM HDD OS 3.3.2 Công cụ phần mềm Chỉ số Intel® Core™ i5-8265U 4GB 500GB Window (32bit) Trong q trình thực nghiệm, chúng tơi sử dụng số công cụ phần mềm mã nguồn mở liệt kê Bảng 3.2 Bảng 3.2 Danh sách phần mềm sử dụng thực nghiệm STT Tên phầm mềm Android-studio-ide182 5314842 Robotium5 Tác giả Nguồn https://developer android com/studio#downloads http://robotiumsolo blogspot com/p/downloads html http://www microsoft com MS-Excel Microsoft MS-Office 2013 Flashair https://github com/FlashAirDevelopers/FlashAirF ileManager Dưới mô tả phần mềm thực nghiệm:  Android-studio-ide-182 5314842 Android Studio Mơi trường phát triển tích hợp (IDE) thức để phát triển ứng dụng Android, dựa IntelliJ IDEA Ngồi cơng cụ phát triển chỉnh sửa 32 mã mạnh mẽ IntelliJ, Android Studio cịn cung cấp nhiều tính giúp nâng cao suất xây dựng ứng dụng Android Mỗi dự án Android Studio chứa nhiều mô-đun với tệp mã nguồn tệp tài nguyên (Hình 4.1) Các loại mô-đun bao gồm: - Android app modules - Library modules - Google App Engine modules Tất tệp xây dựng hiển thị cấp cao Gradle Scriptsvà mô-đun ứng dụng chứa thư mục sau: - manifests: Chứa tập tin AndroidManifest.xml Đây tập tin khai báo tất Activity sử dụng project Ngồi ra, tập tin cịn có chức cấp quyền cho ứng dụng, chẳng hạn cấp quyền truy cập internet, … - java: Chứa tất tập tin java Mỗi Activity tạo tương ứng cho tập tin java tập tin chứa Đây nơi lập trình viên viết code cho ứng dụng - assets: Mặc định thư mục chưa tồn Lập trình viên phải tạo thư mục Trong thư mục chừa hình, txt, … - res: Chứa layout, menu, animation, …Khi Activity tạo, đồng thời Android tạo tập tin Một tập tin java, chứa code Một tập tin xml, chứa layout Ngoài ra, tạo menu tạo animation (anim), thực 33 Hình 3.2 Các tập tin Android studio Giao diện Android Studio tạo thành từ số khu vực logic xác định Hình 4.2 Hình 3.3 Giao diện Android studio 34 Thanh cơng cụ cho phép thực loạt hành động, bao gồm chạy ứng dụng khởi chạy công cụ Android Thanh điều hướng giúp điều hướng qua dự án mở tệp để chỉnh sửa Nó cung cấp nhìn nhỏ gọn cấu trúc nhìn thấy cửa sổ Project Cửa sổ soạn thảo nơi tạo sửa đổi mã Tùy thuộc vào loại tệp tại, trình chỉnh sửa thay đổi Ví dụ, xem tệp bố cục, trình chỉnh sửa hiển thị trình chỉnh sửa bố cục Thanh cửa sổ công cụ chạy xung quanh bên cửa sổ IDE chứa nút cho phép mở rộng thu gọn cửa sổ công cụ riêng lẻ Các cửa sổ công cụ cung cấp quyền truy cập vào tác vụ cụ thể quản lý dự án, tìm kiếm, kiểm sốt phiên mở rộng chúng thu gọn chúng Thanh trạng thái hiển thị trạng thái dự án IDE, cảnh báo thơng báo  Tích hợp Robotium vào Android Studio Robotium công cụ viết mã nguồn mở dùng để kiểm thử hộp xám tự động dành cho ứng dụng điện thoại hệ điều hành android Với hỗ trợ Robotium, viết trường hợp kiểm thử test chức năng, hệ thống, và, bao phủ tính Android Robotium thể sử dụng cho ứng dụng test sử dụng mã nguồn có sẵn ứng dụng mà có sẵn file apk Sử dụng Robotium để tiến hành thử nghiệm ứng dụng Android Để đảm bảo chất lượng ứng dụng Android, thơng thường theo quy trình đây: Thiết kế kiểm tra đặc điểm kỹ thuật Xây dựng chương trình kiểm tra Thực thi Test Case thiết bị Thu thập kết kiểm tra Để chạy Robotium dự án kiểm thửAndroid, kiểm thử viên thêm dòng sau vào dependencies tệp build gradle bên (tệp đặt cấp với thư mục src), thay phiên robotium cho phù hợp với cài máy tính: dependencies { 35 // Unit testing dependencies androidTestCompile 'com jayway android robotium:robotium-solo:5.6.3' androidTestCompile 'junit:junit:4.12' } Tại thời điểm viết này, phiên Robotium sử dụnglà 5.6.3 Ví dụ kiểm thử Android dùng Robotium có Hình 4.3 Hình 3.4 Ví dụ kiểm thử Android dùng Robotium Sau viết xong chương trình kiểm tra, chạy thử bước bên Kết nối thiết bị Android với PC (hoặc khởi độngtrình giả lập emulator trường hợp khơng có thiết bị thực) Trong IDE, nhấp chuột phải vào Run as ->Android JUnit Test 36 Hình 3.5 Chạy chương trình thử nghiệm Robotium Sau thực kiểm tra, kiểm thử viên sẽnhận kết kiểm tra Trong chương trình thử nghiệm này, Hình 3.6 tất trường hợp thử nghiệm thơng qua Hình 3.6 Trường hợp thử nghiệm thành cơng Trong trường hợp thử nghiệm thất bại Hình 3.7 đầu hiển thị chothấy trường hợp thử nghiệm thất bại Hình 3.7 Trường hợp kiểm thử thất bại  Flashair Flashair ứng dụng chạy tảng Android IOS Trong luận văn đề cập đến việc chạy ứng dụng tảng Android Ứng dụng kèm với thẻ nhớ có tên Flashair Ứng dụng có chức sau: - Kết nối với thẻ nhớ Flashair - Xem ảnh, video, nghe nhạc trực tiếp từ thẻ nhớ - Tải ảnh từ ứng dụng thiết bị - Chỉnh sửa ảnh - Cài đặt mật cho thẻ 37 - Chia sẻ ảnh thông qua việc phát wifi thông qua mạng xã hội 3.4 Dữ liệu thực nghiệm Trong thực nghiệm, sử dụng kiểm thử chức ứng dụng Flashair thiết bị di động Android Hình 3.8 minh họa giao diện Flashair Hình 3.8 Giao diện ứng dụng Flashair 3.5 Thử nghiệm liệu thực tế Chúng thực hai thí nghiệm sau với mục đích làm rõ vai trị việc sử dụng luật tốn tử đột biến kiểm thử ứng dụng Thí nghiệm Áp dụng kỹ thuật toán tử đột biến ý định, cụ thể Intent Mutation Operators ( Toán tử đột biến ý định) Khi kiểm thử chức chỉnh sửa ảnh, ảnh sau chỉnh sửa có chức Save Người sử dụng nhận dialog thơng báo có muốn lưu ảnh sau chỉnh sửa hay khơng Mơ tả testcase thí nghiệm 1: 38 Mô tả Các bước thực Kết mong đợi Kiểm tra dialog thông báo 1: Mở ứng dụng Flashair Không hiển thị nội dung lưu ảnh sau chạy 2: Click ảnh dialog lưu ảnh chương trình biến đổi 3: Chọn chức chỉnh sửa ảnh 4: Chỉnh sửa ảnh lưu lại Hàm save sau: public void onActivityBackPressed () { Intent intent = new Intent (); intent putExtra (IS_DOWNLOAD_IMAGE_FROM_EDIT, Successfully saved); mActivity setResult (Activity RESULT_OK, intent); this mIsResetAsyncTask = true; } Sử dụng kỹ thuật Intent Payload Replacement (IPR) để kiểm thử: public void onActivityBackPressed () { Intent intent = new Intent (); intent putExtra (IS_DOWNLOAD_IMAGE_FROM_EDIT, ””); mActivity setResult (Activity RESULT_OK, intent); this mIsResetAsyncTas = true; } Thí nghiệm Áp dụng kỹ thuật Xử lý toán tử đột biến, cụ thể làOnClick Event Replacement (ECR) Trong ứng dụng Flashair, Chức cài đặt ON/OFF nhiều chức nhỏ khác Để kiểm thử chức sử dụng kỹ thuật OnClick Event Replacement (ECR) Trong hình có chế độ xem theo Ngày/ Tháng/ Năm Để kiểm thử chức dựa kỹ thuật chúng tơi thay trình kiện 39 nút Ngày trình kiện nút Năm, theo sau kiểm thử xong bấm vào nút Ngày hiển thị tồn thơng tin ảnh năm đó, thị theo Năm khác Mơ tả testcase thí nghiệm 2: Mơ tả Các bước thực Kiểm tra hoạt động 1: Mở ứng dụng Flashair Kết mong đợi Hiển thị tất chức lọc ảnh theo 2: Chọn chức lọc ảnh ảnh lọc theo Năm Ngày/Tháng/Năm chạy theo Ngày chương trình biến đổi 3: Kiểm tra chức lọc ảnh theo Ngày public DisplayImage () { public void onClick (ViewDay) { int id = v getId (); ViewImageDay (); } Chương trình sau kiểm thử đột biến: public DisplayImage () { public void onClick (ViewDay) { int id = v getId (); ViewImageYear (); } Thí nghiệm Áp dụng kỹ thuật toán tử đột biến XML, cụ thể kỹ thuật Button Widget Switch (BWS) Mô tả testcase thí nghiệm 3: 40 Mơ tả Các bước thực Kiểm tra hoạt động 1: Mở ứng dụng Flashair Kết mong đợi Chức Album chức Album chạy 2: Click Album phía hoạt động bình thường chương trình biến đổi bên phải hình 3: Kiểm tra chức Album Button SelectButton = (Button) solo getView (id Select); Button AlbumButton = (Button) solo getView (id Album); int [ ] locationOfSelect = new int [2]; int [ ] locationOfAlbum = new int [2]; SelectButton getLocationInWindow (locationOfSelect); AlbumButton getLocationInWindow (locationOfAlbum); assertTrue (Select button is on the left of AlbumlocationOfSelect[0]>locationOfAlbum[0]); 3.6 Kết Đánh giá 3.6.1 Kết sau chạy thực nghiệm Sau thực nghiệm với hai thí nghiệm 1,2 thu kết sau Đối với thí nghiệm Trước kiểm thử, bấm vào biểu tượng lưu hình ảnh, dialog hiển thị lên hình Sau kiểm thử, bấm vào biểu tượng lưu hình ảnh, dialog khơng hiển thị lên hình 41 Hình 3.9 Chức chỉnh sửa ảnh trước sau kiểm thử Kết luận: Trường hợp kiểm thử thành công sau áp dụng kỹ thuật đột biến Intent Mutation Operators Đối với thí nghiệm Trước kiểm thứ, người sử dụng bấm vào nút DAY để xem ảnh theo ngày Tuy nhiên sau kiểm thử, người sử dung bấm DAY để xem ảnh theo năm 42 Hình 3.10 Chức xem ảnh theo Ngày/Tháng/ Năm sau kiểm thử Kết luận: Trường hợp kiểm thử thành công sau áp dụng kỹ thuật đột biến OnClick Event Replacement Đối với thí nghiệm Sau đổi chỗ nút Select Album, hành vi cách thức hoạt động hai nút khơng có khác biệt so với ban đầu 43 Hình 3.11 Chức chọn ảnh Album trước sau kiểm thử Kết luận: Trường hợp kiểm thử thành công sau áp dụng kỹ thuật đột biến Button Widget Switch 3.6.2 Đánh giá kết thực nghiệm Sau áp dụng phương pháp kỹ thuật kiểm thử đột biến vào thực tế, nhận thấy có nhiều đổi so với phương pháp kiểm thử trước Hơn kiểm thử đột biến, kiểm thử viên tạo nhiều trường hợp kiểm thử khác kiểm thử sâu chức ứng dụng 3.7 Tóm tắt chƣơng Trong chương 3, luận văn ứng dụng phương pháp kỹ thuật kiểm thử đột biến trình bày chương vào thực tế Phần mềm Flashair phát triển thời gian dài kiểm thử có số mặt hạn chế trường hợp kiểm thử thất bại thường khó xảy Tuy trường hợp kiểm thử chương mô tả rõ ứng dụng phương pháp, kỹ thuật kiểm thử đột biến cách tốt 44 KẾT LUẬN VÀ ĐỊNH HƢỚNG NGHIÊN CỨU TIẾP THEO Qua tìm hiểu kiểm thử phần mềm kiểm thử đột biến ứng dụng Android, luận văn áp dụngkiến thức toán tử đột biến phương pháp toán tử đột biến để kiểm thử phần mềm [1] để nhằm nâng cao chất lượng cho ứng dụng Android Luận văn đạt kết sau đây: - Áp dụng kỹ thuật toán tử đột biến, phương pháp xử lý vịng đời tốn tử đột biến sử dụng kỹ thuật toán tử đột biến XML để kiểm thử ứng dụng Android - Kiểm thử chức phần mềm Flashair chỉnh sửa ảnh, đồng ý nhận thông báo từ nhà phát triển chức chọn ảnh, xem album từ hình Tuy nhiên hạn chế thời gian nên luận văn số hạn chế sau như: - Chưa kiểm thử nhiều chức phần mềm - Chưa kiểm thứ nhiều phần mềm chạy tảng Android Trong thời gian tới, thực với nhiều liệu, cụ thể nhiều ứng dụng chạy tảng Android để nâng cao kết thực nghiệm 45 TÀI LIỆU THAM KHẢO [1] Lin Deng, Jeff Offutt, Paul Ammann, Nariman Mirzaei Mutation operators for testing Android apps Information & Software Technology 81: 154-168 (2017) [2] Lin Deng, Jeff Offutt, David Samudio Is Mutation Analysis Effective at Testing Android Apps? QRS 2017: 86-93 [3] Birgitta Lindström, Jeff Offutt, Daniel Sundmark, Sten F Andler, Paul Pettersson Using mutation to design tests for aspect-oriented models Information & Software Technology 81: 112-130 (2017) [4] Birgitta Lindström, Sten F Andler, Jeff Offutt, Paul Pettersson, Daniel Sundmark Mutating aspect-oriented models to test cross-cutting concerns ICST Workshops 2015: 1-10 [5] Reyhaneh Jabbarvand, Sam Malek µDroid: an energy-aware mutation testing framework for Android ESEC/SIGSOFT FSE 2017: 208-219 [6] Macario Polo Usaola, Gonzalo Rojas, Isyed Rodriguez, Suilen Hernandez An Architecture for the Development of Mutation Operators ICST Workshops 2017: 143-148 [7] Hrushikesha Mohanty, J R Mohanty, Arunkumar Balakrishnan Trends in Software Testing Springer Singapore, 2017 [8] Mike Papadakis, Marinos Kintis, Jie Zhang, Yue Jia, Yves Le Traon, Mark Harman Mutation Testing Advances_An Analysis and Survey http://orbilu uni lu/bitstream/10993/31612/1/Mutation-Survey-06-17 pdf [9] Paul Ammann, Jeff Offutt Introduction to Software Testing, Cambridge University Press, 2017 [10] Ali Mili, Fairouz Tchier Software Testing_ Concepts and Operations Wiley, 2015 46 ... rõ ứng dụng phương pháp, kỹ thuật kiểm thử đột biến cách tốt 44 KẾT LUẬN VÀ ĐỊNH HƢỚNG NGHIÊN CỨU TIẾP THEO Qua tìm hiểu kiểm thử phần mềm kiểm thử đột biến ứng dụng Android, luận văn áp dụngkiến... phần mềm trải qua kiểm thử tích hợp kiểm thử viên kiểm thử chấp nhận Kiểm thử chấp nhận kiểm thử toàn phần mềm Kiểm thử giai đoạn thiết kế trường hợp kiểm thử với góc nhìn người sử dụng Khi kiểm. .. đề nên sử dụng kiểm thử cụ thể kiểm thử đột biến Ngoài ra, luận văn nêu lên ý nghĩa toán Chương luận văn chi tiết hóa tảng kiến thức liên quan kiểm thử đột biến kiểm thử đột biến ứng dụng Android

Ngày đăng: 15/01/2023, 14:52