1. Trang chủ
  2. » Giáo án - Bài giảng

Bài 1: Khái niệm cơ bản về kiểm thử ứng dụng Android

42 179 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 42
Dung lượng 1,05 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cần kiểm thử gì trong ứng dụng Android? Lý tưởng nhất là kiểm thử mọi dòng code trong ứng dụng  Tuy nhiên, trong thực tế không cần thiết kiểm thử mọi phương thức, ví dụ không cần kiểm

Trang 2

Nội dung bài học

• Các phần cần kiểm thử trong Android

• Các loại kiểm thử

• Android testing framework

• Tạo project kiểm thử

• Chạy project kiểm thử

2

Trang 3

Cần kiểm thử gì trong ứng dụng Android?

 Lý tưởng nhất là kiểm thử mọi dòng code trong ứng dụng

 Tuy nhiên, trong thực tế không cần thiết kiểm thử mọi

phương thức, ví dụ không cần kiểm thử các getter và setter được Java Compiler sinh ra

 Bên cạnh việc kiểm thử các hàm, một số khía cạnh khác

của ứng dụng Android mà chúng ta cần cân nhắc kiểm thử

 Sự kiện vòng đời ứng dụng

 Thao tác database và filesystem

 Kiểm thử trên các loại thiết bị khác nhau

Trang 4

Sự kiện vòng đời ứng dụng Android

 Bạn nên kiểm thử các sự kiện vòng đời của Activity để đảmbảo các sự kiện được sử dụng hợp lý và đúng đắn

 Nếu Activity của bạn lưu thông tin trạng thái của nó trong

sự kiện onPause() hoặc onDestroy() sau đó khôi phục

trong onCreate(Bundle savedInstanceState), bạn nên

kiểm tra trạng thái được lưu trữ và khôi phục chính xác

 Sự kiện thay đổi cấu hình (configuration-changed event) nên được kiểm thử Sự kiện này được kích hoạt khi quay thiết bị Android

Trang 5

Thao tác cơ sở dữ liệu và file hệ thống

 Các thao tác cơ sở dữ liệu và file hệ thống nên được kiểmthử

 Các thao tác này nên được kiểm thử trong mức hệ thốngcấp thấp, hoặc cấp cao thông qua Content Provider, hoặckiểm thử từ chính ứng dụng

Trang 6

Kiểm thử trên nhiều loại thiết bị

 Trước khi bàn giao phần mềm hoặc cập nhật ứng dụng lênGoogle Play, bạn phải kiểm thử phần mềm trên các loại

thiết bị khác nhau để phát hiện các bất thường và đưa racác giải pháp thích hợp

 Bạn nên kiểm thử các phần sau:

Trang 7

tả kiểm thử thành công hay thất bại

Trang 8

Kiểm thử đơn vị (unit test)

 Kiểm thử đơn vị được viết bởi lập trình viên

 Phải phân tách thành phần được kiểm thử và có thể kiểmthử lặp đi lặp lại

 Bạn nên sử dụng mock object để phân cách unit từ

dependency của nó để giám sát tương tác, và có thể lặp lạikiểm thử nhiều lần

 Ví dụ: bạn kiểm thử thao tác xóa dữ liệu từ cơ sở dữ liệu, bạn không muốn dữ liệu được xóa thật và dữ liệu khôngđược tìm thấy trong lần kiểm thử tiếp theo

 JUnit là chuẩn kiểm thử đơn vị cho Android Junit là

framework mã nguồn mở với mục đích tự động hóa kiểmthử, được viết bởi Erich Gamma và Kent Beck

Trang 9

Ví dụ về kiểm thử đơn vị (unit test)

Trang 10

Các thành phần của test case

 Test fixture định nghĩa baseline để chạy kiểm thử và đượcchia sẻ bởi tất cả test case, đóng vai trò quan trọng trongthiết kế test Thông thường, nó là tập hợp các biến, theochuẩn đặt tên của Android, có tên bắt đầu bằng chữ m, ví

dụ mActivity

Phương thức setUp(): khởi tạo fixture Ghi đè nếu bạn

muốn tạo đối tượng và khởi tạo các trường được sử dụngbởi test Phương thức setUp xuất hiện trước tất cả các test

Phương thức tearDown(): hoàn thành fixture Ghi đè nếu

bạn muốn giải phóng khởi tạo các test Phương thức

tearDown được gọi sau tất cả các test

Trang 11

Các test thực tế

 Tất cả phương thức công khai (public method) với tên bắtđầu bằng test được xem như là một test

 Ví dụ: testValues(), testConversionError(),

testConversionToString() là các tên test hợp lệ

 Trong khi thi hành các điều kiện kiểm thử, giá trị trả về củaphương thức nên được so sánh với giá trị mong đợi

Junit cung cấp các phương thức assert* để so sánh giá trị

mong muốn với kết quả thực tế và sau khi chạy sẽ ném ramột ngoại lệ nếu điều kiện không thỏa mãn

Trang 13

Android testing framework

 Là một phần của môi trường phát triển ứng dụng

 Cung cấp công cụ mạnh mẽ để kiểm thử mọi khía cạnh củaứng dụng

Trang 14

Các đặc trưng chính của Android testing framework

 Android test suite dựa trên JUnit

 Sử dụng JUnit thuần túy để kiểm thử các lớp mà khôngdùng Android API

 Sử dụng Android JUnit Extension để kiểm thử các thànhphần Android

Trang 15

Các đặc trưng chính của Android testing framework

 Android JUnit extension cung cấp các lớp test case hướngthành phần

 Các lớp này cung cấp các phương thức để tạo mock object

và phương thức giúp bạn điều khiển vòng đời của một

thành phần

 Test suite được chứa trong các gói kiểm thử, tương tự nhưcác gói ứng dụng chính do đó không cần học công cụ mớihoặc kỹ thuật để thiết kế hoặc xây dựng test

Trang 16

Các đặc trưng chính của Android testing framework

 Công cụ SDK để xây dựng test case và tiến hành kiểm thử

có sẵn trong Eclipse ADT, và cung cấp dạng command line cho các IDE khác

 SDK cũng cung cấp monkeyrunner, API cho kiểm thử thiết

bị sử dụng các chương trình Python và UI/Application

Exerciser Monkey, công cụ command line dùng để testing UI bằng cách gửi sự kiện ngẫu nhiên tới thiết bị

Trang 17

stress-Các đặc trưng chính của Android testing framework

Trang 18

Cấu trúc kiểm thử (test structure)

 Test project được tổ chức dưới dạng cấu trúc chuẩn củatest, lớp test case, test package

 Android testing dựa trên Junit, các phương thức kiểm thửđược tổ chức trong một lớp gọi là các test case (hoặc test suite)

 Mỗi test là một test độc lập của một module độc lập

Trang 19

Cấu trúc kiểm thử (test structure)

 Trong JUnit, bạn sử dụng test runner để thi hành lớp test

 Trong Android, bạn sử dụng test tool để nạp các gói test (test package), sau đó các công cụ này thi hành test runner

cụ thể cho Android

Trang 20

Test project

 Các lợi ích của Android tool khi tạo test project bao gồm:

 Tự động thiết lập gói kiểm thử sử dụng

InstrumentationTestRunner như là test runner

 Bạn phải sử dụng InstrumentationTestRunner (hoặc lớp con) để chạy JUnit test

 Sử dụng tên thích hợp cho test package Nếu ứng dụng

phải kiểm thử có tên gói là com.mydomain.myapp thì

công cụ Android sẽ thiết lập tên gói kiểm thử là

com.mydomain.myapp.test

 Tự động tạo build file, manifest file, cấu trúc thư mục củatest project

Trang 21

Mock object

 Mock object bắt chước đối tượng được sử dụng thật thay

vì gọi các đối tượng thật để kích hoạt kiểm thử đơn vị

trong môi trường cách ly

 Android testing framework cung cấp một số mock object giúp cho việc viết kiểm thử

 Một số lớp trong gói android.test.mock

Trang 22

DEM O

Giới thiệu Android testing Project

Trang 23

Kiểm thử giao diện (UI test)

 Chỉ main thread có thể thay đổi UI trong Android

Chú giải @UIThreadTest được sử dụng cho kiểm thử đặc

biệt chạy trên thread có khả năng thay đổi UI

 Nếu bạn muốn chạy test trên UI thread, bạn nên sử dụng

phương thức Activity.runOnUiThread(Runable r) cung

cấp Runnable tương ứng chứa chỉ dẫn test

Lớp TouchUtils trợ giúp tạo UI test cho phép sinh ra các sự

kiện gửi tới View, như:

Trang 24

Eclipse hỗ trợ Junit

 Eclipse và Android ADT plugin hỗtrợ Junit đầy đủ và cho phép tạoAndroid testing project

 Ví dụ: Eclipse chạy 18 test trong20.008 giây, 0 Errors và 0 Failures

 Nếu có lỗi Failure Trace sẽ hiển thịthông tin

Trang 25

Các IDE khác

 Các IDE khác như ItelliJ và NetBean cung cấp các plugin tích hợp môi trường phát triển Android nhưng không hỗtrợ Junit một cách chính thức

 Nếu bạn không sử dụng IDE, bạn có thể chạy các test sửdụng ant (http://ant.apache.org)

Trang 26

Kiểm thử tích hợp

 Kiểm thử tích hợp được thiết kế để kiểm thử khi các thànhphần độc lập làm việc chung với nhau

 Thông thường Android Activity đòi hỏi một số tích hợp với

hạ tầng hệ thống Chúng cần vòng đời Activity cung cấpbởi ActivityManager, và truy cập tài nguyên, filesystem, và

Trang 27

Kiểm thử chức năng và kiểm thử chấp nhận

 Trong môi trường phát triển phần mềm linh hoạt (agile),

kiểm thử chức năng và kiểm thử chấp nhận được tạo bởi QA

 Đây là các kiểm thử cấp cao để kiểm tra tính hoàn thiện vàđúng đắn của yêu cầu người dùng hoặc một chức năng cụthể

 Các kiểm thử này được tạo ra thông qua sự cộng tác giữakhách hàng, chuyên gia phân tích nghiệp vụ, QA, tester vàngười phát triển

 Một số framework và công cụ như FitNesse

(http://fitnesse.org) có thể tích hợp vào trong quá trình pháttriển ứng dụng Android để kiểm thử

Trang 28

Kiểm thử chức năng và kiểm thử chấp nhận

Trang 29

Kiểm thử hiệu năng phần mềm

 Kiểm thử hiệu năng phần mềm đo cácyếu tố hiệu năng của các thành phần

 Nếu ứng dụng yêu cầu hiệu năng cao, bạn cần đo hiệu năng trước và sau khitiến hành một số thay đổi

Trang 30

Kiểm thử hệ thống

 Hệ thống được kiểm thử tổng thể và tương tác giữa cácthành phần, phần mềm, phần cứng Thông thường, kiểmthử hệ thống bao gồm các lớp kiểm thử bổ sung sau:

 GUI tests

 Smoke tests

 Performance tests

 Installation tests

Trang 31

Ký hiệu kiểm thử (test annotation)

 Ký hiệu kiểm thử dùng để phân loại test và chạy các test độc lập:

Trang 32

Tạo Android Testing project

Chọn File > New Project, chọn Android > Android Test

Project

Trang 33

Tạo Android Testing project

Chọn Test Target

Trang 34

Chạy kiểm thử

 Chạy tất cả test từ Eclipse:

chọn Run As > Android Junit Test

 Chạy một test case từ Eclipse:

chọn test project và chạy Run As | Run Configuration

Trang 35

Chạy kiểm thử

 Chạy kiểm thử từ Emulator: Mặc định emulator cài đặt sẵnứng dụng Dev Tools, trong ứng dụng này có sẵn tool

Instrumentation

Trang 36

Chạy kiểm thử

 Mặc định, các gói được hiển thị sử dụng instrumentation

mặc định là android.test.InstrumentationTestRunner.

 Để đổi tên, bạn mở file AndroidManifest.xml, dưới tab

Instrumentation, đổi tên label

Trang 37

Chạy kiểm thử

Trang 38

 Chạy kiểm thử từ dòng lệnh (command line)

Trang 39

Chạy kiểm thử

Trang 40

DEM O

Chạy kiểm thử Android bằng dòng lệnh

Trang 41

• Các phần cần kiểm thử trong Android

• Các loại kiểm thử

• Android testing framework

• Tạo project kiểm thử

• Chạy project kiểm thử

Tổng kết nội dung bài học

Ngày đăng: 28/02/2019, 22:47

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm