Tải bản đầy đủ (.docx) (92 trang)

Đồ án tốt nghiệp NGHIÊN CỨU CÔNG CỤ KIỂM THỬ HIỆU NĂNG JMETER VÀ ỨNG DỤNG KIỂM THỬ HIỆU NĂNG WEBSITE

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 (3.73 MB, 92 trang )

ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN
----------

NGHIÊN CỨU CÔNG CỤ KIỂM THỬ
HIỆU NĂNG JMETER VÀ ỨNG DỤNG
KIỂM THỬ HIỆU NĂNG WEBSITE

Hà Nội, tháng 05 năm 2018


ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN
----------

HOÀNG THỊ NGỌC DIỄM

NGHIÊN CỨU CÔNG CỤ KIỂM THỬ
HIỆU NĂNG JMETER VÀ ỨNG DỤNG
KIỂM THỬ HIỆU NĂNG WEBSITE
Chuyên ngành : Công nghệ thông tin
Mã ngành

: D480201

Giảng viên hướng dẫn: Ths. Phí Thị Hải Yến

Hà Nội, tháng 05 năm 2018


LỜI CAM ĐOAN
Những nội dung trong đồ án tốt nghiệp này là thành quả từ sự nghiên cứu, tìm
hiểu của bản thân em và được thực hiện dưới sự trực tiếp hướng dẫn của giảng viên
hướng dẫn ThS. Phí Thị Hải Yến.


Đồ án được thực hiện hoàn toàn mới, là thành quả của riêng em, 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, em xin hoàn
toàn chịu trách nhiệm.
Sinh viên thực hiện
Hoàng Thị Ngọc Diễm


LỜI CẢM ƠN
Để hoàn thành được đề tài đồ án tốt nghiệp này, trước hết em xin gửi lời cảm
ơn chân thành nhất đến các Cán bộ Giảng viên Khoa Công nghệ Thông tin, các cán
bộ giảng viên trong Trường Đại học Tài nguyên Môi trường Hà Nội đã tận tình
giảng dạy và truyền đạt kiến thức cho em. Đồng thời em xin gửi lời cảm ơn đặc biệt
về sự chỉ dạy, hướng dẫn tận tình của ThS. Phí Thị Hải Yến đã luôn tận tình hướng
dẫn, giúp đỡ em trong suốt thời gian thực hiện đồ án.
Em cũng xin gửi lời cảm ơn tới Khoa Công nghệ Thông tin – Trường Đại Học
Tài nguyên Môi trường Hà Nội đã luôn quan tâm và tạo điều kiện giúp em hoàn
thành đề tài đồ án tốt nghiệp này.
Em xin cảm ơn những anh chị và bạn bè đã giúp đỡ, trao đổi thêm nhiều thông
tin về đề tài trong quá trình em thực hiện đề tài này.
Cuối cùng em vô cùng biết ơn gia đình và bạn bè, những người đã luôn luôn ở
bên cạnh em, động viên, chia sẻ với em trong suốt thời gian thực đề tài đồ án tốt
nghiệp “Nghiên cứu công cụ kiểm thử hiệu năng Jmeter và ứng dụng kiểm thử

hiệu năng Website ”.
Do kiến thức còn hạn chế, bài báo cáo của em không tránh khỏi những sai sót.
Rất mong nhận được những lời góp ý từ quý Thầy cô để đồ án tốt nghiệp của em
được hoàn thiện và giúp em có thêm những kinh nghiệm quý báu.
Cuối cùng, em xin kính chúc các thầy cô giảng viên trường Đại học Tài
nguyên và Môi trường Hà Nội nói chung, các thầy cô khoa Công nghệ thông tin nói
riêng luôn luôn dồi dào sức khỏe và thành công trong sự nghiệp giảng dạy cao quý.
Hà Nội, tháng 05 năm 2018
Sinh viên thực hiện
Hoàng Thị Ngọc Diễm


MỤC LỤC

CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM................................4
1.1. Khái niệm.....................................................................................................4
1.2. Các kỹ thuật cơ bản của kiểm thử phần mềm...............................................4
1.2.1.

Kiểm thử hộp đen (Black Box Testing – BBT)....................................4

1.2.2.

Kiểm thử hộp trắng (White Box Testing – WBT)..............................10

1.2.3.

Kiểm thử hộp xám (Gray Box Testing – GBT)..................................11

1.3. Quy trình kiểm thử phần mềm....................................................................11

1.4. Các giai đoạn hay mức độ kiểm thử phần mềm..........................................13
1.4.1.

Kiểm thử đơn vị (Unit test)...............................................................13

1.4.2.

Kiểm thử tích hợp (Intergration Test)...............................................13

1.4.3.

Kiểm thử hệ thống (System Test)......................................................14

1.4.4.

Kiểm thử hồi quy (Regression Test)..................................................14

1.4.5.

Kiểm thử chấp nhận (Acceptance Test)............................................15

1.5. Kiểm thử tự động (Automate Testing)........................................................16
1.5.1.

Tổng quan về kiểm thử tự động........................................................16

1.5.2.

Quy trình kiểm thử tự động..............................................................17


1.5.3.

Ưu nhược điểm của kiểm thử tự động..............................................21

1.6. Kiểm thử hiệu năng....................................................................................22
1.6.1.

Định nghĩa kiểm thử hiệu năng........................................................22

1.6.2.

Các yếu tố ảnh hưởng đến kiểm thử hiệu năng................................22

1.6.3.

Các giai đoạn kiểm thử hiệu năng....................................................23

1.7. Kiểm thử ứng dụng web.............................................................................25
1.7.1.

Giới thiệu về kiểm thử ứng dụng web...............................................25

1.7.2.

Phương pháp kiểm thử ứng dụng web..............................................25


CHƯƠNG 2: CÔNG CỤ KIỂM THỬ HIỆU NĂNG JMETER........................30
2.1. Giới thiệu...................................................................................................30
2.2. Ưu điểm và nhược điểm của Jmeter...........................................................30

2.3. Tải ứng dụng và cài đặt Jmeter..................................................................31
2.4. Các thành phần chính của Jmeter...............................................................32
2.5. Một số chức năng thường được sử dụng trong Jmeter................................35
2.5.1.

HTTP Request..................................................................................35

2.5.2.

FTP Request.....................................................................................36

2.5.3.

JDBC request (Java Database Connectivity)....................................37

2.5.4.

Logic Controller...............................................................................38

2.5.5.

CSV Data Set Config.......................................................................39

2.5.6.

Recording Controller và HTTP(S) Test Script Recoder...................40

2.5.7.

NON-GUI........................................................................................41


2.5.8.

Một số Listeners thường được sử dụng trong Jmeter.......................42

CHƯƠNG 3: DEMO KIỂM THỬ HIỆU NĂNG WEBSITE BẰNG CÔNG
CỤ KIỂM THỬ JMETER APACHE VÀ BÁO CÁO KIỂM THỬ HIỆU NĂNG
WEBSITE
46
3.1. Giới thiệu về Website Maruchan Shop để kiểm thử hiệu năng...................46
3.1.1.

Giới thiệu chung về Website Maruchan Shop..................................46

3.1.2.

Một số chức năng chính của Maruchan Shop...................................46

3.2. Kịch bản kiểm thử hiệu năng, lấy mẫu kiểm thử và thiết lập các biến với
mẫu thử................................................................................................................ 46
3.2.1.

Kịch bản kiểm thử hiệu năng website Maruchan-shop.....................46

3.2.2.

Thiết lập các tham số ban đầu..........................................................48

3.2.3.


Thiết lập các giá trị kiểm thử hiệu năng website Maruchan Shop....51

3.3. Kiểm thử hiệu năng website Maruchan Shop và tổng hợp dữ liệu kết quả.56
3.3.1.

Kiểm thử với một người dùng truy cập............................................56


3.3.2.
lớn.

Kiểm thử hiệu năng website Maruchan Shop với các mẫu thử vừa và
.........................................................................................................63

3.4. Báo cáo kiểm thử hiệu năng Website Maruchan Shop...............................70
3.5. Phân tích kết quả kiểm thử hiệu năng Website Maruchan Shop.................72
KẾT LUẬN VÀ KIẾN NGHỊ...............................................................................73
TÀI LIỆU THAM KHẢO.....................................................................................74


DANH MỤC CÁC CHỮ VIẾT TẮT
Chữ viết tắt
BBT
WBT
GBT
SDK
JRE

Tên tiếng anh
Black Box Testing

White Box Testing
Gray Box Testing
Java Software Development Kit
Java Runtime Environment

Nghĩa tiếng việt
Kiểm thử hộp đen
Kiểm thử hộp trắng
Kiểm thử hộp xám


DANH MỤC CÁC BẢNG
Bảng 1.1: Ví dụ phân vùng tương đương ZIP code x=5..........................................6
Bảng 1.2: Bảng quyết định.......................................................................................8
Bảng 1.3: Bảng quyết định các trường hợp xảy ra..................................................8
Bảng 1.4: Bảng quyết định phân tích kết quả..........................................................8
Bảng 2.1: Các phần tử trong Thread group..........................................................33
Bảng 2.2: Các biến của chế độ Non-GUI..............................................................40
Bảng 2.3: Ý nghĩa các trường bên trong Aggregate Report..................................43
Bảng 3.1 Báo cáo kiểm thử hiệu năng Website Maruchan Shop..........................75


DANH MỤC HÌNH ẢNH
Hình 1.1 Kiểm thử hộp đen......................................................................................5
Hình 1.2 Quy trình kiểm thử phần mềm................................................................12
Hình 1.3 Quy trình kiểm thử tự động....................................................................17
Hình 1.4 Bản kế hoạch chính và các bản kế hoạch chi tiết..................................17
Hình 1.5 Thời điểm phù hợp để thiết lập các kế hoạch kiểm tra..........................19
Hình 2.1 Giao diện Jmeter.....................................................................................32
Hình 2.2: Thread Group Panel..............................................................................33

Hình 2.3: HTTP Request........................................................................................36
Hình 2.4: FTP Request...........................................................................................37
Hình 2.5: JDBC Request........................................................................................38
Hình 2.6: CSV Data Set Config.............................................................................39
Hình 2.7: Recording Controller.............................................................................40
Hình 2.8: HTTP(S) Test Script Recorder...............................................................40
Hình 2.9: Aggregate Report...................................................................................44
Hình 2.10: Apache Jmeter Dashbroad...................................................................45
Hình 3.1: Trang chủ của Website Maruchan Shop...............................................46
Hình 3.2: Chức năng Đăng kí thành viên.............................................................47
Hình 3.3: Chức năng Đăng nhập..........................................................................48
Hình 3.4: Tìm kiếm sản phẩm theo giá tiền và tên sản phẩm...............................49
Hình 3.5: Tìm kiếm sản phẩm theo danh mục sản phầm.....................................49
Hình 3.6: Chi tiết sản phẩm...................................................................................50
Hình 3.7: Chức năng Giỏ hàng.............................................................................50
Hình 3.8: Chức năng Đặt hàng.............................................................................51
Hình 3.9: Thêm mới một Thread Group cho Test Plan.........................................54


Hình 3.10: Cấu hình Browsers..............................................................................54
Hình 3.11: Add certificates.....................................................................................55
Hình 3.12: HTTP(S) Test Script Recorder.............................................................55
Hình 3.13: Kết quả của quá trình lấy mẫu kiểm thử trên maruchan-shop.tk......56
Hình 3.14: File chứa 1000 tài khoản đăng nhập website......................................56
Hình 3.15: Thiết lập CSV Data Set Config............................................................57
Hình 3.16: Chi tiết kịch bản kiểm thử hiệu năng website Maruchan Shop với
công cụ kiểm thử hiệu năng Jmeter Apache..........................................................61
Hình 3.17: HTTP Request Trang chủ....................................................................62
Hình 3.18: HTTP Request Chi tiết sản phẩm........................................................62
Hình 3.19: Aggregate Report của Maruchan Shop...............................................63

Hình 3.20: View Results in Table của Maruchan Shop.........................................63
Hình 3.21: Trang chủ khi chưa Login...................................................................64
Hình 3.22: Màn hình Login...................................................................................64
Hình 3.23: Website Marruchan Shop sau khi Login thành công.........................65
Hình 3.24: Kết quả tìm kiếm các sản phẩm theo giá tiền......................................65
Hình 3.25: Chi tiết một sản phẩm..........................................................................66
Hình 3.26: màn hình khi đã đặt hàng thành công................................................66
Hình 3.27: Màn hình sau khi Đăng xuất khỏi hệ thống.......................................67
Hình 3.28: Aggregate Report của Maru Các chức năng.......................................67
Hình 3.29: View Results in Table của Maru Các chức năng................................67
Hình 3.30: File số liệu 20VU1.csv.........................................................................68
Hình 3.31: Apache Jmeter Dashboard của report20VU1......................................69
Hình 3.32: File số liệu 50VU1.csv.........................................................................69
Hình 3.33: Apache Jmeter Dashboard của report50VU1......................................70
Hình 3.34: File số liệu 100VU1.csv.......................................................................70
Hình 3.35: Apache Jmeter Dashboard của report100VU1....................................71
Hình 3.36: File số liệu 10VU2.csv.........................................................................72


Hình 3.37: Apache Jmeter Dashboard của report10VU2......................................72
Hình 3.38: File số liệu 25VU2.csv.........................................................................73
Hình 3.39: Apache Jmeter Dashboard của report25VU2......................................73
Hình 3.40: File số liệu 50VU2.csv.........................................................................74
Hình 3.41: Apache Jmeter Dashboard của report50VU2......................................74
Hình 3.42: Hiện tượng Website bị treo hoàn toàn khi quá tải..............................77


1

LỜI NÓI ĐẦU

1. Lý do lựa chọn đề tài
Hiện nay, Internet đã trở thành một phần không thể thiếu trong cuộc sống với
hàng tỉ website cung cấp các dịch vụ thiết yếu như tìm kiếm thông tin, giải trí, học
tập, mua bán hàng hóa,… Bên cạnh những yếu tố ảnh hưởng tới chất lượng website
như giao diện, khả năng tương thích, chức năng của ứng dụng web và bảo mật thì
yếu tố hiệu năng là một trong những vấn đề rất quan trọng để đánh giá hệ thống và
khả năng mở rộng của web.
Việc xác định số người dùng tối đa, sức tải công việc cũng như thời gian xử lý
các giao tác của các ứng dụng web là rất quan trọng trong quá trình xây dựng và
phát triển web. Kiểm thử hiệu năng nhằm xác định tốc độ, khả năng phân tải và
mức độ tin tưởng của ứng dụng trong môi trường nhiều người dùng, có nhiều hoạt
động khác nhau. Công cụ kiểm tra tự động để kiểm tra hiệu năng ứng dụng web ở
điều kiện có sự điều chỉnh về mức độ tải có thể kể đến như: LoadRunner, Jmeter
Apache, LoadStorm, Pylot, The Grinder,… tuy nhiên, với khả năng chạy trên nhiều
hệ điều hành, hỗ trợ đa giao thức và hoàn toàn miễn phí nên Jmeter được xem là nổi
trội hơn.
Vì vậy, xuất phát từ nhu cầu thực tiễn, em chọn đề tài đồ án tốt nghiệp là :
“Nghiên cứu công cụ kiểm thử hiệu năng Jmeter và ứng dụng kiểm thử hiệu
năng Website”
2. Mục tiêu của đề tài
- Nắm rõ khái niệm, các kỹ thuật, phương pháp, quy trình và các loại kiểm thử
phần mềm và kiểm thử hiệu năng Website.
- Sử dụng thành thạo các chức năng cơ bản của công cụ Jmeter và các tiện ích
hỗ trợ kiểm thử hiệu năng Website.
- Xây dựng báo cáo kiểm thử hiệu năng Website, hiểu rõ các biểu đồ, phân
tích dữ liệu nhận được sau khi kiểm thử.
3. Phương pháp nghiên cứu đề tài
- Phương pháp nghiên cứu lí thuyết: thu thập các thông tin, tìm hiểu các tài
liệu liên quan đến đề tài: kiểm thử phần mềm, kiểm thử hiệu năng Website, công cụ



2
kiểm thử hiệu năng Jmeter, các tiện ích hỗ trợ, phương pháp phân tích dữ liệu nhận
được sau kiểm thử.
- Tổng hợp, đưa ra và thực hiện triển khai thực tế các nội dung kiểm thử hiệu
năng Website với công cụ Jmeter.
4. Đối tượng và phạm vi nghiên cứu đề tài
Đối tượng nghiên cứu:
- Cơ sở lý thuyết về Kiểm thử phần mềm, Kiểm thử hiệu năng Website.
- Công cụ kiểm thử hiệu năng Jmeter Apache.
Phạm vi nghiên cứu:
- Tìm hiểu cơ sở lý thuyết về kiểm thử phần mềm, kiểm thử hiệu năng
Website.
- Nghiên cứu, tìm hiểu cách sử dụng, các thao tác với công cụ kiểm thử hiệu
năng Jmeter để thực hiện các kỹ thuật kiểm thử hiệu năng Website.
- Nghiên cứu cách xây dựng một bản báo cáo hiệu năng, phân tích các kết quả,
dữ liệu sau kiểm thử.
5. Những đóng góp của báo cáo
Đồ án hoàn thành sẽ có những đóng góp chủ yếu sau đây:
- Hệ thống hóa những vấn đề lý thuyết cơ bản về Kiểm thử phần mềm, Kiểm
thử hiệu năng Website.
- Cách triển khai quá trình kiểm thử hiệu năng với công cụ kiểm thử hiệu năng
Jmeter Apache.
-Báo cáo kiểm thử hiệu năng từ kết quả nhận được từ quá trình kiểm thử hiệu
năng với công cụ kiểm thử hiệu năng Jmeter Apache.
6. Bố cục của báo cáo
Đồ án gồm có ba chương như sau:
Chương 1: Tổng quan về kiểm thử phần mềm và kiểm thử hiệu năng Website
Chương này trình bày tổng quan về Kiểm thử phần mềm, các kỹ thuật cơ bản
của kiểm thử phần mềm, Quy trình kiểm thử phần mềm, Các giai đoạn hay mức độ

kiểm thử phần mềm, Kiểm thử tự động (Automate Testing), Kiểm thử ứng dụng
web, kiểm thử hiệu năng phần mềm, kiểm thư hiệu năng Website.


3
Chương 2: Công cụ kiểm thử hiệu năng Jmeter
Chương này giới thiệu chi tiết về một số chức năng của công cụ Jmeter hỗ trợ
để phục vụ quá trình kiểm thử hiệu năng Website
Chương 3: Demo kiểm thử hiệu năng Website bằng công cụ kiểm thử Jmeter
và báo cáo kiểm thử hiệu năng Website
Chương này trình bày chi tiết quá trình thực hiện kiểm thử hiệu năng Website
với công cụ kiểm thử hiệu năng Website và phân tích kết quả nhận được sau quá
trình kiểm thử hiệu năng để xây dựng bản báo cáo kiểm thử hiệu năng Website.


4

CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM
1.1.

Khái niệm
Theo IEEE (Institute of Electrical and Electronics Engineers), kiểm thử là quá

trình vận hành hệ thống hoặc thành phần dưới những điều kiện xác định, quan sát
hoặc ghi nhận kết quả và đưa ra đánh giá về hệ thống hoặc thành phần đó.
Kiểm thử là tiến trình thực thi chương trình với mục đích tìm thấy lỗi (Myers,
The art of software testing).
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 những 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 đả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 (Wikipedia).
Mỗi cách định nghĩa đều đưa ra các khía cạnh khác nhau trong việc tìm hiểu
kiểm thử phần mềm, nhưng nói chung lại, Software testing là một trong những kỹ
thuật phần mềm “xác minh và xác nhận” (Verification and Validation). Đầu tiên, đó
là hành động Verification tức là quá trình đánh giá một hệ thống hoặc thành phần để
xác định xem các sản phẩm của một giai đoạn phát triển nhất định đáp ứng các điều
kiện áp đặt vào lúc bắt đầu của giai đoạn đó hay không. Các hoạt động xác mình
(verification) bao gồm việc kiểm thử và đánh giá. Xác nhận (validation) là quá trình
đánh giá một hệt thống hoặc một thành phần trong hoặc ở cuối của quá trình phát
triển để xác định xem nó đáp ứng yêu cầu quy định hay không.

1.2.

Các kỹ thuật cơ bản của kiểm thử phần mềm

1.2.1. Kiểm thử hộp đen (Black Box Testing – BBT)
a. Định nghĩa:
- Kiểm thử hộp đen hay còn gọi là kiểm tra chức năng và thử nghiệm hành vi.
Xem chương trình như là một “hộp đen”, hoàn toàn không quan tâm về các mã
nguồn 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 tả của nó.


5
- Phương pháp này được đặt tên như vậy bởi vì các chương trình phần mềm,
trong con mắt của các kiểm thử viên, giống như một hộp đen; bên trong mà người ta
không thể nhìn thấy. Phương pháp này cố gắng tìm ra các lỗi trong các loại sau:







Chức năng không chính xác hoặc thiếu.
Lỗi giao diện.
Lỗi trong cấu trúc dữ liệu hoặc truy cập cơ sở dữ liệu bên ngoài.
Hành vi hoặc hiệu suất lỗi.
Khởi tạo và chấm dứt các lỗi.

Hình 1.1 Kiểm thử hộp đen

b. Các phương pháp kiểm thử hộp đen
 Đoán lỗi: là một kỹ năng quan trọng của kiểm thử viên, thậm chí có thể gọi
là nghệ thuật, một kiệt tác của trực giác. Phương pháp này đặc biệt dựa vào kinh
nghiệm và kiến thức của kiểm thử viên. Nhiều kiểm thử viên cố gắng đoán xem phần
nào của hệ thống mà có khả năng ẩn chứa lỗi. Với phương pháp này, họ không cần
một công cụ hay một kịch bản kiểm thử nào khi bắt đầu vào việc.
 Phân vùng tương đương (Equivalence Class): là một kỹ thuật kiểm thử phần
mềm có liên quan đến phân chia các giá trị đầu vào thành các phân vùng hợp lệ và


6
không hợp lệ, sau đó chúng ta sẽ viết ra các kịch bản kiểm thử cho từng phần, chọn
giá trị đại diện từ mỗi phân vùng làm dữ liệu thử nghiệm.
- Phân vùng tương đương: là kỹ thuật thực hiện kiểm thử theo từng phân vùng
đồng giá trị (tập hợp điều kiện cùng một thao tác).
- Tập hợp giá trị input có cùng một kết quả xử lý, tập hợp thời gian có cùng
một kết quả xử lý, tập hợp kết quả trích xuất được xử lý cùng một giá trị nhập.

- Mục đích: Giảm đáng kể số lượng test case cần phải thiết kế vì với mỗi lớp
tương đương ta chỉ cần kiểm thử trên các phần tử đại diện.
- Chọn tối thiểu một giá trị đại diện từ các phân vùng đồng giá trị để tiến hành
kiểm thử.
Nếu có lỗi xảy ra thì các giá trị khác trong phân vùng đồng giá trị cũng sẽ có
lỗi giống nhau.
Ví dụ: Phân vùng tương đương ZIP Code x = 5
- Ký tự số:
+ Không nhập ký tự nào
+ Nhập < 5 ký tự
+ Nhập 5 ký tự
+ Nhập > 5 ký tự
- Ký tự chữ
- Ký tự đặc biệt
Ta có bảng phân vùng tương đương:
Bảng 1.1: Ví dụ phân vùng tương đương ZIP code x=5
Điều kiện vào/ ra

Các lớp tương đương

Các lớp tương đương không

hợp lệ
Các ký tự số

hợp lệ
Các ký tự chữ

Nhập 5 ký tự


- Các ký tự đặc biệt
- Nhập > 5 ký tự
- Nhập < 5 ký tự

Số Zip Code

 Phân tích giá trị biên (Boundary Value Analysis): là một kỹ thuật kiểm thử
phần mềm có liên quan đến việc xác định biên (ranh giới) của điều kiện mô tả cho
các giá trị đầu vào và chọn giá trị ở biên và bên cạnh giá trị biên làm dữ liệu kiểm
thử. Phương pháp phân tích giá trị biên sẽ đưa ra các giá trị đặc biệt, bao gồm loại dữ
liệu, giá trị lỗi, bên trong, bên ngoài biên giá trị, lớn nhất và nhỏ nhất.


7
Kiểm thử giá trị biên được thực hiện theo trình tự dưới đây:
1. Tìm ra đường biên
2. Quyết định giá trị biên
3. Quyết định giá trị để kiểm thử
Giá trị biên.
Dưới giá trị biên. (Nếu là phân vùng đồng giá trị)
Trên 1 giá trị biên. (Nếu là phân vùng đồng giá trị)
Ví dụ: Trường số tiền có giá trị từ [1000;1,000,000] VND thì với phương pháp
phân tích giá trị biên thì ta sẽ có các giá trị đặc biệt sau:
 Giá trị biên dưới (Min): 1000
 Dưới 1 giá trị biên dưới (Min – 1): 999
 Giá trị trung bình: 500,000
 Giá trị biên trên (Max): 1,000,000
 Trên 1 giá trị biên (Max + 1): 1,000,001
Như vậy với việc sử dụng kỹ thuật phân tích giá trị biên ta có thể giảm thiểu
tối đa các giá trị cần kiểm thử và rút ngắn thời gian kiểm thử phần mềm mà vẫn

đảm bảo được yêu cầu của tập giá trị cần xét.
 Sử dụng bảng quyết định (Decision Tables):
Là dùng bảng để hiển thị danh sách các thao tác phần mềm được quyết định
trên các điều kiện khác nhau.
Decision table testing chú trọng vào nhiều điều kiện để thực hiện kiểm thử.
Ngoài ra, kiểm thử hộp đen còn có một số kỹ thuật như: Domain Tests,
Orthogonal Arrays, State Models, Exploratory Testing (kiểm thử chủ yếu dựa vào
kinh nghiệm và khả năng tập trung vào việc kiểm tra các chức năng của kiểm thử
viên), All-pairs testing (kiểm thử tất cả các cặp), ...
Ví dụ: Với màn hình đăng nhập có 2 thông tin cần đưa vào là Tên đăng nhập và
mật khẩu, chỉ thực hiện đăng nhập thành công nếu nhập đúng cả Tên đăng nhập và
mật khẩu, các trường hợp còn lại sẽ hiển thị thông báo “Nhập không chính xác, yêu
cầu nhập lại”
- Xác định các điều kiện đầu vào, Số cột giá trị tính bằng 2 mũ N (với N là số
đầu vào):


8
Bảng 1.2: Bảng quyết định
Đầu vào
Tên đăng nhập
Mật khẩu

Giá trị 1

Giá trị 2

Giá trị 3

Giá trị 4


- Nhập các giá trị có thể xảy ra. Mỗi giá trị đầu vào sẽ có 1 nửa là T (True), 1
nửa là F (False)
Bảng 1.3: Bảng quyết định các trường hợp xảy ra
Đầu vào
Tên đăng nhập
Mật khẩu

Giá trị 1
T
T

Giá trị 2
T
F

Giá trị 3
F
T

Giá trị 4
F
F

- Xác định các giá trị đầu ra căn cứ với yêu cầu đề bài:
Bảng 1.4: Bảng quyết định phân tích kết quả
Đầu vào
Tên đăng nhập
Mật khẩu
Đầu ra thông báo


Giá trị 1
T
T
Thành

Giá trị 2
T
F
Chưa

Giá trị 3
F
T
Chưa nhập Tên

Giá trị 4
F
F
Chưa nhập Tên

công

nhập Mật

đăng nhập

đăng nhập hoặc

khẩu


Mật khẩu

c. Ưu nhược điểm của kiểm thử hộp đen
- Ưu điểm:
Các kiểm thử viên được thực hiện từ quan điểm của người dùng và sẽ giúp đỡ
trong việc sáng tỏ sự chênh lệch về thông số kỹ thuật.
Các kiểm thử viên theo phương pháp black box không có “mối ràng buộc”
nào với mã nguồn, và nhận thức của một kiểm thử viên rất đơn giản: một mã nguồn
có nhiều lỗi, sử dụng nguyên tắc: "Hỏi và bạn sẽ nhận" các kiểm thử viên hộp đen
tìm được nhiều lỗi ở nơi mà các lập trình viên không tìm thấy.
Kiểm thử viên có thể không phải IT chuyên nghiệp, không cần phải biết ngôn
ngữ lập trình hoặc làm thế nào các phần mềm đã được thực hiện.


9
Các kiểm thử viên có thể được thực hiện bởi một cơ quan độc lập từ các lập
trình viên, cho phép một cái nhìn khách quan và tránh sự phát triển thiên vị.
Hệ thống thật sự với toàn bộ yêu cầu của nó được kiểm thử chính xác.
 Thiết kế kịch bản kiểm thử khá nhanh, ngay khi mà các yêu cầu chức năng
được xác định.
- Nhược điểm:
Dữ liệu đầu vào yêu cầu một khối lượng mẫu (sample) khá lớn.
Khó viết kịch bản kiểm thử do cần xác định tất cả các yếu tố đầu vào, và
thiếu cả thời gian cho việc tập hợp này.
Khả năng để bản thân kỹ sư lạc lối trong khi kiểm thử là khá cao.

1.2.2. Kiểm thử hộp trắng (White Box Testing – WBT)
a. Định nghĩa:
Kiểm thử hộp trắng là phương pháp kiểm nghiệm dựa vào cấu trúc/mã lệnh

chương trình. WBT kiểm nghiệm một chương trình (một phần chương trình, hay
một hệ thống, một phần của hệ thống) đáp ứng tốt tất cả các giá trị input bao gồm cả
các giá trị không đúng hay không theo dự định 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).
Do đó người kiểm thử hộp trắng phải có kỹ năng, kiến thức nhất định về ngôn
ngữ lập trình được dùng, về giải thuật được dùng trong thành phần phần mềm để có


10
thể thông hiểu chi tiết về đoạn mã cần kiểm thử. Thường tốn rất nhiều thời gian và
công sức nếu thành phần phần mềm quá lớn (thí dụ trong kiểm thử tích hợp hay
kiểm thử chức năng). Do đó kỹ thuật này chủ yếu được dùng để kiểm thử đơn vị.
Trong lập trình hướng đối tượng, kiểm thử đơn vị là kiểm thử từng tác vụ của một
lớp chức năng nào đó.
Có 2 hoạt động kiểm thử hộp trắng :
Kiểm thử luồng điều khiển : tập trung kiểm thử giải thuật chức năng.
Kiểm thử dòng dữ liệu : tập trung kiểm thử đời sống của từng biến dữ liệu
được dùng trong thuật giải.
b. Các phương pháp kiểm thử hộp trắng
Khi thực hiện kiểm thử bằng whitebox testing thì ta phải có một bộ kiểm thử
cho chương trình đó. Tuy nhiên để biết chắc chắn được là bộ kiểm thử của chúng ta
đã đầy đủ cho tất cả các trường hợp hay chưa, ta sẽ áp dụng các kiến thức của
Coverage tesing để đo đạc kết quả của chương trình khi thực hiện bộ kiểm thử.
Coverage testing có thể hiểu là tỉ lệ (tính theo %) test case đã được thực hiện
trên tổng số test case cần thiết cho ứng dụng. Nếu tỉ lệ này càng cao thì ứng dụng
càng được kiểm thử kỹ. Mặc dù việc đảm bảo ứng dụng có test coverage là 100%
trong một số trường hợp là bất khả thi, nhưng ta vẫn sẽ luôn cố gắng để đạt được kết
quả gần với con số đó nhất.

c. Ưu nhược điểm của kiểm thử hộp trắng
- Ưu điểm
+ Kiểm tra được toàn bộ chương trình nguồn
+ Phát hiện lỗi tại chỗ
+ Tự động hóa kiểm thử
- Nhược điểm
+ Yêu cầu người kiểm thử phải am hiểu cấu trúc mã lệnh chương trình. Do dó
đòi hỏi tài nguyên nhân lực và máy tốn kém.
+ Có khả năng tồn tại các tổ hợp lệnh khác nhau gây lỗi.
+ Không kiểm thử hết đường đi với các vòng lặp lớn, phức tạp.
+ Khó thực hiện và chi phí thực hiện cao


11
1.2.3. Kiểm thử hộp xám (Gray Box Testing – GBT)
a. Định nghĩa
Kiểm thử hộp xám là một phương pháp kiểm thử phần mềm được kết hợp
giữa kiểm thử hộp đen và kiểm thử hộp trắng. Trong kiểm thử hộp đen, kiểm thử
viên kiểm thử các hàng mục mà không cần biết cấu trúc bên trong của nó, còn trong
kiểm thử hộp trắng thì kiểm thử viên biết được cấu trúc bên trong của chương trình.
Trong kiểm thử hộp xám, cấu trúc bên trong sản phẩm chỉ được biết một phần.
Kiểm thử viên có thể truy cập vào cấu trúc dữ liệu bên trong và thuật toán của
chương trình với mục đích là để thiết kế test case, nhưng khi kiểm thử thì kiểm thử
như là người dùng cuối hoặc mức hộp đen. Được gọi là kiếm thử hộp xám vì trong
chương trình phần mềm, mắt của kiểm thử viên giống như hộp xám/bán trong suốt
– nhìn qua hộp này ta chỉ có thể thấy được một phần.
Mặc dù phương pháp kiểm thử hộp xám có thể ứng dụng vào nhiều mức kiểm
thử khác nhau nhưng chủ yếu nó hữu dụng trong mức Intergration Testing – kiểm
thử tích hợp.
b. Ưu nhược điểm của kiểm thử hộp xám

Ưu điểm và nhược điểm của Kiểm thử hộp xám được quyết định dựa vào sự
kết hợp các ưu nhược điểm của kiểm thử hộp đen và hộp trắng.

1.3.

Quy trình kiểm thử phần mềm
Kiểm thử phần mềm thường bao gồm các bước:

- Thiết kế các ca kiểm thử
- Tạo dữ liệu thử
 Kiểm thử với tất cả các dữ liệu vào là cần thiết, không thể kiểm thử “vét cạn”.
 Chọn tập các dữ liệu thử đại diện từ miền dữ liệu vào dựa trên các tiêu chuẩn
chọn dữ liệu thử.
- Thực thi chương trình trên dữ liệu thử:
 Cung cấp dữ liệu thử.
 Thực thi.
 Ghi nhận kết quả.
- Quan sát kết quả kiểm thử
 Thực hiện trong khi hoặc sau khi thực thi.


12
 So sánh kết quả nhận được và kết quả mong đợi.

Hình 1.2 Quy trình kiểm thử phần mềm
Quá trình kiểm thử phần mềm có hai mục tiêu riêng biệt:
-Mục tiêu 1: Chứng minh cho người phát triển và khách hàng thấy các yêu cầu
của phần mềm. Với phần mềm truyền thống, điều này có nghĩa là ta có ít nhất một
thử nghiệm cho mỗi yêu cầu của người dùng và tài liệu hệ thống yêu cầu.Với các
sản phẩm phần mềm chung, điều đó có nghĩa là ta nên thử nghiệm tất cả các đặc

tính của hệ thống sẽ được kết hợp trong sản phẩm phát hành.
-Mục tiêu 2: Phát hiện các lỗi và khiếm khuyết trong phần mềm: phần mềm
thực hiện không đúng, không như mong đợi hoặc không làm theo như đặc tả. Kiểm
tra khiếm khuyết tập trung vào việc tìm ra tất cả các kiểu thực hiện không như
mong đợi của hệ thống, như sự đổ vỡ hệ thống, sự tương tác không mong muốn với
hệ thống khác, tính toán sai và sai lạc dữ liệu.

1.4.

Các giai đoạn hay mức độ kiểm thử phần mềm

1.4.1. Kiểm thử đơn vị (Unit test)
Kiểm thử đơn vị hay còn được gọi là kiểm thử thành phần, đề cập đến việc
kiểm thử chức năng từng phần của mã, thường ở mức độ chức năng. Trong một môi
trường hướng về đối tượng thì điều này thường là cấp độ lớp, và các kiểm thử đơn
vị tối thiểu bao gồm hàm dựng và hàm hủy. Nhiều loại kiểm thử được viết bởi các
nhà phát triển như họ làm việc trong mã (kiểu hộp trắng) để đảm bảo rằng từng hàm


13
riêng biệt hoạt động đúng như kỳ vọng. Một hàm có thể có nhiều kiểm thử từ đó
giúp nắm bắt được các trường hợp góc hoặc các nhánh trong mã nguồn. Kiểm thử
đơn vị một mình không thể đảm bảo hết được từng chức năng của từng bộ phận
trong phần phềm nhưng nó được sử dụng để đảm bảo rằng các khối kiến trúc của
phần mềm hoạt động độc lập với nhau.
Kiểm thử đơn vị là một quá trình phát triển phần mềm có liên quan đến ứng
dụng đồng bộ của một loạt các chiến lược phòng ngừa phát hiện lỗi và để giảm
thiểu rủi ro, thời gian và chi phí. Nó được thực hiện bởi kỹ sư hay nhà phát triển
trong suốt giai đoạn xây dựng của vòng đời phát triển phần mềm. Không chỉ tập
trung vào việc đảm bảo chất lượng truyền thống mà phải gia tăng nó lên vì thế kiểm

thử đơn vị có mục đích loại bỏ những lỗi cấu trúc trước khi mã hóa rồi mới thúc đẩy
việc quản lý chất lượng. Chiến lược này nhằm nâng cao chất lượng cũng như hiệu
quả của phần mềm trong tiến trình quản lý và phát triển chung.
Tùy thuộc vào kỳ vọng của tổ chức phát triển phần mềm, kiểm thử đơn vị có
thể bao gồm phân tích mã tĩnh, phân tích luồng dữ liệu, phân tích dữ liệu, đánh giá
mã cân bằng, phân tích mã bao phủ và các thực hành xác nhận phần mềm khác.
1.4.2. Kiểm thử tích hợp (Intergration Test)
- Kiểm thử tích hợp là một loại kiểm thử phần mềm mà tìm kiếm để kiểm tra
các giao diện giữa các thành phần dựa vào thiết kế của phần mềm.
- Các thành phần ghép lại với nhau, rồi ghép tiếp phần nhỏ khác vào nữa, hành
động này lặp đi lặp lại cho đến khi kết hợp toàn bộ thành phần phần mềm.
- Kiểm thử tích hợp làm việc để tìm ra lỗi trong các giao diện và giao tiếp giữa
các thành phần (module).
- Các nhóm thành phần phần mềm đã được kiểm thử lớn dần từng bước tương
ứng với các yếu tố của thiết kế kiến trúc đã được tích hợp và kiểm thử cho đến khi
phần mềm hoạt động như một hệ thống.
1.4.3. Kiểm thử hệ thống (System Test)
Kiểm tra hệ thống đã được tích hợp hoàn chỉnh để xác định rằng nó đáp
ứng được yêu cầu. Kiểm thử tích hợp hệ thống chứng thực rằng hệ thống đã


×