Sử dụng 2 công tụ tự động để đưa ra được kết quả so sánh giữa thủ công và tự động, so sánh độ chính xác của 2 công cụ tự động.Lựa chọn công cụ kiểm thử tự động là một trong những bước quan trọng nhất trước khi bắt đầu tự động hóa cho một dự án bất kỳ. Việc lựa chọn Công cụ Kiểm thử phần lớn phụ thuộc vào công nghệ mà ứng dụng đang kiểm thử được xây dựng. Đôi khi bạn có thể gặp khó khăn nhỏ trong quá trình thực hiện kiểm thử do công cụ không có khả năng xác định các đối tượng trong ứng dụng. Nếu công cụ này hỗ trợ các đối tượng được sử dụng trong hệ thống cần kiểm thử và cung cấp cho bạn các tính năng yêu cầu, thì việc tự động hóa sẽ trở nên dễ dàng và hiệu quả.
Trang 1PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1 Thông tin chung
Tên đề tài: Ứng dụng kiểm thử tự động vào website Quản lý Văn bằng chứng chỉ
Họ và tên sinh viên:
Điện thoại liên lạc:
Email: @gmail.com
Lớp: Công Nghệ Phần Mềm K63 – B
Hệ đào tạo: Đại học chính quy
Đồ án tốt nghiệp được thực hiện tại : Hà Nội
Thời gian làm ĐATN: 2022
2 Mục tiêu của ĐATN
Tìm hiểu quy trình thử nghiệm tự động
Tìm hiểu, cài đặt, sử dụng công cụ kiểm thử tự động Selenium IDE và Katalon Studio
Ứng dụng kiểm thử tự động vào kiểm thử website Quản lý văn bằng chứng chỉ
3 Các nhiệm vụ cụ thể của ĐATN
1 Nghiên cứu lý thuyết tổng quan về kiểm thử
2 Công cụ kiểm thử tự động Selenium IDE và công cụ Katalon Studio
3 Giới thiệu về website,đặc tả các chức năng kiểm thử và dựa vào đặc tả viết testcase
4 Triển khai thực nghiệm
4 Lời cam đoan của sinh viên :
Tôi – - - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của Tiến sĩ -
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳcông trình nào khác
Hà Nội, ngày tháng năm
Tác giả ĐATN
I
Trang 25 Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép
bảo vệ:
Hà Nội, ngày tháng năm
Cán bộ hướng dẫn
Bùi My II Lớp DCCTPM63B
Trang 3TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Sau một thời gian tìm hiểu, nghiên cứu và hoàn thành Đồ án tốt nghiệp với đề tài
“Ứng dụng kiểm thử tự động vào website Quản lý Văn bằng chứng chỉ”, em đã tập trung đisâu vào các mục tiêu sau:
Tìm hiểu về quy trình kiểm thử phần mềm.Vai trò, mục tiêu và các kỹ thuật kiểm
thử phần mềm
Tìm hiểu về kiểm thử tự động, nghiên cứu và áp dụng công cụ kiểm thử tự động
vào website
Để mô tả chi tiết hơn, nội dung báo cáo của em bao gồm các chương như sau:
Chương 1:Tổng quan về phần mềm và kiểm thử phần mềm.Chương này là cái nhìn tổng quát về kiểm thử phần mềm, các khái niệm cơ bản về kiểm thử phần mềm, các quy
tắc trong kiểm thử và các phương pháp kiểm thử phần mềm
Chương 2:Tìm hiểu về công cụ kiểm thử tự động.Tìm hiểu và nghiên cứu sử dụng
công cụ Selenium IDE, tìm hiểu và nghiên cứu sử dụng công cụ Katalon Studio
Chương 3: Thiết kế kịch bản kiểm thử website Quản lý văn bằng chứng chỉ.Trong
chương này sẽ tập trung vào mô tả, giới thiệu qua hệ thống Tìm hiểu nghiệp vụ của hệ
thống, tài liệu đặc tả và dựa vào tài liệu đặc tả để thực hiện viết testcase cho các chức
năng( Đăng nhập, Tra cứu, Thêm mới khóa tốt nghiệp, Quản lý người dùng)
Chương 4: Thực thi kiểm thử Chương này trình bày các bước thử nghiệm, đưa ra
kết quả và báo cáo thử nghiệm
Cuối cùng là kết luận và hướng phát triển.Đưa ra kết quả thực hiện và những điều
thiếu sót cần được khắc phục để bản báo cáo được hoàn thiện hơn cũng như đưa ra hướng
phát triển để có thể hoàn thiện được kỹ năng, kiến thức và kinh nghiệm của bản thân trong tương lai
Bùi My III Lớp DCCTPM63B
Trang 4LỜI CẢM ƠN
Với lòng biết ơn sâu sắc, đầu tiên cho phép em gửi lời cảm ơn chân thành đến quý
thầy cô, khoa Công nghệ thông tin trường - nói chung và tập thể quý thầy cô bộ môn
Công nghệ phần mềm nói riêng đã hết lòng truyền đạt cho em những kiến thức quý báu
trong suốt thời gian học tập tại trường Đặc biệt em cũng xin chân thành cảm ơn thầy, T.S
– cán bộ giảng dạy bộ môn Công nghệ phần mềm, người đã trực tiếp hướng dẫn em làm đồ
án tốt nghiệp trong suốt thời gian làm đề tài, đã tận tụy chỉ bảo, định hướng cho em hoàn
thiện đồ án tốt nghiệp này Cuối cùng em xin gửi lời chúc sức khỏe đến toàn thể quý thầy
cô Mong thầy cô thật nhiều sức khỏe để tiếp tục sự nghiệp giảng dạy và truyền đạt thật
nhiều kiến thức quý báu cho các thế hệ sinh viên tiếp theo Trong quá trình thực hiện đồ
án, do kinh nghiệm và khả năng của bản thân em còn hạn chế sẽ không tránh khỏi những
thiếu xót, em rất mong nhận được sự thông cảm và đóng góp của các quý thầy cô cùng các bạn để đồ án của em có thể hoàn thiện hơn Em xin trân thành cảm ơn!
Hà Nội, ngày tháng năm 2022
Sinh viên
Bùi My IV Lớp DCCTPM63B
Trang 5MỤC LỤC
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP I TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP III LỜI CẢM ƠN IV MỤC LỤC V DANH MỤC HÌNH VẼ IX DANH MỤC BẢNG BIỂU XII DANH MỤC TỪ VIẾT TẮT XIII
MỞ ĐẦU 1
CHƯƠNG 1 PHẦN MỀM VÀ KIỂM THỬ PHẦN MỀM 3
1.1 Phần mềm và khái niệm liên quan 3
1.1.1 Phần mềm 3
1.1.2 Lỗi phần mềm 3
1.1.3 Các mức độ nghiêm trọng của lỗi 4
1.1.4 Yêu cầu của khách hàng 4
1.1.5 Đặc tả yêu cầu phần mềm 4
1.1.6 Chất lượng và độ tin cậy của phần mềm 5
1.2 Khái niệm về kiểm thử phần mềm 5
1.2.1 Thuật ngữ liên quan đến kiểm thử 6
1.2.2 Mục tiêu và vai trò của kiểm thử 7
1.2.3 Các phương pháp kiểm thử phần mềm 7
1.2.4 Các mức kiểm thử phần mềm 9
1.2.5 Các kỹ thuật kiểm thử 11
1.2.6 Ca kiểm thử 13
Bùi My V Lớp DCCTPM63B
Trang 61.3 Kiểm thử thủ công(Manual Test) 15
1.3.1 Kiểm thử thủ công là gì? 15
1.3.2 Ưu điểm: 15
1.3.3 Nhược điểm: 15
1.4 Kiểm thử tự động 15
1.4.1 Kiểm thử tự động là gì? 15
1.4.2 Tại sao cần kiểm thử tự động 16
1.4.3 Quy trình kiểm thử tự động 16
1.4.4 Mục đích của kiểm thử tự động 17
1.5 Kết chương 17
CHƯƠNG 2 CÔNG CỤ KIỂM THỬ TỰ ĐỘNG 18
2.1 Công cụ kiểm thử Selenium IDE 18
2.1.1 Giới thiệu 18
2.1.2 Hướng dẫn cài đặt Selenium IDE trên trình duyệt Firefox 18
2.1.3 Một số chức năng trong Selenium IDE 24
2.1.4 Thao tác cơ bản với Selenium IDE 25
2.1.5 Các câu lệnh trong Selenium IDE 25
2.2 Công cụ kiểm thử Katalon Studio 27
2.2.1 Katalon Studio là gì? 27
2.2.2 Vì sao nên sử dụng Katalon Studio? 27
2.2.3 Cài đặt Katalon Studio 27
2.2.4 Thanh công cụ và chế độ xem của Katalon Studio 31
2.2.5 Cách viết một kịch bản với Katalon Studio 35
2.2.6 Testsuit 39
2.2.7 Data file 39
2.2.8 Reports 40 Bùi My VI Lớp DCCTPM63B
Trang 72.3 Kết chương 40
CHƯƠNG 3 THIẾT KẾ KỊCH BẢN KIỂM THỬ WEBSITE 41
3.1 Giới thiệu Website 41
3.1.1 Ưu điểm 41
3.1.2 Mô hình hệ thống: 42
3.1.3 Đối tượng sử dụng và chức năng của website 42
3.1.4 Quy trình quản lý của hệ thống 45
3.2 Mô tả 45
3.2.1 Đặc tả chức năng đăng nhập 46
3.2.2 Đặc tả chức năng thêm mới Khoá tốt nghiệp 46
3.2.3 Đặc tả chức năng Tra cứu văn bằng chứng chỉ 47
3.2.4 Đặc tả chức năng quản lý Người dùng 48
3.3 Thiết kế testcase 49
3.3.1 Testcase Đăng nhập 49
3.3.2 Testcase Thêm mới khoá tốt nghiệp 51
3.3.3 Testcase Tra cứu văn bằng chứng chỉ 55
3.3.4 Test case quản lý tài khoản người dùng 58
3.4 Kết chương 59
CHƯƠNG 4 THỰC HIỆN KIỂM THỬ VÀ KẾT QUẢ 60
4.1 Kiểm thử thủ công 60
4.1.1 Chức năng Đăng nhập 60
4.1.2 Chức năng Thêm mới khóa tốt nghiệp 60
4.1.3 Chức năng Tra cứu 61
4.1.4 Chức năng Quản lý người dùng 62
4.1.5 Kết quả thực hiện kiểm thử thủ công 63
4.2 Kiểm thử bằng Selenium IDE 63 Bùi My VII Lớp DCCTPM63B
Trang 84.2.1 Chức năng Đăng nhập 63
4.2.2 Chức năng Thêm mới Khoá tốt nghiệp 65
4.2.3 Chức năng Tra cứu 67
4.2.4 Chức năng Quản lý người dùng 69
4.2.5 Kết quả kiểm thử bằng Selenium IDE 71
4.3 Thực thi kiểm thử bằng Katalon Studio 71
4.3.1 Chức năng Đăng nhập 71
4.3.2 Chức năng Thêm mới khoá tốt nghiệp 73
4.3.3 Chức năng Tra cứu 75
4.3.4 Chức năng Quản lý người dùng 76
4.3.5 Test Reports 78
4.3.6 Kết quả kiểm thử bằng Katalon Studio 81
4.4 Kết quả 81
4.5 Kết chương 84
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 85
1.Kết luận 85
2.Hướng phát triển 85
PHỤ LỤC 87
Bùi My VIII Lớp DCCTPM63B
Trang 9DANH MỤC HÌNH VẼ
Hình 1-1: Kiểm thử hộp đen 8
Hình 1-2: Kiểm thử hộp trắng 8
Hình 1-3: Các mức kiểm thử phần mềm 9
Hình 1-4: Kiểm thử đơn vị 9
Hình 1-5: Kiểm thử tích hợp 10
Hình 1-6: Kiểm thử hệ thống 10
Hình 1-7: Kiểm thử chấp nhận 11
Hình 1-8: Chiến lược kiểm thử tự động 16
Hình 2-1: Giao diện tải xuống Firefox 19
Hình 2-2: Cài đặt Firefox 19
Hình 2-3: Giao diện Firefox 20
Hình 2-4: Trang web của Selenium 20
Hình 2-5: Tải xuống Selenium IDE 21
Hình 2-6: Thêm Selenium IDE vào trình duyệt firefox 21
Hình 2-7: Xác nhận thêm Selenium IDE vào Firefox 22
Hình 2-8: : Thêm thành công Selenium IDE 22
Hình 2-9: : Khởi động Selenium IDE 23
Hình 2-10: Giao diện khởi chạy Selenium IDE 23
Hình 2-11: Giải thích một số chức năng, ký hiệu trong Selenium IDE 24
Hình 2-12: Katalon studio là gì 27
Hình 2-13: Giao diện trang Web Katalon.com 28
Hình 2-14: Giao diện tạo tài khoản trên Katalon Studio 28
Hình 2-15: Giao diện trang Dowload của Katalon Studio 29
Hình 2-16: : Ứng dụng Katalon trên máy tính 29
Hình 2-17: :Hình ảnh Katalon Studio khi khởi động 30
Hình 2-18: Giao diện Katalon Studio khi đăng nhập lần đầu 30
Hình 2-19: Giao diện chính của Katalon Studio 31
Hình 2-20: Thanh công cụ của Katalon Studio 31
Hình 2-21: Các chức năng trong Test Explorer 33
Hình 2-22: Giao diện của Testcase trong Katalon Studio 34
Bùi My IX Lớp DCCTPM63B
Trang 10Hình 2-23: Thêm URL của trang web cần test 36
Hình 2-24: : Sử dụng phím tắt để bắt đối tượng 37
Hình 2-25: Bảng thao tác của các đối tượng 37
Hình 2-26: Testcase dưới dạng script 38
Hình 2-27: Tạo testsuit mới 39
Hình 2-28: Thêm testcase trong testsuit 39
Hình 2-29: Reports katalon 40
Hình 3-1: Giao diện trang chủ website VBCC 41
Hình 3-2: Sơ đồ chức năng của hệ thống 43
Hình 3-3: Sơ đồ usecase của hệ thống 45
Hình 4-1: Kết quả thêm mới khóa tốt nghiệp 61
Hình 4-2: Kết quả tra cứu thành công 62
Hình 4-3: Kết quả test thủ công 63
Hình 4-4: Hộp soạn thảo tập lệnh thử nghiệm 64
Hình 4-5: Kịch bản thử nghiệm 64
Hình 4-6: Kết quả kiểm thử case đăng nhập thành công 65
Hình 4-7: Kịch bản kiểm thử 66
Hình 4-8: Kết quả kiểm thử 67
Hình 4-9: Kịch bản kiểm thử 68
Hình 4-10: Kết quả kiểm thử tra cứu thành công 69
Hình 4-11: Kịch bản kiểm thử 70
Hình 4-12: Kết quả kiểm thử 70
Hình 4-13:Kết quả kiểm thử bằng Selenium IDE 71
Hình 4-14: Lấy ID các đối tượng 72
Hình 4-15: Kịch bản test 73
Hình 4-16: Kết quả kiểm thử đăng nhập thành công 73
Hình 4-17: Tạo kịch bản kiểm thử 74
Hình 4-18: Kết quả kiểm thử 74
Hình 4-19: Kịch bản kiểm thử 75
Hình 4-20: Kết qủa kiểm thử tra cứu thành công 76
Hình 4-21: Kịch bản kiểm thử 77
Hình 4-22: Kết quả kiểm thử 77 Bùi My X Lớp DCCTPM63B
Trang 11Hình 4-23: Báo cáo chức năng đăng nhập 78
Hình 4-24: Báo cáo chức năng Thêm mới 79
Hình 4-25: Báo cáo chức năng tra cứu 80
Hình 4-26:Báo cáo chức năng quản lý người dùng 81
Hình 4-27: Kết quả kiểm thử bằng Katalon 81
Hình 4-28: Kết quả 82
Hình 4-29: So sánh kết quả kiểm thử Đăng nhập 83
Bùi My XI Lớp DCCTPM63B
Trang 12DANH MỤC BẢNG BIỂU
Bảng 1-1: Mức độ quan trọng của lỗi 4
Bảng 1-2: Cấu trúc bảng quyết định 13
Bảng 2-1: Các lệnh dùng trong Selenium IDE 26
Bảng 2-2: Một số chức năng trong Katalon Studio 33
Bảng 2-3: Chi tiết các chức năng trong Test Explorer 34
Bảng 3-1: Đặc tả chức năng đăng nhập 46
Bảng 3-2: Đặc tả chức năng thêm mới Khóa tốt nghiệp 47
Bảng 3-3:Đặc tả chức năng tra cứu văn bằng 48
Bảng 3-4: Bảng đặc tả chức năng quản lý người dùng 49
Bảng 3-5: Bảng quyết định chức năng đăng nhập 50
Bảng 3-6: Testcase chức năng đăng nhập 51
Bảng 3-7:Phân vùng tương đương chức năng thêm mới 52
Bảng 3-8: Testcase Thêm mới 55
Bảng 3-9:Bảng quyết định chức năng tra cứu 55
Bảng 3-10:Test case tra cứu văn bằng 58
Bảng 3-11:Phương pháp phân vùng tương đương 58
Bảng 3-12: Testcase quản lý tài khoản người dùng 59
Bảng 4-1: Điểm mạnh, điểm yếu của hai phương pháp kiểm thử 83
Bảng 4-2: Điểm mạnh , điểm yếu của hai công cụ 84
Bùi My XII Lớp DCCTPM63B
Trang 13DANH MỤC TỪ VIẾT TẮT
St
t Từ viết tắt Tên tiếng anh Tên tiếng việt
1 API Application Programming
2 CSV Comma-Separated Values Các giá trị được phân tách bằng
dấu phẩy
3 GUI Graphical User Interface Giao diện đồ hoạ người dùng
4 CI/CD Continuous Integration
Continuous Delivery Quá trình làm việc liên tục và tự động hóa của phần mềm
5 CNTT Information Technology Công nghệ thông tin
8 IDE Intergrated Development
Environment Môi trường phát triển tích hợp
9 ISTQB International Software Testing
Qualifications Board Hội đồng Chứng chỉ Kiểm thử Phần mềm Quốc tế
12 URL Uniform Resource Locator Địa chỉ web
13 SQL Structured Query Language Ngôn ngữ truy vấn có cấu trúc
Bùi My XIII Lớp DCCTPM63B
Trang 14MỞ ĐẦU
Ngày nay công nghệ thông tin nói chung và tin học nói riêng đang đóng góp một vai trò quan trọng trong đời sống con người Các thành tựu đã, đang và sẽ được ứng dụng phát triển trong lĩnh vực kinh tế, chính trị, quân sự của các quốc gia Nếu như trước đây công
nghệ chỉ được sử dụng nhằm mục đích nghe, gọi và nhắn tin là chính thì giờ đây với sự
phát triển của công nghệ thông tin cùng với đó là sự ra đời của hàng loạt các phần mềm thì
nó đã trở thành cánh tay đắc lực cho con người trên nhiều lĩnh vực đời sống xã hội
Cùng với nhu cầu sử dụng thiết bị của người tiêu thụ thì hiện tại đã có rất nhiều các
phần mềm khác nhau đáp ứng mọi công việc Khả năng cập nhật và bảo trì ứng dụng mà
không phải phân phối và cài đặt phần mềm trên hàng ngàn máy tính là lý do chính cho sự
phổ biến của nó Chính nhờ vào sự phổ biến trên mà các ứng dụng giờ đây không chỉ là
những ứng dụng đơn giản nữa, mà việc xây dựng các ứng dụng đã trở nên phức tạp hơn rấtnhiều Các phần mềm được dùng để thực hiện bán hàng, đấu giá trực tuyến, quản trị quan
hệ khách hàng,phần mềm giáo dục… Tuy nhiên để triển khai được chúng thì có rất nhiều
vấn đề sẽ phát sinh và ảnh hưởng trực tiếp đến các ứng dụng như: Tính bảo mật, hiệu suất, các thành phần của ứng dụng Web, giao diện, chức năng, khả năng tương thích của ứng
dụng Web với trình duyệt và hệ điều hành, …
Vì vậy em đã chọn đề tài nghiên cứu trong lĩnh vực kiểm thử ,xong trong quá trình
tìm hiểu em nhận thấy kiểm thử ngoài việc thực hiện kiểm tra dựa trên các test case đề ra
một cách thủ công (Manual testing) còn có một phương pháp gọi là kiểm thử tự động
(Automation testing) để tối ưu hóa các bước kiểm thử, giúp cho công việc kiểm thử đạt kết quả cao nhất Nhưng hiện nay trên thị trường có rất nhiều mã nguồn, công cụ kiểm thử tự
động khác nhau, vậy phần mềm nào mới là phù hợp nhất với người dùng? Do đó trong
phạm vị của đồ án này nên em sẽ thực hiện nghiên cứu, ứng dụng hai công cụ vào trong
công tác kiểm thử phần mềm là Selenium IDE và Katalon Studio Đây đều là công cụ kiểmthử chức năng của phần mềm, được tự động hóa cho tester và người phát triển
3.Tính cấp thiết, ý nghĩa khoa học và thực tiễn của đề tài
Từ những phân tích trên, ý tưởng cho đồ án này là đưa ra cho người sử dụng cái nhìn
từ tổng quan đến chi tiết về kiểm thử để có thể đánh giá các sản phẩm của mình có đạt yêu cầu không từ đó sửa chữa cho ra các sản phẩm chất lượng
Bùi My XIV Lớp DCCTPM63B
Trang 15Trong đồ án này sẽ tập trung trình bày vào phân tích về định nghĩa, cách cài đặt,
chức năng, ưu nhược điểm của hai công cụ kiểm thử
Đây là đề tài rất hữu ích cho người dùng, tuy không phải là mới nhưng do kinh
nghiệm của em chưa nhiều và còn nhiều hạn chế cũng như sai sót mong thầy cô và các bạnđóng góp ý kiến để đề tài được hoàn thiện hơn
CHƯƠNG 1
Bùi My XV Lớp DCCTPM63B
Trang 16CHƯƠNG 1 PHẦN MỀM VÀ KIỂM THỬ PHẦN MỀM
Chương đầu tiên của đồ án đi sâu vào việc tìm hiểu các khái niệm về kiểm thử nói
chung và kiểm thử tự động nói riêng, giúp khái quát việc phân loại kiểm thử ,đưa ra các
quy trình, mức độ, các kỹ thuật trong kiểm thử phần mềm
1.1 Phần mềm và khái niệm liên quan
1.1.1 Phần mềm
Phần mềm (Software) được xem là một hệ thống các ngôn ngữ lập trình được viết
theo một trật tự, cấu trúc nhất định thành các câu lệnh, chỉ thị Không chỉ là những câu
lệnh mà phần mềm còn là các dữ liệu hay file hướng dẫn nhằm thực hiện các nhiệm vụ,
chức năng trên các thiết bị máy tính
Để thực hiện các chức năng của mình, phần mềm đã gửi các câu lệnh đến phần cứng
để nó thực hiện hoặc cung cấp dữ liệu cho các chương trình, phần mềm khác thực hiện các nhiệm vụ
1.1.2 Lỗi phần mềm
Lỗi phần mềm nhìn chung là sự không khớp giữa chương trình và đặc tả của nó, kéo theo những vấn đề xuất hiện trong các giai đoạn phát triển phần mềm
Lỗi phần mềm thường xuất hiện ở các hình thức sau đây:
Sai (Fault): Khi phần mềm gặp lỗi sẽ đưa đến những sai sót Tuy nhiên, không dễ để phát hiện ra sai sót trong quá trình phát triển phần mềm Sai lầm có thể xuất hiện ở
ngay đầu quy trình phát triển phần mềm khi người phân tích, thiết kế bỏ sót thông tindẫn tới thiếu chức năng mà lẽ ra cần phải có
Thất bại (Failure): Thất bại dễ nhận thấy nhất khi một lỗi được thực thi Chúng
thường xuất hiện dưới 2 dạng: thất bại có thể chạy được (ví dụ như mã nguồn) và
thất bại chỉ liên kết với các lỗi về nhiệm vụ Ngoài ra, có thể kể đến các thất bại liên quan tới các lỗi do bỏ quên Chúng ta có thể hạn chế thất bại ngay tại bước đầu tiên
của quy trình phát triển phần mềm nếu việc khảo sát được thực hiện tốt
Sự cố (Incident): Sự cố thường được liên kết với một thất bại Tuy nhiên nó khác với thất bại ở chỗ sự cố luôn hiển thị cho người dùng hoặc kiểm thử viên biết về sự tồn
tại của nó
Thừa: 1 số chức năng không có trong bản đặc tả yêu cầu phần mềm nhưng lại xuất
hiện trong phần mềm được xây dựng
Bùi My XVI Lớp DCCTPM63B
Trang 17Ngoài ra, còn xuất hiện 1 số lỗi phi chức năng như phần mềm khó sử dụng, tốc độ
không đáp ứng yêu cầu (vấn đề hiệu năng) hay giao diện khó nhìn cũng dễ khiến cho người
sử dụng nghĩ rằng phần mềm đang hoạt động không đúng
1.1.3 Các mức độ nghiêm trọng của lỗi
Chương trình một khi đã xuất hiện lỗi đều kéo theo những hệ luỵ nghiêm trọng Một trong những cách phân loại mức độ nghiêm trọng của lỗi thường được sử dụng là dựa trên tần suất xuất hiện: chỉ một lần, thỉnh thoảng, xuất hiện lại hay lặp đi lặp lại nhiều lần Việc phân loại mức độ nghiêm trọng của lỗi sẽ giúp kiểm thử viên cũng như lập trình viên ý
thức được đâu là lỗi cần được giải quyết trước, nhằm giảm thiểu tối đa những tổn thất về
chi phí và nâng cao chất lượng cho sản phẩm phần mềm Bảng dưới đây minh hoạ các mức
độ nghiêm trọng của lỗi dựa trên độ nghiêm trọng và hậu quả
1 Critical(Nghiêm trọng) Lỗi ở cấp độ này có nghĩa là xử lý của hệ thống bi
ngừng hoàn toàn, không thể tiến hành thêm bất kỳ xử
lý gì khác
2 Major / High (Quan trọng) Lỗi ở cấp độ này là rất nghiêm trọng và làm sập hệ
thống Tuy nhiên, một số phần của hệ thống vẫn hoạt động
3 Medium (Trung bình) Lỗi ở cấp độ này gây ra một số hành vi không mong
muốn, nhưng hệ thống vẫn hoạt động
4 Low ( Thấp ) Lỗi ở cấp độ này sẽ không gây ra bất kỳ sự cố lớn
nào của hệ thống
Bảng 1-1: Mức độ quan trọng của lỗi
1.1.4 Yêu cầu của khách hàng
Phần mềm được phát triển dựa trên nhu cầu của khách hàng Chính vì lẽ đó, các chứcnăng của phần mềm được xây dựng dựa trên việc thu thập, phân tích, khảo sát nhu cầu của khách hàng thông qua những yêu cầu cụ thể
Đối với phần mềm, yêu cầu thường được tổng hợp từ nhiều người, nhiều tổ chức có
mức độ chuyên môn và mức độ tham gia cũng như tương tác với phần mềm khác nhau
trong môi trường hoạt động của nó
1.1.5 Đặc tả yêu cầu phần mềm
Từ yêu cầu của khách hàng và những yêu cầu bắt buộc khác, đặc tả yêu cầu phần
mềm được viết ra để mô tả một cách chính xác các yêu cầu cần đáp ứng của sản phẩm
phần mềm Đây cũng chính là tài liệu cơ sở để lập trình viên, kiểm thử viên và các bộ phậnkhác dựa vào để phát triển phần mềm hoàn chỉnh, đúng với yêu cầu đặt ra ban đầu Các
khái niệm về lỗi đã nói ở mục 1.1.2 cũng chính là đề cập đến việc phần mềm sau khi xây
Bùi My XVII Lớp DCCTPM63B
Trang 18dựng hoạt động không đúng với bản đặc tả yêu cầu phần mềm Tài liệu đặc tả yêu cầu phầnmềm cũng cần cung cấp đầy đủ các thông tin về chi phí, rủi ro và lịch trình cho quá trình
phát triển sản phẩm
Đặc tả yêu cầu phần mềm được viết ra phục vụ rất nhiều đối tượng từ người dùng hệ thống, khách hàng đến các nhà phát triển và bảo trì phần mềm Do đó, tài liệu đặc tả nên
được viết bằng ngôn ngữ tự nhiên, sử dụng biểu đồ, bảng biểu để đảm bảo tính dễ hiểu, dễ
sử dụng cho tất cả các đối tượng trên
1.1.6 Chất lượng và độ tin cậy của phần mềm
Chất lượng của phần mềm trước hết là sự đáp ứng các yêu cầu đề ra trong bản đặc tả yêu cầu phần mềm Có thể kể đến các yếu tố đại diện cho chất lượng phần mềm như: tính
đúng đắn, tính hiệu quả, độ tin cậy, dễ học, dễ sử dụng, dễ bảo trì… Ta có thể thấy độ tin
cậy chỉ là một trong những yếu tố đánh giá chất lượng phần mềm Tuy nhiên người kiểm
thử lại hay nhầm lẫn giữa khái niệm chất lượng và độ tin cậy của phần mềm Sau quá trình kiểm thử đảm bảo phần mềm có thể chạy ổn định, kiểm thử viên thường sẽ cho rằng phần
mềm lúc này đã đạt chất lượng tốt
Độ tin cậy của phần mềm là xác suất để phần mềm chạy không có thất bại trong một khoảng thời gian nhất định Ngoài ra, có thể dựa vào thời gian khắc phục sự cố để đánh
giá độ tin cậy của phần mềm
Trong phần tiếp theo, chúng ta sẽ tìm hiểu về khái niệm cũng như các vấn đề xung quanh
việc Kiểm thử phần mềm
1.2 Khái niệm về kiểm thử phần mềm
Kiểm thử phần mềm là quá trình thực thi chương trình với mục đích tìm ra lỗi Kiểm thử phần mềm đảm bảo sản phẩm phần mềm đáp ứng chính xác, đầy đủ và đúng theo yêu
cầu của khách hàng, yêu cầu của sản phẩm đề đã đặt ra
Các hoạt động kiểm thử tồn tại trước và sau khi thực hiện kiểm thử Các hoạt động này baogồm lập kế hoạch và kiểm soát, lựa chọn điều kiện thử nghiệm, thiết kế và thực hiện các
trường hợp thử nghiệm, kiểm tra kết quả, đánh giá các tiêu chí , báo cáo về quá trình thử
nghiệm và kiểm thử hệ thống, và hoàn thiện hoặc hoàn thành các hoạt động đóng sau khi
giai đoạn thử nghiệm đã hoàn thành Kiểm tra cũng bao gồm việc xem xét các tài liệu (bao gồm cả nguồn) và phân tích tĩnh
Kiểm thử có thể là công việc bao gồm các mục đích sau:
Bùi My XVIII Lớp DCCTPM63B
Trang 19- Tìm kiếm khuyết điểm
- Đạt được niềm tin về mức độ chất lượng
- Cung cấp thông tin để đưa ra quyết định
- Ngăn chặn các lỗi
Quá trình suy nghĩ và các hoạt động liên quan đến việc thiết kế thử nghiệm sớm
trong vòng đời sản phẩm (xác minh cơ sở thử nghiệm thông qua thiết kế thử nghiệm) có
thể giúp ngăn ngừa các khiếm khuyết được đưa vào mã Việc xem xét các kiến thức tài liệu(ví dụ: yêu cầu) và xác định và giải quyết các vấn đề cũng giúp ngăn ngừa các khiếm
khuyết xuất hiện trong mã
Các quan điểm khác nhau trong thử nghiệm có tính đến các mục tiêu khác nhau:
- Trong kiểm thử phát triển (ví dụ: kiểm thử thành phần, tích hợp và hệ thống), mục
tiêu chính có thể là gây ra càng nhiều lỗi càng tốt để các lỗi trong phần mềm được
xác định và có thể được sửa chữa
- Trong thử nghiệm chấp nhận, mục tiêu chính có thể là xác nhận rằng hệ thống hoạt động như mong đợi, để có được sự tin tưởng rằng nó đã đáp ứng các yêu cầu
- Trong một số trường hợp, mục tiêu chính của thử nghiệm có thể là đánh giá chất
lượng của phần mềm này (không có ý định sửa chữa các khiếm khuyết), cung cấp
thông tin cho các bên liên quan về nguy cơ giải phóng hệ thống tại một thời điểm
nhất định
- Kiểm tra bảo trì thường bao gồm kiểm tra không có sản phẩm mới nào được đưa ra trong quá trình phát triển các thay đổi
- Trong quá trình thử nghiệm hoạt động, mục tiêu chính có thể là đánh giá các đặc
tính của hệ thống như độ tin cậy hoặc tính khả dụng
Gỡ lỗi và kiểm thử là khác nhau Thử nghiệm động có thể cho thấy lỗi do các khuyết tật gây ra Gỡ lỗi là hoạt động phát triển để tìm, phân tích và loại bỏ nguyên nhân gây ra
lỗi Kiểm tra lại sau đó người kiểm tra đảm bảo việc sửa lỗi thực sự khắc phục được lỗi
Trách nhiệm đối với các hoạt động thường là tester kiểm tra và gỡ lỗi nhà phát triển
1.2.1 Thuật ngữ liên quan đến kiểm thử
Định nghĩa:
● Error/ mistake: hành động của con người tạo ra kết quả không chính xác
● Fault / Bug / Defect: biểu hiện của lỗi phần mềm
Bùi My XIX Lớp DCCTPM63B
Trang 20● Nếu thực hiện bị lỗi có thể gây ra hỏng hóc Failure: sai lệch của phần mềm sovới phân phối hoặc dịch vụ dự kiến
● Dữ liệu thử (test data): Dữ liệu vào cần cung cấp cho phần mềm khi thực thi
● Kịch bản kiểm thử (test scenario): các bước thực hiện khi kiểm thử
● Phán xét kiểm thử (test oracle): là việc đánh giá của kiểm thử, có hai cách đánhgiá đó là bằng chương trình (tự động), bằng con người (thủ công)
● Kiểm thử viên (tester): người thực hiện kiểm thử
● Ca kiểm thử (test case): tập dữ liệu kiểm thử, điều kiện kiểm thử, để đưa ra kếtquả mong đợi
Tại sao lỗi xảy ra trong phần mềm:
● Con người: kiến thức, kỹ năng, sai lầm, thời hạn áp lực
● Thời gian: không mất thời gian kiểm tra
● Hệ thống: có thể chưa hoàn thiện, nhiều hệ thống tương tác, công nghệ thayđổi, mã phức tạp, cơ sở hạ tầng phức tạp
1.2.2 Mục tiêu và vai trò của kiểm thử
Việc kiểm thử nhằm thực hiện hai mục tiêu:
- Bằng việc kiểm thử sẽ tìm ra được những lỗi trong phần mềm và thiết lập chất
lượng của phần mềm
- Việc kiểm thử thành công khi bạn tìm được ít nhất một lỗi, và đưa ra sự đánh giá
với độ tin cậy lớn
Testing giúp kiểm định phần mềm, đảm bảo rằng phần mềm “đủ tốt” với độ rủi ro
“thấp nhất” có thể Kiểm thử phần mềm cung cấp mục tiêu, cái nhìn độc lập về phần mềm, điều này cho phép việc đánh giá và hiểu rõ các rủi ro khi thực thi phần mềm
Kiểm thử phần mềm tạo điều kiện cho bạn tận dụng tối đa tư duy đánh giá và sáng tạo để
bạn có thể phát hiện ra những điểm mà người khác chưa nhìn thấy
1.2.3 Các phương pháp kiểm thử phần mềm
a Kiểm thử hộp đen
Bùi My XX Lớp DCCTPM63B
Trang 21Hình 1-1: Kiểm thử hộp đen
Kiểm thử hộp đen là phương pháp kiểm thử mà tester sẽ chỉ xem xét đến đầu vào và đầu ra của chương trình mà không quan tâm code bên trong được viết ra sao Tester thực
hiện kiểm thử dựa hoàn toàn vào đặc tả yêu cầu
Mục đích của kiểm thử hộp đen là tìm ra các lỗi ở giao diện, chức năng của phần mềm
Các trường hợp kiểm thử sẽ được xây dựng xung quanh đó
b Kiểm thử hộp trắng
Hình 1-2: Kiểm thử hộp trắng
Là phương pháp kiểm thử dựa cả vào giải thuật, cấu trúc code bên trong phần mềm,việc kiểm thử được tiến hành dựa cả vào việc kiểm xem giải thuật, mã lệnh đã làm có đúngkhông
Trong kiểm thử hộp trắng, cấu trúc mã hoặc giải thuật của chương trình được đưavào xem xét, các trường hợp kiểm thử được thiết kế dựa vào cấu trúc mã hoặc cách thứclàm việc của chương trình Người kiểm thử truy cập vào mã chương trình và có thể kiểmtra nó, lấy đó làm cơ sở để hỗ trợ việc kiểm thử
Để thực hiện được phương pháp kiểm thử hộp trắng thì người kiểm thử 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ề thuật giải được dùng trongthành phần phần mềm để có thể thông hiểu được chi tiết về các đoạn code cần kiểm thử
Bùi My XXI Lớp DCCTPM63B
Trang 221.2.4 Các mức kiểm thử phần mềm
Quy trình kiểm thử phần mềm sẽ được thực hiện theo 4 giai đoạn như sau:
Hình 1-3: Các mức kiểm thử phần mềm
Kiểm thử đơn vị (Unit test) :
Mục đích của việc thực hiện kiểm thử đơn vị là cô lập từng thành phần của chương
trình và chứng minh các bộ phận riêng lẻ chính xác về các yêu cầu chức năng.Đây là kiểu
test kiểm tra code xem liệu chức năng nó thực hiện có đúng như mong đợi của khách hàng hay không Nó được thực hiện bởi Developer
Hình 1-4: Kiểm thử đơn vị
Bùi My XXII Lớp DCCTPM63B
Trang 23Unit test là kỹ thuật kiểm nghiệm các hoạt động của mọi chi tiết mã nguồn (code) vớimột quy trình tách biệt với quy trình phát triển phần mềm giúp phát hiện kịp thời các sai
Kiểm thử tích hợp bao gồm hai mục tiêu chính là:
- Phát hiện lỗi giao tiếp xảy ra giữa các unit
- Tích hợp các unit đơn lẻ thành các hệ thống nhỏ và cuối cùng là một hệ thống hoàn chỉnh để chuẩn bị cho bước kiểm thử hệ thống
Kiểm thử hệ thống ( System test )
Hình 1-6: Kiểm thử hệ thống
Bùi My XXIII Lớp DCCTPM63B
Trang 24Kiểm thử một hệ thống đã được tích hợp hoàn chỉnh để xác minh rằng nó đáp ứng
được yêu cầu Kiểm thử hệ thống thuộc loại kiểm thử hộp đen
Kiểm thử hệ thống tập trung nhiều hơn vào các chức năng của hệ thống
Kiểm tra cả chức năng và giao diện, các hành vi của hệ thống 1 cách hoàn chỉnh, đáp ứng
với yêu cầu
Kiểm thử chấp nhận ( Acceptance test )
Trong giai đoạn này, tester có thể thực hiện hoặc là khách hàng
Hình 1-7: Kiểm thử chấp nhận
Có 2 loại kiểm thử chấp nhận đó là kiểm thử Alpha và kiểm thử Beta:
- Kiểm thử Alpha: là loại kiểm thử nội bộ Tức là phần mềm sẽ được một đội kiểm
thử độc lập hoặc do khách hàng thực hiện tại nơi sản xuất phần mềm
- Kiểm thử Beta: là loại kiểm thử mà khách hàng thực hiện kiểm thử ở chính môi
trường của họ Loại kiểm thử này được thực hiện sau kiểm thử Alpha
1.2.5 Các kỹ thuật kiểm thử
Có nhiều kỹ thuật kiểm thử phần mềm, sau đây là 4 kỹ thuật phổ biến nhất trong kỹ
thuật kiểm thử hộp đen là: Kỹ thuật phân vùng tương đương, kỹ thuật phân tích giá trị
biên, bảng quyết định và kỹ thuật đoán lỗi
Trong quá trình kiểm thử, kiểm thử viên có thể áp dụng nhiều kỹ thuật khác nhau,
kết hợp các phương pháp kiểm thử với nhau để có thể tìm các lỗi của phần mềm một cách tối đa
Kỹ thuật phân vùng tương đương
Bùi My XXIV Lớp DCCTPM63B
Trang 25Đây là phương pháp chia đầu vào thành những nhóm tương đương nhau Nếu một
giá trị trong nhóm hoạt động đúng thì tất cả các giá trị trong nhóm đó cũng hoạt động đúng
và ngược lại
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 test trên các phần tử đại diện
- Thiết kế test case bằng phân lớp tương đương tiến hành theo 2 bước:
Ưu điểm: Vì mỗi vùng tương đương ta chỉ cần test trên các phần tử đại diện nên số lượng
test case được giảm đi khá nhiều nhờ đó mà thời gian thực hiện test cũng giảm đáng kể
Nhược điểm: Không phải với bất kỳ bài toán nào cũng có thể áp dụng kĩ thuật này Có thể
bị hack lỗi ở biên nếu chỉ chọn giá trị ở khoảng giữa của miền tương đương
Kỹ thuật phân tích giá trị biên
Đây là phương pháp kiểm thử mà chúng ta sẽ kiểm thử tất cả các giá trị ở vùng biên của dữ liệu vào và dữ liệu ra Chúng ta sẽ tập trung vào các giá trị biên chứ không kiểm thửtoàn bộ dữ liệu
Mục đích: Thay vì chọn nhiều giá trị trong lớp đương tương để làm đại diện, phân
tích giá trị biên yêu cầu chọn một hoặc vài giá trị là các cạnh của lớp tương đương để làm
điều kiện kiểm thử
Phân tích giá trị biên là kỹ thuật thiết kế test case và hoàn thành phân vùng tương
đương
Thiết kế test case bằng phương pháp phân tích giá trị biên chính là lựa chọn các test
case để thực thi giá trị biên
Trang 26 Giá trị lớn nhất
Bảng quyết định
Là phương pháp chính xác và tối ưu để mô hình hóa các điều kiện logic phức tạp
Điều kiện là các biểu thức rút ra từ việc rẽ nhánh trong chương trình, như lệnh if, white,
switch …
Cấu trúc của bảng quyết định như sau:
Các điều kiện ( nguyên nhân) Các giá trị của các trường hợp
Bảng 1-2: Cấu trúc bảng quyết định
Mỗi liên hệ giữa các điều kiện tương ứng với các kết quả sẽ cho biết hành động
nào sẽ được thực hiện khi các điều kiện tương ứng thỏa mãn
Các bước để xây dựng bảng điều kiện – kết quả:
1 Xác định tất cả các điều kiện từ yêu cầu
2 Xác định tất cả các giá trị có thể có của các điều kiện
3 Xác định kết hợp giữa các điều kiện
4 Điền các kết hợp vào bảng
5 Loại bỏ các kết hợp không cần thiết (xung đột, hoặc dư thừa)
6 Điền các hành động vào bảng tương ứng với từng trường hợp
Bảng điều kiện – kết quả có nhiều loại, trong đó phổ biến và đơn giản nhất là bảng điều
kiện – kết quả dưới hạn (Limited Entry Table) Với bảng điều kiện – kết quả kiểu này, điềukiện (condition) được thỏa mãn một cách đầy đủ và hành động (action) được thực hiện mộtcách trọn vẹn nhất
Các ký hiệu dùng để mô tả bảng quyết định:
Y: điều kiện thỏa mãn
N: điều kiện không thỏa mãn
-: điều kiện hoặc hành động không áp dụng
X: hành dộng được thực hiện
1.2.6 Ca kiểm thử
Ca kiểm thử là một khái niệm không thể thiếu trong kiểm thử phần mềm Theo
ISTQB “ca kiểm thử là một tập hợp các giá trị đầu vào, tiền điều kiện, các kết quả mong
đợi và điều kiện kết thúc, được xây dựng cho mục đích hoặc điều kiện kiểm thử riêng biệt
Bùi My XXVI Lớp DCCTPM63B
Trang 27để kiểm tra tính đúng đắn của chương trình với yêu cầu của bản đặc tả yêu cầu phần
mềm” Hay nói cách khác, ca kiểm thử mô tả dữ liệu bao gồm: đầu vào, hành động hoặc sự
kiện và kết quả đầu ra mong đợi (expected results) để xác định liệu 1 ứng dụng, hệ thống
phần mềm hoặc một trong các tính năng của nó có hoạt động đúng như mong muốn hay
không
Cấu trúc của một ca kiểm thử thông thường bao gồm:
Test case ID: Xác định số lượng trường hợp cần kiểm thử
Function (Chức năng): Các function có thể được chia nhỏ dựa theo chức năng của
hệ thống nhằm giúp ca kiểm thử trở nên rõ ràng hơn
Test Data: Dữ liệu đầu vào cần chuẩn bị trước khi kiểm thử
Test Steps: Mô tả chi tiết các bước thực hiện kiểm thử
Expected Results: Kết quả mong đợi sau khi thực hiện các bước kiểm thử
Actual result: Mô tả kết quả thực tế khi thực hiện kiểm thử trên môi trường của hệ
thống Actual result thường bao gồm ba giá trị: pass, fail và pending
Comments: Có thể chứa screen shot hoặc thông tin liên quan khi thực hiện ca kiểm
thử
Một ca kiểm thử được cho là hiệu quả khi:
Dựa vào ca kiểm thử có thể tìm thấy lỗi
Tìm được nhiều lỗi khó phát hiện
Chỉ ra được những điểm ban đầu mà khi thực hiện kiểm thử không tìm ra vấn đề
Ca kiểm thử cần có những bước thực hiện kiểm thử (Test steps) đơn giản, minh
bạch, dễ hiểu
Các trường hợp thử nghiệm nên có giá trị, tóm tắt và ngắn
Các ca kiểm thử nên có sự liên kết: Mỗi ca kiểm thử cần được đánh số thứ tự (Test case ID) để đảm bảo ca kiểm thử đã bao phủ 100% bản đặc tả yêu cầu phần mềm
Ca kiểm thử có thể bảo trì: Nên viết ca kiểm thử sao cho khi có thay đổi, chỉnh sửa thì các bên liên quan có thể dễ dàng nhận thấy được sự thay đổi đó
Ca kiểm thử có tính ứng dụng cao
Tóm lại, ca kiểm thử được viết ra để kiểm tra hoạt động của các chức năng có đúng như
mong muốn trong bản đặc tả yêu cầu phần mềm hay không Khi viết ca kiểm thử nên cố
gắng viết đơn giản, dễ hiểu nhưng phải đầy đủ các dữ liệu chuẩn cần có của một ca kiểm
thử
Bùi My XXVII Lớp DCCTPM63B
Trang 281.3 Kiểm thử thủ công(Manual Test)
1.3.1 Kiểm thử thủ công là gì?
Kiểm thử thủ công, Tester làm mọi công việc hoàn toàn bằng tay, từ viết test case
đến thực hiện kiểm thử; mọi thao tác như: Nhập điều kiện đầu vào, thực hiện một số sự
kiện khác, sau đó so sánh kết quả thực tế với kết quả mong muốn trong test case, điền kết
quả kiểm thử Hiện nay, phần lớn các tổ chức, các công ty phần mềm, hoặc các nhóm làm
phần mềm đều thực hiện kiểm thử thủ công là chủ yếu
1.3.2 Ưu điểm:
+ Cho phép Tester thực hiện việc kiểm thử khám phá
+ Thích hợp kiểm tra sản phẩm lần đầu tiên
+ Thích hợp kiểm thử trong trường hợp các test case chỉ thực hiện một số ít lần
+ Giảm được chi phí ngắn hạn
Kiểm thử tự động hoặc tự động hóa kiểm tra là một kỹ thuật kiểm thử phần mềm
thực hiện bằng cách sử dụng các công cụ phần mềm kiểm thử tự động đặc biệt để thực thi
một bộ trường hợp kiểm thử Ngược lại, kiểm tra thủ công được thực hiện bởi một người
ngồi trước máy tính thực hiện các bước kiểm tra một cách cẩn thận
Phần mềm kiểm tra tự động hóa cũng có thể nhập dữ liệu kiểm tra vào hệ thống đangkiểm tra, so sánh kết quả dự kiến và thực tế và tạo báo cáo kiểm tra chi tiết Tự động hóa
kiểm tra đòi hỏi đầu tư đáng kể về tiền bạc và nguồn lực
Bùi My XXVIII Lớp DCCTPM63B
Trang 29Hình 1-8: Chiến lược kiểm thử tự động
Các chu kỳ phát triển kế tiếp sẽ yêu cầu thực hiện lặp lại cùng một bộ thử nghiệm Sử dụngcông cụ tự động hóa kiểm tra, có thể ghi lại bộ kiểm tra này và phát lại theo yêu cầu Khi
bộ thử nghiệm được tự động hóa, không cần sự can thiệp của con người
1.4.2 Tại sao cần kiểm thử tự động
Tự động hóa kiểm tra là cách tốt nhất để tăng hiệu quả, phạm vi kiểm tra và tốc độ
thực thi trong kiểm thử phần mềm Kiểm thử phần mềm tự động rất quan trọng do những
lý do sau:
- Kiểm tra thủ công tất cả các quy trình công việc, tất cả các lĩnh vực, tất cả các kịch bản tiêu cực rất tốn thời gian và tiền bạc
- Rất khó để kiểm tra các trang web đa ngôn ngữ theo cách thủ công
- Tự động hóa kiểm tra không cần sự can thiệp của con người Bạn có thể chạy thử
nghiệm tự động mà không cần giám sát
- Tự động hóa kiểm tra tăng tốc độ thực hiện kiểm tra
- Tự động hóa giúp tăng phạm vi kiểm tra
- Kiểm tra thủ công có thể trở nên nhàm chán và do đó dễ xảy ra lỗi
1.4.3 Quy trình kiểm thử tự động
Quy trình kiểm thử tự động bao gồm: Tester sử dụng các kịch bản tự động
(automation scripts) và thực thi các script để chạy ứng dụng với sự giúp sức của các
automation tool Một khi script đã sẵn sàng thì việc thực thi kiểm thử có thể diễn ra nhanh chóng và hiệu quả
Các hoạt động của kiểm thử tự đông:
Phân tích yêu cầu/Xác định môi trường/công cụ
Xác định tiêu chí đầu ra
Bùi My XXIX Lớp DCCTPM63B
Trang 30 Lên kế hoạch và kiểm soát
Thiết lập môi trường kiểm thử
Triển khai thiết kế kiểm thử
Thực thi kiểm thử
Phân tích, báo cáo
1.4.4 Mục đích của kiểm thử tự động
Kiểm thử tự động với các mục đích:
Giảm bớt công sức và thời gian thực hiện quá trình kiểm thử
Tăng độ tin cậy
Giảm sự nhàm chán cho con người
Rèn luyện kỹ năng lập trình cho kiểm thử viên
Giảm chi phí cho tổng quá trình kiểm thử
Phân loại kiểm thử phần mềm
Liệt kê các mức độ nghiêm trọng của lỗi
Tổng quan về ca kiểm thử
Vai trò của kiểm thử tự động trong kiểm thử phần mềm hiện nay
Bùi My XXX Lớp DCCTPM63B
Trang 31CHƯƠNG 2 CÔNG CỤ KIỂM THỬ TỰ ĐỘNG
Chương này tập trung nghiên cứu về hai công cụ hỗ trợ kiểm thử là Selenium IDE vàKatalon Studio Cụ thể sẽ đi sâu vào tìm hiểu hướng dẫn cài đặt, thao tác sử dụng cơ bản
kèm theo một số lệnh thông dụng của công cụ
2.1 Công cụ kiểm thử Selenium IDE
Selenium IDE cho phép ghi lại những hành động, sự kiện xảy ra trong quá trình kiểm thử
bằng chức năng Record (ghi hành động) và Playback (phát lại)
Một số ưu điểm của Selenium IDE:
Dễ dàng cài đặt và sử dụng
Không yêu cầu kinh nghiệm lập trình
Có thể debug, thiết lập điểm dừng, thêm comment vào kịch bản kiểm thử
Bên cạnh đó Selenium IDE cũng tồn tại một số nhược điểm:
Chỉ hỗ trợ chạy trên Mozilla Firefox (cần cấu hình để chạy được trên Chrome,
Internet Explorer)
Cần cài đặt thêm để đọc dữ liệu từ file csv, xml
Không hỗ trợ database, kiểm thử di động (mobile testing)
Khó khăn khi xử lý những quy trình phức tạp
2.1.2 Hướng dẫn cài đặt Selenium IDE trên trình duyệt Firefox
Đầu tiên người dùng nên kiểm tra xem trình duyệt Mozilla Firefox đã được cài đặt
Selenium IDE hay chưa bằng cách mở trình duyệt này lên, chọn menu Tools Nếu trong
danh sách menu con không chứa Selenium IDE thì cần thực hiện những bước sau để tiến
hành cài đặt
Cài đặt trình duyệt Firefox
Bước 1: Truy cập trang web: Mozilla Firefox – Official Site và chọn phần Download
Bùi My XXXI Lớp DCCTPM63B
Trang 32Hình 2-9: Giao diện tải xuống Firefox
Bước 2: Click download để tải Firefox về Sau đó chạy để cài đặt Firefox
Hình 2-10: Cài đặt Firefox
Bước 3: Đây là giao diện sau khi cài đặt xong Firefox
Bùi My XXXII Lớp DCCTPM63B
Trang 33Hình 2-11: Giao diện Firefox
Cài đặt Selenium IDE
Bước 1: Truy cập trang web http://docs.seleniumhq.org/download./ sau đó di chuyển
xuống phần Selenium IDE để lựa chọn phiên bản Selenium IDE cần download
Hình 2-12: Trang web của Selenium
Bước 2: Click vào link chứa Selenium IDE dành cho Firefox
Bùi My XXXIII Lớp DCCTPM63B
Trang 34Hình 2-13: Tải xuống Selenium IDE
Bước 3: Ấn Add to Firefox, trình duyệt Firefox sẽ tự động add Selenium IDE
Hình 2-14: Thêm Selenium IDE vào trình duyệt firefox
Bước 4 : Chọn Thêm để xác nhận thêm tiện ích Selenium IDE vào Firefox
Bùi My XXXIV Lớp DCCTPM63B
Trang 35Hình 2-15: Xác nhận thêm Selenium IDE vào Firefox
Bước 5: Refresh lại trình duyệt Firefox sẽ thấy biểu tượng của Selenium IDE nằm ở góc
trên cùng bên phải màn hình máy tính như hình bên dưới
Hình 2-16: : Thêm thành công Selenium IDE
Khởi động Selenium IDE
Bùi My XXXV Lớp DCCTPM63B
Trang 36Click vào biểu tượng Selenium IDE trên thanh menu của Firefox ta sẽ khởi động được
Selenium IDE
Hình 2-17: : Khởi động Selenium IDE
Cửa sổ tiện ích Selenium IDE được mở ra như Hình 2-10:
Hình 2-18: Giao diện khởi chạy Selenium IDE
Bùi My XXXVI Lớp DCCTPM63B
Trang 372.1.3 Một số chức năng trong Selenium IDE
Phần này của đồ án sẽ giải thích và hướng dẫn cách sử dụng một số chức năng, ký
hiệu trong tiện ích Selenium IDE
Hình 2-19: Giải thích một số chức năng, ký hiệu trong Selenium IDE
Base URL: Chứa địa chỉ URL của ứng dụng Web đang được kiểm thử
Đồng hồ : Điều chỉnh tốc độ thực thi ca kiểm thử tự động
Chạy bộ kiểm thử : Chạy tất cả các ca kiểm thử có trong bộ kiểm thử (test suite)
Chạy một ca kiểm thử :Chạy ca kiểm thử hiện tại được chọn
Tạm dừng : Tạm dừng ca kiểm thử đang thực thi
Tiếp tục :Tiếp tục chạy ca kiểm thử vừa tạm dừng
Bỏ qua : Bỏ qua một bước ở vị trí nó đang dừng
Ghi (Record) : Ghi lại các thao tác trong ca kiểm thử Mặc định khi khởi động
Selenium IDE, chức năng ghi thao tác tự động được kích hoạt
Textbox Command: Lưu trữ các hành động (action) trong ca kiểm thử
Textbox Target: Đích đến của thao tác
Bùi My XXXVII Lớp DCCTPM63B
Trang 38 Textbox Value: Giá trị đầu vào cho thao tác trong ca kiểm thử.
Textbox Description: Mô tả các hành động trong ca kiểm thử
2.1.4 Thao tác cơ bản với Selenium IDE
Tạo ca kiểm thử và bộ kiểm thử mới
Với những trường hợp chỉ cần tạo ca kiểm thử đơn lẻ, ta có thể sử dụng thao tác
File / New Test Case
Tuy nhiên, dù chỉ kiểm thử một form đơn giản cũng cần tạo ra khá nhiều ca kiểm thửkhác nhau Lúc này ta cần tạo ra một bộ kiểm thử (Test Suite) chứa các ca kiểm thử trong
đó để dễ dàng quản lý bằng cách chọn File / New Test Suite
Khởi động chức năng ghi (Record)
Mặc định khi mở tiện ích Selenium IDE thì chức năng ghi đã được kích hoạt Có thể dễ
dàng nhận ra trạng thái kích hoạt bằng giao diện trực quan của tiện ích Để kiểm tra, di
chuyển con trỏ chuột vào nút Record , nếu xuất hiện thông báo Click to Record tương
đương với chức năng ghi chưa được kích hoạt
Lưu ca kiểm thử/bộ kiểm thử
Sau khi đã hoàn thành các thao tác với một ca kiểm thử, ta có thể lưu chúng lại bằng cách
chọn File / Save Test Case (Ctrl+S) Trường hợp muốn lưu ca kiểm thử đã tồn tại dưới mộttên khác, ta chọn File / Save Test Case As…
Mở ca kiểm thử/bộ kiểm thử đã lưu
Chọn File / Open và tìm tới thư mục lưu ca kiểm thử để mở một ca kiểm thử đã lưu
Trường hợp muốn mở một bộ kiểm thử, chọn File / Open Test Suite… và tìm tới thư mục
lưu bộ kiểm thử, tiếp tục chọn bộ kiểm thử cần thực thi sau đó chọn Open
Chạy các ca kiểm thử
Selenium IDE có nhiều tùy chọn phù hợp cho việc thực thi ca kiểm thử, tạm dừng, chạy
từng dòng lệnh đơn lẻ (step), thiết lập điểm ngắt (breakpoint) và chạy tất cả các ca kiểm
thử có trong một bộ kiểm thử Điều này giúp kiểm thử viên dễ dàng làm chủ các thao tác
trong ca kiểm thử của mình
2.1.5 Các câu lệnh trong Selenium IDE
Các câu lệnh trong Selenium IDE thường được gọi là Selenese Selenium IDE cung cấp
cho kiểm thử viên một tập lệnh phong phú để kiểm thử ứng dụng trên nền Web Trong
Selenium IDE, kiểm thử viên có thể kiểm tra các yếu tố giao diện người dùng, nội dung,
Bùi My XXXVIII Lớp DCCTPM63B
Trang 39liên kết bị hỏng, dữ liệu đầu vào Ngoài ra, Selenium IDE còn hỗ trợ kiểm tra kích thước
cửa sổ, vị trí chuột, cảnh báo (alert), cửa sổ popup, xử lý sự kiện và nhiều tính năng khác
cho ứng dụng Web
Một lệnh của Selenium IDE thường có 3 thành phần: Actions, Accessors và Assertions
Action (hành động): là các thao tác chung của ứng dụng Ví dụ như click vào một
liên kết hay chọn và chờ liên kết tải xong (ClickAndWait) Nếu Action không thànhcông hoặc có lỗi xảy ra, việc thực thi ca kiểm thử sẽ bị dừng lại
Accessors: Kiểm tra trạng thái của ứng dụng và lưu kết quả vào các biến Kiểm thử viên có thể kiểm tra và lưu trữ tiêu đề trang Web (storeTitle), các phần tử được
chọn (storeElementPresent)
Assertions (xác minh): Assertions gần tương tự như Accessors, tuy nhiên nó xác
định trạng thái của ứng dụng cho phù hợp với với kết quả mong đợi Ví dụ như đảmbảo tiêu đề trang là đúng với thiết kế
(verifyTitle) hay xác minh tính đúng đắn của giá trị tại một textbox (verifyValue)
Assertions được chia làm 3 loại: assert, verify và waitFor Khi một assert thất bại thì việc
kiểm thử sẽ dừng lại Khi một verify không thành công, việc kiểm thử vẫn được tiếp tục
tiến hành nhưng sẽ xuất hiện thông báo lỗi Các lệnh waitFor chờ đợi một số điều kiện
được thực thi (hữu ích với việc kiểm thử ứng dụng Ajax) WaitFor thành công nếu điều
kiện đúng và việc kiểm thử sẽ bị dừng lại nếu điều kiện không được thực thi trong thời
gian chờ (thời gian chờ có thể được thiết lập dễ dàng thông qua thuộc tính SetTimeout)
Bảng sau đây cung cấp một số lệnh thường dùng trong Selenium IDE
click/ clickAndWait Click vào một Element được chỉ định trên Page
verifyTitle/assertTitle So sánh page title của page với một giá trị nào đó
verifivalue Kiểm tra nội dung text của một Element
verifyAttribute Kiểm tra nội dung của một attribute của element
verifiTextPresent Kiểm tra sự xuất hiện của một text trên page
verifiElementPresent Kiểm tra sự xuất hiện của một phần tử trên Page
waitForPageToLoad Tạm ngừng cho tới khi page load xong
waitForElementPresent Tạm ngừng chờ tới khi một Element nào đó trên page
xuất hiện
Bảng 2-3: Các lệnh dùng trong Selenium IDE
Bùi My XXXIX Lớp DCCTPM63B
Trang 402.2 Công cụ kiểm thử Katalon Studio
2.2.1 Katalon Studio là gì?
Hình 2-20: Katalon studio là gì
Katalon Studio hiện đang là một công cụ kiểm thử tự động được biết đến khá rộng
rãi cho phép người dùng có thể kiểm thử cả Web, API, Mobile và desktop application, điềuđặc biệt là nó được phát triển bởi công ty KMS Technology Việt Nam
Với sự thân thiện, linh hoạt và đầy đủ các tính năng cần thiết, Katalon Studio giúp
cho quá trình kiểm thử tự động được thực hiện ổn định và nhanh hơn
2.2.2 Vì sao nên sử dụng Katalon Studio?
- Viết test case nhanh và đơn giản, hỗ trợ cả chế độ Manual và Scripting
- Kiểm thử được các ứng dụng Web, API, mobile, desktop application
- Có thể sử dụng trên các nền tảng Window, Linux, macOS
- Hỗ trợ Recording để tạo test case mà không cần phải viết code
- Hỗ trợ Data Driven Testing, sử dụng được các dạng external file như Excel, CSV,
2.2.3 Cài đặt Katalon Studio
Bước 1: Mở trình duyệt và download Katalon Studio tại https://www.katalon.com
Bùi My XL Lớp DCCTPM63B