Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 56 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
56
Dung lượng
2,43 MB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ======***====== BÁO CÁO BTL THUỘC HỌC PHẦN: KIỂM THỬ PHẦN MỀM Đề tài: Nghiên cứu tìm hiểu Robotium ứng dụng kiểm thử tự động ứng dụng Android GVHD : TS Hà Mạnh Đào Thành viên: Nguyễn Quý Long _ 2018602242 Nguyễn Thị Dung_2018602425 Trần Quang Hiếu_2018603244 Nhóm : 15 Lớp : KTPM2_K13 Hà Nội, năm 2021 MỞ ĐẦU Lý chọn đề tài Ngày nay, phần mềm ngày phức tạp, việc tạo sản phẩm phần mềm bán thị trường đòi hỏi lỗ lực nhiều kỹ sư phần mềm Để tạo phần mềm đòi hỏi liên kết, kết hợp nhiều sản phẩm thư viện lập trình nhiều đơn vị khác Do việc kiểm thử phần mềm trở nên quan trọng phức tạp Bên cạnh phát triển công nghệ lập trình cơng nghệ kỹ thuật kiểm thử ngày phát triển Kiểm thử hoạt động quan trọng trính phát triển phần mềm Nó mang lại lợi ích lớn việc đánh giá chất lượng phần mềm quy trình bắt buộc quy trình phát triển phần mềm nước giới Có nhiều kỹ thuật kiểm thử phần mềm phát triển Trong đó, kiểm thử phần mềm kỹ thuật hỗ trợ việc đánh giá chất lượng phần mềm Đề tài tập trung nghiên cứu đề kiểm thử ứng dụng tảng Android sử dụng framework robotium Đây công cụ hỗ trợ mạnh việc kiểm thử chức ứng dụng Khi kiểm thử , 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 khó kiểm sốt lỗi Lập trình ứng dụng điện thoại phổ biến Tuy nhiên, cơng ty phần mềm gặp nhiều khó khăn việc kiểm thử phần mềm lý sau: - Các kỹ thuật viên kiểm thử chưa có phương pháp hay quy trình kiểm thử quán để kiểm tra tính đắn sản phẩm di động - Trong trình phát triển phần mềm, sản phẩm phải cập nhật, bảo trì liên tục Mỗi phiên phát hành người kiểm thử phải tiến hành kiểm thử hồi quy tất thành phần, để tránh k bị xung đột - Miền sữ liệu nhập vào cho thành phần lơn, nhiều ràng buộc - Các kiện xảy không mong đợi - Giao diện phải quán theo chuẩn, diều tạo cho phần mềm có tính khả dụng - Việc kiểm thử ứng dụng điện thoại di động chạy hệ điều hành Android cịn chưa hồn chỉnh Có nhiều công cụ giúp giải kiểm thử nhiên chưa giải tất Vì nhóm em chọn đề tài: “Ứng dụng Robotium để kiểm thử chương trình Android” Mục đích ý nghĩa đề tài Mục địch: Với lý nêu trên, đề tài hướng tới việc nghiên cứu công cụ Robotium để kiểm thử ứng dụng di động tảng Android Ý nghĩa khoa hoc: - Nắm vững dụng tốt kỹ thuật kiểm thử tự động dựa công cụ Robotium - Đề xuất giải pháp kiểm thử chức năng, kiểm thử giao diện tảng Android hiệu Ý nghĩa thực tiễn Đề tài mang ý nghĩa thực tiễn lớn thời ký ứng dụng di động ngày phát triển phổ biến Nó giúp nhà phát triển phần mềm biết khả ứng dụng, điều chỉnh hợp lý kịp thời đưa phương án giải phù hợp Giúp đảm bảo tính tin cậy tránh rủi ro trình sử dụng sản phẩm Mục tiêu nhiệm vụ Mục tiêu: Mục tiêu đề tài nghiên cứu sử dụng framework Robotium vào việc kiểm thử tự động chức ứng dụng điện thoại Để thực mục tiêu ta cần đạt mục tiêu cụ thể sau: - Nắm vững kỹ thuật kiểm thử chức ứng dụng 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 kỹ thuật kiểm thử - Tìm hiểu đề xuất giải pháp giải toán kiểm thử chức ứng dụng điện thoại cách hiệu Nhiệm vụ: Để đạt mục tiêu nhiệm vụ đặt là: - Nghiên cứu sử dụng công cụ Robotium - Nghiên cứu, phân tích cài đặt giải pháp kiểm thử ứng dụng sử dụng công cụ Robotium để kiểm thử - Xây dựng giải pháp ứng dụng kiểm thử tự động ứng dụng phần mềm điện thoại tảng Android - Đánh giá kết theo yêu cầu đề tài Đối tượng phạm vi nghiên cứu - Kỹ thuật kiểm thử ứng dụng Android - Cơng cụ hỗ trợ tự động hóa kiểm thử Robotium - Quy trình kiểm thử phần mềm tảng Android Phương pháp nghiên cứu - Thu thập phân tích tài liệu thông tin liên quan đến đề tài - Thảo luận, lựa chọn phương hướng giải vấn đề - Xây dựng quy trình kiểm thử - Kiểm tra, thử nghiệm đánh giá kết Ý nghĩa khoa học thực tiễn - Kết nghiên cứu làm tài liệu tham khảo - Phần nghiên cứu lý thuyết: cung cấp cách nhìn tổng quát trình kiểm thử phần mềm - Phần thực tiễn: cung cấp quy trình kiểm thử tự động cho ứng dụng Android sử dụng công cụ Robotium để nâng cao hiệu công việc cho nhân viên kiểm thử Mục lục MỞ ĐẦU… Lý chọn đề tài 2 Mục đích ý nghĩa đề tài 3 Ý nghĩa thực tiễn Mục tiêu nhiệm vụ Mục tiêu: Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu Ý nghĩa khoa học thực tiễn PHẦN I: TÌM HIỂU MỘT SỐ CÔNG CỤ KIỂM THỬ 10 CHƯƠNG 1: MỘT SỐ CÔNG CỤ KIỂM THỬ 10 Một số công cụ kiểm thử 10 1.1 Smart Meter 10 1.2 Testlink 10 1.3 TestComplete 11 1.4 Postman 11 1.5 Katalon Studio 12 1.6 Qmetry Automation Studio 13 1.7 Ranorex 14 1.8 SoapUI 14 1.9 Selenium webdriver 14 1.10 QTP 15 1.11 Selenium IDE 15 1.12 Jmeter 16 1.13 Jest 16 1.14 PHPUnit 17 1.15 Robotium 17 1.16 Nunit 18 1.17 Applitools 18 1.18 Loatorm 18 1.19 BlazeMeter 19 1.20 Needie 19 1.21 SOASTA CloudTest 19 1.22 LoadRunner 19 1.23 PyUnit 20 1.24 Watir 20 1.25 Smart meter 20 PHẦN II: TÌM HIỂU CƠNG CỤ ROBOTIUM 21 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 21 1.1 Kiểm thử phần mềm 21 1.1.1 Tổng quan kiểm thử phần mềm 21 1.1.2 Kỹ thuật kiểm thử phần mềm 21 1.1.3 Kỹ thuật kiểm thử chức 22 1.1.4 Kỹ thuật kiểm thử cấu trúc 23 1.1.5 Chiến lược kiểm thử phần mềm 23 1.2 Khái niệm kiểm thử điện thoại thông minh 23 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 23 1.2.2 Lựa chọn điện thoại thông minh để kiểm thử 24 1.2.3 Các dạng kiểm thử Android 24 1.2.3.1 Kiểm thử đơn vị 24 1.2.3.2 Kiểm thử tích hợp 24 1.2.3.3 Kiểm thử hoạt động 24 1.2.3.4 Kiểm thử hiệu 24 1.2.3.5 Kiểm thử hệ thống 24 1.2.3.6 Kiểm thử giao diện 24 1.2.3.7 Kiểm thử cài đặt 24 1.2.4 Các công cụ hỗ trợ kiểm thử Android 25 1.2.4.1 Nền tảng kiểm thử Robotium 25 1.2.4.2 Nền tảng kiểm thử Android Automator 25 1.2.4.3 Nền tảng kiểm thử Roboelectric 25 1.2.4.4 UIAutomator Android 26 1.2.4.5 Espesso 26 1.2.5 Sự khác biệt framework kiểm thử Android 26 CHƯƠNG 2: ỨNG DỤNG ROBOTIUM ĐỂ KIỂM THỬ ỨNG DỤNG TRÊN ANDROID 27 2.1 Các vấn đề kiểm thử ứng dụng Android 27 2.1.1 Mô tả vấn đề 27 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 Xây dựng quy trình kiểm thử ứng dụng di động Android 28 2.2.1.1 Mô tả quy trình 28 2.2.1.2 Xây dựng quy trình 29 2.2.1.3 Một số phương thức thường sử dụng robotium: 30 2.3 Kết luận 31 CHƯƠNG 3: CÀI ĐẶT VÀ THỬ NGHIỆM 31 3.1 Cài đặt môi trường: 31 3.1.1 Các đặt Java: 31 3.1.2 Cài đặt Android Studio: 37 3.1.3 Cài đặt Robotium: 40 3.2 Phân tích chương trình cần kiểm thử : 43 3.2.1 Giới thiệu tổng quan 43 3.2.2 Hoạt động cần kiểm thử: 43 3.3 Thực kiểm thử 44 3.3.1 Khởi tạo lớp kiểm thử 44 3.3.2 Cấu trúc lớp kiểm thử 44 3.3.2.1 Lớp kiểm thử cho trang đăng nhập 44 3.3.2.2 Lớp kiểm thử cho trang thực chức tính 46 3.3.3 Tiến hành kiểm thử 47 3.3.3.1 Kiểm thử khởi động chương trình: 47 3.3.3.2 Kiểm thử giao diện chương trình: 48 3.3.3.3 Kiểm thử chức đăng nhập : 49 3.3.3.4 Kiểm thử kết tính tốn: 50 3.3.3.5 Kiểm thử chức chuyển hướng: 51 3.3.3.5 Kiểm thử toàn chương trình: 52 CHƯƠNG 4: BÁO CÁO KẾT QUẢ VÀ ĐÁNH GIÁ 53 4.1 Báo cáo kết 53 4.2 Đánh giá công cụ 54 4.2.1 Ưu điểm 54 4.2.2 Nhược điểm 54 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 55 Kết đạt 55 Hạn chế 55 Hướng phát triển 55 TÀI LIỆU THAM KHẢO 56 PHẦN I: TÌM HIỂU MỘT SỐ CÔNG CỤ KIỂM THỬ CHƯƠNG 1: MỘT SỐ CÔNG CỤ KIỂM THỬ Một số công cụ kiểm thử 1.1 Smart Meter Smart Meter phần mềm hỗ trợ người dùng tạo, quản lý tiến hành kiểm thử hiệu suất tải trang thời gian trung bình số người cần sử dụng để chờ trình duyệt tải trang Smart Meter thay đổi số, đồng thời tạo xuất báo cáo kiểm thử, phân tích liệu ứng dụng traong trình duyệt web mặc định Các tính chính: - Tạo, quản lý kiểm thử hiệu suất tải trang - Thay đổi số tải trang - Dẫn liên kết tới cộng động sử dụng ứng dụng - Giao diện bắt mắt 1.2 Testlink Testlink tool quản lý sử dụng rộng rãi dựa mã nguồn mở Nó kết hợp đồng thời hai requirements specification Test specification Người dùng tạo test project tài liệu test case sử dụng tool Chúng ta tạo tài khoản cho nhiều người dùng assign quyền người dùng khác Người dùng quản lý test case Testlink hỗ trợ hai thực test case tay tự động thực thi test case Với tool người kiểm thử sử dụng để xuất file test report tài liệu Test plan phút Nó hỗ trợ xuất file Test report MS Word, Excel, HTML formats 10 Nếu thư mục app/src/build.gradle xuất hai implements trình cài đặt thư viện kiểm thử thành cơng 42 3.2 Phân tích chương trình cần kiểm thử : 3.2.1 Giới thiệu tổng quan Chương trình cần kiểm thử chương trình đơn giản, gồm hai hoạt động đăng nhập thực phép tính bình phương Khi người dùng nhập Username Password chương trình chuyển hướng sang hình Caculator Tại hình Caculator, người dùng nhập vào số vào text Number bình phương số hiển thị text Result 3.2.2 Hoạt động cần kiểm thử: • • • • Ứng dụng có khởi động thành cơng ? Giao diện có hiển thị với yêu cầu ? Chức đăng nhập có thực với u cầu? Chức tính bình phương có thực với yêu cầu? 43 3.3 Thực kiểm thử 3.3.1 Khởi tạo lớp kiểm thử Để kiểm thử cho lớp Main, tạo lớp có tên MainTest app/src/androidTest 3.3.2 Cấu trúc lớp kiểm thử 3.3.2.1 Lớp kiểm thử cho trang đăng nhập import junit.framework.TestCase; import com.robotium.solo.Solo; import org.junit.Assert; import android.test.ActivityInstrumentationTestCase2; public class MainActivityTest extends ActivityInstrumentationTestCase2{ //Đối tượng thực hiện kiểm thử tự động private Solo solo; //Phải ghi đè lớp khởi tạo public MainActivityTest() { 44 super(MainActivity.class); } // Phương thức setUp được gọi trước chương trình bắt đầu kiểm thử public void setUp() throws Exception { solo = new Solo(getInstrumentation(),getActivity()); // Khởi tạo instrumentation và activity cho solo } public void testLoadActivitySuccessfully() throws Exception{ //Test case đúng // Kiểm tra activity hiện tại solo.assertCurrentActivity("wrong activity",MainActivity.class); //Test case sai //solo.assertCurrentActivity("wrong activity",SecondActivity.class); } public void testTextOfHompageCorrectly() { //Test case đúng //Tìm kiếm textview Assert.assertTrue(solo.searchText("Homepage")); //Test case sai //Assert.assertTrue(solo.searchText("This is first fragment")); } public void testLoginSuccessfully(){ //Tự động nhập username và password solo.enterText(0,"long"); solo.enterText(1,"12346"); // Tự động click button solo.clickOnButton("Next"); // Tạo một solo mới sau action click button Solo new_solo = new Solo(getInstrumentation(),getActivity()); // Kiểm tra activity hiện tại của solo1 new_solo.assertCurrentActivity("Wrong activity","SecondActivity"); } // Phương thức tearDown được gọi chương trình thực hiện xong quá trình kiểm thử public void tearDown() throws Exception { solo.finishOpenedActivities(); 45 } } 3.3.2.2 Lớp kiểm thử cho trang thực chức tính import junit.framework.TestCase; import android.test.ActivityInstrumentationTestCase2; import android.widget.EditText; import com.robotium.solo.Solo; import org.junit.Assert; public class SecondActivityTest extends ActivityInstrumentationTestCase2 { public SecondActivityTest(){ super(SecondActivity.class); } //Đối tượng thực hiện kiểm thử tự động private Solo solo; public void setUp() throws Exception { solo = new Solo(getInstrumentation(),getActivity()); } public void testLoadActivity() throws Exception{ // Test case đúng solo.assertCurrentActivity("wrong activity",SecondActivity.class); //Test case sai //solo.assertCurrentActivity("wrong activity",MainActivity.class); } public void testTextOfHompage() { // Testcase đúng Assert.assertTrue(solo.searchText("Square Caculator")); //Testcase sai //Assert.assertTrue(solo.searchText("This is first fragment")); } public void testCaculator(){ solo.enterText(0,String.valueOf(2)); solo.clickOnButton("Caculate"); 46 String result = solo.getEditText(1).getText().toString(); solo.enterText(0,result); //Test case đúng expected = if(Integer.parseInt(result) == /* expected= */ 4){ Assert.assertEquals(1,1); } else { Assert.assertEquals(1,0); } } public void tearDown() throws Exception { solo.finishOpenedActivities(); } } 3.3.3 Tiến hành kiểm thử 3.3.3.1 Kiểm thử khởi động chương trình: Hình 3.3.3.1.a Trường hợp khởi động đúng activity 47 Hình 3.3.3.1.b Trường hợp khởi đợng đúng activity 3.3.3.2 Kiểm thử giao diện chương trình: Hình 3.3.3.2.a Trường hợp hiển thị đúng giao diện 48 Hình 3.3.3.2.b Trường hợp hiển thị sai giao diện 3.3.3.3 Kiểm thử chức đăng nhập : Hình 3.3.3.3.a Trường hợp đúng chức đăng nhập 49 Hình 3.3.3.3.a Trường hợp sai chức đăng nhập 3.3.3.4 Kiểm thử kết tính tốn: 50 Hình 3.3.3.4.a Trường hợp đúng kết quả Hình 3.3.3.4.b Trường hợp sai kết quả 3.3.3.5 Kiểm thử chức chuyển hướng: Hình 3.3.3.5.a Trường hợp chuyển hướng đúng 51 Hình 3.3.3.5.b Trường hợp chuyển hướng sai 3.3.3.5 Kiểm thử tồn chương trình: Hình 3.3.3.5.a Kiểm thử toàn bộ chức activity chính Hình 3.3.3.5.b Kiểm thử toàn bộ chức activity thứ cấp 52 Chương 4: Báo cáo kết đánh giá 4.1 Báo cáo kết Test Tên Test Case Case Kết Kết Thời Kết mong đợi thực tế gian(s) luận ID Kiểm tra Activity Main Main Passed khởi động chương trình Activity Activity Kiểm tra giao diện có True True Passed True True Passed True True 15 Passed True True Passed Text View Homepage Kiểm tra chức đăng nhập nhập tài khoản mật khẩu, chương trình chuyển hướng sang SecondActivity Kiểm tra chức đăng nhập nhập sai tài khoản mật khẩu, chương trình thơng báo “login failed” Kiểm tra giao diện SecondActivity có Text View Square Caculator 53 Kiểm tra kết tính 4 Passed True True Passed bình phương số nhập số Kiểm tra nhấn vào nút Back SecondActivity, chương trình chuyển hướng MainActivity Hình 4.1 Kết quả kiểm tra các Test Case 4.2 Đánh giá công cụ 4.2.1 Ưu điểm - Dụng lượng nhẹ - Cú pháp ngắn gọn, dễ sử dụng, không yêu cầu hiểu rõ mã nguồn - Hỗ trợ kiểm thử hộp trắng lẫn hộp đen - Thời gian kiểm thử chấp nhận - Kết chấp nhận 4.2.2 Nhược điểm - Đã ngưng phát triển từ năm 2016, không tương thích với chương trình xây dựng sau này, để sử dụng cần phải tiến hành cấu hình lại - Kém cạnh so với công cụ kiểm thử tự động Android 54 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết đạt ✓ Hiểu tổng quan quy trình phát triển phần mềm ✓ Hiểu tổng quan số công cụ kiểm thử ✓ Hiểu cách cài đặt tiến hành kiểm thử công cụ lựa chọn ✓ Kỹ làm việc nhóm Hạn chế o Bài tốn kiểm thử chưa bao quát o Kiến thức cơng cụ cịn hạn chế o Kỹ kiểm thử hạn chế Hướng phát triển ➢ Trong tương lai tiến hành kiểm thử tốn có tính bao phủ cao 55 TÀI LIỆU THAM KHẢO [1] Ths Nguyễn Thị Kiêm Ái, Kiểm thử phần mềm: bước trở thành TESTER chuyên nghiệp, Nhà xuất Thanh Niên, 2008 [2] Hrushikesh Zadgaonkar, Robotium Automated Testing for Android, Packt Publishing, 2013 [3] Tài liệu kiểm thử phần mềm, thuộc môn Kiểm thử phần mềm, khoa Công nghệ thông tin, Đại học Công nghiệp Hà Nội [4] Các nguồn tham khảo internet 56