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

Kiểm thử ứng dụng “ICTU social” trên nền android

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.12 MB, 105 trang )

 LỜI CẢM ƠN
Sau một thời gian tìm hiểu đề tài “Kiểm thử ứng dụng “ICTU_Social”
trên nền Android”, em đã hoàn thành tiến độ dự kiến. Để đạt được kết quả này,
em đã nỗ lực thực hiện và đồng thời cũng nhận được rất nhiều sự giúp đỡ, quan
tâm, ủng hộ của các thầy cô bạn bè gia đình và đặc biệt là các anh chị tại cơ sở
thực tập – Trung tâm nghiên cứu và phát triển ứng dụng di động (RDCMA).
Em xin chân thành cảm ơn giáo viên hướng dẫn: Ths.Nguyễn Thu Phương–
Bộ môn Công nghệ phần mềm – Trường Đại học Công nghệ thông tin và truyền thông
– Đại học Thái Nguyên đã tận tình giúp đỡ em hoàn thành đồ án này.
Em xin chân thành cảm ơn các thầy cô và ban lãnh đạo trường Đại học Công
nghệ thông tin và truyền thông – Đại học Thái Nguyên đã nhiệt tình giảng dạy và
truyền đạt kiến thức quý báu và bổ ích trong suốt quá trình em học tập tại trường.
Em xin chân thành cảm ơn các thầy, cô giáo viên thuộc bộ môn Công nghệ
phần mềm đã trang bị cho em những kiến thức chuyên ngành rất hữu ích để em
hoàn thành đề tài và phục vụ cho công việc của em sau này.
Vì thời gian có hạn nên không thể tránh khỏi những thiếu sót, em rất mong
nhận được sự đóng góp ý kiến từ thầy cô và các bạn.
Em xin chân thành cảm ơn!

1


 LỜI CAM ĐOAN
Tôi: Đỗ Thị Ánh Hồng xin cam đoan:
 Những nội dung trong đồ án này hoàn toàn là do tôi thực dưới sự hướng
dẫn trực tiếp của giáo viên hướng dẫn: Ths.Nguyễn Thu Phương.
 Đồ án được thực hiện hoàn toàn mới, là thành quả của riêng tôi, không
sao chép theo bất cứ đồ án tương tự nào.
 Mọi sự tham khảo sử dụng trong đồ án đều được trích dẫn các nguồn tài
liệu trong báo cáo và danh mục tài liệu tham khảo.
 Mọi sao chép không hợp lệ, vi phạm quy chế của nhà trường, tôi xin


hoàn toàn chịu trách nhiệm.
Thái Nguyên, ngày 31 tháng 5 năm 2016
Sinh viên
Đỗ Thị Ánh Hồng

2


MỤC LỤC
LỜI CẢM ƠN

1

LỜI CAM ĐOAN 2
MỤC LỤC

3

DANH MỤC HÌNH ẢNH 5
DANH MỤC HÌNH BẢNG
LỜI MỞ ĐẦU

7

8

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT

10


1.1 Các khái niệm cơ bản về kiểm thử phần mềm
1.1.1 Kiểm thử phần mềm là gì?

10

1.1.2 Các phương pháp kiểm thử

10

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

11

1.1.4 Các cấp độ kiểm thử phần mềm

10

13

1.2 Tổng quan về thiết bị di động và các nền tảng di động hiện nay15
1.2.1 Tổng quan về thiết bị di động 15
1.2.2 Ứng dụng trên các thiết bị di động (Mobile application)
1.2.3 API

18

19

1.3 Phương pháp kiểm thử ứng dụng “ICTU_Social”20
1.3.1 Lựa chọn phương pháp kiểm thử


20

1.3.2 Các phương pháp kiểm thử thủ công dùng trong quá trình kiểm thử ứng
dụng “ICTU_Social” 22
CHƯƠNG 2 QUY TRÌNH KIỂM THỬ ỨNG DỤNG TRÊN MOBILE
2.1 Xác định chiến lược kiểm thử

26

2.2 Lập kế hoạch kiểm thử(Test Plan) 29
2.3 Thiết kế kịch bản kiểm thử (Test Case)
2.4 Thực thi test case

37

2.5 Phân tích kết quả kiểm thử 37
2.6 Tổng hợp báo cáo

38
3

34

26


CHƯƠNG 3 KIỂM THỬ ỨNG DỤNG “ICTU_Social”
3.1 Đặc tả hệ thống


40

3.2 Thiết kế Testplan cho dự án 47
3.3 Thiết kế Testcase và kết quả thực hiện Testcase. 52
3.3.1 Testcase chung cho ứng dụng 52
3.3.2 Testcase kiểm tra giao diện

54

3.3.3 Testcase cho chức năng 55
3.3.4 Testcase kiểm thử hiệu suất và chịu tải
3.3.5 Testcase kiểm thử tương thích 62
3.3.6 Testcase kiểm tra gián đoạn

62

3.4 Phân tích kết quả kiểm thử 64
3.5 Tổng hợp báo cáo

64

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN65
TÀI LIỆU THAM KHẢO 66

4

61

40



 DANH MỤC HÌNH ẢNH
Hình 1.1 Sơ đồ các cấp độ kiểm thử

13

Hình 1.2 Số lượng người sử dụng Smartphone ở Việt Nam
Hình 1.3 Tỷ lệ người sử dụng mạng xã hội.
Hình 2.1 Đặc điểm thiết bị kiểm thử

16

17

31

Hình 2.2 Cập nhật phiên bản mới 34
Hình 3.1 Giao diện Ứng dụng “ITCU_Social” trên màn hình điện thoại.

40

Hình 3.2 Giao diện Ứng dụng “ITCU_Social” trên màn hình Tablet. 41
Hình 3.3 Giao diện Ứng dụng “ITCU_Social” xoay ngang trên màn hình điện thoại
41
Hình 3.4 Các chức năng chính của ứng dụng
Hình 3.5 Đăng nhập vào ứng dụng.

42

43


Hình 3.6 Giao diện chức năng Tin nhắn 44
Hình 3.7 Chức năng Vote/ Bình luận/ Xem chi tiết bài viết
Hình 3. 8 Chức năng trong Friends

45

46

Hình 3.9 Giao diện trang cá nhân 47
Hình 3.10 Testcase chung cho ứng dụng 1

52

Hình 3.11 Kết quả thực hiện testcase(Chức năng Zoom không hoạt động)
Hình 3.12 Testcase chung cho ứng dụng 2.
Hình 3.13 Testcase kiểm tra giao diện

54

Hình 3.14 Kết quả thực hiện testcase

54

53

53

Hình 3.15 Testcase cho chức năng Đăng nhập. 55
Hình 3.16 Các trường hợp lỗi khi thực hiện chức năng Login. 55

Hình 3.17 Testcase cho chức năng Đăng bài viết/Status.

56

Hình 3.18 Kết quả thực hiện kiểm thử chức năng Sent 56
Hình 3.19 Testcase cho chức năng Vote, Bình luận, Điều hướng đến Friend.57
Hình 3.20 Kết quả thực hiện testcase cho chức năng Vote(Hiệu ứng vote). 57
5


Hình 3.21 Kết quả thực hiện testcase cho chức năng Bình luận.

58

Hình 3.22 Kết quả thực hiện testcase cho chức năng Điều hướng đến Friend.
59
Hình 3.23 Testcase cho chức năng trên Trang cá nhân. 60
Hình 3.24 Kết quả thực hiện testcase cho chức năng điều hướng đến trang cá nhân.
60
Hình 3.25 Testcase kiểm thử hiệu suất và chịu tải

61

Hình 3.26 Kết quả chạy testcase kiểm thử hiệu suất và chịu tải(3 người dùng)
61
Hình 3.27 Testcase kiểm thử tương thích 62
Hình 3.28 Gián đoạn bởi tin nhắn/Camera/Media

62


Hình 3.29 Gián đoạn bởi yêu cầu bộ nhớ và Pin 63
Hình 3.30 Gián đoạn bởi SIM/Ngày giờ/Email/Trò chơi

63

Hình 3.31 Gián đoạn bởi Kết nối mạng/Thông báo/Bluetooth 64

6


 DANH MỤC HÌNH BẢNG

Bảng 1.1 So sánh ưu – nhược điểm của các phương pháp
Bảng 1.2 Sơ đồ các cấp độ kiểm thử

23

Bảng 2.1 Thiết kế kịch bản kiểm thử

35

Bảng 3.1 Nhật ký thay đổi 47
Bảng 3.2 Kiểm thử giao diện

49

Bảng 3.3 Kiểm thử chức năng

50


Bảng 3.4 Nhân sự

51

Bảng 3.5 Thời gian kiểm thử

51

7

21


LỜI MỞ ĐẦU
Ngày nay ngành công nghiệp phần mềm hiện nay đang đạt được những
thành tựu đáng kể tuy vẫn còn nhiều khó khăn và thách thức. Một trong khó khăn
hàng đầu luôn được đề cập đến là vấn đề thiếu hụt nguồn nhân lực cả về lượng lẫn
về chất, trong đó đáng kể nhất là sự thiếu hụt đội ngũ chuyên viên kiểm thử phần
mềm chuyên nghiệp.
Chất lượng của phần mềm rất quan trọng. Kiểm thử là một thành phần
chính của phát triển phần mềm để đảm bảo độ tin cậy và chất lượng của phần
mềm. Muốn tạo ra ứng dụng có hiệu năng cao, đáng tin cậy thì sau bước xây dựng,
cần phải kiểm thử ứng dụng đó một cách tỉ mỉ, cẩn thận và chặt chẽ. Cũng như các
ngành sản xuất khác quy trình là một trong những yếu tố cực kỳ quan trọng đem lại
sự thành công cho các nhà sản xuất phần mềm, nó giúp cho mọi thành viên trong
dự án có thể làm việc hiệu quả hơn từ đó chất lượng sản phẩm phần mềm làm ra sẽ
tốt hơn.
Hiện nay rất nhiều ứng dụng được xây dựng trên nền tảng Android. Android
là một nền tảng phần mềm dựa trên mã nguồn mở Linux OS (Kernel 2.6) cho máy
di động, máy tính bảng và những phần mềm trung gian(middleware). Nó không

đơn thuần là một hệ điều hành, một công cụ lập trình hay một phần mềm trung
gian mà nó gồm tất cả. Ứng dụng mạng xã hội hay còn gọi là Facebook(ứng dụng
Facebook chạy trên rất nhiều hệ điều hành trong đó có hệ điều hành Android) vẫn
đang là mạng xã hội lớn nhất hiện nay với hơn 1,15 tỉ người dùng. Mạng xã hội là
sự kết hợp giữa các bài tự đăng và chia sẻ nội dung. Không chỉ những người trẻ
tuổi mới sử dụng mạng xã hội, mà công cụ này hiện đã mang tính toàn cầu và được
gắn với mọi ngõ ngách của Internet, thậm chí trở thành tài sản kĩ thuật số đối với
nhiều cá nhân, doanh nghiệp. Nhiều doanh nghiệp đang nỗ lực không ngừng trong
việc xây dựng mạng lưới những người theo dõi họ trên mạng xã hội, đồng thời tạo
ra một diễn đàn riêng, tự phát triển các kênh marketing và mạng lưới phân phối nội
8


dung của riêng mình.
Để kiểm thử hiệu quả các ứng dụng trên điện thoại, kiểm thử viên cần có kỹ
năng sau: Kỹ năng tốt về kiểm thử phần mềm, hiểu biết về ứng dụng, kiến thức về
công nghệ trên thiết bị di động, hiểu biết về các kỹ thuật kiểm thử, hiểu biết về các
loại lỗi đặc trưng và kiến thức về một số công cụ và khả năng áp dụng của chúng.
Chính vì vậy em đã chọn đề tài “Kiểm thử ứng dụng “ICTU_Social” trên nền
Android” với mục đích nghiên cứu, tìm hiểu về kiểm thử, quy trình kiểm thử ứng
dụng trên mobile và tiến hành kiểm thử ứng dụng trên mobile để có thể đảm bảo
phần mềm đáp ứng nhu cầu người dùng, phần mềm chạy đúng chức năng.
 Mục tiêu nghiên cứu
Mục tiêu của nghiên cứu trong quá trình thực tập như sau:
 Tìm hiểu về kiểm thử phần mềm và các quy trình kiểm thử phần mềm.
 Quy trình kiểm thử ứng dụng trên mobile.
 Kĩ thuật xây dựng Testplan và Testcase
 Kĩ thuật kiểm thử ứng dụng trên nền Android.
 Phương pháp nghiên cứu
 Phương pháp nghiên cứu kết hợp các phương pháp tổng hợp, thống kê,

phân tích và tham khảo một vài ý kiến của các thầy cô hướng dẫn cũng như doanh
nghiệp hướng dẫn…
 Phương pháp nghiên cứu lý thuyết: đọc tài liệu, phân tích và tổng hợp
tài liệu nghiên cứu.
 Tham khảo tài nguyên trên internet dưới sự chỉ dẫn của giáo viên hương
dẫn.
 Phạm vi nghiên cứu: Trong thời gian rất có hạn, đề tài chỉ giới hạn
nghiên cứu trong phạm vi có thể:
 Tìm hiểu kiểm thử phần mềm và các quy trình kiểm thử phần mềm.
 Quy trình kiểm thử ứng dụng trên mobile.
9


 Tiến hành xây dựng Testplan và Testcase.
 Tiến hành kiểm thử ứng dụng Android dựa trên Testplan và Testcase.

10


 CHƯƠNG 1
 CƠ SỞ LÝ THUYẾT
 Các khái niệm cơ bản về kiểm thử phần mềm
 Kiểm thử phần mềm là gì?
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 đó (Theo Bảng chú giải thuật ngữ chuẩn
IEEE của Thuật ngữ kỹ nghệ phần mềm- IEEE Standard Glossary of Software
Engineering Terminology).
Kiểm thử phần mềm là quá trình thực thi một chương trình với mục đích
tìm lỗi (Theo “The Art of Software Testing” – Nghệ thuật kiểm thử phần mềm).

Kiểm thử phần mềm là hoạt động 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 của kiểm thử phần mềm là tìm ra các 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
trong nhiều ngành khác nhau (Theo Bách khoa toàn thư mở Wikipedia).
Có thể định nghĩa một cách dễ hiểu như sau: Kiểm thử phần mềm là một
tiến trình hay một tập hợp các tiến trình được thiết kế để đảm bảo mã hóa máy tính
thực hiện theo cái mà chúng đã được thiết kế để làm, và không thực hiện bất cứ
thứ gì không mong muốn. Đây là một pha quan trọng trong quá trình phát triển hệ
thống, giúp cho người xây dựng hệ thống và khách hàng thấy được hệ thống mới
đã đáp ứng yêu cầu đặt ra hay chưa.
 Các phương pháp kiểm thử
Có 2 phương pháp kiểm thử chính là: Kiểm thử tĩnh và Kiểm thử động.
 Kiểm thử tĩnh – Static testing

11


Là phương pháp thử phần mềm đòi hỏi phải duyệt lại các yêu cầu và các
đặc tả bằng tay, thông qua việc sử dụng giấy, bút để kiểm tra logic, lần từng chi tiết
mà không cần chạy chương trình. Kiểu kiểm thử này thường được sử dụng bởi
chuyên viên thiết kế người mà viết mã lệnh một mình.

12


 Kiểm thử động – Dynamic testing
Kiểm thử động kiểm tra cách thức hoạt động động của mã lệnh, tức là kiểm
tra sự phản ứng vật lý từ hệ thống tới các biến luôn thay đổi theo thời gian. Trong

kiểm thử động, phần mềm phải thực sự được biên dịch và chạy. Kiểm thử động
thực sự bao gồm làm việc với phần mềm, nhập các giá trị đầu vào và kiểm tra xem
liệu đầu ra có như mong muốn hay không. Các phương pháp kiểm thử động gồm
có kiểm thử Unit – Unit Tests, Kiểm thử tích hợp – Intergration Tests, Kiểm thử
hệ thống – System Tests, và Kiểm thử chấp nhận sản phẩm – Acceptance Tests.
 Các chiến lược kiểm thử
Ba trong số những chiến lược kiểm thử thông dụng nhất bao gồm:
Kiểm thử hộp đen, Kiểm thử hộp trắng và Kiểm thử hộp xám.

 Kiểm thử hộp đen – Black box testing
Một trong những chiến lược kiểm thử quan trọng là kiểm thử hộp
đen, hướng dữ liệu, hay hướng vào/ra. Kiểm thử hộp đen xem chương
trình như là một “hộp đen”. Mục đích của bạn là hoàn toàn không quan
tâm về cách cư xử và cấu trúc bên trong của chương trình. Thay vào đó,
tập trung vào tìm các trường hợp mà chương trình không thực hiện theo
các đặc tả của nó.
Theo hướng tiếp cận này, dữ liệu kiểm tra được lấy chỉ từ các đặc
tả.
 Các phương pháp kiểm thử hộp đen

 Phân lớp tương đương – Equivalence partitioning.
 Phân tích giá trị biên – Boundary value analysis.
 Kiểm thử mọi cặp – All-pairs testing.
 Kiểm thử fuzz – Fuzz testing.
 Kiểm thử dựa trên mô hình – Model-based testing.
13


 Ma trận dấu vết – Traceability matrix.
 Kiểm thử thăm dò – Exploratory testing.

 Kiểm thử dựa trên đặc tả – Specification-base testing.
Kiểm thử dựa trên đặc tả tập trung vào kiểm tra tính thiết thực của
phần mềm theo những yêu cầu thích hợp. Do đó, kiểm thử viên nhập dữ
liệu vào, và chỉ thấy dữ liệu ra từ đối tượng kiểm thử. Mức kiểm thử này
thường yêu cầu các ca kiểm thử triệt để được cung cấp cho kiểm thử viên
mà khi đó có thể xác minh là đối với dữ liệu đầu vào đã cho, giá trị đầu ra
(hay cách thức hoạt động) có giống với giá trị mong muốn đã được xác
định trong ca kiểm thử đó hay không. Kiểm thử dựa trên đặc tả là cần
thiết, nhưng không đủ để để ngăn chặn những rủi ro chắc chắn.
 Ưu, nhược điểm
Kiểm thử hộp đen không có mối liên quan nào tới mã lệnh, và kiểm
thử viên chỉ rất đơn giản tâm niệm là: một mã lệnh phải có lỗi. Sử dụng
nguyên tắc “ Hãy đòi hỏi và bạn sẽ được nhận”, những kiểm thử viên hộp
đen tìm ra lỗi mà những lập trình viên đã không tìm ra. Nhưng, mặt khác,
người ta cũng nói kiểm thử hộp đen “giống như là đi trong bóng tối mà
không có đèn vậy”, bởi vì kiểm thử viên không biết các phần mềm được
kiểm tra thực sự được xây dựng như thế nào. Đó là lý do mà có nhiều
trường hợp mà một kiểm thử viên hộp đen viết rất nhiều ca kiểm thử để
kiểm tra một thứ gì đó mà đáng lẽ có thể chỉ cần kiểm tra bằng 1 ca kiểm
thử duy nhất, và/hoặc một số phần của chương trình không được kiểm tra
chút nào.
Do vậy, kiểm thử hộp đen có ưu điểm của “một sự đánh giá khách
quan”, mặt khác nó lại có nhược điểm của “thăm dò mù”.

 Kiểm thử hộp trắng – White box testing
Là một chiến lược kiểm thử khác, trái ngược hoàn toàn với kiểm thử hộp
đen, kiểm thử hộp trắng hay kiểm thử hướng logic cho phép bạn khảo sát cấu trúc
14



bên trong của chương trình. Chiến lược này xuất phát từ dữ liệu kiểm thử bằng sự
kiểm thử tính logic của chương trình. Kiểm thử viên sẽ truy cập vào cấu trúc dữ
liệu và giải thuật bên trong chương trình (và cả mã lệnh thực hiện chúng).
 Các phương pháp kiểm thử hộp trắng
 Kiểm thử giao diện lập trình ứng dụng – API testing (application
programming interface): là phương pháp kiểm thử của ứng dụng sử dụng các API
công khai và riêng tư.

 Bao phủ mã lệnh – Code coverage: tạo các kiểm tra để đáp ứng một số
tiêu chuẩn về bao phủ mã lệnh.

 Các phương pháp gán lỗi – Fault injection.
 Các phương pháp kiểm thử hoán chuyển – Mutation testing methods.
 Kiểm thử tĩnh–Static testing: kiểm thử hộp trắng bao gồm mọi kiểm thử tĩnh.
Phương pháp kiểm thử hộp trắng cũng có thể được sử dụng để đánh giá sự
hoàn thành của một bộ kiểm thử mà được tạo cùng với các phương pháp kiểm thử
hộp đen. Điều này cho phép các nhóm phần mềm khảo sát các phần của 1 hệ thống
ít khi được kiểm tra và đảm bảo rằng những điểm chức năng quan trọng nhất đã
được kiểm tra.

 Kiểm thử hộp xám – Gray box testing
Kiểm thử hộp xám đòi hỏi phải có sự truy cập tới cấu trúc dữ liệu và giải
thuật bên trong cho những mục đích thiết kế các ca kiểm thử, nhưng là kiểm thử ở
mức người sử dụng hay mức hộp đen. Việc thao tác tới dữ liệu đầu vào và định
dạng dữ liệu đầu ra là không rõ ràng, giống như một chiếc “hộp xám”, bởi vì đầu
vào và đầu ra rõ ràng là ở bên ngoài “hộp đen” mà chúng ta vẫn gọi về hệ thống
được kiểm tra. Sự khác biệt này đặc biệt quan trọng khi quản lý kiểm thử tích hợp
– Intergartion testing giữa 2 modun mã lệnh được viết bởi hai chuyên viên thiết kế
khác nhau, trong đó chỉ giao diện là được đưa ra để kiểm thử. Kiểm thử hộp xám
có thể cũng bao gồm cả thiết kế đối chiếu để quyết định, ví dụ, giá trị biên hay


15


thông báo lỗi.
 Các cấp độ kiểm thử phần mềm
Kiểm thử phần mềm gồm có các cấp độ: Kiểm thử đơn vị, Kiểm thử tích
hợp, Kiểm thử hệ thống và Kiểm thử chấp nhận sản phẩm.

Hình 1.1 Sơ đồ các cấp độ kiểm thử

 Kiểm thử đơn vị – Unit test
Một đơn vị 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) hay phương
thức (Method) đều có thể được xem là Unit.
 Kiểm thử tích hợp – Intergration Test
Integration test 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 Unit Test kiểm tra các thành phần và Unit
riêng lẻ thì Intgration Test kết hợp chúng lại với nhau và kiểm tra sự giao tiếp giữa
chúng.
16


Có 4 loại kiểm thử trong Integration Test:
 Kiểm thử cấu trúc (Structure Test): Tương tự White Box Test, kiểm thử
cấu trúc 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.
 Kiểm thử chức năng (Functional Test): Tương tự Black Box Test, kiểm
thử chức năng chỉ chú trọng đến chức năng của chương trình, mà không quan tâm
đến cấu trúc bên trong.
 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.
 Kiểm thử hệ thống – System Test
Mục đích System Test là kiểm thử 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.
System Test lại gồm nhiều loại kiểm thử khác nhau, phổ biến nhất gồm:
 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ử hiệu năng (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 kiểm tra thiết bị
như POS, ATM…)…

 Kiểm thử cấu hình (Configuration Test).
 Kiểm thử 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ả
17


năng khôi phục trạng thái ổn định trước đó trong tình huống mất tài 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…

 Kiểm thử chấp nhận sản phẩm – Acceptance Test
Thông thường, sau giai đoạn System Test là Acceptance Test, được khách

hàng thực hiện (hoặc ủy quyền cho một nhóm thứ ba thực hiện). Mục đích của
Acceptance Test là để chứng minh phần mềm thỏa mãn tất cả yêu cầu của khách
hàng và khách hàng chấp nhận sản phẩm (và trả tiền thanh toán hợp đồng). Với
Alpha Test, người dùng kiểm thử phần mềm ngay tại nơi phát triển phần mềm, lập
trình viên sẽ ghi nhận các lỗi hoặc phản hồi, và lên kế hoạch sửa chữa.Với Beta
Test, phần mềm sẽ được gửi tới cho người dùng để kiểm thử ngay trong môi
trường thực, lỗi hoặc phản hồi cũng sẽ gửi ngược lại cho lập trình viên sửa chữa.
Nguyên tắc kiểm thử phần mềm
 Tổng quan về thiết bị di động và các nền tảng di động hiện nay
 Tổng quan về thiết bị di động
 Định nghĩa:
Một thiết bị di động là một thiết bị máy tính kích thước nhỏ bỏ túi, điển
hình là với màn hình hiển thị với các phím cảm ứng hoặc các bàn phím nhỏ
 Các nền tảng di động hiện nay (Mobile Platform)
Có rất nhiều các hệ điều hành dành cho di động hiện nay trên thị trường như
Android, iOS, Blackberry, J2ME, Symbian, Palm, Windows phone, Samsung
Bada, Nokia Meego… Kiến thức về các hệ điều hành cho di động thực sự rất quan
trọng để trở thành 1 kỹ sư kiểm thử di động giỏi. Những hiểu biết về khả năng và
hạn chế của từng hệ điều hành sẽ cho người kiểm thử viên sự tự tin để phân biệt
được đâu là lỗi ứng dụng và đâu là giới hạn của hệ điều hành.
Hiện nay trên thị trường thịnh hành các thiết bị di động sử dụng các hệ điều
hành như hình dưới đây:
 iOS (Iphone, Ipad)
18


 Android (SamSung, Sony, HTC…)
 WindowPhone (Nokia, HTC)
 BlackBerry (BlackBerry)
 Khảo sát số lượng người sử dụng Smartphone

 Từ những số liệu của công ty Appota liên quan tới lĩnh vực di động tại
Việt Nam, hiện nay nước ta đang có khoảng 22 triệu người sử dụng smartphone tức
là cứ 4 người Việt lại có 1 người sử dụng điện thoại thông minh.
 Cũng theo thống kê này, trong gần 200 triệu lượt tải ứng dụng năm
2014, có gần 60% ứng dụng tải từ iOS còn lại là Android.

19


20


Hình 1.2 Số lượng người sử dụng Smartphone ở Việt Nam
 Mục đích sử dụng Smartphone
 Người dùng smartphone thường tìm kiếm tin tức, xem video, tải ứng
dụng hay vào các mạng xã hội và số lượng này đang ngày 1 tăng cao.
 Theo số liệu về đối tượng và lãnh thổ địa lí của mạng xã hội do Search
Engine Journal thống kê cho thấy, có 72% số người sử dụng Internet hiện nay đang
hoạt động trên các mạng xã hội, 71% người dùng truy cập mạng xã hội từ thiết bị
di động. Trong đó, tỉ lệ người sử dụng mạng xã hội trong độ tuổi 18-29 đạt tới
89%, trong khi đó độ tuổi 30-49 chỉ là 72%; 60% những người trong độ tuổi từ 50
đến 60 đang hoạt động trên các mạng xã hội, còn nhóm người ở độ tuổi trên 65 chỉ
là 43%.
 Theo thống kê, hiện có 23% người dùng Facebook đăng nhập ít nhất 5
lần mỗi ngày, thời gian dành cho Facebook trong mỗi giờ vào mạng tùy thuộc vào
từng quốc gia (top 3 sử dụng nhiều nhất hiện nay đang là Mỹ với 16 phút,
Australia 14 phút và Anh là 13 phút).
 Cũng theo thống kê số lượng người sử dụng smartphone truy cập mạng
xã hội đạt 62%(2015). Đây là con số ấn tượng về sự phát triển vượt bậc và nhanh
chóng của mạng xã hội Facebook đồng thời khẳng định vị trí dẫn đầu trong số các

mạng xã hội hiện nay.

21


Hình 1.3 Tỷ lệ người sử dụng mạng xã hội.

22


 Ứng dụng trên các thiết bị di động (Mobile application)
Một phần mềm ứng dụng trên thiết bị di động, còn được gọi tắt là ứng dụng
di động, hoặc ứng dụng, (tiếng Anh: Mobile app hoặc app) là phần mềm ứng
dụng được thiết kế để chạy trên điện thoại thông minh, máy tính bảng và các thiết
bị di động khác.
Các ứng dụng thường có sẵn thông qua các nền tảng phân phối ứng dụng,
bắt đầu xuất hiện vào năm 2008 và thường được điều hành bởi các chủ sở hữu
của hệ điều hành di động, như Apple App Store, Google Play, Windows Phone
Store, và BlackBerry App World. Một số ứng dụng miễn phí, trong khi một số ứng
dụng phải được mua.
Thuật ngữ "ứng dụng" là một rút ngắn của thuật ngữ "phần mềm ứng dụng".
Trong tiếng Anh, thường được viết là app và đã trở thành rất phổ biến và trong
năm 2010 đã được liệt kê như là " từ ngữ của năm" do Hiệp hội American Dialect
Society chọn lọc.
Ứng dụng di động ban đầu được cung cấp với mục đích thông tin tổng quát
và các dịch vụ thông dụng trên mạng toàn cầu, bao gồm email, lịch, danh bạ, và thị
trường chứng khoán và thông tin thời tiết. Tuy nhiên, nhu cầu chung của những
người sử dụng thiết bị di động và khả năng phát triển của các nhà lập trình đã mở
rộng thành các loại khác, chẳng hạn như trò chơi di động, tự động hóa nhà
máy, GPSvà các dịch vụ dựa trên địa điểm, định vị và ngân hàng, để theo dõi, mua

vé và các ứng dụng y tế di động gần đây. Sự bùng nổ về số lượng và sự đa dạng
của các ứng dụng đã tạo ra 1 tiềm năng và thị trường lớn.
Sự phổ biến của các ứng dụng di động đã tiếp tục tăng. Theo công ty nghiên
cứu thị trường Gartner, 102 tỷ ứng dụng sẽ được tải về trong năm 2013 (91% trong
số đó là miễn phí) nhưng chúng vẫn sẽ tạo ra 26 tỷ USD, tăng 44,4% so với 18 tỷ
USD vào năm 2012. Báo cáo phân tích ước tính rằng nền kinh doanh ứng dụng
tạo ra doanh thu hơn 10 tỷ cho mỗi năm trong Liên minh châu Âu, trong khi hơn
23


529.000 công ăn việc làm đã được tạo ra trong 28 quốc gia EU do sự tăng trưởng
của thị trường ứng dụng.

24


Các dạng ứng dụng trên thiết bị di động bao gồm:
 Native Application: Các ứng dụng này được phát triển cho một nền tảng
cụ thể và được cài trên thiết bị. Native App, được hiểu nôm na là ứng dụng gốc,
hay ứng dụng được viết cho các thiết bị di động, chạy trên từng nền tảng (iOS,
Android, RIM-OS, QNX…) khác nhau và tất nhiên là trên các thiết bị khác nhau
để thực hiện một chức năng cụ thể như: danh bạ, lịch, phần mềm nghe nhạc, xem
video trên điện thoại/tablet… và đa số các trò chơi trên thiết bị di động đều là ứng
dụng gốc. Ví dụ cụ thể: Một game Angry bird bạn download trên AppStore tức là
chúng phải chỉ chạy trên IOS, nếu bạn cài đặt trên HĐH khác thì nó không thể hiểu
được.
 Web Based Applications: Các ứng dụng được truy cập thông qua trình
duyệt của thiết bị.
 Hybrid Application: Là loại ứng dụng kết hợp các yếu tố của cả Native
app và Web app như: .

 API
 API là gì?
API (Application Programming Interface) - Giao diện lập trình ứng dụng.
API là lớp chuyên xử lý các thao tác người dùng, nhận yêu cầu từ người dùng, xử
lý và trả về dữ liệu cho Database sau đó lại lấy dữ liệu từ Database gửi ngược lại
người dùng ở tầng giao diện.
 Phương thức: API gồm nhiều phương thức nhưng chủ yếu là dùng 2
phương thức POST và GET:
 POST: Đẩy dữ liệu lên Server.
 GET: Nhận dữ liệu từ Server và hiển thị.
API phải xác nhận dữ liệu trước khi xử lý trong khi dữ liệu hợp lệ đã được
xác nhận ở hầu hết tầng giao diện vì ở tầng giao diện người dùng, thường
25


×