Nghiên Cứu Các Phương Pháp Sinh Đầu Vào Kiểm Thử Tự Động Cho Android Trong Luận Văn Thạc Sĩ

2017

65
0
0

Phí lưu trữ

30.000 VNĐ

Tóm tắt

I. Giới thiệu chung về Android

Android là một hệ điều hành mã nguồn mở, dựa trên nền tảng Linux, được thiết kế cho các thiết bị di động và các yếu tố hình thức khác. Hệ thống Android bao gồm nhiều tầng, từ tầng hạt nhân Linux đến tầng ứng dụng hệ thống. Tầng hạt nhân Linux là nền tảng cốt lõi, quản lý bộ nhớ, giao tiếp phần cứng, và bảo mật. Lớp trừu tượng phần cứng (HAL) cung cấp giao diện chuẩn để phần cứng giao tiếp với các API Java. Thời gian chạy Android (ART) là môi trường thực thi cho các ứng dụng, tối ưu hóa bộ nhớ và hiệu suất. Tầng thư viện C/C++tầng khung Java API cung cấp các công cụ và thư viện để phát triển ứng dụng. Tầng ứng dụng hệ thống bao gồm các ứng dụng cốt lõi như trình duyệt, danh bạ, và tin nhắn.

1.1. Tầng hạt nhân Linux

Tầng hạt nhân Linux là nền tảng cốt lõi của hệ điều hành Android, quản lý các tiến trình, bộ nhớ, và giao tiếp phần cứng. Nó cung cấp các tính năng bảo mật then chốt và cho phép các nhà sản xuất phát triển trình điều khiển phần cứng. Hạt nhân Linux cũng hỗ trợ quản lý tiến trình và bảo mật, đảm bảo hệ thống hoạt động ổn định và an toàn.

1.2. Lớp trừu tượng phần cứng HAL

Lớp trừu tượng phần cứng (HAL) cung cấp các giao diện chuẩn để phần cứng thiết bị giao tiếp với các API Java ở cấp cao hơn. Nó bao gồm các mô đun thư viện, mỗi mô đun thực thi một giao diện cho một loại thành phần phần cứng cụ thể, như máy ảnh hoặc Bluetooth. HAL giúp đơn giản hóa việc phát triển ứng dụng bằng cách cung cấp các giao diện chuẩn hóa.

II. Phương pháp sinh đầu vào kiểm thử tự động

Phương pháp sinh đầu vào kiểm thử tự động là một kỹ thuật quan trọng trong kiểm thử phần mềm, đặc biệt là trong phát triển ứng dụng di động. Hai phương pháp chính được nghiên cứu trong luận văn là kiểm thử Fuzz (Fuzzing)kiểm thử dựa trên mô hình (Model-based Testing). Kiểm thử Fuzz là phương pháp sinh dữ liệu đầu vào ngẫu nhiên hoặc bán ngẫu nhiên để phát hiện lỗi trong ứng dụng. Kiểm thử dựa trên mô hình sử dụng các mô hình hệ thống để sinh các kịch bản kiểm thử tự động. Cả hai phương pháp đều có ưu điểm và nhược điểm riêng, và được áp dụng tùy thuộc vào yêu cầu của dự án.

2.1. Kiểm thử Fuzz Fuzzing

Kiểm thử Fuzz là phương pháp sinh dữ liệu đầu vào ngẫu nhiên hoặc bán ngẫu nhiên để phát hiện lỗi trong ứng dụng. Nó bao gồm các giai đoạn như chuẩn bị dữ liệu, thực thi kiểm thử, và phân tích kết quả. Kiểm thử Fuzz có thể phát hiện các lỗ hổng bảo mật và lỗi hệ thống, nhưng cũng có nhược điểm là tốn thời gian và tài nguyên. Các công cụ kiểm thử Fuzz phổ biến bao gồm Monkey toolAFL (American Fuzzy Lop).

2.2. Kiểm thử dựa trên mô hình Model based Testing

Kiểm thử dựa trên mô hình sử dụng các mô hình hệ thống để sinh các kịch bản kiểm thử tự động. Nó bao gồm các bước như xây dựng mô hình, sinh kịch bản, thực thi kiểm thử, và phân tích kết quả. Phương pháp này giúp tăng độ bao phủ mã nguồn và giảm thời gian kiểm thử, nhưng đòi hỏi kỹ năng cao trong việc xây dựng mô hình. Các công cụ kiểm thử dựa trên mô hình phổ biến bao gồm DroidBotUPPAAL.

III. Công cụ kiểm thử tự động cho Android

Các công cụ kiểm thử tự động cho Android được sử dụng để thực hiện các phương pháp kiểm thử như Fuzzdựa trên mô hình. Monkey tool là công cụ kiểm thử ngẫu nhiên, sinh các sự kiện ngẫu nhiên trên giao diện người dùng để phát hiện lỗi. DroidBot là công cụ kiểm thử dựa trên mô hình, sử dụng các mô hình hệ thống để sinh kịch bản kiểm thử tự động. Cả hai công cụ đều có ưu điểm và nhược điểm riêng, và được sử dụng tùy thuộc vào yêu cầu của dự án.

3.1. Monkey tool

Monkey tool là công cụ kiểm thử ngẫu nhiên, sinh các sự kiện ngẫu nhiên trên giao diện người dùng để phát hiện lỗi. Nó được sử dụng để kiểm tra độ ổn định và hiệu suất của ứng dụng. Monkey tool có thể thực hiện hàng nghìn sự kiện ngẫu nhiên trong thời gian ngắn, giúp phát hiện các lỗi tiềm ẩn. Tuy nhiên, nó cũng có nhược điểm là không thể kiểm soát được các kịch bản kiểm thử cụ thể.

3.2. DroidBot

DroidBot là công cụ kiểm thử dựa trên mô hình, sử dụng các mô hình hệ thống để sinh kịch bản kiểm thử tự động. Nó giúp tăng độ bao phủ mã nguồn và giảm thời gian kiểm thử. DroidBot có thể thực hiện các kịch bản kiểm thử phức tạp, nhưng đòi hỏi kỹ năng cao trong việc xây dựng mô hình. Công cụ này phù hợp cho các dự án yêu cầu kiểm thử chuyên sâu và chi tiết.

IV. Nghiên cứu thực nghiệm

Nghiên cứu thực nghiệm được thực hiện bằng cách sử dụng hai công cụ MonkeyDroidBot để kiểm tra một danh sách các ứng dụng Android. Kết quả thực nghiệm cho thấy Monkey phát hiện được nhiều lỗi ngẫu nhiên, trong khi DroidBot đạt được độ bao phủ mã nguồn cao hơn. Cả hai công cụ đều có giá trị trong việc phát hiện lỗi và cải thiện chất lượng ứng dụng. Tuy nhiên, việc lựa chọn công cụ phù hợp phụ thuộc vào yêu cầu cụ thể của dự án.

4.1. Thiết lập môi trường thực nghiệm

Môi trường thực nghiệm được thiết lập với các công cụ kiểm thử MonkeyDroidBot, cùng với các thiết bị Android được cấu hình sẵn. Các ứng dụng kiểm thử được chuẩn bị và cài đặt trên thiết bị. Quá trình kiểm thử được thực hiện theo các kịch bản cụ thể, và kết quả được ghi lại để phân tích.

4.2. Phân tích kết quả thực nghiệm

Kết quả thực nghiệm cho thấy Monkey phát hiện được nhiều lỗi ngẫu nhiên, trong khi DroidBot đạt được độ bao phủ mã nguồn cao hơn. Cả hai công cụ đều có giá trị trong việc phát hiện lỗi và cải thiện chất lượng ứng dụng. Tuy nhiên, việc lựa chọn công cụ phù hợp phụ thuộc vào yêu cầu cụ thể của dự án.

01/03/2025
Luận văn thạc sĩ nghiên cứu một số phương pháp sinh đầu vào kiểm thử tự động cho android
Bạn đang xem trước tài liệu : Luận văn thạc sĩ nghiên cứu một số phương pháp sinh đầu vào kiểm thử tự động cho android

Để xem tài liệu hoàn chỉnh bạn click vào nút

Tải xuống

Phương Pháp Sinh Đầu Vào Kiểm Thử Tự Động Cho Android Trong Luận Văn Thạc Sĩ là một nghiên cứu chuyên sâu về việc phát triển các phương pháp tự động hóa trong kiểm thử phần mềm, đặc biệt tập trung vào ứng dụng Android. Tài liệu này cung cấp các kỹ thuật tiên tiến để tạo đầu vào kiểm thử một cách hiệu quả, giúp tối ưu hóa quy trình phát triển phần mềm và đảm bảo chất lượng ứng dụng. Độc giả sẽ được hưởng lợi từ việc hiểu rõ hơn về cách áp dụng các phương pháp này trong thực tế, từ đó nâng cao kỹ năng và hiệu suất công việc.

Nếu bạn quan tâm đến các nghiên cứu liên quan đến công nghệ và thuật toán, hãy khám phá Luận văn thạc sĩ xây dựng thuật toán trích xuất số phách trên phiếu trả lời trắc nghiệm của trường đại học phan thiết để hiểu thêm về ứng dụng thuật toán trong thực tiễn. Bên cạnh đó, Luận văn đề xuất các giải pháp nhằm nâng cao hiệu quả áp dụng cũng là một tài liệu hữu ích để tìm hiểu cách cải thiện hiệu quả trong các nghiên cứu khoa học. Cuối cùng, 2 tóm tắt luận án tiến sĩ tiếng việt ncs nguyễn khắc tấn sẽ mang đến góc nhìn tổng quan về các nghiên cứu chuyên sâu khác.