1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ á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

93 1,2K 58

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 93
Dung lượng 4,29 MB

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

Nội dung

CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM4 1.1.Khái niệm4 1.2.Các kỹ thuật cơ bản của kiểm thử phần mềm4 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ềm11 1.4.Các giai đoạn hay mức độ kiểm thử phần mềm13 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ự động16 1.5.2.Quy trình kiểm thử tự động17 1.5.3.Ưu nhược điểm của kiểm thử tự động21 1.6.Kiểm thử hiệu năng22 1.6.1.Định nghĩa kiểm thử hiệu năng22 1.6.2.Các yếu tố ảnh hưởng đến kiểm thử hiệu năng22 1.6.3.Các giai đoạn kiểm thử hiệu năng23 1.7.Kiểm thử ứng dụng web25 1.7.1.Giới thiệu về kiểm thử ứng dụng web25 1.7.2.Phương pháp kiểm thử ứng dụng web25 CHƯƠNG 2: CÔNG CỤ KIỂM THỬ HIỆU NĂNG JMETER30 2.1.Giới thiệu30 2.2.Ưu điểm và nhược điểm của Jmeter30 2.3.Tải ứng dụng và cài đặt Jmeter31 2.4.Các thành phần chính của Jmeter32 2.5.Một số chức năng thường được sử dụng trong Jmeter35 2.5.1.HTTP Request35 2.5.2.FTP Request36 2.5.3.JDBC request (Java Database Connectivity)37 2.5.4.Logic Controller38 2.5.5.CSV Data Set Config39 2.5.6.Recording Controller và HTTP(S) Test Script Recoder40 2.5.7.NON-GUI41 2.5.8.Một số Listeners thường được sử dụng trong Jmeter42 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 WEBSITE46 3.1.Giới thiệu về Website Maruchan Shop để kiểm thử hiệu năng46 3.1.1.Giới thiệu chung về Website Maruchan Shop46 3.1.2.Một số chức năng chính của Maruchan Shop46 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-shop46 3.2.2.Thiết lập các tham số ban đầu48 3.2.3.Thiết lập các giá trị kiểm thử hiệu năng website Maruchan Shop51 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ập56 3.3.2.Kiểm thử hiệu năng website Maruchan Shop với các mẫu thử vừa và lớn.63 3.4.Báo cáo kiểm thử hiệu năng Website Maruchan Shop70 3.5.Phân tích kết quả kiểm thử hiệu năng Website Maruchan Shop72 KẾT LUẬN VÀ KIẾN NGHỊ73 TÀI LIỆU THAM KHẢO74

Trang 1

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

Trang 2

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

Trang 3

Những nội dung trong đồ án tốt nghiệp này là thành quả từ sự nghiên cứu, tìmhiể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ênhướ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 saoché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àntoàn chịu trách nhiệm

Sinh viên thực hiện

Hoàng Thị Ngọc Diễm

Trang 4

Để 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ìnhgiả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ướngdẫ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ọcTà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ànthà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ôngtin 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àinguyê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óiriê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

Trang 5

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

Trang 6

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

Trang 7

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

Trang 8

Chữ viết tắt Tên tiếng anh Nghĩa tiếng việt

SDK Java Software Development Kit

JRE Java Runtime Environment

Trang 9

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

Trang 10

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

Trang 11

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

Trang 12

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

Trang 13

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ớihà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ọctậ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 websitenhư 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, JmeterApache, 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ổitrộ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ệună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ụ

Trang 14

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ểmthử 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ăngJmeter 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ệună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ảncủ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ụngweb, kiểm thử hiệu năng phần mềm, kiểm thư hiệu năng Website

Trang 15

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 Websitevớ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

Trang 16

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áthoặ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ấpcho 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ẩmhay 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 haykhiế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 trongnhiề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ểukiể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ềukiệ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áttriể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ó

Trang 17

- 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 takhô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 kinhnghiệ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ầnnà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ầnmộ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ầnmề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à

Trang 18

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ọngiá 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ùngmộ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ớptươ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ànhkiể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

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

- Nhập < 5 ký tự

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

Trang 19

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ểmthử 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.

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ểutố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 địnhtrê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àokinh 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à

Trang 20

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êucầ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):

Bảng 1.3: Bảng quyết định các trường hợp xảy ra

Đầu vào Giá trị 1 Giá trị 2 Giá trị 3 Giá trị 4

- 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 Giá trị 1 Giá trị 2 Giá trị 3 Giá trị 4

Chưa nhập Tênđăng nhập

Chưa nhập Tênđăng nhập hoặcMậ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

Trang 21

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 đentì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ônngữ lập trình hoặc làm thế nào các phần mềm đã được thực hiện

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ậptrì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

Trang 22

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ônngữ 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ó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 haykiể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ộtlớ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

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ỗ

Trang 23

+ 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

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 trongkiể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ểmthử khác nhau nhưng chủ yếu nó hữu dụng trong mức Intergration Testing – kiểmthử 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ẩnchọn dữ liệu thử

Trang 24

- 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

 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ộtthử 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ácsả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 đặctí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ểmtra 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)

Trang 25

Kiểm thử đơn vị hay còn được gọi là kiểm thử thành phần, đề cập đến việckiể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ôitrườ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ácnhà 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àmriê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ậntrong 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ủaphầ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 ứngdụ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ảmthiể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ểntrong 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ậptrung 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ểmthử đơ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 đẩyviệ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ệuquả 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 tracá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ữacá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 khiphần mềm hoạt động như một hệ thống

Trang 26

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 đãđược tích hợp với các hệ thống bên ngoài hoặc hệ thống thứ ba đã được xác địnhtrong các yêu cầu hệ thống

Kiểm thử hệ thống gồm nhiều loại kiểm thử khác nhau, trong số đó, cácmục tiêu kiểm thử quan trọng nhất là:

- Kiểm thử chức năng

- Kiểm thử hiệu năng

- Kiểm thử an toàn thông tin

Mục đích: Kiểm tra xem hệ thống được làm ra có thỏa mãn yêu cầu haykhông về nhiều khía cạnh: hoạt động, độ tin cậy, hiệu năng của hệ thống.Việc lập kế hoạch cho kiểm thử hệ thống nên bắt đầu từ giai đoạn bắtđầu dự án

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

Kiểm thử hồi quy là hoạt động trợ giúp để đảm bảo rằng các thay đổi khôngđưa ra những hành vi hoặc những lỗi bổ sung không mong đợi

Kiểm thử hồi quy có thể được thực hiện thủ công, bằng cách thực hiện lại tậpcon tất cả các trường hợp kiểm thử hoặc sử dụng công cụ tự động Bộ kiểm thử hồiquy gồm ba lớp các trường hợp kiểm thử khác nhau:

- Một mẫu đại diện của các kiểm thử sẽ được thực hiện tất cả các chức năngcủa phần mềm

- Các trường hợp kiểm thử bổ sung tập trung vào các chức năng phần mềm cókhả năng bị tác động khi có sự thay đổi

- Các kiểm thử tập trung vào các thành phần phần mềm vừa bị thay đổi

Kiểm thử hồi quy là một trong những loại kiểm thử tốn nhiều thời gian vàcông sức nhất Tuy nhiên, việc bỏ qua kiểm thử hồi quy là điều không thể vì có thểdẫn đến tình trạng phát sinh hoặc tái xuất hiện những lỗi nghiêm trọng, mặc dù tatưởng rằng những lỗi đó hoặc không có hoặc đã kiểm thử và sửa chữa rồi

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

Trang 27

Kiểm thử chấp nhận có thể là một trong hai điều sau đây:

-Một Smoke Test được sử dụng như là một Acceptance Test trước khi giớithiệu bản build mới để thực hiện việc kiểm thử chính, có nghĩa là trước khi thựchiện kiểm thử tích hợp hoặc hồi quy

-Acceptance Test được thực thi bởi khách hàng, thường được thực hiện trongmôi trường thí nghiệm trên phần cứng của họ, được biết như thế là kiểm thử chấpnhận người dùng (viết tắt là UAT) Acceptance Test có thể được thực hiện như làmột phần của quá trình chuyển giao giữa 2 pha của quá trình phát triển phần mềm

Alpha test: là việc kiểm thử hoạt động chức năng thực tế hoặc giả lập do

người dùng/khách hàng tiềm năng hoặc một nhóm kiểm thử độc lập thực hiện tạinơi sản xuất phần mềm Alpha test thường dùng cho phần mềm đóng gói sẵn để bán

là một hình thức kiểm thử chấp nhận nội bộ, trước khi phần mềm được tiến hànhkiểm thử beta

Beta test: được thực hiện sau Alpha test Các phiên bản của phần mềm –

được biết như là các phiên bản beta – chúng được phát hành tới một số lượng giớihạn khán giả bên ngoài nhóm sản xuất phần mềm Sản phẩm được phát hành đếnmột số nhóm người để kiểm thử nhiều hơn nữa có thể chắc chắn rằng sản phẩm cómột số lỗi Thỉnh thoảng, các phiên bản beta được phát hành rộng rãi để tăng phạm

vi phản hồi từ một lượng người sử dụng tương lai lớn nhất

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

Kiểm thử đang được xem là giải pháp chủ yếu nhằm đảm bảo chất lượng cho các sản phẩm phần mềm Tuy nhiên, các hoạt động kiểm thử hiện nay chủ yếu được thực hiện một cách thủ công và tiêu tốn khoảng 30-50% tài nguyên (thời gian, nhân lực và chi phí) của quá trình phát triển sản phẩmphần mềm Hơn nữa, độ phức tạp của các phần mềm ngày càng tăng và trong môi trường cạnh tranh như hiện nay đòi hỏi các công ty phần mềm

Trang 28

phải áp dụng các phương pháp và công cụ nhằm tự động hóa các hoạt động kiểm thử.

1.5

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

Kiểm thử tự động là quá trình thực hiện một cách tự động các bước trongmột kịch bản kiểm thử Kiểm thử tự động bằng một công cụ nhằm rút ngắnthời gian kiểm thử

Mục đích của kiểm thử tự động là giảm thiểu thời gian, công sức và kinhphí, tăng độ tin cậy, tăng tính hiệu quả và giảm sự nhàm chán cho ngườikiểm thử trong quá trình kiểm thử sản phẩm phần mềm

Kiểm thử tự động sẽ được sử dụng khi dự án không đủ tài nguyên (thờigian, nhân lực và chi phí), phải thực hiện kiểm thử hồi quy khi sản phẩmđược sửa đổi hoặc nâng cấp và cần kiểm thử lại các tính năng đã thực hiệntốt trước đó, kiểm tra khả năng vận hành của sản phẩm trong các môi trườngđặc biệt (đo tốc độ xử lý trung bình ứng với mỗi yêu cầu, xác định khả năngchịu tải tối đa, xác định cấu hình tối thiểu để thực thi hệ thống, kiểm tra các

cơ chế an ninh và an toàn, )

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

Trang 29

Hình 1.3 Quy trình kiểm thử tự động

Lập kế hoạch kiểm tra

- Mục đích: Nhằm chỉ định và mô tả các loại kiểm tra sẽ được triển khai vàthực hiện

- Kết quả của bước lập kế hoạch là bản tài liệu kế hoạch kiểm thử phần mềm,bao gồm nhiều chi tiết từ các loại kiểm tra, chiến lược kiểm tra, cho đến thời gian vàphân định lực lượng kiểm tra viên

Hình 1.4 Bản kế hoạch chính và các bản kế hoạch chi tiết

- Các bước lập kế hoạch:

Trang 30

Xác định yêu cầu kiểm tra: chỉ định bộ phận, thành phần của phần mềm sẽđược kiểm tra, phạm vi hoặc giới hạn của việc kiểm tra Yêu cầu kiểm tra cũngđược dùng để xác định nhu cầu nhân lực.

 Khảo sát rủi ro: Các rủi ro có khả năng xảy ra làm chậm hoặc cản trở quátrình cũng như chất lượng kiểm tra Ví dụ: kỹ năng và kinh nghiệm của kiểm traviên quá yếu, không hiểu rõ yêu cầu

 Xác định chiến lược kiểm tra: chỉ định phương pháp tiếp cận để thực hiệnviệc kiểm tra trên phần mềm, chỉ định các kỹ thuật và công cụ hỗ trợ kiểm tra, chỉđịnh các phương pháp dùng để đánh giá chất lượng kiểm tra cũng như điều kiện đểxác định thời gian kiểm tra

Xác định nhân lực, vật lực: kỹ năng, kinh nghiệm của kiểm tra viên; phầncứng, phần mềm, công cụ, thiết bị giả lập cần thiết cho việc kiểm tra

Lập kế hoạch chi tiết: ước lượng thời gian, khối lượng công việc, xác định chitiết các phần công việc, người thực hiện, thời gian tất cả các điểm mốc của quá trìnhkiểm tra

Tổng hợp và tạo các bản kế hoạch kiểm tra: kế hoạch chung và kế hoạch chitiết

Xem xét các kế hoạch kiểm tra: phải có sự tham gia của tất cả những người

có liên quan, kể cả trưởng dự án và có thể cả khách hàng Việc xem xét nhằm bảođảm các kế hoạch là khả thi, cũng như để phát hiện (và sữa chữa sau đó) các sai sóttrong các bản kế hoạch

Thiết kế nội dung kiểm thử

- Mục đích: Nhằm chỉ định các trường hợp kiểm tra và các bước kiểm tra chitiết cho mỗi phiên bản phần mềm Giai đoạn thiết kế kiểm thử là hết sức quan trọng,

nó bảo đảm tất cả các tình huống kiểm tra "quét" hết tất cả yêu cầu cần kiểm tra.Hình 1.5 cho thấy việc thiết kế kiểm thử không phải chỉ làm một lần, nó sẽ được sửachữa, cập nhật, thêm hoặc bớt xuyên suốt chu kỳ phát triển phần mềm, vào bất cứlúc nào có sự thay đổi yêu cầu, hoặc sau khi phân tích thấy cần được sửa chữa hoặc

bổ sung

Trang 31

Hình 1.5 Thời điểm phù hợp để thiết lập các kế hoạch kiểm tra

- Các bước thiết kế kiểm thử bao gồm:

Xác định và mô tả Test Case: xác định các điều kiện cần thiết lập trước vàtrong lúc kiểm tra Mô tả đối tượng hoặc dữ liệu đầu vào, mô tả các kết quả mongchờ sau khi kiểm tra

 Mô tả các bước chi tiết để kiểm tra: các bước này mô tả chi tiết để hoànthành một Test Case khi thực hiện kiểm tra Các Test Case như đã nói ở trên thườngchỉ mô tả đầu vào, đầu ra, còn cách thức tiến hành như thế nào thì không được địnhnghĩa Thao tác này nhằm chi tiết hóa các bước của một Test Case, cũng như chỉđịnh các loại dữ liệu nào cần có để thực thi các Test Case, chúng bao gồm các loại

dữ liệu trực tiếp, gián tiếp, trung gian, hệ thống

Xem xét và khảo sát độ bao phủ của việc kiểm tra: Mô tả các chỉ số và cáchthức xác định việc kiểm tra đã hoàn thành hay chưa? Bao nhiêu phần trăm phầnmềm đã được kiểm tra? Để xác định điều này có hai phương pháp: căn cứ trên yêucầu của phần mềm hoặc căn cứ trên số lượng mã nguồn đã viết

Xem xét Test Case và các bước kiểm tra: Việc xem xét cần có sự tham giacủa tất cả những người có liên quan, kể cả trưởng dự án nhằm bảo đảm các TestCase và dữ liệu yêu cầu là đủ và phản ánh đúng các yêu cầu cần kiểm tra, độ baophủ đạt yêu cầu, cũng như để phát hiện (và sửa chữa) các sai sót

Trang 32

Phát triển Kịch bản kiểm thử (Test Script)

- Mục đích: Bước này thường không bắt buộc trong các loại và mức kiểm tra,chỉ yêu cầu trong trường hợp đặc thù cần thiết kế, tạ ra các kịch bản kiểm thử cókhả năng chạy trên máy tính giúp tự động hóa việc thực thi các bước kiểm tra đãđinh nghĩa ở bước thiết kế kiểm thử

- Các bước phát triển kịch bản kiểm thử bao gồm:

Tạo kịch bản kiểm thử: thủ công hoặc dùng công cụ hỗ trợ để phát sinh scriptmột cách tự đông

Kiểm tra kịch bản kiểm thử: xem có “chạy” tốt không nhằm đẩm bảo cácKịch bản kiểm thử hoạt động đúng yêu cầu, thể hiện đúng ý đồ cqua các bước kiểmtra

Thành lập các bộ dữ liệu ngoài dành cho các kịch bản kiểm thử: bộ dữ liệunày sẽ được các kịch bản sử dụng khi thực hiện kiềm tra tự động Việc tách riêng dữliệu cho phép dễ dàng thay đổi dữ liệu khi kiểm tra, cũng như giúp việc chỉnh sửahoặc tái sử dụng các kịch bản sau này

Xem xét và khảo sát độ bao phủ của việc kiểm tra: đảm bảo các kịch bảnkiểm thử được tạo ra bao phủ toàn bộ các bước kiểm tra theo yêu cầu

Đánh giá quá trình kiểm tra

- Mục đích: Đánh giá toàn bộ quá trình kiểm tra, bao gồm xem xét và đánh giákết quả kiểm tra, liệt kê lỗi, chỉ định các yêu cầu thay đổi, và tính toán các số liệuliên quan đến quá trình kiểm tra (chẳng hạn số giờ, thời gian kiểm tra, số lượng lỗi,phân loại lỗi )

- Đánh giá quá trình kiểm tra thường thông qua các bước sau:

Phân tích kết quả kiểm tra và đề xuất yêu cầu sửa chữa: Chỉ định và đánh giá

sự khác biệt giữa kết quả mong chờ và kết quả kiểm tra thực tế, tổng hợp và gửithông tin yêu cầu sửa chữa đến những người có trách nhiệm trong dự án, lưu trữ đểkiểm tra sau đó

Đánh giá độ bao phủ: Xác định quá trình kiểm tra có đạt được độ bao phủ yêucầu hay không, tỷ lệ yêu cầu đã được kiểm tra (tính trên các yêu cầu của phần mềm

và số lượng mã nguồn đã viết)

Trang 33

Phân tích lỗi: Đưa ra số liệu phục vụ cho việc cải tiến các qui trình phát triển,giảm sai sót cho các chu kỳ phát triển và kiểm tra sau đó Ví dụ: Tính toán tỷ lệ phátsinh lỗi, xu hướng gây ra lỗi, những lỗi "ngoan cố" hoặc thường xuyên tái xuất hiện.

Xác định quá trình kiểm tra có đạt yêu cầu hay không: Phân tích đánh giá đểxem các Test Case và chiến lược kiểm tra đã thiết kế có bao phủ hết những điểmcần kiểm tra hay không? Kiểm tra có đạt yêu cầu dự án không? Từ những kết quảnày, kiểm tra viên có thể sẽ phải thay đổi chiến lược hoặc cách thức kiểm tra

 Báo cáo tổng hợp: Tổng hợp kết quả các bước ở trên và phải được gửi chotất cả những người có liên quan

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

Bảng 1.5: Ưu nhược điểm của kiểm thử tự động

- 70% nhanh hơn so với kiểm tra thủ

công

- Test coverage rộng hơn

- Kết quả đáng tin cậy

- Kiểm tra thường xuyên và triệt để

- Mất chi phí tạo các script để thực hiệnkiểm thử tự động

- Tốn chi phí cho bảo trì kịch bản kiểmthử

- Đòi hỏi kiểm thử viên phải có kỹ năngtạo các Kịch bản kiểm thử tự động

- Không áp dụng được trong việc tìm lỗimới của phần mềm

Trang 34

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

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

Kiểm thử hiệu năng là tiến trình thu thập và phân tích thông tin mà trong đó

dữ liệu đo lường được tập để dự đoán khi nào các mức tải sẽ vượt quá khả năngchịu đựng của nguồn tài nguyên hệ thống

Trong tiến trình này ta sẽ tập hợp các giá trị chuẩn Các giá trị này được sửdụng để xây dựng các kịch bản kiểm thử tải và quá tải khác nhau Các số liệu chuẩn

đó cũng được sử dụng như ranh giới giúp ta phát hiện khi nào hiệu năng hệ thôngđược cải thiện hoặc bắt đầu giảm đi

Kiểm thử hiệu năng mô phỏng các hoạt động bình thường của người sử dụng.Kết quả của các ca kiểm thử này cung cấp cho lập trình viên hiểu biết sâu sắc vềhiệu năng và thời gian đáp ứng của hệ thống trong các điều kiện thực tế

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

- Sức tải công việc: Sức tải công việc (workload) là lượng xử lý lưu thôngđược yêu cầu của một hệ thống Để đánh giá sức tải của một hệ thống, ba yếu tố cầnđược xem xét: người sử dụng, ứng dụng và nguồn tài nguyên Với sự hiểu biết về sốlượng người sử dụng (cùng với các hoạt động phổ biến của họ), các yêu cầu ứngdụng xử lý các hoạt động của người sử dụng và yêu cầu về nguồn tài nguyên của hệthống, có thể tính được sức tải của hệ thống

- Môi trường của hệ thống và nguồn tài nguyên có sẵn: Có ba thành phần cơbản biểu diễn nguồn tài nguyên liên quan trong bất kỳ giao tác trực tuyến: trìnhduyệt phía khách hàng, mạng và trình chủ Môi trường và nguồn tài nguyên liênquan trong một số ứng dụng web bao gồm một số hoặc tất cả các thành phần sau:

Trang 35

- Thời gian đáp ứng của hệ thống: Thời gian đáp ứng là thời gian trôi qua giữa

sự kết thúc của một yêu cầu trên máy tính và bắt đầu của sự đáp ứng, ví dụ thời giangiữa tín hiệu kết thúc một yêu cầu và sự hiển thị ký tự đầu tiên trên máy tính củangười sử dụng Trong phạm vi của các ứng dụng web, thời gian đáp ứng có thểđược đo lường bởi khoảng thời gian khi người dùng nhấp vào một nút hay một liênkết đến khi trình duyệt bắt đầu hiển thị trang kết quả

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

Thiết kế môi trường kiểm thử

Những hoạt động này có thể được thực hiện bằng cách làm theo các bước sau:

- Nắm bắt các chức năng của hệ thống và quy trình kinh doanh

- Nắm bắt các hoạt động của người dùng

- Nắm bắt được kiến trúc logic và vật lý

Khi dữ liệu thử đã được chuẩn bị, ta cần thực hiện một vài bước sau:

- Cấu hình môi trường của hệ thống cần kiểm thử

- Cấu hình môi trường kiểm thử

- Chuẩn bị nguồn tài nguyên mạng

- Cấu hình các trình giám sát hiệu năng

- Xác định các độ đo để giám sát và thu thập

Giai đoạn chuẩn bị

- Xác định hiệu năng chấp nhận tiêu chuẩn

- Thiết kế các kịch bản kiểm thử

Lập kế hoạch kiểm thử

- Thiết lập mục tiêu kiểm thử

Tỷ lệ yêu cầu của các trang web tĩnh mà thời gian đáp ứng có thể chấp nhậnđược

Tỷ lệ yêu cầu của các kịch bản mà thời gian đáp ứng có thể chấp nhận được

Các kiểm thử ranh giới mà hệ thống có khả năng xử lý

Kiểm thử cao điểm mà hệ thống phải có khả năng xử lý

Tỷ lệ đột biến mà hệ thống phải có khả năng xử lý

Khoảng chấp nhận: áp đặt tải 25%

Trang 36

Số lượng mỗi loại người sử dụng

Số lượng lớn nhất mỗi loại người sử dụng đồng thời

Tỷ lệ người sử dụng đồng thời mỗi loại trong một khoảng thời gian

Thời gian các phiên làm việc của người sử dụng mỗi loại

Số lượng mỗi loại hoạt động duy nhất được thực hiện bởi người sử dụng

- Sức tải của ứng dụng: Các hoạt động có thể được thể hiện về mặt tốc độ

của dịch vụ như số giao tác trên một giây hay tốc độ truyền dữ liệu, thường đượcbiểu hiện dưới dạng kb/s, Tỷ lệ các trang được yêu cầu bởi người dùng, các thao tácđược yêu cầu bởi người sử dụng hay bất kỳ yêu cầu nào đối với hệ thống, ứng dụngnhằm đáp ứng yêu cầu của người sử dụng

- Đơn vị đo hiệu năng: Các độ đo phổ biến:

Số giao dịch trên mỗi giây (Transactions Per Second)

Số yêu cầu trên mỗi giây (Hits Per Second)

Kết nối đồng thời: Số lượng kết nối được mở đồng thời

Thông lượng: Lượng dữ liệu mà trình chủ xử lý (KB/s)

- Thực thi các kiểm thử nào và khi nào thì bắt đầu: Tương tự như các kiểm

thử khác, kiểm thử hiệu năng nên được bắt đầu sớm nhất có thể và nên được lặp lạicàng nhiều càng tốt Giải quyết các lỗi về hiệu năng và sửa lỗi sớm trong giai đoạnphát triển sẽ dễ dàng hơn và giảm chi phí, Một vấn đề hiệu năng được phát hiệnsớm, lập trình viên sẽ có nhiều thời gian hơn để tìm giải pháp và kiểm tra xem giảipháp có giải quyết được vấn đề

Một số yêu cầu cần phải đạt được trước khi kiểm thử tải và có thể bắt đầu:

Phần cứng cần phải được cài đặt và vận hành tốt

Trang 37

Mạng phải hoạt động tốt

Các phần mềm trình chủ cần thiết cho các ứng dụng phải được cài đặt và vậnhành tốt

Chức năng của ứng dụng đang được kiểm thử nên được hoàn thành

Các kiểm thử, các công cụ và các script cần phải được phát triển hay đượctích hợp vào script kiểm thử

1.7 Kiểm thử ứng dụng web

1.7

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

Các ứng dụng web càng ngày càng trở nên phổ biến và phát triển mạnh mẽ,nhằm đáp ứng tối đa những đòi hỏi của người dùng khi họ bật trình duyệt web củamình lên Gần như những gì phần mềm truyền thống làm được thì ứng dụng webcũng có thể làm được Và cho đến nay, các ứng dụng web đóng vai trò quyết địnhtrong thương mại điện tử và trao đổi thông tin

Muốn tạo ra được ứng dụng web có hiệu năng cao, đáng tin cậy như vậy thì saukhâu tạo 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ẽ

Về mặt bản chất, các ứng dụng web cũng là phần mềm, nên các loại kiểm thử ápdụng cho phần mềm cũng được áp dụng khi kiểm thử ứng dụng web Tuy nhiên,người kiểm thử cũng không thể áp dụng một cách cứng nhắc các phương pháp đó,

mà cần phải linh hoạt, biến nó trở nên phù hợp, thích ứng với kiểm thử ứng dụngweb

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

Một ứng dụng web thường có rất nhiều nhóm người sử dụng với nhiều nềntảng khác nhau (hệ điều hành, trình duyệt…), người ta cũng rất khó có thể đoán được

số lượng người sử dụng một ứng dụng web là bao nhiêu, rồi thời gian hồi đáp yêucầu của người sử dụng đối với ứng dụng là một trong những yếu tố mang tính quyếtđịnh thành bại của ứng dụng…dẫn đến việc kiểm thử ứng dụng web sẽ có nhữngkhác biệt nhất định so với kiểm thử phần mềm truyền thống Trong đó, kiểm thửgiao diện người dùng, kiểm thử hiệu năng và kiểm thử bảo mật là những loại kiểmthử mà ứng dụng web cần chú trọng

Trang 38

Kiểm thử chức năng (Functionality Test)

- Kiểm tra nội dung trình bày trên trang web: Mỗi thành phần button, textbox,

image, đường dẫn trên page và bố cục page cần tuân theo chính xác kích thước và vịtrí mà bản thiết kế UI quy định

- Kiểm tra các đường dẫn & menu: Kiểm tra tất cả đường dẫn nội bộ (internal

link) và đường dẫn ngoại bộ (external link) xem chúng có hoạt động không, có trỏđến đúng địa chỉ mong muốn không

- Kiểm tra các form nhập dữ liệu: Form nhập liệu là nơi trình duyệt tiếp nhận

thông tin người dùng nhập vào để chuyển đến máy chủ Ngoài ra, quá trình chuyểntải thông tin từ trình duyệt đến máy chủ cũng cần bảo đảm là thông tin gửi đi khớpvới những gì người dùng nhập vào, không thất lạc và bị sai lệch

- Xác minh HTML/CSS: việc xác minh này đặc biệt quan trọng khi lập trình

viên thực hiện tối ưu hóa trang web cho các công cụ tìm kiếm, chủ yếu liên quan tớilỗi cú pháp HTML Kiểm thử viên sẽ kiểm tra xem trang web có được nhận diện bởicác công cụ tìm kiếm khác nhau hay không (ví dụ: Google, Yahoo, Bing…)

- Kiểm tra cookie (browser) & session (server): Người dùng có thể tùy chỉnh

trên trình duyệt nhằm quản lý cookies, thực hiện các thao tác cho phép lưu, hoặcxóa, hoặc chặn…để kiểm tra các tính năng lưu hoặc không lưu trạng thái đăng nhập,tính năng bảo mật của ứng dụng web

- Kiểm tra bản dịch (localization): Nếu ứng dụng cần kiểm thử hỗ trợ đa ngôn

ngữ, kiểm thử bản dịch từng ngôn ngữ là cần thiết để bảo đảm quá trình dịch và gắnráp không có sự cố “râu ông này cắm cằm bà kia”, hoặc bản dịch không sát nghĩa,

bị tràn dòng khi dịch, v…v

- Kiểm tra dữ liệu gửi về máy chủ được xử lý đúng: Cần bảo đảm các hoạt

động của ứng dụng web trên máy chủ có tuân thủ business rule và bản thiết kế.Kiểm tra bộ nhớ có bị rò rỉ hoặc cache máy chủ có được thu dọn đều đặn với mỗiphiên xử lý hay không

Trang 39

- Kiểm tra database: Kiểm tra dữ liệu truy xuất ra có khớp với giá trị lưu trữ,

kiểm tra dữ liệu ghi xuống có đúng với những gì máy chủ nhận được hay không

Kiểm thử tính khả dụng (Usability Test)

Tính khả dụng của trang web được định nghĩa là trang web dễ sử dụng, cóhướng dẫn sử dụng rõ ràng, rành mạch, mỗi trang đều có menu chính và menu nàyphải nhất quán

- Kiểm tra nội dung

- Kiểm tra các logic liên kết và hướng dẫn

- Kiểm tra văn hóa khu vực và đối tượng sử dụng

Kiểm thử khả năng tương thích (Compability test)

- Tương thích với trình duyệt (trên máy tính và điện thoại di động): Ngườidùng khác nhau có thể sử dụng trình duyệt khác nhau tùy theo nhu cầu, thói quen…của họ Cần phải kiểm tra ứng dụng web trên càng nhiều trình duyệt càng tốt (IE,Firefox, Chrome, Safari, Opera…) để kiểm tra sự tương thích Kiểm tra trên cả cácphiên bản khác nhau của trình duyệt Kiểm tra trên cả trình duyệt của thiết bị điệnthoại thông minh Nếu ứng dụng chạy tốt hơn, hoặc có ưu tiên tương thích hơn vớitrình duyệt nào đó thì cần có thông báo tới người dùng

- Tương thích với hệ điều hành: một số chức năng của ứng dụng có thể khôngtương thích với một số hệ điều hành, hoặc có những lưu ý khác khi sử dụng, điềunày cần phải được kiểm tra kỹ và thông báo cho người dùng được biết

- Tương thích với các thiết bị ngoại vi (máy in…): khi người dùng có lệnh intrang thì phải đảm bảo tính chính xác của phông, cỡ chữ, cỡ giấy… mà người dùng

đã chọn

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

Các giao diện chính bao gồm:

 Giao diện máy chủ web và máy chủ ứng dụng

 Giao diện máy chủ ứng dụng và giao diện máy chủ dữ liệu

Trang 40

Kiểm tra tất cả các tương tác giữa các máy chủ Nếu máy chủ dữ liệu hoặc máychủ web trả lại bất kỳ báo lỗi nào cho bất kỳ truy vấn nào từ máy chủ ứng dụng thìngay lập tức máy chủ ứng dụng phải nhận được và cho hiển thị cảnh báo tới ngườidùng Kiểm tra các trường hợp giao dịch bị ngắt đột ngột do người dùng, hoặc kếtnối tới máy chủ bị gián đoạn, bị khởi động lại…

Kiểm thử hiệu năng (Performance Test)

- Kiểm thử tải (load test): mỗi web app khi xây dựng, dựa vào nhu cầu và khảnăng đáp ứng cấu hình máy chủ sẽ có một yêu cầu tối thiểu cho web app về cácthông số sau: lượng xử lý truy cập cho phép trong cùng một lúc ( Throughput), thờigian tối thiểu cho mỗi request/response (response time), lưu lượng tối đa truy cập(query) vào máy chủ, đường truyền (bandwidth, lag latency) và hiệu suất xử lýback-end (Resource utilization) Để thực hiện load test, ta cần thu thập yêu cầu tảitrọng cho web app từ nhà cung cấp và cấu hình máy chủ Ta cần giả lập môi trườngcài đặt web app và học cách dùng công cụ kiểm tra hiệu năng để giả lập các lưulượng truy cập (Vd: LoadRunner, Jmeter) Để vượt qua loại kiểm thử này, web appcần chạy đúng và không xảy ra lỗi trong tất cả hàm được kiểm thử với giả lập trọngtải bằng hoặc dưới yêu cầu tối thiểu

- Kiểm thử sức chịu đựng (stress test): tương tự như load test nhưng ta cầntăng lưu lượng giả lập vượt quá mức yêu cầu tối thiểu và tiến hành đo đạc thời gian

hệ thống có thể chịu được trước khi xảy ra sự cố nghiêm trọng Thông thường, máychủ sẽ gia tăng lượng response lỗi (request timeout), xử lý chậm chạp dần tỷ lệthuận với lượng truy cập quá tải trước khi thực sự xảy ra chết hệ thống (downtime).Kết quả đo đạc sẽ là thông tin quý giá để đội ngũ hỗ trợ có kế hoạch hồi phục tốtkhi thực tế xảy ra

- Kiểm thử cơ sở (baseline test): Kiểm thử cơ sở là kiểm thử được xây dựngđánh giá hiệu năng ứng dụng với tải một người sử dụng Kịch bản kiểm thử có thểđược tạo ra với thời gian nghĩ (think time) trong thực tế và những cài đặt khác giống

sử dụng trong thời gian thực

- Kiểm thử chuẩn (benchmark test): Kiểm thử chuẩn là kiểm thử được tiếnhành để đo lường hiệu năng của ứng dụng trong một điều kiện tải thấp Thôngthường kiểm thử chuẩn chiếm 15 – 20 % mức tải mục tiêu

Ngày đăng: 07/04/2020, 15:31

TỪ KHÓA LIÊN QUAN

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

w