Tải bản đầy đủ (.pdf) (56 trang)

Kiểm thử tự động Android bằng Robotium- Đại học Công nghiệp Hà Nội

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.43 MB, 56 trang )

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 và tìm hiểu về Robotium và
ứng dụng kiểm thử tự động trên ứ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
1. Lý do chọn đề tài
Ngày nay, các phần mềm ngày càng phức tạp, việc tạo ra một sản phẩm


phần mềm có thể bán trên thị trường địi hỏi sự lỗ lực của rất nhiều các kỹ
sư phần mềm. Để tạo ra một phần mềm đòi hỏi sự liên kết, kết hợp của rất
nhiều các sản phẩm hoặc thư viện lập trình của nhiều đơn vị khác nhau. Do
đó việc kiểm thử phần mềm trở nên rất quan trọng và phức tạp
Bên cạnh sự phát triển của các công nghệ lập trình thì cơng nghệ và kỹ
thuật kiểm thử cũng ngày càng phát triển.
Kiểm thử là một trong những hoạt động quan trọng trong quá trính phát
triển phần mềm. Nó mang lại lợi ích rất lớn trong việc đánh giá chất lượng
của một phần mềm và là quy trình bắt buộc trong quy trình phát triển phần
mềm trong nước cũng như trên thế giới. Có rất nhiều kỹ thuật kiểm thử phần
mềm đã và đang được phát triển. Trong đó, kiểm thử phần mềm 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.
Đề tài này sẽ 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ử , 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, 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 khó kiểm sốt lỗi.
Lập trình ứng dụng điện thoại hiện nay rất phổ biến. Tuy nhiên, các công
ty 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 quy trình kiểm
thử nhất qn để kiểm tra tính đúng đắn của các sản phẩm trên di động.
2


- Trong quá trình phát triển phần mềm, sản phẩm ln phải cập nhật, bảo trì
liên tục. Mỗi 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 k bị xung đột .
- Miền sữ liệu nhập vào cho các thành phần là 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, diề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 hồn chỉnh. Có nhiều cơng cụ giúp giải quyết
kiểm thử tuy nhiên vẫn chưa giải quyết được tất cả.
Vì vậy nhóm em đã chọn đề tài: “Ứng dụng Robotium để kiểm thử các
chương trình trên Android”.
2. Mục đích và ý nghĩa đề tài
Mục địch:
Với những lý do được nêu trên, đề tài sẽ hướng tới 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.
Ý nghĩa khoa hoc:
- 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ác hiệu quả.
3. Ý nghĩa thực tiễn
Đề 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át triển và phổ biến. Nó giúp 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 hợp lý và kịp thời đưa ra các

3


phương án giải quyết phù hợp. Giúp đảm bảo tính tin cậy và tránh những
rủi ro trong quá trình sử dụng sản phẩm.
4. Mục tiêu và nhiệm vụ
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 ta 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 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ử.
- 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.
5. Đối tượng và phạm vi nghiên cứu
- 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.

4


6. Phương pháp nghiên cứu
- Thu thậ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ả.
7. Ý nghĩa khoa học và thực tiễn

- Kết quả nghiên cứu có thể làm tài liệu tham khảo.
- Phần nghiên cứu lý thuyết: cung cấp một cách nhìn tổng quát về quá trình
kiểm thử phần mềm.
- Phần thực tiễn: 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


Mục lục
MỞ ĐẦU….. ..................................................................................................... 2
1.

Lý do chọn đề tài ....................................................................................................... 2

2.

Mục đích và ý nghĩa đề tài ......................................................................................... 3

3.

Ý nghĩa thực tiễn ........................................................................................................ 3

4.

Mục tiêu và nhiệm vụ ................................................................................................ 4

Mục tiêu: ............................................................................................................................ 4
5.


Đối tượng và phạm vi nghiên cứu ............................................................................. 4

6.

Phương pháp nghiên cứu ........................................................................................... 5

7.

Ý nghĩa khoa học và thực tiễn ................................................................................... 5

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
1.

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
6


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 về 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 năng ........................................................................ 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 về kiểm thử trên điện thoại thông minh ..................................... 23

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 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ử trên 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 năng .............................................................................. 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 hiện nay ............................................ 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 của các framework kiểm thử trên Android hiện nay ................ 26
7


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 trên Android ............................................... 27

2.1.1. Mô tả vấn đề .................................................................................................. 27
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. Xây dựng quy trình kiểm thử ứng dụng di động trên 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 trong 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 hiện 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 hiện chức năng 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 năng đăng nhập : ............................................................. 49
3.3.3.4 Kiểm thử kết quả tính tốn: ..................................................................... 50
3.3.3.5 Kiểm thử chức năng chuyển hướng: ........................................................ 51
3.3.3.5 Kiểm thử tồn bộ 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 quả ..................................................................................................... 53


8


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 quả đạt được .............................................................................................................. 55
Hạn chế............................................................................................................................. 55
Hướng phát triển .............................................................................................................. 55

TÀI LIỆU THAM KHẢO ................................................................................ 56

9


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Ử

1. Một số cơng cụ kiểm thử
1.1. Smart Meter
Smart Meter là phần mềm hỗ trợ người dùng tạo, quản lý và tiến hành kiểm thử
hiệu suất tải trang và thời gian trung bình một số người cần sử dụng để chờ
trình duyệt tải trang. Smart Meter thay đổi các chỉ số, đồng thời tạo và xuất báo
cáo kiểm thử, phân tích dữ liệu trong ứng dụng hoặc traong trình duyệt web
mặc định.
Các tính năng chính:
-


Tạo, quản lý và kiểm thử hiệu suất tải trang.

-

Thay đổi chỉ số tải trang.

-

Dẫn liên kết tới cộng động sử dụng ứng dụng.

-

Giao diện khá bắt mắt

1.2.

Testlink

Testlink là tool quản lý được sử dụng rộng rãi dựa trên mã nguồn mở. Nó kết
hợp đồng thời cả hai requirements specification và Test specification. Người
dùng có thể tạo một test project và tài liệu test case sử dụng tool này. Chúng
ta có thể tạo tài khoản cho nhiều người dùng và assign những quyền người
dùng khác nhau.
Người dùng có thể quản lý test case. Testlink hỗ trợ cả hai thực hiện test case
bằng tay và tự động thực thi test case.
Với tool này thì người kiểm thử có thể sử dụng để xuất ra file test report và tài
liệu Test plan trong 1 phút. Nó hỗ trợ xuất ra file Test report của MS Word,
Excel, HTML formats.
10



Lợi ích của Testlink
- Hỗ trợ nhiều project
- Dễ dàng import hoặc export test case
- Dễ dàng tích hợp với nhiều tool quản lý defect
- Tự động thực hiện test case thông qua XML-RPC
- Dễ dàng lọc test case theo keywords, version và testcase ID
- Dễ dàng để assign test case tới nhiều user
- Dễ dàng xuất ra test plan, test report
1.3.

TestComplete

TestComplete là mộ công cụ kiểm thử tự động cho phép bạn tạo, quản lý và
chạy thử nghiệm cho bất kỳ phần mềm Windows, Web hoặc Rich Client nào.
Nó giúp mọi người dễ dàng tạo các ca kiểm thử tự động, chạy nhanh hơn, tăng
phạm vi kiểm tra và giảm chi phí.
TestComplete là một cơng cụ cần thiết cho các nhóm QA cần phải thực hiện
nhiều thử nghiệm hơn, theo kịp tiến độ phát triển nhanh và vẫn cung cấp phần
mềm đúng thời gian.

1.4.

Postman

Postman hiện là một trong những công cụ phổ biến nhất được sử dụng trong
kiểm thử API. Nó bắt đầu vào năm 2012 như một dự án phụ của Abhinav
Asthana để đơn giản hóa quy trình làm việc API trong kiểm thử và phát triển.
API là viết tắt của giao diện lập trình ứng dụng cho phép các ứng dụng phần

mềm giao tiếp với nhau thông qua các lệnh gọi API.
Thông thường tool này được sử dụng bởi Developers trong giai đoạn phát
triển sản phẩm, cụ thể là ở bước unit test. Người sử dụng postman hồn tồn
kiểm tra chất lượng của sản phẩm thơng qua các kết quả trả về mà không cần
quan tâm tới giao diện của sản phẩm Hiện nay, Postman đã đa dạng phiên bản
11


để phù hợp với hệ điều hành khác nhau: Mac OS, Windows. Nếu sử dụng hệ
điều hành nhân Linux thì bạn cần tải từ Extensions của Chrome.
Ưu điểm:
- Dễ dàng sử dụng REST client (Easy-to-use REST client).
- Giao diện đơn giản, dễ hiểu
- Có thể chạy trên các hệ điều hành khác nhau: MAC OS, Windows, Linux
and Chrome Apps
- Không địi hỏi phải học một ngơn ngữ mới
- Cho phép gửi HTTP Request đầy đủ các method: GET, POST, PUT,
DELETE
- Cho phép thay đổi header của request
- Cho phép post dữ liệu theo các định dạng: text, json, key-value
- Kết quả nhận về theo nhiều định dạng: text, hình ảnh, xml, json
1.5.

Katalon Studio

Katalon Studio được sử dụng bởi Tester, là một cơng cụ kiểm tra tự động hố
miễn phí, cung cấp một môi trường chung để tạo và thực thi chức năng UI,
các dịch vụ API/WEB và Mobile.
- Cài đặt đơn giản và nhanh gọn
- Hàng trăm từ khoá được tích hợp để tạo các trường hợp kiểm thử

- Xây dựng bộ kiểm thử linh hoạt
- Đơn giản, dễ hiểu ngay cả với những người đầu hoặc chưa có nhiều kinh
nghiệm lập trình
- Hỗ trợ trên nhiều nền tảng: Windows, MAC OS
12


- Miễn phí

1.6.

Qmetry Automation Studio

Qmertry Automation Studio được xây dựng dựa trên Eclipse, Selenium &
Appium, QMetry cung cấp khả năng tự động hóa, thực thi và phân tích Kết quả
kiểm tra một cách liền mạch trên nhiều nền tảng bao gồm Máy tính để bàn,
Web và Di động.
Tiết kiệm thời gian và nỗ lực bằng cách tự động tạo mã Mẫu thiết kế đối tượng
trang thông qua Thử nghiệm khám phá (Bản ghi và phát lại trên web)
Cải thiện thời gian tiếp thị của bạn bằng cách nhanh chóng tạo các bài kiểm tra
Tự động hóa và thực hiện chúng song song.
Mã tự động hóa thử nghiệm của tác giả, Tập lệnh tự động hóa gỡ lỗi và Bộ
thực thi tự động hóa cục bộ hoặc trên đám mây từ xa.
Xem xét và phân tích kết quả để nhanh chóng xác định lỗi và sửa chữa chúng.
Các tính năng chính bao gồm:
Phát triển và thử nghiệm trên tất cả các nền tảng, Máy tính để bàn, Di động và
Web.
Tự động tạo mã với Thử nghiệm khám phá. Ghi và phát lại cho các ứng dụng
web (Sắp có cho Dịch vụ Web).
Hỗ trợ tự động hóa cho các ứng dụng đa ngôn ngữ.

Hỗ trợ phát triển theo hướng hành vi bao gồm khuôn khổ.
Hỗ trợ kiểm tra theo hướng dữ liệu.
Kiểm tra Quản lý dữ liệu thông qua CSV, XML, JSON, Microsoft Excel hoặc
cơ sở dữ liệu của riêng bạn.
Hỗ trợ sẵn có Phát triển theo hướng từ chính.
Tạo và quản lý Kho lưu trữ định vị để phát triển mô-đun.
Thực thi tự động hóa kiểm tra trên mơi trường đám mây.
Hack nhanh bằng cách sử dụng Object Spy để mã hóa nhanh.
Hỗ trợ kiể, m tra Dịch vụ Web và Lớp API REST.
13


1.7.

Ranorex

Ưu điểm:
- Rất nhẹ, cài đặt đơn giản.
- Có thể thực hiện kiểm thử trên cả Desktop, Web, Mobile, Android, iOS, và
nhiều trình duyệt khác nhau. Có thể chạy được trên máy ảo.
- Tính năng mạnh mẽ là đa nền tảng thử nghiệm. Sau khi các trường hợp thử
nghiệm được viết, chúng có thể thực hiện trên các thiết bị di động khác nhau
- Được hỗ trợ mạnh bởi đội ngũ nhân viên giàu kinh nghiệm
- Cung cấp môi trường lập trình với ngơn ngữ phổ biến như C#, VB.Net
Hạn chế:
- Khó khăn khi làm việc nhóm, quản lý phiên bản.
- Tạo lỗi hoặc chuyển trạng thái của lỗi.

1.8.


SoapUI

- SOAP UI là công cụ kiểm tra API đa nền tảng dựa trên mã nguồn mở
- SOAPUI cho phép người kiểm thử thực hiện kiểm thử tự động: functional,
regression, compliance, and load tests trên các API Web khác nhau.
- SOAPUI hỗ trợ tất cả các giao thức, công nghệ tiêu chuẩn để kiểm tra tất
cả các loại API
- Giao diện SOAPUI rất đơn giản cho phép cả người dùng kỹ thuật và phi
kỹ thuật sử dụng dễ dàng.

1.9.

Selenium webdriver
Selenium là một công cụ nguồn mở được sử dụng để kiểm
thử tự động và cũng được giảng dạy trong các chương trình học
auto test được thực hiện trên các trình duyệt web (Các ứng dụng
web được kiểm thử bằng bất kỳ trình duyệt web nào).
Lợi ích khi sử dụng:

- Người dùng có thể dùng miễn phí Kiến trúc đơn giản
14


- Điều khiển trình duyệt từ hệ điều hành.
- Bạn chỉ cần IDE và trình duyệt là xong.
- Ngơn ngữ lập trình hỗ trợ: Web Driver hỗ trợ bạn viết kịch bản kiểm thử
bằng các ngôn ngữ khác nhau như Java, .NET, PHP, Python, Perl, Ruby và
bạn có thể sử dụng các điều kiện if else, các vòng lặp để tăng tính chính xác
cho kịch bản kiểm thử. Bạn khơng cần phải biết tất cả chúng. Bạn chỉ cần
có kiến thức trong một. Tuy nhiên, trong hướng dẫn này, chúng tôi sẽ sử

dụng Java với Eclipse làm IDE của chúng tôi.
- Tốc độ: Khi so sánh với các công cụ khác của bộ Selenium, WebDriver là
công cụ nhanh nhất trong số tất cả do tương tác trực tiếp từ hệ điều hành tới
trình duyệt.

1.10. QTP
QTP giúp chúng ta kiểm thử phần mềm theo hướng chức năng trên rất nhiều
loại chương trình phần mềm khác nhau. Tuy nhiên QPT chỉ hỗ trợ sẵn một số
loại chương trình thơng dụng như:
- Ứng dụng Windows chuẩn/Win32.
- Ứng dụng web theo chuẩn HTML, XML chạy trong trình duyệt Internet
Explorer, Netscape hoặc AOL.
- Visual Basic.
- ActiveX.
- QTP hỗ trợ Unicode (UTF-8, UTF-16).

1.11. Selenium IDE
Selenium IDE là một mơi trường phát triển tích hợp cho việc xây dựng trường
hợp kiểm thử Selenium. Nó hoạt động như một add-on của firefox và cung cấp
một giao diện dễ sử dụng để phát triển các trường hợp kiểm thử. Selenium IDE
có tính năng thu lại kịch bản để tái sử dụng. Nó cũng có một menu ngữ cảnh

15


tích hợp với trình duyệt Firefox, cho phép người dùng chọn từ một danh sách
xác minh và khẳng định cho các yếu tố giao diện đã chọn.

1.12. Jmeter
Jmeter là công cụ để đo độ tải và performance của đối tượng, có thể sử dụng

để test performance trên cả nguồn tĩnh và nguồn động, có thể kiểm tra độ tải
và hiệu năng trên nhiều loại server khác nhau như: Web – HTTP, HTTPS,
SOAP, Database via JDBC, LDAP, JMS, Mail – SMTP(S), POP3(S) and
IMAP(S)… Jmeter là một mã nguồn mở được viết bằng java. Cha đẻ của
JMeter là Stefano Mazzocchi sau đó Apache đã thiết kế lại để cải tiến hơn giao
diện đồ họa cho người dùng và khả năng kiểm thử hướng chức năng. Các đặc
trưng của jmeter:
- Nguồn mở, miễn phí
- Giao diện đơn giản, trực quan dễ sử dụng
- Có thể kiểm thử nhiều kiểu server: Web - HTTP, HTTPS, SOAP,
Database - JDBC, LDAP, JMS, Mail - POP3,…
- Một cơng cụ độc lập có thể chạy trên nhiều nền tảng hệ điều hành khác
nhau, trên Linux chỉ cần chạy bằng một shell scrip, trên Windows thì chỉ
cần chạy một file .bat
- Đa luồng, giúp xử lý tạo nhiều request cùng một khoảng thời gian, xử lý
các dữ liệu thu được một cách hiệu quả.
- Đặc tính mở rộng, có rất nhiều plugin được chia trẻ rộng rãi và miễn phí

1.13. Jest
Jestjs là một JavaScript Testing Framework khá là dễ sử dụng và
cài đặt, tuy nhiên vẫn đầy đủ tính năng để bạn có thể sử dụng.
Ngồi ra, việc cài đặt Jest khá đơn giản.

16


1.14. PHPUnit
PHPUnit là một nền tảng kiểm thử phần mềm linh động cho các ứng dụng web
xây dựng bằng ngôn ngữ PHP. Việc kiểm thử có thể được viết dễ dàng, PHP
có thể được triển khai trên nền tảng mơi trường Windows, Linux và Macintosh

. PHPUnit được phát triển bởi Sebastian Bergmann một nhà phát triển ứng dụng
và nhà kiểm thử người Đức. Nó là một chuẩn phần mềm mã nguồn mở, phát
hành dựa trên công cụ JUnit. Công cụ này có thể được tải và sử dụng mà khơng
đóng bất kỳ khoản chi phí nào.
PHPUnit là một nền tảng kiểm thử được xây dựng dựa trên nền tảng kiểm thử
nổi tiếng của java là Junit. Chính vì thế PHPUnit có một số đặc trưng cơ bản
sau:
-

Sự dễ dàng trong việc cài đặt cũng như triển khai một ứng dụng kiểm thử
đối với PHPUnit.

-

Cung cấp các hàm cần thiết và hỗ trợ hiệu quả trong kiểm thử thực thi với
việc sử dụng Command-line.

- Cung cấp cho chuyên viên kiểm thử khả năng kiểm thử cơ sở dữ liệu hiệu
quả bằng cách sử dụng các hàm API cung cấp trong lớp kiểm thử về cơ sở
dữ liệu.
- Cung cấp khả năng mở rộng các ca kiểm thử và khả năng kết hợp với nhiều
nền tảng PHP khác nhau và đặc biệt hỗ trợ việc kiểm thử theo mơ hình ba
tầng.
1.15. Robotium
-

Robotium là một framework kiểm thử được tạo ra để dễ dàng viết các

ca kiểm thử hộp đen cho các ứng dụng Android để các nhà phát triển thử
nghiệm không cần thêm bất kỳ thông tin nào về cấu trúc ứng dụng Android

hoặc các lớp thực hiện. Với sự hỗ trợ của Robotium, các nhà testers có thể
viết các kịch bản kiểm tra chức năng, hệ thống và chấp nhận, trải dài nhiều
hoạt động của Android.

17


-

Để tạo các bài kiểm tra ổn định và đáng tin cậy, Robotium cung cấp

nhiều phương pháp phản ứng với các yếu tố đồ họa khác nhau trong một ứng
dụng Android

1.16. Nunit
- NUnit là framework nguồn mở dùng để triển khai unit test cho ngơn ngữ
bên .NET.
- Unit có thể được hiểu là các hàm (function), thủ tục (procedure), hay lớp
(class) hoặc phương thức (method), …
- Nunit không phải là giao diện tự động kiểm tra.
- Không phải là một ngôn ngữ kịch bản, kiểm tra tất cả các Unit testing được
viết bằng .Net và hỗ trợ ngôn ngữ như C#, VC, VB.Net, J#...

1.17. Applitools
Đặc điểm
- Applitools là một công cụ kiểm tra tự động, tự động xác nhận giao diện và
trải nghiệm người dùng của các ứng dụng và trang web.
Ưu điểm
- Cho phép kiểm tra trình duyệt chéo trong các thiết bị khác nhau.
- Cung cấp báo cáo thử nghiệm trực quan tương tác cho người dùng.

- Quản lý truy cập người dùng rất mạnh mẽ.
- Nó có sẵn như là một dịch vụ đám mây hoặc tiền đề.

1.18. Loatorm
LoadStorm là một công cụ kiểm thử cho các ứng dụng web và mobile. Điểm
mạnh là nó có thể kiểm tra hiệu năng của ứng dụng dựa trên lượng user và
traffic. LoadStorm có khả năng chịu tải rất tốt khi có thể giả lập hàng trăm

18


nghìn đến hàng triệu user để tìm kiếm các breaking point trong ứng dụng. Các
kịch bản test của LoadStorm có thể được chỉnh sửa bởi tester.
1.19. BlazeMeter
Đặc điểm
- Công cụ này test các mục sau: end-to-end load; performance & load testing
cho 3 thứ: mobile apps, APIs và websites.
Ưu điểm
- Hệ thống report thời gian thực kết hợp với độ chính xác cao của bộ phận đo
hiệu năng.

1.20. Needie
Needle là công cụ kiểm tra Front dùng để kiểm tra CSS. Nó kiểm tra các yếu
tố hình ảnh như font / CSS / hình ảnh render chính xác bằng cách chụp màn
hình của một số phần nhất định của trang web. Sau đó, nó so sánh với một số
ảnh chụp màn hình tốt được biết đến. Công cụ cũng cho phép người kiểm tra
tính tốn các giá trị CSS và vị trí của các phần tử HTML.

1.21. SOASTA CloudTest
SOASTA có khả năng đáp ứng đồng thời 4 kiểu automation test trên một

platform. SOASTA mô phỏng hàng triệu người dùng phân tán trên các vị trí
địa lí khác nhau nhằm kiểm tra khả năng chịu tải của application. Với SOASTA,
hai khâu integration và phân tích thời gian thực (real-time analytic) giữa các
pha monitoring, test design, reporting đều được tiến hành liền mạch.

1.22. LoadRunner
- Là công cụ kiểm thử tự động thực hiện việc kiểm tra hiệu năng của phần
mềm. Nó cho phép tìm ra những lỗi về khả năng thực thi bằng việc phát hiện
nguyên nhân, chỗ làm cho phần mềm chạy chậm hoặc không đúng yêu cầu.
19


- Đây là công cụ mạnh với giải pháp kiểm tra tải, phát hiện và đưa ra giải
pháp cải tiến. LoadRunner sẽ giúp giảm thời gian viết test script đến 80%,
đó là nhờ nó cung cấp chức năng tự động phát sinh script mơ tả lại các tình
huống muốn kiểm tra.
1.23. PyUnit
- PyUnit (Python unittest) là một nền tảng kiểm thử (testing framework), được
phát triển từ JUnit dành cho Python.
- Một nền tảng kiểm thử trên một ngôn ngữ lập trình được thiết lập để cho
ngơn ngữ lập trình biết phương thức nào là phương thức kiểm thử (testing
method), lớp nào là lớp kiểm thử (testing class), kết quả như thế nào là đúng
(Passed), như thế nào là sai (Failed), ...
1.24. Watir
- Watir là một thư viện Ruby mã nguồn mở dành cho kiểm thử tự động. Watir
tương tác với một trình duyệt giống như cách mọi người thường làm: nhấp
vào các liên kết, điền vào biểu mẫu và xác thực văn bản.
- Người dùng watir có thể xây dựng một web scraper (trích xuất nội dung
trang web) để mơ phỏng việc vào một trang web, đăng nhập, gửi bình luận
hoặc tải dữ liệu về và nhiều thứ khác nữa.

- Watir cho phép tester tạo ra những test case dễ đọc hiểu và maintain. Đây là
một công cụ khá dễ sử dụng và linh hoạt.
1.25. Smart meter
Đặc điểm
- Kiểm thử hiệu suất tải trang trên các trình duyệt.
Ưu điểm
- Dễ dàng tạo test.
- Kiểm thử phân tán, dễ dàng đặt các chỉ tiêu kiểm thử chấp thuận.
- Kết quả test được thống kê chi tiết và trình bày trực quan.

20


PHẦN II: TÌM HIỂU CƠNG CỤ ROBOTIUM
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1.

Kiểm thử phần mềm

1.1.1. Tổng quan về kiểm thử phần mềm
Kiểm thử phần là một cuộc kiểm tra được tiến hành để cung cấp cho các bên
liên quan thông tin về chất lượng của sản phẩm hoặc dịch vụ được kiểm thử.
Kiểm thử có thể cung cấp cho doanh nghiệp một quan điểm, một cách nhìn độc
lập về phần mềm để từ đó cho phép đánh giá và thấu hiểu được những rủi ro
trong quá trình triển khai phần mềm.Quy trình kiểm thử phần mềm
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à cho phí.

1.1.2. Kỹ thuật 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:

21


- Unit test: là kiểm thử phần mềm trong đó các đơn vị hoặc thành phần riêng
lẻ của một phần mềm được kiểm tra.
- Integration test: là công việc kiểm thử tích hợp 1 nhóm các module riêng lẻ
với nhau cùng với các Unit Test riêng lẻ trong từng module.
- System test: là quá trình kiểm tra của một sản phẩm đã hồn chỉnh và tích
hợp đầy đủ. Sau khi Integration test và Unit test.
- Acceptance test: là một thử nghiệm chức năng thực hiện trên một sản phẩm
trước khi nó được đưa ra thị trường hoặc được giao, để quyết định xem các
thông số kỹ thuật hoặc hợp đồng đã được đáp ứng.
Mục tiêu 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 2 loại:
- Kỹ thuật kiểm thử hộp đen hay còn gọi là kỹ thuật kiểm thử chức năng.
- Kỹ thuật kiểm thử hộp trắng hay còn gọi là kỹ thuật kiểm thử cấu trúc.
1.1.3. Kỹ thuật kiểm thử chức năng
- Kiểm thử chức năng là một loại kiểm thử hộp đen (black box) và test case
của nó được dựa trên đặc tả của ứng dụng phần mềm/thành phần đang test.
Các chức năng được test bằng cách nhập vào các giá trị nhập và kiểm tra
kết quả đầu ra, và ít quan tâm đến cấu trúc bên trong của ứng dụng.
- Nó là một qui trình cố gắng tìm ra các khác biệt giữa đặc tả bên ngoài của
phần mềm và thực tế mà phần mềm cung cấp. Với các đặc tả bên ngoài
của phần mềm là đặc tả chính xác về hành vi của phần mềm theo góc nhìn
của người dùng.


22


1.1.4. Kỹ thuật kiểm thử cấu trúc
- Kỹ thuật kiểm thử cấu trúc là kỹ thuật dựa trên sựu 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 vủa chương trình (khơng quan tâm tới đặc
tả).
1.1.5. 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 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ử 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ản kiểm thử và sự đánh gia 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.
Để kiểm thử cho một ứng dụng sẽ bao gồm nhiều chiến lược để phát hiện được
hết các lỗi
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.

1.2.

Khái niệm về kiểm thử trên điện thoại thông minh

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ọ pin: một chiếc điện thoại có thời lượng pin đủ dùng trong ngày
nhưng với điện thoại thông minh do sử dụng nhiều và thường xuyên nên
23


thời lượng pin bị rút ngắ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 tố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. Nhưng vị trí của di động ln thay đổi nên người dùng
có thể ngắt kết nối mạng ở những nơi không hỗ trợ. Phát triển nhần mềm
phải thiết kế có khả năng hoạt động ngay cả khi khơng có kết nối mạ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ị bao gồm kích cỡ màn hình, chipset, bộ nhớ trong, bộ nhớ ngoài
và những thiết bị cảm biến được hỗ trợ, GPS, bàn phím và đầu vào của
thuêts bị. Khi 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 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 đề tài nguyên hệ
thống của ứng dựng cũng rất cần được xem xét.
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ử

1.2.3. Các dạng kiểm thử trên Android
1.2.3.1.

Kiểm thử đơn vị


1.2.3.2.

Kiểm thử tích hợp

1.2.3.3.

Kiểm thử hoạt động

1.2.3.4.

Kiểm thử hiệu năng

1.2.3.5.

Kiểm thử hệ thống

1.2.3.6.

Kiểm thử giao diện

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 hiện nay
1.2.4.1.
-


Nền tảng kiểm thử Robotium

Robotium là một framework kiểm thử được tạo ra để dễ dàng viết các

ca kiểm thử hộp đen cho các ứng dụng Android để các nhà phát triển thử
nghiệm không cần thêm bất kỳ thông tin nào về cấu trúc ứng dụng Android
hoặc các lớp thực hiện. Với sự hỗ trợ của Robotium, các nhà testers có thể viết
các kịch bản kiểm tra chức năng, hệ thống và chấp nhận, trải dài nhiều hoạt
động của Android.
-

Để tạo các bài kiểm tra ổn định và đáng tin cậy, Robotium cung cấp nhiều

phương pháp phản ứng với các yếu tố đồ họa khác nhau trong một ứng dụng
Android

1.2.4.2.

Nền tảng kiểm thử Android Automator

Lớp cơ sở của các lớp kiểm thử trên Android là lớp Instrumentation TestCase.
Lớp cơ sở cung cấp các chức năng sau:
- Điều khiển vòng đời: sử dụng Instrumentation để khởi tạo, tạm dừng, và hủy
thành phần bằng cách sử dụng các phương thức được cung cấp bởi các lớp kiểm
thử.
- Tương tác giao diện người dùng: gửi sự kiện bấm phím ảo hoặc sự kiện chạm
tới thành phần giao diện của ứng dụng trong phương thức kiểm thử.
- Giúp người phát triển điều khiển môi trường kiểm thử và tách môi trường
kiểm thử với môi trường phát triển.

- Hai lớp con kiểm thử chính là Activity Instrumentation TestCase2 và
ActivityUnitTestCase

1.2.4.3.

Nền tảng kiểm thử Roboelectric

Robolectric là một nền tảng cho phép bạn viết các kiểm thử đơn vị và chạy
chúng trên môi trường máy ảo mà không cần chạy ứng dụng Android một cách
trực tiếp trên thiết bị.
25


×