Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 85 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
85
Dung lượng
5,4 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN VĂN NAM ỨNG DỤNG ROBOTIUM ĐỂ KIỂM THỬ CÁC CHƯƠNG TRÌNH TRÊN ANDROID LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Đà Nẵng - Năm 2017 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN VĂN NAM ỨNG DỤNG ROBOTIUM ĐỂ KIỂM THỬ CÁC CHƯƠNG TRÌNH TRÊN ANDROID Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số: 60.48.01.01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Người hướng dẫn khoa học: PGS TS NGUYỄN THANH BÌNH Đà Nẵng - Năm 2017 - i- LỜI CAM ĐOAN Tôi xin cam đoan: Đây cơng trình nghiên cứu riêng tơi Các số liệu, kết nêu luận văn trung thực chưa công bố cơng trình khác Tác giả luận văn ký ghi rõ họ tên NGUYỄN VĂN NAM - ii- MỤC LỤC LỜI CAM ĐOAN i MỤC LỤC ii DANH MỤC CÁC BẢNG vi DANH MỤC CÁC HÌNH VẼ vi MỞ ĐẦU Chương CƠ SỞ LÝ THUYẾT 1.1 Kiểm thử phần mềm 1.1.1 Tổng quan kiểm thử phần mềm 1.1.2 Quy trình kiểm thử phần mềm 1.1.2.1 Kiểm thử đơn vị (Unit Test) 1.1.2.2 Kiểm thử tích hợp (Integration Test) 1.1.2.3 Kiểm thử hệ thống (System Test) 1.1.2.4 Kiểm thử chấp nhận sản phẩm (Acceptance Test) .10 1.1.3 Kỹ thuật kiểm thử phần mềm 10 1.1.4 Kỹ thuật kiểm thử chức 10 1.1.5 Kỹ thuật kiểm thử cấu trúc 11 1.1.6 Chiến lược kiểm thử phần mềm 11 1.2 Khái niệm kiểm thử điện thoại thông minh 12 1.2.1 Các yếu tố ảnh hưởng đến hoạt động phần mềm điện thoại thông minh .13 1.2.2 Lựa chọn điện thoại thông minh để kiểm thử 13 1.2.3 Các dạng kiểm thử Android .14 1.2.4 Nền tảng kiểm thử Android 16 1.2.4.1 Instrument framework (IF) 17 1.2.4.2 Kiến trúc kiểm thử ứng dụng Android 18 1.2.4.3 Các mục tiêu kiểm thử 20 1.2.5 Các công cụ hỗ trợ kiểm thử Android 20 1.2.5.1 Nền tảng kiểm thử Android Automator 20 1.2.5.2 Nền tảng kiểm thử Robotium .21 1.2.5.3 Nền tảng kiểm thử Roboelectric 23 1.2.5.4 UIAutomator Android 24 1.2.5.5 Espesso 24 1.2.6 So sánh framework kiểm thử Android 25 Chương GIẢI PHÁP ỨNG DỤNG ROBOTIUM ĐỂ KIỂM THỬ ỨNG DỤNG TRÊN ANDROID .26 2.1 Các vấn đề kiểm thử ứng dụng Android .26 2.1.1 Mô tả vấn đề 26 - iii- 2.1.2 Hạn chế việc kiểm thử ứng dụng tảng Android 27 2.2 Đề xuất giải pháp cải tiến 27 2.2.1 Phân tích tìm kiếm giải pháp 27 2.2.2 Đề xuất giải pháp 30 2.2.3 Xây dựng quy trình kiểm thử ứng dụng di động Android 30 2.2.3.1 Mô tả quy trình .30 2.2.3.2 Xây dựng quy trình .31 2.3 Ví dụ áp dụng quy trình để kiểm thử dự án Android sử dụng Robotium 33 2.3.1 Tạo dự án kiểm thử 33 2.3.2 Áp dụng quy trình để kiểm thử dự án Android 36 2.4 Kết luận .38 Chương CÀI ĐẶT VÀ THỬ NGHIỆM .39 3.1 Cài đặt giải pháp 39 3.1.1 Cài đặt môi trường 39 3.1.2 Viết kịch kiểm thử 40 3.1.3 Thực thi kiểm thử 42 3.1.4 Kết kiểm thử .44 3.2 Kiểm thử ứng dụng quản lý nhân 45 3.2.1 Mô tả ứng dụng 45 3.2.2 Thực thi kiểm thử 45 3.2.3 Đánh giá kết .47 3.3 Kiểm thử ứng dụng quản lý chi tiêu cá nhân 48 3.3.1 Mô tả ứng dụng 48 3.3.2 Thực thi kiểm thử 49 3.3.3 Đánh giá kết .51 3.4 Kiểm thử ứng dụng quản lý sinh viên .51 3.4.1 Mô tả ứng dụng 51 3.4.2 Thực thi kiểm thử 52 3.4.3 Đánh giá kết .54 3.5 Nhận xét đánh giá 54 3.6 Kết luận .55 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .56 TÀI LIỆU THAM KHẢO 58 QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN(Bản sao)………………………….59 PHỤ LỤC …………………………………………………………………… - iv- ỨNG DỤNG ROBOTIUM ĐỂ KIỂM THỬ CHƯƠNG TRÌNH TRÊN ANDROID Học viên: Nguyễn Văn Nam Chuyên ngành: Khoa khọc máy tính Mã số: 60.48.01 Khóa: K31 Trường Đại học Bách khoa - ĐHĐN Tóm tắt - Ngày nay, với phát triển mạnh mẽ hệ điều hành Android dòng điện thoại khác nhau, dự án phần mềm ứng dụng liên quan đến ngày tăng cao Vậy, vấn đề đặt làm để đảm bảo chất lượng sản phẩm phần mềm bất kỳ, đặc biệt Android OS xu hướng phát thời nay? Đối với mơ hình phát triển phần mềm hoàn chỉnh bây giờ, người ta thấy giai đoạn kiểm thử chất lượng sản phẩm trước đưa đến tay người tiêu dùng có ý nghĩa quan trọng Kiểm thử phần mềm hoạt động giữ vai trò quan trọng để bảo đảm chất lượng phần mềm hoạt động mang tính sống cịn dự án sản xuất gia công phần mềm Vì vậy, kiểm thử phần mềm trở thành quy trình bắt buộc dự án phát triển phần mềm giới, kể Việt Nam Có nhiều giải pháp hỗ trợ kiểm thử chương trình phần mềm Android OS nay, ví dụ BlueStacks App Player, Android on Intel Architecture, Calablash… Và sau nghiên cứu Framework Robotium dùng hỗ trợ đối tác kiểm thử chạy thiết bị di động sủ dụng hệ điều hành Android, luận văn áp dụng framework để xây dựng quy trình kiểm thử hỗ trợ kiểm thử dự án Android Nó mang lại lợi ích đáng kể có hiệu cao so với việc kiểm thử trực tiếp IDE (Android Studio) Từ khóa – kiểm thử phần mềm; kiểm thử phần mềm di động; kiểm thử phần mềm android; kiểm thử phần mềm với robotium; kiểm thử phần mềm android với robotium - v- ROBOTIUM APPLICATION TO TEST THE SOFTWARE PROGRAMS ON ANDROID OS Abstract - Nowadays, along with the rapid development of Android Operating System (OS) on the various smart phone brands, the number of software projects or applications related to Android OS is increasing Thus, the question is how to ensure the quality of any software products, especially ones on the Android OS against the current trend? For the completed software development models as currently, the software testing of the product before releasing the consumer plays an important role Software testing is an essential part of the software quality assurance and is a vital activity in the software production or out-sourcing Therefore, software testing has become a required process in software development projects all around the world, including Viet Nam Many software testing support solutions are developed today, such as BlueStacks App Player, Android on Intel Architecture, Calablash… And after studying the Robotium Framework, which supports to testing partners to run on mobile devices with Android OS, this thesis applies this framework to build a testing support process for Android projects It brings some significant benefits and is more effective than directly testing on the IDE (Android Studio) Key words – software testing; android testing; mobile testing; android testing with Robotium; testing android in robotium - vi- DANH MỤC BẢNG Số hiệu bảng Tên bảng Trang 1.1 So sánh framework kiểm thử Android 25 3.1 Thống kê kết ca kiểm thử đăng nhập hệ thống 43 3.2 Thống kê kết ca kiểm thử ứng dụng quản lý nhân 47 3.3 Thống kê kết ca kiểm thử ứng dụng quản lý thu chi cá 51 nhân 3.4 Thống kê kết ca kiểm thử ứng dụng quản lý sinh viên 54 - vii- DANH MỤC CÁC HÌNH VẼ Số hiệu hình vẽ 1.1 Tên hình vẽ Trang Bốn cấp độ kiểm thử phần mềm 1.2 Các bước kiểm thử 12 1.3 Định dạng tệp manifest kiểm thử đơn vị Android 18 1.4 Kiến trúc kiểm thử ứng dụng Android 18 2.1 Mơ hình hóa qui trình kiểm thử ứng dụng Android sử dụng Robotium 28 2.2 Tạo dự án Android 30 2.3 Đồng hóa Robotium 32 2.4 Giao diện chương trình máy tính Android 32 2.5 Kịch kiểm thử cho chương trình máy tính 33 2.6 Kết thực thi kiểm thử chương trình máy tính 35 3.1 Thực thi kiểm thử hình đăng nhập hệ thống 39 3.2 Kết kiểm thử hình đăng nhập hệ thống 40 3.3 Kết kiểm thử ca đăng nhập hệ thống 41 3.4 Đăng nhập hệ thống quản lý nhân 42 3.5 Kết kiểm thử hình đăng nhập hệ thống 43 3.6 Màn hình thêm nhân viên 43 3.7 Kết kiểm thử hình thêm nhân viên 44 3.8 Màn hình thêm giao dịch 46 3.9 Kết kiểm thử hình thêm giao dịch 46 3.10 Màn hình quản lý chi tiêu 47 3.11 Kết kiểm thử hình quản lý chi tiêu 47 3.12 Quản lý sinh viên 49 3.13 Kết kiểm thử hình quản lý sinh viên 49 3.14 Màn hình thêm sinh viên 50 3.15 Kết kiểm thử hình thêm sinh viên 50 - 1- MỞ ĐẦU Lý chọn đề tài Ngày nay, phần mềm ngày trở lên phức tạp đồ sộ, việc tạo sản phẩm phần mềm bán thị trường đòi hỏi nỗ lực hàng chục, hàng trăm chí hàng ngàn nhân viên Để tạo sản phẩm khơng phải tổ chức đứng làm từ đầu đến cuối, mà địi hỏi liên kết, tích hợp nhiều sản phẩm, thư viện lập trình nhiều tổ chức khác Từ địi hỏi việc kiểm thử phần mềm ngày trở nên quan trọng phức tạp Song song với phát triển công nghệ lập trình, ngơn ngữ lập trình… cơng nghệ kỹ thuật kiểm thử phần mềm ngày phát triển mang tính khoa học Kiểm thử hoạt động quan trọng tiến trình phát triển phần mềm Nó góp phần lớn việc đánh giá chất lượng phần mềm qui trình bắt buộc dự án phát triển phần mềm giới nước Có nhiều kỹ thuật kiểm thử phần mềm phát triển Trong đó, kiểm thử kỹ thuật hỗ trợ việc đánh giá chất lượng phần mềm Luận văn tập trung nghiên cứu vấn đề kiểm thử ứng dụng tảng Android sử dụng framework robotium, công cụ hỗ trợ mạnh việc kiểm thử chức ứng dụng Khi kiểm thử hệ thống, người kiểm thử phải làm việc với chức GUI cung cấp Các kiện khơng mong đợi, có nhiều cách để nhập xuất liệu với miền liệu nhập vào lớn làm cho người lập trình viên khó kiểm sốt lỗi Lập trình ứng dụng điện thoại Việt Nam phổ biến ứng dụng Android, iOS, Window Phone ngày nhiều Tuy nhiên, công ty public void test_INSERT_03() throws Exception { solo.assertCurrentActivity("",AddEmployeeActivity.class); solo.enterText(0,"PD01734"); solo.enterText(1,"Đỗ Viết Lộc"); solo.enterText(2,"13-13-1990"); solo.enterText(3,"0905234533"); solo.enterText(4,"locdvpd01734@fpt.edu.vn"); solo.clickOnButton(solo.getString(R.string.btn_Add_em)); Assert.assertTrue(solo.waitForText("Birthday input is mismatch")); } public void test_INSERT_04() throws Exception { solo.assertCurrentActivity("",AddEmployeeActivity.class); solo.enterText(0,"PD01734"); solo.enterText(1,"Đỗ Viết Lộc"); solo.enterText(2,"13-12-1990"); solo.enterText(3,"0905234533"); solo.enterText(4,"locdvpd01734"); solo.clickOnButton(solo.getString(R.string.btn_Add_em)); Assert.assertTrue(solo.waitForText("Email input is mismatch")); } } Kịch kiểm thử thêm lớp public class ThemLopActivityTest extends ActivityInstrumentationTestCase2 { private Solo solo; public ThemLopActivityTest() { super(ThemLopActivity.class); } @Override public void setUp() throws Exception { solo = new Solo(getInstrumentation(), getActivity()); } public void test_ADD_01() throws Exception { solo.assertCurrentActivity("",ThemLopActivity.class); solo.enterText(0,"ML01"); solo.enterText(1,"MN01"); solo.enterText(2,"30"); solo.clickOnButton("Lưu"); Assert.assertTrue(solo.waitForText("Thêm thành công")); } public void test_ADD_02() throws Exception { solo.assertCurrentActivity("",ThemLopActivity.class); solo.enterText(0,"ML01"); solo.enterText(1,""); solo.enterText(2,""); solo.clickOnButton("Lưu"); Assert.assertTrue(solo.waitForText("Vui lòng nhập đầy đủ thông tin")); } public void test_ADD_03() throws Exception { solo.assertCurrentActivity("",ThemLopActivity.class); solo.enterText(0,""); solo.enterText(1,"MN01"); solo.enterText(2,""); solo.clickOnButton("Lưu"); Assert.assertTrue(solo.waitForText("Vui lòng nhập đầy đủ thông tin")); } public void test_ADD_04() throws Exception { solo.assertCurrentActivity("",ThemLopActivity.class); solo.enterText(0,""); solo.enterText(1,""); solo.enterText(2,"30"); solo.clickOnButton("Lưu"); Assert.assertTrue(solo.waitForText("Vui lòng nhập đầy đủ thông tin")); } public void test_ADD_05() throws Exception { solo.assertCurrentActivity("",ThemLopActivity.class); solo.enterText(0,"ML01"); solo.enterText(1,"MN01"); solo.enterText(2,""); solo.clickOnButton("Lưu"); Assert.assertTrue(solo.waitForText("Vui lịng nhập đầy đủ thơng tin")); } public void test_ADD_06() throws Exception { solo.assertCurrentActivity("",ThemLopActivity.class); solo.enterText(0,"ML01"); solo.enterText(1,""); solo.enterText(2,"30"); solo.clickOnButton("Lưu"); Assert.assertTrue(solo.waitForText("Vui lịng nhập đầy đủ thơng tin")); } public void test_ADD_07() throws Exception { solo.assertCurrentActivity("",ThemLopActivity.class); solo.enterText(0,""); solo.enterText(1,"MN01"); solo.enterText(2,"30"); solo.clickOnButton("Lưu"); Assert.assertTrue(solo.waitForText("Vui lịng nhập đầy đủ thơng tin")); } public void test_ADD_08() throws Exception { solo.assertCurrentActivity("",ThemLopActivity.class); solo.enterText(0,"ML01"); solo.enterText(1,"MN01"); solo.enterText(2,"Ba mươi"); solo.clickOnButton("Lưu"); Assert.assertTrue(solo.waitForText("Vui lòng nhập số lượng số")); } public void test_BACK_09() throws Exception { solo.assertCurrentActivity("",ThemLopActivity.class); solo.clickOnButton("Quay Lại"); solo.waitForActivity(MainActivity.class, 3); } @Override public void tearDown() throws Exception { solo.finishOpenedActivities(); } } Một số kết báo cáo thống kê Sau thực thi xong ca kiểm thử, kết ghi lại vào file excel Dưới kết ca kiểm thử Bảng 1: Kết kiểm thử cho hình đăng nhập hệ thống Module Code Kết kiểm thử ứng dụng Human Resource Management cho chức đăng nhập hệ thống Login Pass Fail Untested N/A Number of Test cases 3 0 ID Te st C ase De scri pti on Te st C ase Proce du re Expe cte d O u tpu t Pre -con di ti on De scri pti on : Login Nhập username với username password hợp lệ T rường username hiển t hị xác liệu người dùng nhập User t ồn t ại t rong CSDL P ass LOGIN_01 Te st data: Nhập password T rường password hiển t hị xác liệu người dùng nhập + Username: admin Click Login Hệ t hống đăng nhập t hành cơng Màn hình quản lý hiển t hị User t ồn t ại t rong CSDL P ass LOGIN_02 User t ồn t ại t rong CSDL Fail LOGIN_03 User t ồn t ại t rong CSDL Fail LOGIN_04 User t ồn t ại t rong CSDL Fail LOGIN_05 P ass CANCEL_01 Re su l t Au tomati on Te st C ase ID S i gn In + P assword: admin De scri pti on : Login Nhập username với username password không t ồn t ại Te st data: Nhập password + Username: sa1 Click Login T rường username hiển t hị xác liệu người dùng nhập T rường password hiển t hị xác liệu người dùng nhập Hệ t hống đăng nhập không t hành công hiển t hị t hông báo lỗi + P assword: sa1 De scri pti on : Login Nhập username với username password bao gồm kí t ự khoảng t rắng Te st data: Nhập password + Username: Click Sign In T rường username hiển t hị xác liệu người dùng nhập T rường password hiển t hị xác liệu người dùng nhập Hệ t hống đăng nhập không t hành công hiển t hị t hông báo lỗi + P assword: De scri pti on : Login Nhập password với username rỗng Te st data: Click Sign In T rường password hiển t hị xác liệu người dùng nhập Hệ t hống đăng nhập không t hành công hiển t hị t hông báo lỗi + Username: + P assword: admin De scri pti on : Login Nhập username với password rỗng T rường username hiển t hị xác liệu người dùng nhập Click Sign In Hệ t hống đăng nhập không t hành công hiển t hị t hông báo lỗi Nhập username T rường username hiển t hị xác Form Sign In mở liệu người dùng nhập Te st data: Nhập password T rường password hiển t hị xác liệu người dùng nhập + Username: admin Click Cancel Hệ t hống t hực xóa liệu t rên form Te st data: + Username: admin + P assword: De scri pti on : Chức Cancel + P assword: admin Bảng 2: Kết kiểm thử cho hình thêm nhân viên Kết kiểm thử ứng dụng Human Resource Management cho chức thêm nhân viên Module Code Insert Pass Fail Untested N/A Number of Test cases 0 ID Test Case Description Test Case Procedure Expected O utput Pre-condition Nhập liệu hợp lệ trường Các trường hiển thị xác liệu người dùng nhập Đã login vào hệ thống Click Insert Hệ thống tạo nhân viên thành công Form Insert Employee mở Click Insert Hệ thống không cho phép tạo nhân viên thông báo lỗi hiển thị Đã login vào hệ thống Result Automatio n Test Case ID Insert Description: Nhập liệu hợp lệ trường Test data: Pass INSERT _EE 01 Fail INSERT _EE 02 Fail INSERT _EE 03 Fail INSERT _EE 04 + ID: PD01734 + Name: Đỗ Viết Lộc + Birthday: 13/12/1990 + T el: 0905234533 + Email:Locdvpd01734@fpt.edu.vn Description: Không nhập liệu trường Test data: Form Insert Employee mở + ID: + Name: + Birthday: + T el: + Email: Description: Nhập liệu không hợp lệ Nhập liệu không hợp Các trường hiển thị trường ngày sinh lệ trường xác liệu người dùng nhập Test data: Click Insert Hệ thống không cho phép tạo nhân viên thông báo lỗi hiển thị Đã login vào hệ thống Form Insert Employee mở + ID: PD01735 + Name: Đỗ Viết Lộc + Birthday: 13/13/1990 + T el: 0905234533 + Email:Locdvpd01734@fpt.edu.vn Description: Nhập liệu không hợp lệ Nhập liệu không hợp Các trường hiển thị trường email lệ trường xác liệu người dùng nhập Test data: + ID: PD01735 + Name: Đỗ Viết Lộc + Birthday: 13/13/1990 + T el: 0905234533 + Email:Locdvpd01734 Click Insert Hệ thống không cho phép tạo nhân viên thông báo lỗi hiển thị Đã login vào hệ thống Form Insert Employee mở Bảng 3: Kết kiểm thử cho hình hiển thị nhân viên lên hình Kết kiểm thử ứng dụng Human Resource Management cho chức hiển thị nhân viên lên hình Module Code view Pass Fail Untested N/A Number of Test cases 0 ID Test Case Description Test Case Procedure Expected O utput Pre-condition Result Automatio n Test Case ID Remove Description: Chức view toàn nhân viên Hiển thị toàn nhân viên T ất nhân viên hệ thống hiển thị đầy đủ Đã login vào hệ thống Pass VIEW_01 Pass VIEW_02 Form View Employee mở Test Data: N/A Description: Chức hiển thị thông tin chi tiết nhân viên Test Data: N/A Click vào nhân viên Hiển thị thông tin chi tiết nhân viên Đã login vào hệ thống Form View Employee mở Bảng 4: Kết kiểm thử cho chức xóa nhân viên Kết kiểm thử ứng dụng Human Resource Management cho chức xóa nhân viên tồn Module Code Remove Pass Fail Untested N/A Number of Test cases 0 ID Test Case Description Test Case Procedure Expected O utput Pre-condition Result Automatio n Test Case ID Remove Description: Chức Remove nhân viên Chọn nhân viên nhấn giữ nhân viên Hệ thống đưa hộp thoại thông báo "Are you sure" Test Data: N/A Pass REMOVE_0 Pass REMOVE_0 Form Remove Employee mở Test Data: N/A Description:Chức Remove nhân viên Đã login vào hệ thống Chọn nhân viên nhấn giữ nhân viên Nhấn button OK hộp thoại thơng báo Xóa nhân viên khỏi hệ thống Đã login vào hệ thống Form Remove Employee mở