Tải bản đầy đủ (.doc) (35 trang)

Kiểm thử phần mềm, Nghiên cứu kỹ thuật kiểm thử Android APP

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 (550.36 KB, 35 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
-------------

BÀI TẬP LỚN
Học phần: Kiểm thử phần mềm

Chủ đề: Nghiên cứu kỹ thuật kiểm thử Android APP
Giáo viên hướng dẫn: ThS. Hồng Quang Huy
Nhóm 2:

Lớp: IT6041004

Hà Nội - Năm 2022

Khóa: K14


LỜI NĨI ĐẦU
Hiện nay, thời đại cơng nghệ phát triển, kéo theo sự phát triển của các thiết bị
điện tử thơng minh, nổi bật trong số đó là điện thoại. Điện thoại là thiết bị thơng
minh khó có thể thiếu đối với con người hiện nay, có những ưu điểm như tính
kết nối giữa con người với con người và với vạn vật, tính hiệu quả, giải trí và đặc
biệt là chức năng ứng dụng của chúng, chúng phục vụ con người trong mọi lĩnh
vực như giải trí, theo dõi tin tức, học tập, thực hiện giao dịch ngân hàng, mua
bán, lịch trình, quản lý cơng việc, tìm kiếm thơng tin, kiểm tra sức khỏe v.v.
Ví dụ 1 số các ứng dụng trên điện thoại phổ biến đối với bản thân chúng em
cũng như đối với con người nói chung như: Zalo - Ứng dụng trợ giúp nhắn tin và
gọi video, ZingMP3 - Ứng dụng nghe nhạc của người Việt, ZaloPay - Ứng dụng
giao dịch, thanh toán tiền, v.v.
Với mức độ sử điện thoại ngày càng tăng và lý do chính để sử dụng điện thoại


chính là việc sử dụng các tiện ích, các ứng dụng chạy trên nó. Thực tế cho thấy
rằng, để giữ chân người dùng sử dụng điện thoại nhiều hơn, đồng nghĩa với việc
sử dụng các ứng dụng chạy trên nó lâu hơn, thường xuyên hơn cho các mục đích
khác nhau thì địi hỏi các ứng dụng phải đáp ứng được yêu cầu sử dụng của
người dùng, ứng dụng phải dễ sử dụng, ổn định, chất lượng và đáng tin cậy.
Khoảng 50% sản phẩm bị đánh giá kém trên các cửa hàng ứng dụng dựa trên các
mối quan tâm như sự cố, hiệu suất kém và hao pin. Mọi người đều trải qua sự
thất vọng và dẫn đến việc xóa khỏi hệ thống ứng dụng đó và có 77% người dùng
xóa ứng dụng sau 72 giờ.
Cho nên vấn đề kiểm thử cho ứng dụng di động đang được các nhà phát triển,
các nhà nghiên cứu đầu tư để đề xuất các giải pháp, các phương pháp, kỹ thuật
kiểm thử nhằm nâng cao chất lượng của sản phẩm, nâng cao độ tin cậy và hiệu
năng. Tính đa dạng của các thiết bị di động, băng thông hạn chế, bộ nhớ và dung
lượng lưu trữ bị giới hạn, nguồn năng lượng, độ tin cậy của các mạng không dây
và đa dạng người dùng là những vấn đề thách thức lớn nhất mà các nhà phát
triển cũng như kiểm thử phải đầu tư nghiên cứu để đưa ra các giải pháp hiệu quả
cho phát triển ứng dụng di động hiện nay.


DANH MỤC
Chương 1: Cơ sở lý thuyết.....................................................................................1
1.1

Khái quát về kiểm thử trên Android..........................................................1

1.1.1 Tổng quan...............................................................................................1
1.1.2 Khái niệm kiểm thử phần mềm..............................................................2
1.1.3 Yếu tố tác động đến hiệu suất của phần mềm........................................3
1.1.4 Phân loại ứng dụng mobile.....................................................................3
1.2


Các chiến lược kiểm thử Android.............................................................4

1.2.1

Kiểm thử đơn vị (Unit tests)................................................................4

1.2.2

Kiểm thử tích hợp (Integration tests)..................................................5

1.2.3

Kiểm thử điều hành (Operational tests)..............................................5

1.2.4

Kiểm thử hệ thống (System tests).......................................................6

1.3

Các kỹ thuật kiểm thử................................................................................6

1.3.1

Tổng quan............................................................................................6

1.3.2

Kiểm thử chức năng (Functional testing)............................................7


1.3.3

Kiểm thử hiệu năng (Performance testing).........................................8

1.3.4 Kiểm thử bảo mật (Security testing)......................................................9
1.3.5 Kiểm thử tính khả dụng (Usability testing)............................................9
1.3.6 Kiểm thử khả năng tương thích (Compatibility testing)......................11
1.3.7 Kiểm thử phục hồi (Recoverability testing).........................................11
1.4

Kiểm thử Android....................................................................................13

1.4.1

Thách thức, khó khăn khi kiểm thử...................................................13

1.4.2

Giải pháp...........................................................................................13

1.5

Kiểm thử Android tự động......................................................................14

1.5.1

Android Testing Framework.............................................................14

1.4.2 Robotium Testing Framework.............................................................18

1.5.2
1.6

Apptim...............................................................................................21

Lỗi thường gặp khi kiểm thử Android.....................................................23

Chương 2: Kết quả nghiên cứu............................................................................26


2.1 Giới thiệu....................................................................................................26
2.2 Thực hiện kiểm thử.....................................................................................26
Chương 3: Kết luận và bài học kinh nghiệm.......................................................30
3.1 Bài học kinh nghiệm...................................................................................30
3.2 Đề xuất, hướng phát triển...........................................................................30
Tài liệu tham khảo................................................................................................31


Chương 1: Cơ sở lý thuyết
1.1 Khái quát về kiểm thử trên Android
1.1.1 Tổng quan


Với sự phát triển nhanh chóng của Internet cộng với trào lưu mạng xã hội
bùng nổ điện thoại thông minh đang ngày càng được sử dụng nhiều, nhằm
đáp ứng nhu cầu giải trí đa dạng của người dùng.



Càng ngày các yêu cầu của người dùng đối với phần mềm ngày càng cao.

Phần mềm không chỉ phải thực hiện chính xác các tác vụ, hiệu quả mà cịn
phải dễ dàng sử dụng, có thiết kế đẹp mắt và tương thích với hệ sinh thái
trên các hệ điều hành của thiết bị thông minh.



Đặc biệt, hệ điều hành chiếm thị phần lớn như Android thì việc đảm bảo
chất lượng và tương thích của phần mềm là vơ cùng quan trọng.

Thị phần hệ điều hành trên smartphone ở Việt Nam T6/2020
1


1.1.2 Khái niệm kiểm thử phần mềm
Kiểm thử phần mềm là quá trình khảo sát một hệ thống hay thành phần dưới
những điều kiện xác định, quan sát và ghi lại các kết quả và đánh giá một khía
cạnh nào đó của hệ thống hay thành phần đó.
Kiểm thử phần mềm là hoạt động thực thi một chương trình, khảo sát thực tiễn
sản phẩm hay dịch vụ phần mềm trong đúng môi trường chúng dự định sẽ được
triển khai nhằm cung cấp cho người có lợi ích liên quan những thông tin về chất
lượng của sản phẩm hay dịch vụ phần mềm ấy.
Mục đích là tìm ra lỗi hay khiếm khuyết phần mềm nhằm đảm bảo hiệu quả hoạt
động tối ưu của phần mềm. Giúp người xây dựng hệ thống và khách hàng thấy
được hệ thống đã chạy như mong muốn, yêu cầu hay chưa?
Tầm quan trọng của kiểm thử phần mềm:
 Thứ nhất, trách nhiệm hiệu quả về chi phí. Kiểm thử phần mềm giúp nhanh
chóng phát hiện các lỗi của phần mềm, giúp giảm chi phí sửa chữa.
 Thứ hai, trách nhiệm bảo mật. Sản phẩm được phát hiện và sửa lỗi giúp loại
bỏ các rủi ro và các vấn đề sớm, làm tăng độ tin cậy cho sản phẩm. Đối với
ngành công nghệ phần mềm, vấn đề bảo mật là yếu tố cực kỳ nhạy cảm, nó

liên quan trực tiếp đến việc sở hữu, sử dụng của người dùng. Vì vậy, việc
kiểm thử phần mềm giúp hồn thiện nhất sản phẩm phần mềm, tránh những
lỗ hổng bảo mật đáng tiếc, tăng độ tin tưởng cho người sử dụng.
 Thứ ba, trách nhiệm về chất lượng sản phẩm. Ngoài vấn đề bảo mật như trên,
sản phẩm phần mềm được kiểm tra sẽ đảm bảo được độ tin cậy, hiệu suất
hoạt động cao, đảm bảo được các yêu cầu, tính năng cần thiết của nó. Sản
phẩm đưa đến tay khách hàng phải là một sản phẩm đạt đủ các yêu cầu của
khách hàng về hình thức, giao diện, cấu trúc, tính năng,…và đảm bảo khơng
cịn bất cứ lỗi nào trên sản phẩm.
 Thứ tư, trách nhiệm với niềm tin của khách hàng. Một sản phẩm càng chỉn
chu, càng hoàn thiện, chất lượng càng cao sẽ tạo ra những trải nghiệm người
dùng tốt nhất, từ đó càng tạo được niềm tin và uy tín với khách hàng và đối
tác

2


1.1.3 Yếu tố tác động đến hiệu suất của phần mềm
a. Hiệu năng của máy
Hiệu năng của máy phụ thuộc vào các yếu tố điển hình sau:


Bộ nhớ.



Pin.




Phần cứng.



Phần mềm hỗ trợ.



Tương thích ứng dụng.



Các yếu tố từ người sử dụng.

b. Khả năng phản hồi của Server/API


Khả năng truyền tải dữ liệu từ hệ thống: Ứng dụng nên xử lý dữ liệu một
cách hiệu quả trước khi gửi lên máy chủ để việc truyền tải dữ liệu không
tốn quá nhiều thời gian. Việc xử lý dữ liệu, là yếu tố quan trọng quyết định
việc một ứng dụng chạy nhanh hay chậm.



Xử lý thuật toán: Xử lý thuật toán tốt sẽ giúp tiết kiệm bộ nhớ và thời gian
làm việc của ứng dụng.



Đồng bộ và lưu trữ dữ liệu: Lưu trữ dữ liệu trên cơ sở dữ liệu có thể giúp

việc truy vấn nhanh hơn, cải thiện hiệu suất phần mềm.

c. Đường truyền mạng


Gói mạng



Tốc độ đường truyền chung

1.1.4 Phân loại ứng dụng mobile
Có 3 loại ứng dụng mobile chính:
 Ứng dụng gốc (Native apps): Là ứng dụng được tạo riêng trên một nền
tảng giống như di động hoặc máy tính bảng.

3


 Ứng dụng di động (web_Mobile web apps): Là các ứng dụng phía server
để truy cập vào các website trên di động sử dụng các trình duyệt khác
nhau như: Chrome, Firefox bằng cách kết nối tới một mạng di động hoặc
mạng không dây giống như WIFI
 Ứng dụng lai (Hybrid apps) : Là sự kết hợp giữa ứng dụng gốc và ứng
dụng web. Chúng chạy trên các thiết bị hoặc offline và chúng được viết
bằng các công nghệ web như HTML5 và CSS.
Việc phân loại được các ứng dụng mobile sẽ làm cho quy trình kiểm thử diễn ra
chính xác hơn.

1.2 Các chiến lược kiểm thử Android

1.2.1 Kiểm thử đơn vị (Unit tests)
Kiểm thử đơn vị bao gồm các tập hợp của một hoặc nhiều chương trình được
thiết kế để xác minh một đơn vị nguyên tử của mã nguồn, chẳng hạn như một
phương pháp hoặc một lớp.
Nền tảng Android được tích hợp sẵn khung Junit 3.0. Đó là khung nguồn mở để
tự động hóa kiểm thử đơn vị. Android Testing Framework là công cụ mạnh mẽ
để nhà phát triển viết chương trình kiểm thử đơn vị hiệu quả.
Sự tích hợp của Android và JUnit framework
Một bổ sung cho kiểm thử đơn vị là kiểm thử giao diện người dùng (UI). Các bài
Kiểm thử này liên quan đến các thành phần giao diện người dùng của ứng dụng
mục tiêu của bạn. Kiểm thử giao diện người dùng đảm bảo rằng ứng dụng của
bạn trả về đầu ra giao diện người dùng chính xác để đáp ứng với chuỗi hành
động của người dùng trên thiết bị.

Hành động giao diện người dùng phổ biến trên ứng dụng
4


Cách phổ biến để kiểm thử giao diện người dùng hiệu suất trên thiết bị là
Android Instrumentation. Một trong những công cụ tốt nhất để tiến hành kiểm
thử giao diện người dùng trên Android là Robotium.
1.2.2 Kiểm thử tích hợp (Integration tests)
Trong kiểm thử tích hợp, tất cả các mơ-đun được kiểm thử đơn vị, được kết hợp
và xác minh. Trong Android, các bài kiểm thử tích hợp thường liên quan đến
việc kiểm thử tích hợp với các thành phần Android như kiểm thử dịch vụ, kiểm
thử hoạt động, kiểm thử nhà cung cấp nội dung, v.v.

Các loại kiểm thử tích hợp trên Android
Có rất nhiều khung kiểm thử được sử dụng để tiến hành kiểm thử tích hợp cho
Android như Troyd, Robolectric, Robotium.

1.2.3 Kiểm thử điều hành (Operational tests)
Kiểm thử điều hành còn được gọi là kiểm thử chức năng hoặc là kiểm thử sự
chấp nhận. Đây là các loại kiểm thử cấp độ cao với thiết kế để kiểm tra sự hồn
thành và chính xác của ứng dụng trong Android, Fitnesse là nguồn mở giúp cho
việc tiến hành kiểm thử điều hành dễ dàng cho các ứng dụng mục tiêu.

5


1.2.4 Kiểm thử hệ thống (System tests)
Trong kiểm thử hệ thống, hệ thống được kiểm thử tồn bộ và có sự kiên kết giữa
các thành phần, phần mềm và phần cứng được kiểm tra trong Android, kiểm thử
hệ thống thường bao gồm:


Kiểm thử GUI



Kiểm thử khả năng sử dụng



Kiểm thử hiệu suất



Kiểm thử khả năng chịu đựng. Bạn có thể sử dụng dụng cụ như là
Traceview để tiến hành việc kiểm thử hồn thành trên Android. Các dụng
cụ có thể giúp debug các ứng dụng của bạn và các thông tin của việc hoàn

thành

1.3 Các kỹ thuật kiểm thử
1.3.1 Tổng quan
Kiểm thử Mobile bao gồm 6 kỹ thuật chính :
1. Kiểm thử chức năng (Functional testing)
2. Kiểm thử hiệu năng (Performance testing)
3. Kiểm thử an ninh (Security testing)
4. Kiểm thử tính khả dụng (Usability testing)
5. Kiểm thử tương thích (Compatibility testing)
6. Kiểm thử khả năng phục hồi (Recoverability testing)
Đối với một ứng dụng trên điện thoại chúng ta phải sử dụng tất cả các kỹ thuật
kiểm thử nói trên nhưng người kiểm thử phải biết ứng dụng đó thuộc loại gì và
nhấn mạnh vào các kỹ thuật kiểm thử cần thiết . Ví dụ như nhấn mạnh vào kỹ
thuật kiểm thử an ninh (Security testing) trong các ứng dụng của ngân hàng,…
Các yếu tố có liên quan đến việc kiểm thử Mobile:
Loại ứng dụng được phân chia dựa trên tính chuyên môn: ngân hàng, game, xã
hội, kinh doanh,…
6


Loại đối tượng mà ứng dụng hướng đến: người tiêu dùng, doanh nghiệp, giáo
dục,…
Kênh phân phối sẽ sử dụng để truyền bá ứng dụng: apple app store, google play,
phân phối trực tiếp,…
Phần tiếp theo của báo cáo sẽ trình bày chi tiết hơn về các kỹ thuật kiểm thử.
Lưu ý - Để hiểu rõ hơn, chúng ta sẽ giả định rằng chúng ta đang kiểm thử một
ứng dụng di động cho hệ thống đặt vé máy bay trực tuyến.

1.3.2 Kiểm thử chức năng (Functional testing)

a, Khái niệm
Kiểm thử chức năng (Functional Testing) là bước kiểm thử cơ bản nhất cho bất
kỳ một ứng dụng nào để đảm bảo rằng nó được làm việc theo đúng các yêu cầu,
quy định đã đặt ra. Tương tự như các ứng dụng user-interface cơ bản khác, các
ứng dụng di động cần đến sự tương tác giữa con người với chúng.
b, Mục đích
Mục đích của kiểm thử chức năng đó là kiểm thử từng chức năng của ứng dụng.
Qua đó có thể kiểm tra các yêu cầu chức năng đã đề xuất trước đó có đạt hay
khơng. Nhờ có kiểm thử chức năng mà bạn có thể tránh được những việc kiểm
thử dư thừa các chức năng không cần thiết.
c, Kịch bản kiểm thử
-Xác nhận rằng việc hiển thị điểm xuất phát, điểm đến và giờ khởi hành
của các chuyến bay phải chính xác.
-Xác nhận những chuyến bay đã cất cánh không được hiển thị trong kết
quả tìm kiếm của khách hàng.
-Xác nhận tính năng thanh tốn qua thẻ tín dụng hoạt động nhanh chóng
và chính xác sau khi khách hàng đã đặt và lựa chọn loại vé phù hợp.
- Xác nhận rằng ứng dụng hỗ trợ bất kỳ giao dịch cổng thanh toán nào như
Visa, Mastercard, Paypal, v.v. theo yêu cầu của ứng dụng.

7


-Xác nhận rằng người dùng nhận được thông báo lỗi như “Khơng có kết
nối Internet” bất cứ khi nào khơng có kết nối mạng.
1.3.3 Kiểm thử hiệu năng (Performance testing)
a, Khái niệm
Kiểm thử hiệu năng (Performance Testing) là kỹ thuật kiểm thử nhằm xác định
băng thông, khả năng xử lý, khả năng mở rộng hay nói chung là hiệu năng của
hệ thống dưới khối lượng truy cập, khối được công việc xác định. Kết quả của

kiểm thử hiệu năng phục vụ việc điều tra, đo lường, đánh giá hiệu năng thực của
hệ thống
b, Mục đích
Sau đây là các mục đích chính của kiểm thử hiệu năng
-Đánh giá hiệu năng sản phẩm: Dự đốn hoặc ước tính hiệu năng thực của
sản phẩm
-Đánh giá hạ tầng triển khai: Xác định được ngưỡng của hệ thống đối với
hạ tầng triển khai hiện tại, xác định được các tài nguyên cần thiết để mở
rộng hệ thống trong tương lai
-Tìm ra các vấn đề ảnh hưởng tới hệ thống và điều chỉnh hệ thống: Từ các
kết quả có được qua các bài test và quá trình giám sát sản phẩm trong quá
trình test, tìm ra được vấn đề ảnh hưởng tới hiệu năng (Các nút cổ chai) từ
đó sửa đổi, cải thiện hiệu năng sản phẩm

c, Kịch bản kiểm thử
-Xác nhận rằng việc check về các chuyến bay chuyến bay có sẵn chỉ mất
một khoảng thời gian hợp lý.
-Xác nhận rằng trong khi đang check các chuyến bay có sẵn, điện thoại di
động hoạt động bình thường và khơng treo.
-Xác nhận hiệu suất của ứng dụng khi mạng được thay đổi thành WIFI từ
3G / 4G hoặc ngược lại.

8


-Xác nhận rằng mức tiêu thụ pin của ứng dụng trong các điều kiện sử dụng
khác nhau.
1.3.4 Kiểm thử bảo mật (Security testing)
a, Khái niệm
Kiểm thử bảo mật là một loại kiểm thử phần mềm nhằm khám phá các lỗ

hổng, mối đe dọa, rủi ro trong một ứng dụng phần mềm và ngăn chặn các
cuộc tấn công độc hại từ những kẻ xâm nhập .
b, Mục đích
Mục đích của kiểm tra bảo mật là kiểm tra tất cả các lỗ hổng và điểm yếu
có thể có của hệ thống phần mềm có thể dẫn đến việc mất thơng tin, doanh thu,
danh tiếng dưới tay của nhân viên hoặc người ngoài của Tổ chức. Và xác định
các mối đe dọa trong hệ thống, đo lường các lỗ hổng tiềm ẩn của nó, để hệ thống
khơng ngừng hoạt động hoặc bị khai thác. Nó cũng giúp phát hiện tất cả các rủi
ro bảo mật có thể có trong hệ thống và giúp các nhà phát triển khắc phục các sự
cố này thông qua mã hóa.
c, Kịch bản kiểm thử
-Chắc chắn rằng ứng dụng có hệ thống bảo vệ bằng mật khẩu mạnh và nó
khơng cho phép kẻ tấn cơng lấy, thay đổi hoặc khôi phục mật khẩu của
người dùng khác.
-Chắc chăn rằng các ứng dụng không được thực thi với các thông tin của
cùng một người dùng trên hai thiết bị di động khác nhau trong cùng một
thời điểm.
-Chắc chắn rằng một phiên làm việc tự động hết hạn, nếu nó vẫn không
hoạt động trong thời gian hơn 15 phút.
-Để tránh việc lưu trữ dữ liệu khơng an tồn trong bộ đệm bàn phím của
các ứng dụng.
1.3.5 Kiểm thử tính khả dụng (Usability testing)
a, Khái niệm

9


Kiểm thử tính khả dụng (Usability testing) là một kỹ thuật được thực hiện
trong thiết kế tương tác người dùng làm trung tâm để đánh giá một sản phẩm hay
dịch vụ bằng cách kiểm tra nó với người dùng đại diện. Rất dễ hiểu điều này khi

đưa ra một ví dụ như: Khi thực hiện kiểm thử một trang web, nếu trang web rất
khó để sử dụng thì người dùng sẽ khơng bao giờ quay lại trang đó, nếu nội dung
trang hoặc các chi tiết rất khó để đọc hoặc hiểu thì người dùng cũng sẽ rời khỏi
trang.
b, Mục đích
Mục đích của Kiểm thử tính khả dụng (Usability testing) :


Là để nhận ra bất kỳ vấn đề khả năng sử dụng, thu thập dữ liệu định tính
và định lượng và thiết lập hoàn của người tham gia với sản phẩm



Là một yếu tố quan trọng đảm bảo chất lượng. Nó là thước đo tiềm năng
của sản phẩm để thực hiện các mục tiêu của người dùng



Là một phương pháp mà theo đó người dùng sử dụng một sản phẩm nào
đó ở một chức năng nhất định để đo lường tính dễ sử dụng của sản phẩm,
thời gian công việc, và nhận thức của người dùng thông qua những trải
nghiệm



Đây là cách thức tốt nhất để tiếp cận người dùng vì tính thực tế gần gũi
với hệ thống thực của sản phẩm. Từ đó rút ra được lợi ích từ thử nghiệm
khả năng sử dụng là các trang web hoặc các ứng dụng web, tài liệu, giao
diện máy tính, sản phẩm tiêu dùng, và các thiết bị




Trong thử nghiệm khả năng sử dụng chủ yếu là thử nghiệm kiểm tra sự dễ
dàng sử dụng giao diện người dùng. Tester có thể kiểm tra các ứng dụng
thân thiện với người dùng



Kiểm tra khả năng sử dụng là một thử nghiệm thực sự về cách người dùng
sử dụng một trang web & xác định rằng cho dù người dùng có cảm giác
10


thoải mái với các ứng dụng khác hoặc những trang web theo các thông số
khác nhau như; thời gian truy cập, trình duyệt và layout, tốc độ và nội
dung
c, Kịch bản kiểm thử
-Đảm bảo rằng các nút bấm phải có kích thước đúng yêu cầu và phù hợp
với kích thước ngón tay của người sử dụng.
-Đảm bảo rằng các nút, có cùng chức năng cũng phải có cùng màu nhằm
phục vụ thói quen của người dùng.
1.3.6 Kiểm thử khả năng tương thích (Compatibility testing)
a, Khái niệm
Kiểm thử khả năng tương thích (Compatibility testing): Là loại kiểm thử để xác
định xem phần mềm có tương thích với các yếu tố khác của hệ thống hay khơng,
ví dụ: Trình duyệt, Hệ điều hành hoặc phần cứng,…
b, Mục đích
Mục đích của Compatibility testing là đánh giá xem phần mềm có hoạt động tốt
hay khơng trong một trình duyệt, Hệ điều hành, phần cứng hoặc phần mềm cụ
thể.

c, Kịch bản kiểm thử
-Xác minh rằng ứng dụng được cài đặt thành công với thiết bị có hệ điều
hành khác hay hay khơng.
-Xác minh rằng các chức năng như: tìm kiếm chuyến bay, thanh tốn,..
được thực hiện thành cơng với thiết có hệ điều hành khác hay hay không.
-Xác minh rằng giao diện của ứng dụng có phù hợp với kích thước màn
hình của thiết bị khơng, có văn bản / nút điều khiển nào bị ẩn hoặc không
thể truy cập được hay không.

11


1.3.7 Kiểm thử phục hồi (Recoverability testing)
a, Khái niệm
Kiểm thử phục hồi là khi bạn bắt buộc phần mềm của bạn thất bại để xác minh
rằng việc phục hồi từ thất bại là có thể và thực hiện đúng.
b, Mục đích
Khả năng hồi phục sau sự cố rất quan trọng đối với bất kỳ doanh nghiệp nào.
Mức độ quan trọng của doanh nghiệp hoặc sản phẩm của bạn xác định mức độ
thử nghiệm phục hồi trọng yếu.Các sản phẩm quan trọng có tính phụ thuộc cao và
khả năng phục hồi nhanh chóng và do đó các doanh nghiệp này phải đầu tư thời
gian và tiền bạc để tiến hành kiểm tra phục hồi kỹ lưỡng.
Thử nghiệm phục hồi bao gồm việc đo lường và xác định những điều sau:


Phải mất bao lâu để hệ thống của bạn tiếp tục hoạt động bình thường?



Tỷ lệ phần trăm các kịch bản mà hệ thống của bạn có thể phục hồi thành

cơng?



Hệ thống có thể phục hồi tất cả các dữ liệu bị mất?



Người dùng có thể kết nối lại thành cơng? Bằng cách trả lời những câu hỏi
này và luôn làm việc để cải thiện kết quả, công ty và sản phẩm của bạn sẽ
được chuẩn bị tốt hơn cho khi xảy ra khủng hoảng.

c, Kịch bản kiểm thử
-Xác thực tình huống và khôi phục ứng dụng hiệu quả sau các trường hợp
gián đoạn / sự cố không mong muốn.
-Xác minh cách ứng dụng xử lý giao dịch khi mất điện hoặc mất kết nối
mạng .
-Xác nhận khi kết nối bị tạm dừng, hệ thống cần thiết lập lại để khôi phục
dữ liệu bị ảnh hưởng trực tiếp bởi việc kết nối bị tạm dừng.

12


1.4 Kiểm thử Android
1.4.1 Thách thức, khó khăn khi kiểm thử
Kiểm thử viên hầu như đều gặp phải những vấn đề sau trong q trình kiểm thử
phần mềm:


Tương thích và tối ưu hoá phần mềm với hệ điều hành, thiết bị di động




Mô phỏng các kết nối như Edge, 3G, 4G hoặc WiFi,...



Các hạn chế về thiết bị di động như tiêu thụ pin và tài nguyên



Khả năng sử dụng điện thoại di động của người dùng



Các loại kích thước của thiết bị di động để chạy cùng một ứng dụng

1.4.2 Giải pháp
a. Thiết lập môi trường kiểm tra hiệu suất ứng dụng di động
Việc cài đặt và cấu hình môi trường hoạt động là vô cùng quan trọng, bạn cần có
hiểu biết nhất định về ứng dụng sẽ được kiểm thử, hệ điều hành mà ứng dụng sẽ
chạy trên.
Ngoài ra, giả lập và mô phỏng các môi trường khác hay đưa sản phẩm vào quá
trình thử nghiệm thực tế cũng sẽ giúp đẩy nhanh tiến độ và chất lượng kiểm thử.
Kết hợp với việc lựa chọn công cụ hỗ trợ đi kèm thì việc kiểm thử sẽ trở nên dễ
dàng hơn bao giờ hết.
b. Giải quyết vấn đề gây ra sự chậm trễ của ứng dụng
Có rất nhiều yếu tố gây ra sự phản hồi chậm, chạy chậm của ứng dụng di động
nhưng thường gặp nhất là do lượng RAM và Cache mà phần mềm lưu trữ vượt
ngưỡng có thể chấp nhận được. Vì vậy, việc tối ưu hố ứng dụng là rất cần thiết:

giảm tải bộ nhớ cache, xố các quy trình khơng cần thiết, …
Các cách khắc phục phổ biến:


Tối ưu hóa mã ứng dụng



Phần mềm nên được vá và cập nhật thường xuyên



Khôi phục tự động
13




Quản lý RAM hoặc trong một số trường hợp ROM trong khi sử dụng thẻ
ngồi



Xóa phân vùng bộ đệm ẩn



Xác minh ứng dụng hoạt động với các ứng dụng của bên thứ ba khác và
API




Lập bản đồ ứng dụng di động theo thiết bị

1.5 Kiểm thử Android tự động
Vì Android phân mảnh, việc kiểm thử trên vố số các thiết bị là vô cùng cần thiết.
Tuy nhiên điều này lại rất tốn kém về cả chi phí lẫn thời gian. Vì vậy, kiểm thử
tự động có thể giúp bạn tiết kiệm chi phí.
Lợi ích của kiểm thử Android tự động:


Giảm thời gian cho việc thực hiện test case



Tăng hiệu suất của các chương trình phát triển



Phát hiện bug sớm, tiết kiệm chi phí duy trì phần mềm



Nhanh chóng tìm ra và sửa bug trên thực hiện



Đảm bảo chất lượng phần mềm

2 frameworks phổ biến được sử dụng khi kiểm thử tự động: Android Testing

Framework và Robotium Testing Framework
1.5.1 Android Testing Framework
a) Android Testing Framework
Một trong những framework kiểm thử tiêu chuẩn cho ứng dụng Android
là Android Testing Framework. Đây là một framework kiểm thử mạnh mẽ và dễ
sử dụng được tích hợp tốt với các cơng cụ SDK Android.
Được mở rộng từ JUnit framework chuẩn với nhiều tính năng phù hợp với các
chiến lược kiểm thử. Những tính năng này bao gồm:


Bổ sung các lớp Android mở rộng từ JUnit framework cho phép truy cập
vào các đối tượng hệ thống trong Android
14




Instrumentation Framework (IF) cho phép kiểm soát và kiểm tra ứng
dụng. IF điều khiển ứng dụng kiểm thử và cho phép gắn các đối tượng
thay thế giả lập (Mock object) vào ứng dụng để chạy



Các đối tượng giả lập (Mock) được sử dụng phổ biến trong hệ thống
Android



Các công cụ cho phép thực hiện các kiểm thử riêng lẻ hay chạy cả một dãy
các lệnh kiểm thử mà có thể khơng cần đến IF




Hỗ trợ quản lí test và các project test trong ADT plugin của Eclipse và cả
chế độ dòng lệnh (command line) của hệ điều hành

Kiến trúc Android Testing Framework
Chú thích:
1. Application Package là ứng dụng mục tiêu của bạn cần được Kiểm thử
2. InstrumentationTestRunner là các trường hợp kiểm thử thực hiện các kịch bản
trên ứng dụng cần kiểm thử. Nó bao gồm:

15


2a) Test tool: Một công cụ SDK để xây dựng kiểm thử. Chúng được tích hợp
trong Eclipse IDE hoặc chạy dưới dạng dịng lệnh.
2b) MonkeyRunner: Một cơng cụ cung cấp API để viết chương trình điều khiển
thiết bị Android hoặc trình giả lập bên ngồi mã Android.
3. Test Package tổ chức thành các dự án kiểm thử. Tuân theo quy ước đặt
tên. Nếu ứng dụng đang được kiểm thử có tên gói là "com.mydomain.myapp" so
với kiểm thử tên là "com.mydomain.myapp.test". Gói kiểm thử bao gồm 2 đối
tượng như sau:
3a) Testcase classes: bao gồm các phương pháp Kiểm thử để thực hiện trên ứng
dụng mục tiêu.
3b) Mock objects: bao gồm dữ liệu giả sẽ được sử dụng làm đầu vào mẫu cho
các trường hợp Kiểm thử.
Ưu điểm và nhược điểm
Ưu điểm


Nhược điểm

 Dựa trên nền tảng của JUnit Test

 Thiếu ổn định trong các phần tử cấu

nên quen thuộc và dễ học
 Được phát triển cho mục đích kiểm
thử các thành phần trong ứng dụng

thành (components)
 Cộng đồng tương đối nhỏ
 Rào cản ngôn ngữ với các plugin và

nên dễ cài đặt

components (hầu hết các plugin

 Tốc độ chạy test case nhanh

được viết bằng ngôn ngữ Trung

 Hệ thống thư viện hỗ trợ phong phú

Quốc)

 Framework và công cụ được hỗ trợ
bởi Google, tương thích với tất cả
các phiên bản Android, được cập
nhật thường xuyên

b) Các lớp test case Android

16



×