Đăng ký Đăng nhập
Trang chủ ứng dụng robotium để kiểm thử các chương trình trên android...

Tài liệu ứng dụng robotium để kiểm thử các chương trình trên android

.PDF
82
45
116

Mô tả:

- 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 ....................................................................................................................1 Chương 1 CƠ SỞ LÝ THUYẾT ........................................................................6 1.1. Kiểm thử phần mềm ............................................................................6 1.1.1. Tổng quan về kiểm thử phần mềm..............................................6 1.1.2. Quy trình kiểm thử phần mềm ....................................................6 1.1.2.1. Kiểm thử đơn vị (Unit Test) ...................................................7 1.1.2.2. Kiểm thử tích hợp (Integration Test) ......................................7 1.1.2.3. Kiểm thử hệ thống (System Test) ...........................................8 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 năng ....................................................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 về kiểm thử trên điện thoại thông minh ..........................12 1.2.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 ...............................................................................................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ử trên 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 trên 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 hiện nay ........................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 các framework kiểm thử trên Android hiện nay..........25 Chương 2 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ử các ứng dụng trên Android .............................26 2.1.1. Mô tả vấn đề ..............................................................................26 - iii- 2.1.2. Hạn chế của việc kiểm thử ứng dụng trên nền 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 trên 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 trên để 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 3 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 bản kiểm thử ..............................................................40 3.1.3. Thực thi kiểm thử ......................................................................42 3.1.4. Kết quả kiểm thử .......................................................................44 3.2. Kiểm thử ứng dụng quản lý nhân sự .................................................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 quả .......................................................................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 quả .......................................................................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 quả .......................................................................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 ……………………………………………………………………...1 - 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, cùng với sự phát triển mạnh mẽ của hệ điều hành Android trên các dòng điện thoại khác nhau, các dự án phần mềm hoặc ứng dụng liên quan đến nó càng ngày càng tăng cao. Vậy, vấn đề đặt ra là làm thế nào để đảm bảo được chất lượng của một sản phẩm phần mềm bất kỳ, đặc biệt là trên Android OS đối với xu hướng phát trển thời nay? Đối với mô hình phát triển phần mềm hoàn chỉnh như bây giờ, người ta thấy rằng giai đoạn kiểm thử chất lượng sản phẩm trước khi đưa đến tay người tiêu dùng có ý nghĩa quan trọng. Kiểm thử phần mềm là một hoạt động giữ vai trò rất quan trọng để bảo đảm chất lượng phần mềm và là hoạt động mang tính sống còn trong các dự án sản xuất hoặc 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 trong các dự án phát triển phần mềm trên thế giới, kể cả ở Việt Nam. Có rất nhiều giải pháp hỗ trợ kiểm thử chương trình phần mềm trên Android OS hiện nay, ví dụ như BlueStacks App Player, Android on Intel Architecture, Calablash… Và sau khi nghiên cứu Framework Robotium dùng hỗ trợ các đối tác kiểm thử chạy trên thiết bị di động sủ dụng hệ điều hành Android, luận văn đã áp dụng framework này để xây dựng một quy trình kiểm thử hỗ trợ kiểm thử trên dự án Android. Nó mang lại những lợi ích đáng kể và có hiệu quả cao hơn so với việc kiểm thử trực tiếp trên IDE (Android Studio). Từ khóa – kiểm thử phần mềm; kiểm thử phần mềm trên di động; kiểm thử phần mềm trên 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 các framework kiểm thử Android hiện nay 25 3.1 Thống kê kết quả ca kiểm thử đăng nhập hệ thống. 43 3.2 Thống kê kết quả ca kiểm thử ứng dụng quản lý nhân sự. 47 3.3 Thống kê kết quả ca kiểm thử ứng dụng quản lý thu chi cá 51 nhân. 3.4 Thống kê kết quả 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 độ cơ bản của kiểm thử phần mềm 6 1.2 Các bước kiểm thử 12 1.3 Định dạng tệp manifest trong kiểm thử đơn vị Android 18 1.4 Kiến trúc kiểm thử ứng dụng trên Android 18 2.1 Mô hình hóa qui trình kiểm thử các ứng dụng Android sử dụng Robotium 28 2.2 Tạo mới dự án Android 30 2.3 Đồng bộ hóa Robotium 32 2.4 Giao diện chương trình máy tính Android 32 2.5 Kịch bản kiểm thử cho chương trình máy tính 33 2.6 Kết quả thực thi kiểm thử chương trình máy tính 35 3.1 Thực thi kiểm thử màn hình đăng nhập hệ thống 39 3.2 Kết quả kiểm thử màn hình đăng nhập hệ thống 40 3.3 Kết quả kiểm thử ca đăng nhập hệ thống 41 3.4 Đăng nhập hệ thống quản lý nhân sự 42 3.5 Kết quả kiểm thử màn hình đăng nhập hệ thống 43 3.6 Màn hình thêm mới nhân viên 43 3.7 Kết quả kiểm thử màn hình thêm mới nhân viên 44 3.8 Màn hình thêm giao dịch 46 3.9 Kết quả kiểm thử màn 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 quả kiểm thử màn hình quản lý chi tiêu 47 3.12 Quản lý sinh viên 49 3.13 Kết quả kiểm thử màn 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 quả kiểm thử màn hình thêm sinh viên 50 - 1- MỞ ĐẦU Lý do chọn đề tài 1. Ngày nay, các phần mềm ngày càng trở lên phức tạp và đồ sộ, việc tạo ra một sản phẩm phần mềm có thể bán được trên thị trường đòi hỏi sự nỗ lực của hàng chục, hàng trăm thậm chí hàng ngàn nhân viên. Để tạo ra một sản phẩm thì không phải chỉ do một tổ chức đứng ra làm từ đầu đến cuối, mà đòi hỏi sự liên kết, tích hợp của rất nhiều sản phẩm, thư viện lập trình của nhiều tổ chức khác nhau. Từ đó đòi hỏi việc kiểm thử phần mềm ngày càng trở nên quan trọng và rất phức tạp. Song song với sự phát triển các công nghệ lập trình, các ngôn ngữ lập trình… thì công nghệ và kỹ thuật kiểm thử phần mềm ngày càng phát triển và mang tính khoa học. Kiểm thử là một trong những hoạt động quan trọng trong tiến trình phát triển phần mềm. Nó góp một phần rất lớn trong việc đánh giá chất lượng của một phần mềm và là qui trình bắt buộc trong các dự án phát triển phần mềm trên thế giới cũng như trong nước. Có rất nhiều kỹ thuật kiểm thử phần mềm được phát triển. Trong đó, kiểm thử là một trong những kỹ thuật hỗ trợ việc đánh giá chất lượng một phần mềm. Luận văn này tập trung nghiên cứu các vấn đề về kiểm thử các ứng dụng trên nền tảng Android sử dụng framework robotium, đây là công cụ hỗ trợ rất mạnh trong việc kiểm thử chức năng các ứng dụng. Khi kiểm thử hệ thống, người kiểm thử phải làm việc với các chức năng do GUI cung cấp. Các sự kiện không mong đợi, có nhiều cách để nhập và xuất dữ liệu với miền dữ liệu nhập vào rất lớn làm cho người lập trình viên khó kiểm soát lỗi. Lập trình ứng dụng trên điện thoại hiện nay ở Việt Nam rất phổ biến các ứng dụng trên Android, iOS, Window Phone ngày càng nhiều. Tuy nhiên, các công ty - 2- phần mềm gặp nhiều khó khăn trong việc kiểm thử các phần mềm này bởi các lý do sau: - Các kỹ thuật viên kiểm thử chưa có một phương pháp, hay qui trình nhất quán để kiểm tra tính đúng đắn của các sản phẩm trên điện thoại. - Trong quá trình phát triển phần mềm, sản phẩm luôn phải cập nhật liên tục. Mỗi lần phiên bản mới được phát hành người kiểm thử phải tiến hành kiểm thử hồi quy tất cả các thành phần, để tránh không bị xung đột. - Miền dữ liệu nhập vào cho các thành phần quá lớn, nhiều ràng buộc. - Các sự kiện xảy ra không mong đợi. - Giao diện phải nhất quán theo chuẩn, điều này tạo cho phần mềm có tính khả dụng. - Việc kiểm thử các ứng dụng trên điện thoại di động chạy trên hệ điều hành Android hiện vẫn còn chưa hoàn chỉnh. Đã có rất nhiều công cụ giúp giải quyết kiểm thử cho các ứng dụng trên nền tảng Android, tuy nhiên vẫn chưa phải là giải quyết được tất cả. Vì lý do trên tôi đề xuất chọn đề tài luận văn cao học: “Ứng dụng Robotium để kiểm thử các chương trình trên Android” Mục đích và ý nghĩa đề tài 2. Mục đích Với những lý do được nêu ở trên, đề tài sẽ hướng đến việc nghiên cứu về công cụ Robotium để kiểm thử các ứng dụng di động trên nền tảng Android. Từ đó giải quyết được bài toán chi phí, khó khăn khi kiểm thử tự động các ứng dụng trên nền tảng Android một cách hiệu quả và nhanh chóng. Ý nghĩa khoa học - Nắm vững và vận dụng tốt kỹ thuật kiểm thử tự động dựa trên công cụ Robotium. - Đề xuất được giải pháp kiểm thử chức năng, kiểm thử giao diện trên nền tảng Android một cách tự động và hiệu quả, tiết kiệm chi phí. - 3- - Kết quả có thể làm tài liệu tham khảo cho các kiểm thử viên của các đơn vị phát triển phần mềm, hoặc các học viên – sinh viên trong việc nghiên cứu kiểm thử phần mềm trên di động. Ý nghĩa thực tiễn 3. Đề tài mang ý nghĩa thực tiễn rất lớn trong thời kì ứng dụng di động ngày càng phổ biến và đóng vai trò không thể thiếu trong đời sống hằng ngày. Nó giúp cho các nhà phát triển phần mềm biết được khả năng của ứng dụng, điều chỉnh một cách hợp lý cũng như kịp thời đưa ra những phương án giải quyết phù hợp cho các vấn đề liên quan. Giúp đảm bảo tính tin cậy của ứng dụng và tránh những rủi ro đáng tiếc trong quá trình sử dụng phần mềm. Mục tiêu và nhiệm vụ 4. Mục tiêu Mục tiêu của đề tài là nghiên cứu sử dụng framework Robotium vào việc kiểm thử tự động các chức năng của ứng dụng trên điện thoại. Để thực hiện được mục tiêu này thì cần đạt được những mục tiêu cụ thể sau: - Nắm vững các kỹ thuật kiểm thử chức năng các ứng dụng trên di động chạy hệ điều hành Android. - Nắm vững cách sử dụng thư viện Robotium để phát triển các kỹ thuật kiểm thử. - Tìm hiểu và đề xuất được giải pháp giải quyết bài toán kiểm thử chức năng trên ứng dụng điện thoại một cách hiệu quả. Nhiệm vụ Để đạt được những mục tiêu trên thì nhiệm vụ đặt ra của đề tài là: - Nghiên cứu sử dụng công cụ Robotium. - Nghiên cứu, phân tích và cài đặt giải pháp kiểm thử ứng dụng sử dụng công cụ Robotium để kiểm thử. - 4- - Xây dựng giải pháp và ứng dụng kiểm thử tự động các ứng dụng phần mềm điện thoại trên nền tảng Android. - Đánh giá kết quả theo yêu cầu của đề tài. Đối tượng và phạm vi nghiên cứu 5. - Kỹ thuật kiểm thử ứng dụng trên Android. - Công cụ hỗ trợ tự động hóa trong kiểm thử Robotium. - Quy trình kiểm thử phần mềm trên nền tảng Android. Phương pháp nghiên cứu 6. - Thu nhập và phân tích các tài liệu và thông tin liên quan đến đề tài. - Thảo luận, lựa chọn phương hướng giải quyết vấn đề. - Xây dựng quy trình kiểm thử. - Kiểm tra, thử nghiệm và đánh giá kết quả. Ý nghĩa khoa học và thực tiễn 7. - Kết quả nghiên cứu có thể làm tài liệu tham khảo cho các đơn vị phát triển phần mềm đang cần tiến hành kiểm thử các chương trình trên Android có sử dụng giao diện đồ họa. - Phần nghiên cứu lý thuyết: sẽ cung cấp một cách nhìn tổng quát về quá trình kiểm thử phần mềm, các loại kiểm thử phần mềm và công cụ hỗ trợ việc kiểm thử. - Phần thực nghiệm: cung cấp một quy trình kiểm thử tự động cho các ứng dụng trên Android sử dụng công cụ Robotium để nâng cao hiệu quả công việc cho nhân viên kiểm thử. - 5- 8. Cấu trúc luận văn Chương 1: Cơ sở lý thuyết Trình bày các khái niệm về kiểm thử ứng dụng phần mềm, các thành phần cơ bản và các loại kiểm thử phần mềm được sử dụng phổ biến hiện nay. Chương 2: Giải pháp ứng dụng công cụ Robotium để kiểm thử ứng dụng di động trên Android. Chương này trình bày các vấn đề còn tồn tại trong kiểm thử ứng dụng Android, sau đó đề xuất quy trình ứng dụng Robotium để kiểm thử phần mềm trên điện thoại di động Android. Chương 3: Cài đặt và thử nghiệm Trong chương này chúng ta sẽ áp dụng qui trình đã đề xuất ở chương 2 để tiến hành kiểm thử một vài ứng dụng Android thực tế và dựa vào kết quả đạt được để đưa ra kết luận. - 6- CƠ SỞ LÝ THUYẾT Chương này trình bày các khái niệm về kiểm thử ứng dụng phần mềm, các thành phần cơ bản và các loại kiểm thử ứng dụng phần mềm được sử dụng phổ biến hiện nay. 1.1. 1.1.1. Kiểm thử phần mềm Tổng quan về kiểm thử phần mềm Kiểm thử phần mềm là quá trình thực thi một hệ thống phần mềm để xác định xem phần mềm có đúng với đặc tả không và thực hiện trong môi trường như mong đợi hay không. [1] Mục đích của kiểm thử phần mềm là tìm ra lỗi chưa được phát hiện, tìm một cách sớm nhất và bảo đảm rằng lỗi sẽ được sửa. Mục tiêu của kiểm thử phần mềm là thiết kế tài liệu kiểm thử một cách có hệ thống và thực hiện nó sao cho có hiệu quả, nhưng tiết kiệm được thời gian, công sức và chi phí. 1.1.2. Quy trình kiểm thử phần mềm Cấp độ kiểm thử phần mềm được thể hiện như hình dưới đây. Hình 1.1. Bốn cấp độ cơ bản của kiểm thử phần mềm [1]. - 7- 1.1.2.1. Kiểm thử đơn vị (Unit Test) Một đơn vị (Unit) là một thành phần phần mềm nhỏ nhất mà ta có thể kiểm thử được, ví dụ: các hàm (Function), thủ tục (Procedure), lớp (Class), hoặc các phương thức (Method) [2]. Kiểm thử đơn vị thường do lập trình viên thực hiện. Công đoạn này cần được thực hiện càng sớm càng tốt trong giai đoạn viết code và xuyên suốt chu kỳ phát triển phần mềm [2]. Mục đích của kiểm thử đơn vị là bảo đảm thông tin được xử lý và kết xuất (khỏi Unit) là chính xác, trong mối tương quan với dữ liệu nhập và chức năng xử lý của Unit. Điều này thường đòi hỏi tất cả các nhánh bên trong Unit đều phải được kiểm tra để phát hiện nhánh phát sinh lỗi [2]. Cũng như các mức kiểm thử khác, kiểm thử đơn vị cũng đòi hỏi phải chuẩn bị trước các ca kiểm thử (hay trường hợp kiểm thử) (test case) hoặc kịch bản (test script), trong đó chỉ định rõ dữ liệu vào, các bước thực hiện và dữ liệu mong muốn sẽ xuất ra. Các test case và test script được giữ lại để sử dụng sau này. 1.1.2.2. Kiểm thử tích hợp (Integration Test) Kiểm thử tích hợp kết hợp các thành phần của một ứng dụng và kiểm thử như một ứng dụng đã hoàn thành. Trong khi kiểm thử đơn vị kiểm tra các thành phần và Unit riêng lẻ thì kiểm thử tích hợp kết hợp chúng lại với nhau và kiểm tra sự giao tiếp giữa chúng [1]. Kiểm thử tích hợp có hai mục tiêu chính là:  Phát hiện lỗi giao tiếp xảy ra giữa các Unit.  Tích hợp các Unit đơn lẻ thành các hệ thống con (gọi là subsystem) và cuối cùng là nguyên hệ thống hoàn chỉnh chuẩn bị cho kiểm thử ở mức hệ thống (system test). Có 4 loại kiểm thử trong kiểm thử tích hợp như sau: - 8-  Kiểm thử cấu trúc (Structure test): Kiểm thử nhằm bảo đảm các thành phần bên trong của một chương trình chạy đúng, chú trọng đến hoạt động của các thành phần cấu trúc nội tại của chương trình, chẳng hạn các lệnh và nhánh bên trong.  Kiểm thử chức năng (Functional test): Kiểm thử chỉ chú trọng đến chức năng của chương trình, không quan tâm đến cấu trúc bên trong, chỉ khảo sát chức năng của chương trình theo yêu cầu kỹ thuật.  Kiểm thử hiệu năng (Performance test): Kiểm thử việc vận hành của hệ thống.  Kiểm thử khả năng chịu tải (Stress test): Kiểm thử các giới hạn của hệ thống. 1.1.2.3. Kiểm thử hệ thống (System Test) Mục đích của kiểm thử hệ thống là kiểm thử xem thiết kế và toàn bộ hệ thống (sau khi tích hợp) có thỏa mãn yêu cầu đặt ra hay không. Kiểm thử hệ thống kiểm tra cả các hành vi chức năng của phần mềm lẫn các yêu cầu về chất lượng như độ tin cậy, tính tiện lợi khi sử dụng, hiệu năng và bảo mật. Kiểm thử hệ thống bắt đầu khi tất cả các bộ phận của phần mềm đã được tích hợp thành công. Thông thường loại kiểm thử này tốn rất nhiều công sức và thời gian. Trong nhiều trường hợp, việc kiểm thử đòi hỏi một số thiết bị phụ trợ, phần mềm hoặc phần cứng đặc thù, đặc biệt là các ứng dụng thời gian thực, hệ thống phân bố, hoặc hệ thống nhúng. Ở mức độ hệ thống, người kiểm thử cũng tìm kiếm các lỗi, nhưng trọng tâm là đánh giá về hoạt động, thao tác, sự tin cậy và các yêu cầu khác liên quan đến chất lượng của toàn hệ thống. Điểm khác nhau then chốt giữa kiểm thử tích hợp và kiểm thử hệ thống là kiểm thử hệ thống chú trọng các hành vi và lỗi trên toàn hệ thống, còn kiểm thử tích hợp chú trọng sự giao tiếp giữa các đơn thể hoặc đối tượng khi chúng làm việc cùng nhau. Thông thường ta phải thực hiện kiểm thử đơn vị và kiểm thử tích hợp để bảo - 9- đảm mọi Unit và sự tương tác giữa chúng hoạt động chính xác trước khi thực hiện kiểm thử hệ thống. Sau khi hoàn thành kiểm thử tích hợp, một hệ thống phần mềm đã được hình thành cùng với các thành phần đã được kiểm tra đầy đủ. Tại thời điểm này, lập trình viên hoặc kiểm thử viên (Tester) bắt đầu kiểm thử phần mềm như một hệ thống hoàn chỉnh. Việc lập kế hoạch cho kiểm thử hệ thống nên bắt đầu từ giai đoạn hình thành và phân tích các yêu cầu. Đòi hỏi nhiều công sức, thời gian và tính chính xác, khách quan, kiểm thử hệ thống được thực hiện bởi một nhóm kiểm tra viên hoàn toàn độc lập với nhóm phát triển dự án để đảm bảo tính chính xác và khách quan [1]. Kiểm thử hệ thống thường có các loại kiểm thử sau:  Kiểm thử chức năng (Functional test): Bảo đảm các hành vi của hệ thống thỏa mãn đúng yêu cầu thiết kế.  Kiểm thử khả năng vận hành (Performance test): Bảo đảm tối ưu việc phân bổ tài nguyên hệ thống (ví dụ bộ nhớ) nhằm đạt các chỉ tiêu như thời gian xử lý hay đáp ứng câu truy vấn.  Kiểm thử khả năng chịu tải (Stress test hay Load test): Bảo đảm hệ thống vận hành đúng dưới áp lực cao (ví dụ nhiều người truy xuất cùng lúc). Stress test tập trung vào các trạng thái tới hạn, các "điểm chết", các tình huống bất thường như đang giao dịch thì ngắt kết nối (xuất hiện nhiều trong test thiết bị như POS, ATM).  Kiểm thử cấu hình (Configuration test): Đảm bảo hệ thống hoạt động tương thích với các loại phần cứng khác nhau.  Kiểm thử khả năng bảo mật (Security test): Bảo đảm tính toàn vẹn, bảo mật của dữ liệu và của hệ thống.  Kiểm thử khả năng phục hồi (Recovery test): Bảo đảm hệ thống có khả năng khôi phục trạng thái ổn định trước đó trong tình huống mất tài - 10- nguyên hoặc dữ liệu, đặc biệt quan trọng đối với các hệ thống giao dịch như ngân hàng trực tuyến. 1.1.2.4. Kiểm thử chấp nhận sản phẩm (Acceptance Test) Mục đích của kiểm thử chấp nhận là kiểm thử khả năng chấp nhận cuối cùng để chắc chắn rằng sản phẩm là phù hợp và thỏa mãn các yêu cầu của khách hàng và khách hàng chấp nhận sản phẩm. Trong giai đoạn kiểm thử chấp nhận thì người kiểm tra là khách hàng. Khách hàng sẽ đánh giá phần mềm với mong đợi theo những thao tác sử dụng quen thuộc của họ. Việc kiểm tra ở giai đoạn này có ý nghĩa hết sức quan trọng tránh cho việc hiểu sai yêu cầu cũng như sự mong đợi của khách hàng. Gắn liền với giai đoạn kiểm thử chấp nhận thường là một nhóm những dịch vụ và tài liệu đi kèm, phổ biến như hướng dẫn cài đặt, sử dụng, v.v…Tất cả tài liệu đi kèm phải được cập nhật và kiểm tra chặt chẽ [1]. 1.1.3. Kỹ thuật kiểm thử phần mềm Mục tiêu của kiểm thử là phải thiết kế các trường hợp kiểm thử có khả năng cao nhất trong việc phát hiện nhiều lỗi với thời gian và công sức tối thiểu. Do đó có thể chia các kỹ thuật kiểm thử thành hai loại:  Kỹ thuật kiểm thử hộp đen (Black – box Testing) hay còn gọi là kỹ thuật kiểm thử chức năng (Functional Testing).  Kỹ thuật kiểm thử hộp trắng (White – box Testing) hay còn gọi là kỹ thuật kiểm thử cấu trúc (Structural Testing). 1.1.4. Kỹ thuật kiểm thử chức năng Trong kỹ thuật kiểm thử chức năng, dữ liệu kiểm thử được xuất phát từ đặc tả phần mềm bao gồm: đặc tả các yêu cầu (đối với kiểm thử hệ thống), đặc tả thiết kế (đối với kiểm thử tích hợp) và đặc tả chi tiết mô đun (đối với kiểm thử đơn vị). Trong kỹ thuật này, kiểm thử viên xem phần mềm như là một hộp đen. Kiểm thử viên hoàn toàn không quan tâm cấu trúc và hành vi bên trong của phần mềm (không thể nhìn thấy những gì bên trong hộp đen). Kiểm thử viên chỉ cần quan tâm - 11- đến việc tìm các hiện tượng mà phần mềm không hành xử theo đúng đặc tả của nó (kiểm thử viên chỉ biết những gì phần mềm dự kiến thực hiện và những gì dự kiến không thực hiện, mà không thể nhìn vào bên trong xem nó hoạt động như thế nào). Vì thế, dữ liệu kiểm thử sẽ xuất phát từ đặc tả. Kiểm thử chức năng cố gắng tìm các loại lỗi sau: - Các chức năng thiếu hoặc không đúng. - Các lỗi giao diện. - Các lỗi trong cấu trúc dữ liệu, trong truy cập cơ sở dữ liệu bên ngoài. - Các lỗi thi hành. - Các lỗi khởi tạo hoặc kết thúc. 1.1.5. Kỹ thuật kiểm thử cấu trúc Kỹ thuật kiểm thử cấu trúc dựa trên sự phân tích mã chương trình hoặc một mô hình của mã chương trình để xây dựng các phép thử theo các tiêu chuẩn bao phủ. Kỹ thuật kiểm thử cấu trúc cho phép chúng ta kiểm thử cấu trúc bên trong của phần mềm, với mục đích kiểm tra tất cả các câu lệnh và điều kiện tồn tại trong phần mềm đó. Trong kỹ thuật này kiểm thử viên lấy dữ liệu thử xuất phát từ việc kiểm tra logic của chương trình (không quan tâm đến đặc tả) [1]. 1.1.6. Chiến lược kiểm thử phần mềm Chiến lược kiểm thử phần mềm tích hợp các phương pháp thiết kế trường hợp kiểm thử phần mềm thành một chuỗi các bước được lập kế hoạch rõ ràng. Chiến lược kiểm thử là một sự kết hợp của kế hoạch kiểm thử, thiết kế trường hợp kiểm thử, thực thi kiểm thử, tập hợp kết quả kiểm thử và sự đánh giá kết quả. Mỗi mức kiểm thử đòi hỏi xác định chiến lược kiểm thử. Các chiến lược kiểm thử không loại trừ lẫn nhau, chúng có thể được sử dụng đơn lẻ hoặc đồng thời. Lý tưởng là kiểm thử cho một ứng dụng bao gồm nhiều chiến lược để phát hiện được hết các lỗi. - 12- Sau khi chiến lược đã được xác định, nó được áp dụng để tạo các trường hợp kiểm thử cụ thể. Kiểm thử được lặp lại cho đến khi không còn lỗi, hoặc đạt được mức độ chấp nhận [2]. Quan hệ giữa các mức kiểm thử và các giai đoạn trong vòng đời của một phần mềm có thể được trình bày như sau: Các giai đoạn phát triển ứng dụng Phạm vi và mục tiêu Yêu cầu chức năng/Thiết kế logic Kiểm thử Kiểm thử chấp thuận Kiểm thử hệ thống Thiết kế vật lý Kiểm thử tích hợp Đặc tả mô hình cấu trúc chương Kiểm thử đơn vị Mã hoá mô đun/chương trình Hình 1.2. Các bước kiểm thử. 1.2. Khái niệm về kiểm thử 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à - 13- 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. 1.2.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 [6]. 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 [6]. 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 [6]. 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 [6]. 1.2.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ử. - 14- 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 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 của Apple.  Các thiết bị Android phổ biến: Samsung Galaxy Nexus chạy Android 4.0.  1.2.3. Các thiết bị ít phổ biến: Sony Xperia Z1, 2. 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 [4]. 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
- Xem thêm -

Tài liệu liên quan