Đăng ký Đăng nhập
Trang chủ Phương pháp và công cụ để hỗ trợ kiểm thử phần mềm android...

Tài liệu Phương pháp và công cụ để hỗ trợ kiểm thử phần mềm android

.PDF
50
27
134

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Phan Thị Huế PHƯƠNG PHÁP VÀ CÔNG CỤ ĐỂ HỖ TRỢ KIỂM THỬ PHẦN MỀM ANDROID LUẬN VĂN THẠC SĨ HÀ NỘI - 2016 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Phan Thị Huế PHƯƠNG PHÁP VÀ CÔNG CỤ ĐỂ HỖ TRỢ KIỂM THỬ PHẦN MỀM ANDROID Ngành: Công nghệ thông tin Chuyên ngành: Kĩ thuật phần mềm Mã số: 60.48.01.03 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN CHÍNH: PGS.TS. Trương Ninh Thuận NGƯỜI HƯỚNG DẪN PHỤ: TS. Trịnh Thanh Bình HÀ NỘI – 2016 Lời cảm ơn Trước tiên, em xin bày tỏ lòng biết ơn chân thành và sâu sắc tới Thầy giáo PGS.TS Trương Ninh Thuận và TS Trịnh Thanh Bình đã tận tình chỉ bảo, hướng dẫn, động viên và giúp đỡ em trong suốt quá trình thực hiện đề tài luận văn. Em xin gửi lời cảm ơn sâu sắc tới các Thầy Cô trong Khoa Công nghệ thông tin đã truyền đạt kiến thức quý báu cho em trong hai năm học vừa qua. Con xin nói lên lòng biết ơn vô hạn đối với Cha Mẹ luôn là nguồn động viên, chăm sóc và khích lệ con trên mỗi bước đường học vấn. Cuối cùng, xin chân thành cảm ơn các Anh Chị và Bạn Bè, các thành viên lớp K19, K20 KTPM đã ủng hộ, giúp đỡ tôi trong suốt thời gian tôi học tập trên giảng đường và thực hiện đề tài luận văn này. Tôi xin chân thành cảm ơn! Hà Nội, ngày 01 tháng 10 năm 2016 Học viên Phan Thị Huế PHƯƠNG PHÁP VÀ CÔNG CỤ ĐẺ HỖ TRỢ KIỂM THỬ PHẦN MỀM ANDROID Phan Thị Huế Khóa K20KTPM, ngành công nghệ thông tin. Tóm tắt Luận văn: Ngày nay với sự phát triển rộng rãi của hệ điều hành Android trên các dòng điện thoại thì việc tạo ra các phần mềm, dự án liên quan đến Android càng ngày càng tăng lên. Do đó các giải pháp hỗ trợ kiểm thử phần mềm Android sẽ rất có ý nghĩa trong việc kiểm thử chất lượng sản phẩm của các nhà phát triển trước khi đưa đến người dùng. Theo thống kê của Google Android chiếm 75% thị phần điện thoại thông minh trên toàn thế giới vào thời điểm quý 3 năm 2012 và sau 2 năm đã có hơn một tỷ máy được kích hoạt Android. Sự thành công của hệ điều hành này đã dẫn đến “cuộc chiến điện thoại thông minh” giữa các hãng sản xuất điện thoại. Và bất kỳ một chiếc điện thoại nào muốn kích hoạt Android đều phải trải qua tất cả các ca kiểm thử của Google. Các ca kiểm thử đó được Google phát triển và tích hợp trong công cụ CTS (Compatibility Test Suite) mà các đối tác phải tuân theo. Với mỗi nền tảng của Android được ra đời, Google cung cấp các bộ API tương ứng với nền tảng đó. Tương ứng với bộ API này tương ứng là tập các ca kiểm thử CTS. Mục đích là kiểm tra sự tương thích của các thiết bị Android với nền tảng đó. Với bộ kiểm thử CTS này Google cũng hỗ trợ các đối tác một công cụ để có thể kiểm thử nhanh với các thiết bị trước khi ra thị trường nằm trong bộ CTS. Sau khi nghiên cứu phương pháp CTS Google hỗ trợ các đối tác kiểm thử trên thiết bị di động chạy Android, luận văn đã áp dụng phương pháp này và xây dựng một công cụ hỗ trợ kiểm thử trên dự án Android Junit Test và mang lại những lợi ích đáng kể và có hiệu quả cao so với việc kiểm thử trực tiếp trên IDE (eclipse). Lời cam đoan Tôi xin cam đoan phương pháp và công cụ để hỗ trợ kiểm thử phần mềm Andoid được trình bày trong luận văn này là do tôi thực hiện dưới sự hướng dẫn của PGS.TS Trương Ninh Thuận và TS Trịnh Thanh Bình. Tất cả những tham khảo từ các nghiên cứu liên quan đề được nêu nguồn gốc một các rõ ràng từ danh mục tài liệu tham khảo trong luận văn. Trong luận văn, không có việc sao chép tài liệu, công trình nghiên cứu của người khác mà không chỉ rõ về tài liệu tham khảo. Hà Nội, ngày 01 tháng 10 năm 2016 Tác giả Phan Thị Huế MỤC LỤC CHƯƠNG 1: GIỚI THIỆU VỀ LUẬN VĂN VÀ LÝ DO CHỌN ĐỀ TÀI ...................5 1. Kiểm thử ứng dụng trên hệ điều hành Android .........................................5 2. Nội dung luận văn ......................................................................................6 3. Cấu trúc của luận văn ................................................................................7 CHƯƠNG 2: KHÁI QUÁT VỀ KIỂM THỬ ỨNG DỤNG TRÊN ĐIỆN THOẠI THÔNG MINH................................................................................................................8 1. Các yếu tố ảnh hưởng đến hoạt động của phần mềm trên điện thoại thông minh ..........................................................................................................................8 2. Lựa chọn điện thoại thông minh để kiểm thử ............................................8 3. Các dạng kiểm thử trên Android. ..............................................................9 4. Nền tảng kiểm thử Android .....................................................................10 5. 4.1. Instrument framework (IF) .................................................................11 4.2. Kiến trúc kiểm thử trên Android ........................................................12 Các mục tiêu kiểm thử .............................................................................13 CHƯƠNG 3: GIỚI THIỆU VỀ CTS.............................................................................14 1. Giới thiệu về Compatibility Test Suite (CTS) .........................................14 2. Nguyên lý và cách thức làm việc của CTS [3]. .......................................15 3. 4. 2.1. Docs ....................................................................................................16 2.2. Repository...........................................................................................16 2.3. Tools ...................................................................................................17 Cài đặt phương pháp CTS .......................................................................18 3.1. Môi trường vật lý trên thiết bị kiểm thử .............................................18 3.2. Cài đặt môi trường máy tinh ..............................................................18 3.3. Cài đặt trên thiết bị kiểm thử ..............................................................18 Cách chạy các ca kiểm thử CTS ..............................................................19 4.1. Sao chép dữ liệu vào thiết bị. .............................................................19 4.2. Kiểm thử một Plan..............................................................................19 4.3. Các câu lệnh hỗ trợ tối ưu thời gian kiểm thử. ...................................20 4.4. Tái kiểm thử trên kết quả cũ. ..............................................................21 4.5. Báo cáo kết quả ..................................................................................21 CHƯƠNG 4: ỨNG DỤNG CHẠY CTS TRONG KIỂM THỬ ANDROID JUNIT TEST PROJECT ............................................................................................................23 1. Phương pháp CTS áp dụng kiểm thử với dự án Android Junit Test .......23 2. Cách tạo tệp tin .apk và .xml từ Eclipse ..................................................25 2.1. Tạo tệp tin .apk sử dụng Eclipse ........................................................25 2.2. Cách tạo tệp tin .xml từ dự án trên Eclipse ........................................26 3. Quá trình kiểm thử trên thiết bị ...............................................................28 4. Ưu điểm của công cụ so với kiểm thử trực tiếp trên Eclipse. .................29 CHƯƠNG 5: XÂY DỰNG CÔNG CỤ CTS EXECUTOR..........................................30 1. 2. 3. 4. Môi trường và các công cụ sử dụng để thực nghiệm...............................30 1.1. Cấu hình phần cứng ............................................................................30 1.2. Các phần mềm sử dụng ......................................................................30 Phân tích thiết kế phần mềm....................................................................31 2.1. Phân tích các ca sử dụng ....................................................................31 2.2. Biểu đồ trình tự ...................................................................................32 2.3. Biểu đồ hoạt động ...............................................................................33 Mô tả công cụ hỗ trơ kiểm thử ................................................................34 3.1. Tổng quan về công cụ ........................................................................34 3.2. Chi tiết các chức năng ........................................................................35 Xây dựng tập ca kiểm thử thử nghiệm với công cụ CTS Executor. ........40 4.1. Xây dựng tập các ca kiểm thử ............................................................40 4.2. Kết quả thực nghiệm với công cụ CTS Executor ...............................40 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ..............................................42 Danh sách hình vẽ Hình 2.1 : Định dạng file manifest trong Android Junit Test........................................11 Hình 2.2 : Kiến trúc testing framework [1] ..................................................................12 Hình 3.1 : Qui trình đạt được Google’s certification ....................................................14 Hình 3.2 : Phương thức sử dụng CTS ...........................................................................15 Hình 3.3 : Cấu trúc của CTS .........................................................................................15 Hình 3.4 : Danh sách các ca kiểm thử ...........................................................................16 Hình 3.5 : Danh sách các tệp .xml và .apk ....................................................................16 Hình 3.6 : Danh sách các pakage trong Plan .................................................................17 Hình 3.7 : Thư mục kết quả chạy ..................................................................................21 Hình 3.8 : Minh họa cho kết quả chạy bằng phương pháp CTS ...................................22 Hình 3.9 : Chi tiết kết quả chạy của một ca kiểm thử ...................................................22 Hình 4.1 : Xây dựng tệp .apk và .xml từ dự án .............................................................24 Hình 4.2 : Tệp tin .apk được biên dịch từ dự án Android Junit Test.............................24 Hình 4.3 : Nội dung cho tập tin .xml .............................................................................24 Hình 4.4 : Cấu trúc của tệp Plan ....................................................................................25 Hình 4.5 : Kiểm tra trạng thái của thiết bị kiểm thử......................................................25 Hình 4.6 : Xây dựng tệp .apk từ dự án kiểm thử sử dụng Eclipse ................................25 Hình 4.7 : Đường dẫn chứa tệp .apk sau khi build bằng Eclipse ..................................26 Hình 4.8 : Công cụ tạo file .xml từ dự án Android Junit ...............................................26 Hình 4.9 : Test suite diagram ........................................................................................27 Hình 4.10 : Tệp tin .xml sau khi được tạo ra từ dự án kiểm thử ...................................27 Hình 4.11 : Multi USB Port ...........................................................................................28 Hình 4.12 : Quá trình kiểm thử trên thiết bị di động .....................................................28 Hình 5.1: Biểu đồ ca sử dụng khởi động chương trình .................................................31 Hình 5.2: Biểu đồ ca sử dụng khi kết nối điện thoại .....................................................31 Hình 5.3: Biểu đồ ca sử dụng thực hiện chạy chương trình CTS executor ...................32 Hình 5.4: Biểu đồ trình tự khi người dùng kết nối điện thoại .......................................32 Hình 5.5: Biểu đồ trình tự khi chạy chương trình CTS Executor .................................33 Hình 5.6: Biểu đồ hoạt động chạy chương trình CTS Executor ...................................33 1 Hình 5.7: Màn hình CTS Executor ................................................................................34 Hình 5.8 : Cài đặt thư mục các ca kiểm thử và lưu trữ báo cáo kết quả .......................37 Hình 5.9 : Tập các test case dùng trong chương trình kiểm thử....................................38 Hình 5.10 : Kết quả chạy chương trình kiểm thử ..........................................................39 Hình 5.11 : Kết quả kiểm thử xuất dưới file .excel ......................................................39 2 Danh sách bảng biểu Bảng 3.1 : Bảng minh họa CTS versions cho các phiên bản Android ..........................14 Bảng 3.2: Câu lệnh hỗ trợ kiểm thử trong CTS.............................................................17 Bảng 4.1 : Bảng minh họa ưu điểm của công cụ CTS Executor ...................................29 Bảng 5.1 : Bảng minh họa cấu hình phần cứng để chạy công cụ CTS Executor ..........30 Bảng 5.2 : Danh sách các phân mềm sử dụng ...............................................................30 Bảng 5.4 : Bảng hiển thị icon cho các trạng thái kết nối ...............................................35 Bảng 5.5 : Bảng hiển thị cho các trạng thái của Bluetooth ...........................................35 Bảng 5.6 : Bảng các trạng thái hiển thị của wifi ...........................................................35 Bảng 5.7 : Bảng các trạng thái hiển thị của sim ...........................................................36 Bảng 5.8 : Bảng hiển thị các trạng thái để chạy và dừng chương trình ........................36 Bảng 5.9 : Tập các ca kiểm thử thực nghiệm ................................................................40 Bảng 5.10 : Kết quả thực nghiệm ..................................................................................40 3 Danh sách các từ viết tắt CTS CDD IDE API DUT ADB AAPT IF Compatibility Test Suite Compatibility Defination Document Integrated Development Environment Application Programming Interface Device Under Test Androi Debug Bridge Asset Package Tool Instrument framework 4 CHƯƠNG 1: GIỚI THIỆU VỀ LUẬN VĂN VÀ LÝ DO CHỌN ĐỀ TÀI 1. Kiểm thử ứng dụng trên hệ điều hành Android Với sự phát triển không ngừng của Internet cộng với trào lưu mạng xã hội bùng nổ điện thoại thông minh đang ngày càng được sử dụng nhiều nhằm đáp ứng nhu cầu giải trí đa dạng của người dùng. Từ một chiếc điện thoại thông minh chỉ được cài sẵn vài ba ứng dụng của nhà sản xuất thì nay với các thiết bị chạy hệ điều hành nhúng như Android có thể dễ dàng đáp ứng được nhu cầu của người dùng bằng cách cài thêm phần mềm bên thứ ba không gây trở ngại nào. Từ đây lại đặt ra một vấn đề hiển nhiên là kiểm thử các phần mềm chạy trên các thiết bị di động xem chúng có đáp ứng được các yêu cầu đề ra ban đầu hay không trước khi phân phát sản phẩm đến tay người tiêu dùng. Có hàng nghìn các thiết bị và các phiên bản Android mà ứng dụng của bạn cần phải tương thích với chúng. Một vài lỗi, sai lầm xuất hiện trong phần mềm Android như sau [1]: - Cài đặt ứng dụng bị lỗi. - Ứng dụng bị treo khi hoạt động. - Màn hình hiển thị ứng dụng có vấn đề. - Ứng dụng bị treo khi tài nguyên không khả dụng. - Hiển thị lỗi khi ứng dụng ở chế độ màn hình xoay ngang hoặc dọc. Những lầm tưởng phổ biến và thực tế trong quá trình kiểm thử phần mềm Andoird thường thấy gồm có [4]: Lầm tưởng 1: Tất cả các thiết bị Android đều giống nhau thử nghiệm trên giả lập là đủ. Điều này hoàn toàn sai lầm, ví dụ một ứng dụng hoạt động hoàn hảo trên thiết bị giả lập nhưng trên một số thiết bị thực tế, nó bị treo trong quá trình thực hiện. Thiết bị giả lập không đủ để thực hiện kiểm thử trên điện thoại di động. Do đó phải thử nghiệm ứng dụng trên các thiết bị thực tế. Lầm tưởng 2: Thực hiện kiểm thử trên một số thiết bị phổ biến là đủ. Điều này hoàn toàn sai vì các thiết bị khác nhau ứng dụng được hiển thị khác nhau, vì mỗi thiết bị có phần cứng, kích cỡ màn hình, bộ nhớ khác nhau...Phải kiểm thử ứng dụng trên các thiết bị khác nhau, phiên bản hệ điều hành khác nhau và địa điểm khác nhau, tốc độ mạng khác nhau... Lầm tưởng 3: Kiểm kê thăm dò trước khi ra mắt sản phẩm là đủ. Lầm tưởng 4: Nếu có một số lỗi trong ứng dụng thì người dùng sẽ hiểu, điều này hoàn toàn sai lầm. Nếu ứng dụng không hoạt động và có lỗi xảy ra thì người dùng sẽ gỡ bỏ ứng dụng đó. Vì thế vấn đề chất lượng là yếu tố tiên quyết ảnh hưởng đến danh tiếng và niềm tin của khách hàng. 5 Do đó để có một phần mềm chất lượng trước khi đến tay người dùng cần một chiến lược kiểm thử chính xác trên nhiều các thiết bị khác nhau, phiên bản hệ điều hành Android khác nhau gồm có: - Kiểm thử đơn vị (Unit test) - Kiểm thử tích hợp (Integration test) - Kiểm thử hoạt động (Operational test) - Kiểm thử hiệu năng (Performance test) - Kiểm thử hệ thống (System test) - Kiểm thử người dùng hay kiểm thử chấp nhận. Giảm lược được thời gian kiểm thử và có một kết quả kiểm thử chính xác nhất thì việc tìm ra các phương pháp và xây dựng công cụ hỗ trợ kiểm thử là rất cần thiết. Hiện nay trên thị trường việc kiểm thử đơn vị (Unit test) chỉ được thực hiện trực tiếp trên các môi trường phát triển như Eclipse, Android Studio mà chưa có một công cụ nào hỗ trợ kiểm thử đơn vị nào thay thế. Đây chính là lý do để em tìm hiểu phương pháp và xây dựng công cụ để hỗ trợ kiểm thử Android Junit Test. 2. Nội dung luận văn Luận văn khái quát về kiểm thử trên các thiết bị thông minh sử dụng hệ điều hành Android và giới thiệu về nền tảng kiểm thử của hệ điều hành này. Sau đó đi sâu vào nghiên cứu phương pháp kiểm thử CTS do Google đề xuất để kiểm tra sự tương thích của Android với các thiết bị sử dụng hệ điều hành này. Từ phương pháp nghiên cứu đã xây dựng cách tiếp cận kiểm thử một dự án Android Junit Test, đồng thời xây dựng công cụ hỗ trợ kiểm thử các phần mềm Android Junit trên các thiết bị di dộng thực tế. Công cụ đã mang lại những ưu điểm đáng kể so với việc kiểm thử trực tiếp hiện nay trên các môi trường phát triển như Eclipse hay Android Studio. Nó mang đến một giao diện thân thiện với người dùng và hỗ trợ nhưng tính năng trực quan. Luận văn cũng đưa ra việc thử nghiệm công cụ CTS Executor trên dự án Android Junit Test thực tế Knox custom API Test để so sánh với việc kiểm thử trực tiếp dự án này trên Eclipse. Qua thực nghiệm đã chỉ ra những ưu điểm công cụ CTS Executor mang lại cũng như chỉ ra những hướng phát triển thêm của luận văn trong tương lai. 6 3. Cấu trúc của luận văn Nội dung của luận văn được chia thành các chương như sau:  Chương 1: Giới thiệu về luận văn và lý do chọn đề tài.  Chương 2: Khái quát về kiểm thử ứng dụng trên điện thoại thông minh sử dụng hệ điều hành Android.  Chương 3: Luận văn trình bày phương pháp kiểm thử CTS của Google hỗ trợ các đối tác kiểm thử thiết bị di động sử dụng nền tảng Android trước khi ra thị trường.  Chương 4: Luận văn trình bày cách thức áp dụng phương pháp CTS để xây dựng công cụ hỗ trợ và phát triển phẩm mềm Android Junit test.  Chương 5: Luận văn trình bày thực nghiệm trong việc áp dụng công cụ để kiểm thử một dự án Android Junit Test thực tế so với kiểm thử trực tiếp trên môi trường phát triển Eclipse.  Chương 6: Tóm lược kết quả đạt được của luận văn và định hướng phát triển trong tương lai. 7 CHƯƠNG 2: KHÁI QUÁT VỀ KIỂM THỬ ỨNG DỤNG TRÊN ĐIỆN THOẠI THÔNG MINH Đã qua rồi cái thời điện thoại chỉ sử dụng để gọi và nghe, máy tính chỉ giới hạn dùng trong một số các lĩnh vực. Giờ đây với sự phát triển không ngừng của internet và trào lưu mạng xã hội bùng nổ từ một chiếc điện thoại thông thường chỉ được cài sẵn một vài ứng dụng của nhà sản xuất thì nay những thiết bị chạy các hệ điều hành nhúng như Andoird, iOS...Đặc biệt Android là hệ điều hành mã nguồn mở do Google phát hành cho phép nhà phát triển tạo ra các phần mềm vô cùng đa dạng và phong phú để đáp ứng nhu cầu sử dụng và giải trí của người dùng. Và các phần mềm đó cần phải kiểm thử có đáp ứng được các yêu cầu đề ra hay không.Trong chương này luận văn sẽ đi vào tìm hiểu khái quát về kiểm thử phần mềm trên hệ điều hành Android [1]: 1. Các yếu tố ảnh hưởng đến hoạt động của phần mềm trên điện thoại thông minh Tuổi thọ của pin: Bình thường một chiếc điện thoại có thời lượng pin đủ dùng trong nhiều ngày nhưng với những chiếc điện thoại thông minh do sử dụng rất nhiều các dịch vụ giải trí như kết nối mạng, nghe nhạc, xem phim... nên thời lượng pin bị rút ngắn đi rất nhiều thường xuyên phải nạp điện. Vì vậy khi phát triển phần mềm trên điện thoại thông minh cần tính toán đến dung lượng pin khi phần mềm đó hoạt động. Kết nối mạng: Các ứng dụng trên điện thoại luôn tiêu thụ tài nguyên khi chúng kết nối mạng. Bản chất của di động là vị trí luôn thay đổi người dùng có thể ngắt kết nối mạng ở những vùng không hỗ trợ. Phần mềm phát triển phải thiết kế có khả năng hoạt động ngay cả khi không có kết nối mạng (offline) chẳng hạn như gửi thư điện tử hay viết tin nhắn và ngay sau khi mạng được kết nối thì thư và tin nhắn mà người dùng đã soạn thảo trước đó được gửi tự động. Phần cứng khác nhau: Sự khác nhau giữa các thiết bị và phần mềm cài trên từng thiết bị này, bao gồm kích cỡ màn hình, chipset, bộ nhớ trong, bộ nhớ ngoài, và những cảm biến được hỗ trợ, GPS, bàn phím và đầu vào của thiết bị. Lý tưởng nhất phần mềm phát triển có thể hoạt động trên mọi thiết bị phần cứng và nền tảng khác nhau. Giới hạn về tài nguyên: Hầu hết các thiết bị di động đều có tài nguyên hạn chế như tốc độ xử lý của CPU, không gian lưu trữ... Vì vậy vấn đề tiết kiệm tài nguyên hệ thống của các ứng dụng cũng rất cần được xem trọng. 2. Lựa chọn điện thoại thông minh để kiểm thử Hầu hết các đội kiểm thử đều không có đủ tất cả mọi mẫu điện thoại cần thiết nên trên mỗi nền tảng ta có thể chọn ra các thiết bị di động tiêu biểu để kiểm thử. Chọn đúng thiết bị cần kiểm thử, vì mỗi thiết bị đều có những tính năng đặc thù riêng ví dụ như iOS thì chỉ có năm mẫu có màn hình kích thước khác nhau là iPad (9.7 8 inches), iPad Mini (7.9 inches), iPhone 4S (3.5 inches) và iPhone 5 (4.0 inches) trong khi Android thì có tới hơn 10 nhà sản xuất phần cứng như Samsung, Sony, HTC, Google, LG... với hàng trăm mẫu màn hình kích thước khác nhau. Nắm bắt được các kiến thức cơ bản của môi trường lập trình SDK để từ đó ta có thể tạo được các máy ảo (Emulator) phù hợp để kiểm thử. Nhưng việc kiểm thử trên máy ảo khác xa hoàn toàn với việc kiểm thử trên các thiết bị thực tế. Đây là một trong những sai lầm quan trọng của việc kiểm thử trên các thiết bị di động. Để đảm bảo ứng dụng hoạt động tốt trên các thiết bị thật thì nên kiểm thử trên một số các thiết bị như sau: Các thiết bị phổ biển bao gồm: Iphone 5s của Apple, Nokia N73 Các thiết bị Android phổ biến: Samsung Galaxy Nexus chạy Android 4.0 Các thiết bị ít phổ biến: Sony Xperia Z1, 2 3. Các dạng kiểm thử trên Android. Kiểm thử đơn vị (Unit testing): Được khuyến nghị nên sử dụng cho các đơn vị mã nhỏ (API). Một đơn vị mã nhỏ có thể có một vài phương thức riêng lẻ hay phương thức quan hệ trong một tệp chương trình. Kiểm thử đơn vị chỉ kiểm tra một phần nhỏ của chương trình để xem chúng hoạt động có đúng không. Với Android, kiểm thử đơn vị được tạo và chạy như một phần của qui trình phát triển phần mềm. Kiểm thử đơn vị được viết bởi lập trình viên phát triển phần mềm đó. Các lập trình viên nên phân lập các thành phần để kiểm thử và phải có khả năng tái kiểm thử. Đó chính là lý do tại sao kiểm thử đơn vị và các đối tượng giả lập thường đặt cùng nhau. Kiểm thử tích hợp: Khi kiểm thử đơn bị đã thành công thì kiểm thử tích hợp sẽ giúp ta kiểm thử được cả ứng dụng khi kết hợp các modul với nhau. Như đã đề cập ở bên trên kiểm thử đơn vị đã đủ linh hoạt để thay thế các loại kiểm thử khác, bao gồm cả kiểm thử tích hợp. Bởi kiểm thử tích hợp sẽ cần nhiều mã hơn nên mất nhiều thời gian, nhất là với các thiết bị di động tài nguyên luôn hạn hẹp. Để khắc phục ta có thể chạy các công việc tốn thời gian một cách bất đồng bộ và chỉ kiểm thử tích hợp khi kiểm thử đơn vị đã thành công. Kiểm thử hoạt động (Activity): Activity là khái niệm đồng nhất và cũng là thành phần quan trọng nhất trong ứng dụng Android. Một activity là một thành phần rời rạc và liên kết chia sẻ dữ liệu với các thành phần khác trong Android thông qua giao diện và các nguồn chạy ngầm. Android SDK cũng bao gồm các nền tảng cho phép kiểm thử tự động các Activity. Thông thường Andoird Activity cần tích hợp với hệ thống để thực thi được. Các Activity cần ActivityManager cung cấp vòng đời và truy cập vào các tài nguyên, hệ thống file và cơ sở dữ liệu. Tương tự Service và ContentProvider, tất cả các thành phần này được Android testing framework hỗ trợ cho việc kiểm thử dễ dàng. Kiểm thử hiệu năng: Quá trình kiểm thử này sẽ đo hiệu năng của các thành phần trong hệ thống bằng cách lặp đi lặp lại việc gọi một chức năng hay một API nào 9 đó. Kiêm thử hiệu nặng được thực hiện để xác định hệ thống hoặc hệ thống con thực hiện một khối lượng công việc cụ thể nhanh như thế nào. Nó cũng có thể dùng để xác nhận và xác minh những thuộc tính chất lượng khác của hệ thống như khả năng mở rộng, độ tin cậy và sử dụng tài nguyên. Một hệ thống được cho là kiểm tra hiệu năng tốt phải đảm bảo các yếu tố như liệu có đáp ứng đủ cho người dùng một cách nhanh chóng, liệu việc xử lý dữ liệu có đáp ứng được yêu cầu của người dùng, khả năng chịu tải và hơn thế nữa. Ngoài ra liệu có xử lý được số lượng giao dịch lớn cùng một thời điểm. Kiểm thử hệ thống: Ứng dụng kiểm thử hệ thống là kiểm thử toàn bộ ứng dụng. Một vài nền tảng bao gồm cả việc kiểm thử cả chương trình nhỏ chạy ngầm bên dưới. Có một số các phần mềm kiểm thử tự động có thể sinh ra các tác tử (Agent) chạy ngầm trên thiết bị di động để tạo ra các test scrip kiểm thử một cách tự động. Các tác tử này có một vài dạng như chạy trên thiết bị và cho phép chúng tương tác với ứng dụng hay chạy trên các ứng dụng riêng lẻ. Kiểm thử hệ thống cũng đo đặc tính hiệu năng của các thành phần lặp lại nhiều lần để có thể tối ưu hóa phần mềm. Kiểm thử giao diện: Là một quá trình rất quan trọng trong kiểm thử trên điện thoại thông minh. Một ứng dụng lý tưởng là có thể hoạt động trên mọi phần cứng và mọi nền tảng. Các thao tác như cuộn (scroll), kéo (drag), xoay màn hình (rotate), (chọn) click, (giữ lâu) long click, chạm (touch)... Mọi ứng dụng cần phải được kiểm tra xem có thể hoạt động tốt trên thiết bị đó hay chưa. Kiểm thử cài đặt: Sau khi đóng gói phần mềm cần cài đặt việc kiểm thử có thành công không trước khi bàn giao cho khách hàng. 4. Nền tảng kiểm thử Android Nền tảng kiểm thử của Android cung cấp rất tiện dụng được mở rộng từ nền tảng kiểm thử của Junit chuẩn với nhiều tính năng phù hợp với các chiến lược kiểm thử. Những tính năng này bao gồm:  Bổ sung các class Android mở rộng từ JUnit cho phép truy cập vào các đối tượng hệ thống trong Android.  Instrumentation framework cho phép kiểm soát và kiểm tra ứng dụng.  Các đối tượng giả lập (Mock) được sử dụng phổ biến trong hệ thống Android để kiểm tra khả năng chịu tải của các ứng dụng.  Các công cụ cho phép thực hiện kiểm thử riêng lẻ hay chạy cả một dãy các lệnh kiểm thử mà có thể không cần đến Instrumentation framework (IF).  Hỗ trợ quản lí kiểm thử trong ADT plugin của Eclipse và cả chế độ dòng lệnh của hệ điều hành. 10 4.1. Instrument framework (IF) Instrumentation framework là một phần cơ bản của nền tảng kiểm thử trong Android. IF điều khiển ứng dụng kiểm thử và cho phép gắn các đối tượng thay thế giả lập (Mock object) vào ứng dụng để chạy. Ví dụ ta có thể tạo một đối tượng giả lập Context trước khi ứng dụng bắt đầu và cho phép ứng dụng sử dụng nó. Tất cả mọi tương tác giữa ứng dụng và môi trường xung quanh có thể sử dụng phương pháp tiếp cận này. Ta cũng có thể tách riêng ứng dụng của chúng ta trong một môi trường giới hạn để lấy về kết quả, hoặc các dữ liệu được lưu trữ và không thay đổi như Content Provider, cơ sở dữ liệu hay thậm chí là hệ thống các tệp tin. Một dự án Android thường có một dự án kiểm thử tương ứng với tên kết thúc bằng “Test”. Bên trong một dự án kiểm thử file AndroidManifest.xml khai báo thẻ cho biết IF là . Ví dụ: giả sử dự án Android có file manifest có dạng sau: Hình 2. 1 : Định dạng file manifest trong Android Junit Test Nhìn ví dụ này có thể thấy ngay rằng trong thẻ khai báo IF là với thuộc tính name là trình chạy kiểm thử test runner, class mặc định của Android testing API (android.test.runner), ta cũng có thể tùy biến class này bằng cách kế thừa từ class InstrumentationTestRunner, thuộc tính targetPackage chỉ ra package của ứng dụng mà ta muốn kiểm thử (trong ví dụ là AddressContacts). 11 4.2. Kiến trúc kiểm thử trên Android Hình 2. 2 : Kiến trúc testing framework [1] Trong kiến trúc này InstrumentationTestRunner làm nhiệm vụ trung gian trong việc chạy các các ca kiểm thử. Các thành phần chính trong kiến trúc này: - Application package: chứa toàn bộ ứng dụng để kiểm thử. - Test projects: chứa các mã nguồn, file manifest và những file khác dùng để kiểm thử ứng dụng. Ta có thể sử dụng Eclipse để tạo ra dự án kiểm thử này. - Testing API: Nơi chứa các ca kiểm thử đã được cài đặt. - Junit: có thể sử dụng các class Junit testcase để kiểm thử đơn vị. - Instrumentation: Android Instrumentation là một tập các phương thức điều khiển trong hệ thống Andoird. Các điều khiển này độc lập với vòng đời của ứng dụng và chúng cũng kiểm soát cách Android tải ứng dụng để chạy. Thông thường Android framework không cung cấp cách để gọi trực tiếp các hàm callback trong vòng đời của một ứng dụng như onCreate(), onResume(),... nhưng với instrumentation ta có thể gọi các hàm này thông qua các phương thức như getActivity(), activity.finish(),... - Test case classes: Android cung cấp một vài class kế thừa từ lớp TestCase và Assert của Junit framework như Application TestCase, Instrumentation TestCase,... - Mock Object: để chống sự phụ thuộc (dependency injection) trong kiểm thử, Adroid cung cấp các class để tạo các đối tượng hệ thống giả lập như MockContext, MockContentProvider,... 12 - MonkeyRunner: những API để thực thi trong môi trường với ngôn ngữ là Python. - Monkey: một công cụ dòng lệnh để kiểm thử khả năng chịu tải của ứng dụng thông qua công cụ adb của hệ điều hành Android. 5. Các mục tiêu kiểm thử Trong suốt quá trình phát triển phần mềm, các ca kiểm thử sẽ hướng đến các thiết bị khác nhau. Từ đơn giản, phức tạp và tốc độ kiểm thử trên máy ảo đến trên một thiết bị thật cụ thể nào đó. Ngoài ra có một vài trường hợp trung gian như chạy kiểm tra trên một máy ảo cục bộ JVM hay DVM, phụ thuộc vào từng trường hợp. Mỗi trường hợp đều có ưu và nhược điểm riêng. Máy ảo có lẽ là thiết bị phù hợp nhất mà ta có thể thay đổi gần như tất cả các tham số cấu hình để mô phỏng các điều kiện khác nhau cho các ca kiểm thử. Thiết bị thật dùng để kiểm thử hiệu năng vì trên máy ảo sẽ không thể tính ra được các thông số trên thiết bị thật sẽ như thế nào. Rendering, filling, và các trường hợp khác phải được kiểm tra trước khi ứng dụng được chuyển giao cho người dùng cuối. Tóm lại ứng dụng nên được kiểm tra ở mọi trường hợp, đây là cách tốt nhất để phát hiện những lỗi trước hơn khi là lỗi được phát hiện bởi khách hàng khi sử dụng. 13
- Xem thêm -

Tài liệu liên quan