1.2.2 Vai trò và trách nhiệm của Tester Vai trò của Tester là kiểm tra phần mềm hoặc sản phẩm để đảm bảo rằng chúng hoạt động đúng và đáp ứng được các yêu cầu của người dùng.. Tester đón
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ KHOA THỐNG KÊ – TIN HỌC
BÁO CÁO THỰC TẬP NGHỀ NGHIỆP NGÀNH HỆ THỐNG THÔNG TIN QUẢN LÝ
CHUYÊN NGÀNH QUẢN TRỊ HỆ THỐNG THÔNG TIN
KIỂM THỬ TỰ ĐỘNG VỚI CÔNG CỤ KATALON STUDIO
TRÊN HỆ THỐNG NOPCOMMERCE
Đơn vị thực tập : TMA Solutions Bình Định
Giảng viên hướng dẫn : TS Phan Đình Vấn
Trang 2i
LỜI CẢM ƠN
Để hoàn thành bài báo cáo thực tập nghề nghiệp lần này trước hết em xin gửi đến quý thầy cô khoa Thống kê – Tin học trường đại học Kinh tế Đà Nẵng lời cảm ơn chân thành nhất vì đã tạo điều kiện cho em có một kì thực tập rất ý nghĩa Và em xin cảm ơn thầy Phan Đình Vấn đã tận tình hướng dẫn em trong quá trình thực tập này !
Đặc biệt em xin gửi lời cảm ơn đến TMA Solutions Bình Định đã tạo điều kiện cho
em được tiếp xúc với môi trường làm việc thực tiễn về ngành nghề em theo đuổi trong quá trình thực tập ở công ty
Cuối cùng chúng em xin cảm ơn team DG4, anh Nguyễn Lê Anh Tuấn đã tận tình giảng dạy các kiến thức về chuyên môn, các buổi chia sẻ về kinh nghiệm làm việc cũng như các kỹ năng mềm….để em có thể hoàn thành báo cáo thực tập nghề nghiệp này
Với những kiến thức còn thiếu sót, những kỹ năng còn hạn hẹp, chúng em không thể tránh được những sai lầm, em mong thầy cô cũng như công ty có thể thông cảm và bỏ qua cho chúng em Em xin chúc quý thầy cô, cũng như các anh chị trong team DG4 sẽ luôn khỏe mạnh, hoàn thành tốt công việc của mình và luôn hạnh phúc
Em xin chân thành cảm ơn!
Trang 3ii
LỜI CAM ĐOAN
Em xin cam đoan đây là bài báo cáo thực tập nghề nghiệp của em và bạn Cao Như Uyên dưới sự hướng dẫn của giáo viên Phan Đình Vấn và được thực hiện dưới sự hướng dẫn của các mentor, không có bất kỳ sự sao chép của người khác Nội dung ở trong đề tài là báo cáo quá trình mà chúng em đã được học tập, nghiên cứu, tham gia dự án với công ty để thực hiện Các số liệu, kết quả trình bày trong bài báo cáo này là hoàn toàn trung thực
Nếu có những sao chép không hợp lệ, vi phạm em xin chịu hoàn toàn trách nhiệm, kỷ luật của bộ môn và nhà trường
Trang 4iii
MỤC LỤC
LỜI CẢM ƠN i
LỜI CAM ĐOAN ii
MỤC LỤC iii
DANH MỤC HÌNH ẢNH vii
DANH MỤC BẢNG BIỂU ix
DANH MỤC CÁC TỪ VIẾT TẮT x
LỜI MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu nghiên cứu của đề tài 1
3 Phương pháp nghiên cứu 2
4 Đối tượng và phạm vi của đề tài 2
5 Nội dung của đề tài 2
CHƯƠNG 1 TỔNG QUAN VỀ TMA SOLUTIONS BÌNH ĐỊNH & tester 3 1.1 Giới thiệu về công ty TMA Solutions Bình Định: 3
1.1.1 Lịch sử hình thành 3
1.1.2 Lĩnh vực hoạt động và công nghệ sử dụng 3
1.1.3 Cơ hội việc làm 3
1.2 Tổng quan về nghề Tester 4
1.2.2 Vai trò và trách nhiệm của Tester 4
1.2.3 Những kỹ năng cần có của Tester 5
1.2.4 Triển vọng của nghề Tester - Nghề Tester ở Việt Nam hiện nay 6
Trang 5iv
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT VỀ KIỂM THỬ PHẦN MỀM 6
2.1 Tìm hiểu về Software Testing 6
2.1.1 Software Testing là gì? 6
2.1.2 Tại sao kiểm thử phần mềm là cần thiết? 6
2.1.3 Bảy nguyên tắc kiểm thử 6
2.2 Quy trình kiểm thử phần mềm 7
2.2.1 Requirement analysis - Phân tích yêu cầu 7
2.2.2 Test planning - Lập kế hoạch kiểm thử 7
2.2.3 Test case development - Thiết kế kịch bản kiểm thử 8
2.2.4 Test execution – Thực hiện kiểm thử 8
2.2.5 Test cycle closure – Đóng chu trình kiểm thử 8
2.3 Các loại kiểm thử phần mềm 8
2.3.1 Manual Testing 8
2.3.2 Automation Testing 9
2.4 Các cấp độ kiểm thử phần mềm 9
2.4.1 Unit Test 9
2.4.2 Integration Test 9
2.4.3 System Test 10
2.4.4 User Acceptance Test 10
2.5 Các phương pháp kiểm thử phần mềm 10
2.5.1 Kiểm thử hộp đen 10
2.5.2 Kiểm thử hộp trắng 11
2.6 Test case 11
2.6.1 Test case là gì? 11
Trang 6v
2.6.2 Tham số đặc trưng của Test case 11
2.7 Report Bug 12
2.7.1 Tại sao bạn nên quan tâm đến giải thích lỗi tốt? 12
2.7.2 Chúng ta nên làm gì trước khi báo lỗi? 12
2.7.3 Tham số đặc trưng của Report Bug 12
2.8 Xpath 13
2.8.1 Xpath là gì? 13
2.8.2 Các loại Xpath 13
2.9 Tổng quan về công cụ Katalon Studio 13
2.10 Giới thiệu về ngôn ngữ Groovy 14
CHƯƠNG 3 TRIỂN KHAI DỰ ÁN KIỂM THỬ TỰ ĐỘNG VỚI CÔNG CỤ KATALON STUDIO TRÊN HỆ THỐNG NOPCOMMERCE 15
3.1 Tổng quan trang web Nopcommerce 15
3.2 Sơ đồ Usecase của hệ thống 15
3.3 Đặc tả yêu cầu 16
3.3.1 Đặc tả yêu cầu cho chức năng “Đăng nhập” 16
3.3.2 Đặc tả yêu cầu cho chức năng ‘Quản lý sản phẩm’ 19
CHƯƠNG 4 THỰC HIỆN KIỂM THỬ 37
4.1 Môi trường kiểm thử 37
4.2 Dữ liệu kiểm thử 37
4.3 Trạng thái của Test case 37
4.4 Thiết kế các Test case 37
4.4.1 Test case Login 38
4.4.2 Test case Producst 38
Trang 7vi
4.5 Triển khai code tự động trên Katalon 39
4.5.1 Tạo các Keyword 39
4.5.2 Một vài Xpath được thực hiện 40
4.5.3 Thực thi các test case 41
4.5.4 Kết quả Test Suites thực hiện được 46
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 47
1 Kết quả đạt được 47
2 Bài học kinh nghiệm 47
3 Hướng phát triển 48
TÀI LIỆU THAM KHẢO 49
CHECK LIST CỦA BÁO CÁO 50
PHỤ LỤC 51
Trang 8vii
DANH MỤC HÌNH ẢNH
Hình 1.1 Công ty TMA Solutions Bình Định 4
Hình 2.1 Bảy nguyên tắc kiêm thử 6
Hình 2.2 Quy trình kiểm thử phần mềm 7
Hình 2.3 Các cấp độ kiểm thử phần mềm 9
Hình 2.4 Kiểm thử hộp đen 11
Hình 2.5 Kiểm thử hộp trắng 11
Hình 2.6 Công cụ Katalon Studio 14
Hình 3.1 Sơ đồ Usecase của hệ thống 16
Hình 3.2 Giao diện màn hình đăng nhập 17
Bảng 3.1 Phân tích Usecase đăng nhập 17
Hình 3.3 Giao diện màn hình Login của trang web 18
Bảng 3.2 Hệ thống kiểm tra dữ liệu đầu vào của Login 18
Hình 3.4 Giao diện của trang web khi đăng nhập thành công 19
Hình 3.5 Giao diện của chức năng quản lý sản phầm 19
Bảng 3.3 Phân tích Usecase của Products 22
Bảng 3.4 Hệ thống kiểm tra dữ liệu đầu vào của button Products 23
Hình 3.6 Giao diện màn hình hiển thị sản phẩm mà người dùng muốn tìm kiếm 23
Hình 3.7 Giao diện màn hình thêm sản phẩm 24
Bảng 3.5 Phân tích chức năng Products infor 26
Bảng 3.6 Phân tích chức năng Prices 26
Bảng 3.7 Phân tích chức năng Shipping 27
Hình 3.8 Giao diện màn hình thêm mới một sản phẩm 27
Bảng 3.8 Hệ thống kiểm tra dữ liệu đầu vào của button Add New 27
Hình 3.9 Giao diện màn hình khi tìm kiếm sản phẩm 28
Hình 3.10 Giao diện màn hình tải danh sách sản phẩm dưới dạng PDF 28
Trang 9viii
Hình 3.11 Giao diện màn hình xuất tệp sản phẩm 29
Hình 3.12 Giao diện màn hình để lựa chọn các mục để xuất sản phẩm 30
Hình 3.13 Giao diện màn hình để nhập tệp sản phẩm 31
Hình 3.14 Giao diện màn hình khi Click vào button Import 31
Bảng 3.9 Hệ thống kiểm tra dữ liệu đầu vào của button Import 32
Hình 3.15 Giao diện màn hình khi chọn sản phẩm để xóa 32
Hình 3.16 Giao diện màn hình để xác nhận xóa sản phẩm 33
Hình 3.17 Giao diện màn hình tìm kiếm lại sản phẩm đã xóa 33
Bảng 3.10 Hệ thống kiểm tra dữ liệu đầu vào của button Delete 34
Hình 3.18 Giao diện màn hình để người dùng click vào button chỉnh sửa 34
Hình 3.19 Giao diện màn hình khi người dùng chỉnh sửa thông tin 35
Hình 3.20 Giao diện màn hình khi người dùng lưu sản phẩm 37
Hình 3.21 Giao diện màn hình khi người dùng tìm kiếm lại sản phẩm đã chỉnh sửa 37
Bảng 4.1 Thống kế số Testcase được viết 38
Hình 4.1 Xpath của hộp thoại Email 40
Hình 4.2 Xpath của hộp thoại Password 40
Hình 4.3 Kết quả Test Suites của màn hình Login 47
Hình 4.4 Kết quả Test Suites của màn hình Products 47
Trang 10ix
DANH MỤC BẢNG BIỂU
Bảng 3.1 Phân tích Usecase đăng nhập 17
Bảng 3.2 Hệ thống kiểm tra dữ liệu đầu vào của Login 18
Bảng 3.3 Phân tích Usecase của Products 22
Bảng 3.4 Hệ thống kiểm tra dữ liệu đầu vào của button Products 23
Bảng 3.5 Phân tích chức năng Products infor 26
Bảng 3.6 Phân tích chức năng Prices 26
Bảng 3.7 Phân tích chức năng Shipping 27
Bảng 3.8 Hệ thống kiểm tra dữ liệu đầu vào của button Add New 27
Bảng 3.9 Hệ thống kiểm tra dữ liệu đầu vào của button Import 32
Bảng 3.10 Hệ thống kiểm tra dữ liệu đầu vào của button Delete 34
Bảng 4 1 Thống kế số Testcase được viết 38
Trang 11
x
DANH MỤC CÁC TỪ VIẾT TẮT
SRS : Tài liệu đặc tả yêu cầu
CNTT : Công nghệ thông tin
QA : Đảm bảo chất lượng
QC : Quản lý chất lượng
SKU : Đợn vị phân loại hàng hóa tồn kho
Trang 122 Mục tiêu nghiên cứu của đề tài
Nghiên cứu khả năng của công cụ Katalon Studio trong việc kiểm thử tự động các tính năng của hệ thống nopCommerce
Tìm hiểu và đánh giá hiệu suất của công cụ Katalon Studio trong việc kiểm thử tự động các tính năng của hệ thống nopCommerce bằng cách đo lường thời gian thực hiện các kịch bản kiểm thử và tài nguyên hệ thống sử dụng
Trang 132
3 Phương pháp nghiên cứu
- Tham khảo những tài liệu có liên quan đến đề tài trên các website
- Tham khảo ý kiến và sự giúp đỡ từ mentor
4 Đối tượng và phạm vi của đề tài
- Đối tượng: Kỹ thuật kiểm thử tự động bằng công cụ Katalon Studio trên nền tảng website thương mại điện tử nopCommerce
5 Nội dung của đề tài
Đề tài được tổ chức gồm phần mở đầu, 4 chương nội dung và phần kết luận:
Mở đầu
Chương 1: Tổng quan về Công ty TMA Solutions Bình Định và Tester
Chương 2: Cơ sở lý thuyết về kiểm thử phần mềm
Chương 3: Tổng quan về công cụ Katalon Studio và trang web thương mại
điện tử Nopcommerce
Chương 4: Triển khai kiểm thử tự động trên trang web thương mại điện tử
Nopcommerce bằng công cụ Katalon Studio tại
Kết luận và hướng phát triển
Trang 143
CHƯƠNG 1 TỔNG QUAN VỀ TMA SOLUTIONS BÌNH ĐỊNH & TESTER 1.1 Giới thiệu về công ty TMA Solutions Bình Định:
1.1.1 Lịch sử hình thành
Được thành lập năm 1997, TMA là tập đoàn công nghệ hàng đầu Việt Nam với
4000 kỹ sư và khách hàng là những tập đoàn công nghệ cao hàng đầu thế giới từ 30 quốc gia TMA hiện có 7 chi nhánh tại Việt Nam (6 tại Tp.HCM và 1 ở Tp Quy Nhơn) cùng 6 chi nhánh ở nước ngoài (Mỹ, Úc, Canada, Đức, Nhật, Singapore)
Tháng 6 năm 2018, TMA đã mở chi nhánh tại Bình Định - dự án đầu tư quy mô lớn của TMA Solutions Tháng 8 năm 2018, TMA đã khởi công xây dựng Công viên Sáng tạo TMA Bình Định (TMA Innovation Park – TIP) trên 10 hecta tại Thung lũng Sáng tạo Quy Nhơn (Quy Nhon Innovation Park – QNIVY) với vốn đầu tư hàng trăm tỷ đồng
1.1.2 Lĩnh vực hoạt động và công nghệ sử dụng
TMA Solutions là một công ty công nghệ thông tin hàng đầu, hoạt động trong nhiều lĩnh vực khác nhau, bao gồm Tài chính, Ngân hàng & Bảo hiểm, Thương mại điện tử và Phân phối; Sức khỏe/ Y tế; Giáo dục; Nông nghiệp và Chế biến thực phẩm; Vận tải và Logistic; Khách sạn và Du lịch; Viễn thông
Sử dụng công nghệ 4.0 - TMA đã có gần 10 năm làm việc với các tập đoàn công nghệ hàng đầu thế giới và các trường đại học lớn về các công nghệ 4.0 với hơn 4000 kỹ sư kinh nghiệm trong các lĩnh vực Trí tuệ nhân tạo/ máy học, Khoa học dữ liệu, IOT và Thiết
bị thông minh, 4G/5G… và đã thành lập các Trung tâm Sáng tạo (TMA Innovation Center), Trung tâm Trí tuệ Nhân tạo (TMA AI Center), Trung tâm Thiết bị Thông minh (TMA Smart Device Center), …
1.1.3 Cơ hội việc làm
TMA Solutions Bình Định cung cấp nhiều cơ hội việc làm hấp dẫn trong lĩnh vực công nghệ thông tin Một trong những cơ hội việc làm tại TMA Solutions Bình Định là làm việc trên các dự án công nghệ thông tin quan trọng và đa dạng Mở ra cơ hội làm việc
Trang 151.2.2 Vai trò và trách nhiệm của Tester
Vai trò của Tester là kiểm tra phần mềm hoặc sản phẩm để đảm bảo rằng chúng hoạt động đúng và đáp ứng được các yêu cầu của người dùng Tester đóng vai trò quan trọng trong quá trình phát triển phần mềm bởi vì họ giúp đảm bảo rằng sản phẩm cuối cùng
là ổn định, có hiệu suất tốt và đáp ứng được các yêu cầu của khách hàng
Các trách nhiệm của tester bao gồm:
+ Lập kế hoạch và thiết kế chiến lược kiểm thử
Trang 165
+ Thực hiện kiểm thử
+ Đánh giá kết quả kiểm thử
+ Đảm bảo chất lượng sản phẩm
+ Tương tác với các thành viên khác trong nhóm phát triển
1.2.3 Những kỹ năng cần có của Tester
- Kiến thức về kiểm thử phần mềm: Tester cần hiểu về các phương pháp, kỹ thuật kiểm thử phần mềm như kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống, kiểm thử chấp nhận, kiểm thử tải, kiểm thử bảo mật, và các phương pháp kiểm thử khác
- Kiến thức về quy trình phát triển phần mềm: Tester cần hiểu về quy trình phát triển phần mềm như Waterfall, Agile, Scrum để hiểu được vai trò và công việc của mình trong quy trình đó
- Hiểu biết về ngôn ngữ lập trình: Một kiến thức cơ bản về ngôn ngữ lập trình như Java, C#, Python giúp tester có khả năng đọc và hiểu mã nguồn phần mềm, giúp viết các kịch bản kiểm thử tự động
- Kỹ năng ghi chép và tài liệu: Tester cần có khả năng ghi chép chi tiết về các lỗi, vấn đề phát sinh trong quá trình kiểm thử và viết báo cáo kiểm thử Kỹ năng viết tài liệu kiểm thử giúp các thành viên khác trong dự án hiểu rõ về quy trình và kết quả kiểm thử
- Kỹ năng phân tích và giải quyết vấn đề: Tester cần có khả năng phân tích các yêu cầu, tài liệu phân tích thiết kế để xác định các kịch bản kiểm thử hiệu quả Khi phát hiện lỗi, tester cần có khả năng phân tích nguyên nhân và giải quyết vấn đề một cách logic
- Hiểu biết về công cụ kiểm thử: Tester cần hiểu và sử dụng các công cụ kiểm thử phần mềm như Selenium, JUnit, Appium, JIRA, và các công cụ kiểm thử tự động khác để tăng hiệu suất và tự động hóa quá trình kiểm thử
- Kỹ năng giao tiếp: Tester cần có khả năng giao tiếp tốt với các thành viên trong
dự án như lập trình viên, nhà quản lý dự án và khách hàng để hiểu rõ yêu cầu và thông báo kết quả kiểm thử một cách rõ ràng
Trang 17- Tinh thần cầu tiến và học tập liên tục: Lĩnh vực kiểm thử phần mềm luôn đổi mới
và phát triển, tester cần có tinh thần cầu tiến và sẵn sàng học tập liên tục để nắm bắt các công nghệ, phương pháp và xu hướng mới trong lĩnh vực này
1.2.4 Triển vọng của nghề Tester- Nghề Tester ở Việt Nam hiện nay
Hiện nay, nghề Tester (kiểm thử phần mềm) ở Việt Nam đang trở nên ngày càng phổ biến và có nhu cầu cao Với sự phát triển mạnh mẽ của ngành công nghiệp phần mềm
và công nghệ thông tin ở Việt Nam, nhu cầu tuyển dụng tester đang tăng cao Tester có thể làm việc trong nhiều lĩnh vực khác nhau, từ ứng dụng di động, phần mềm desktop, trang
web, đến các hệ thống phức tạp như trí tuệ nhân tạo (AI) và Internet of Things (IoT) Tính
tự động hóa kiểm thử đang trở nên phổ biến hơn ở Việt Nam nên Tester có thể sử dụng các
công cụ kiểm thử tự động để tăng hiệu suất và tiết kiệm thời gian Lương của tester ở Việt
Nam có thể khá hấp dẫn, đặc biệt đối với những tester có kỹ năng và kinh nghiệm nổi bật
Cơ hội phát triển trong lĩnh vực này cũng rất lớn, vì việc kiểm thử phần mềm đóng vai trò quan trọng trong việc đảm bảo chất lượng và uy tín của sản phẩm trong quy trình phát triển
sản phẩm
Trang 186
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT VỀ KIỂM THỬ PHẦN MỀM
2.1 Tìm hiểu về Software Testing
2.1.1 Software Testing là gì?
Software Testing là một phương pháp để kiểm tra xem sản phẩm phần mềm thực
tế có phù hợp với yêu cầu mong đợi hay không và để đảm bảo rằng sản phẩm phần mềm không có lỗi Mục đích của kiểm thử phần mềm là xác định các lỗi, lỗ hổng hoặc các yêu cầu còn thiếu so với yêu cầu thực tế
2.1.2 Tại sao kiểm thử phần mềm là cần thiết?
Kiểm thử phần mềm để chỉ ra các khiếm khuyết và lỗi đã được thực hiện trong các giai đoạn phát triển Điều này rất cần thiết vì nó đảm bảo rằng khách hàng thấy tổ chức đáng tin cậy và sự hài lòng của họ đối với ứng dụng được duy trì Và quan trọng là đảm bảo rằng ứng dụng sẽ không dẫn đến bất kỳ lỗi nào vì nó có thể rất tốn kém trong tương lai hoặc trong các giai đoạn phát triển sau này
2.1.3 Bảy nguyên tắc kiểm thử
Hình 2.1 Bảy nguyên tắc kiêm thử
- Testing shows presence of defects (Thử nghiệm cho thấy sự hiện diện của lỗi)
- Exhaustive testing is impossible (Thử nghiệm toàn diện là không thể)
- Early testing (Thử nghiệm sớm)
- Defect clustering (Phân cụm lỗi)
Trang 197
- Pesticide paradox (Nghịch lý thuốc trừ sâu)
- Testing is context dependent (Thử nghiệm phụ thuộc vào ngữ cảnh)
- Absence – of – errors fallacy (Ngụy biện vắng mặt – có lỗi)
2.2 Quy trình kiểm thử phần mềm
Hình 2.2 Quy trình kiểm thử phần mềm
2.2.1 Requirement analysis - Phân tích yêu cầu
Giai đoạn đầu tiên của quy trình kiểm thử là phân tích các yêu cầu thông qua những tài liệu bao gồm: tài liệu yêu cầu của khách hàng, prototype của khách hàng, tài liệu đặc tả yêu cầu của phần mềm, tài liệu thiết kế hệ thống…
QA team có nhiệm vụ phân tích và xác định những yêu cầu của khách hàng, trong đó có yêu cầu về kiểm thử chức năng/phi chức năng của phần mềm
2.2.2 Test planning - Lập kế hoạch kiểm thử
Dựa vào tài liệu nhận được trong giai đoạn đầu, Test Lead hoặc Test Manager sẽ lên kế hoạch kiểm thử phần mềm cho QA team để xác định một số yếu tố:
- Phạm vi dự án: Thời gian thực hiện dự án bao lâu? Trong từng khoảng thời gian
Trang 208
2.2.3 Test case development - Thiết kế kịch bản kiểm thử
Trong giai đoạn này, các Tester sẽ đọc hiểu tất cả các tài liệu, từ đó xác định những việc cần làm, chức năng nào cần test hoặc không Sau đó, dựa vào kế hoạch và kỹ thuật thiết kế kịch bản kiểm thử, Tester sẽ bắt đầu viết test case Test environment set up - Thiết
lập môi trường kiểm thử
Đây là một trong những giai đoạn đóng vai trò rất quan trọng trong Software Testing Life Cycle (vòng đời phát triển phần mềm) Dựa trên yêu cầu khách hàng và đặc thù của sản phẩm, môi trường kiểm thử sẽ được xác định Tester cần chuẩn bị smoke test case để kiểm tra môi trường cài đặt đã đáp ứng yêu cầu và sẵn sàng cho giai đoạn kiểm thử tiếp theo hay chưa
2.2.4 Test execution – Thực hiện kiểm thử
Theo test case đã thiết kế và môi trường kiểm thử đã hoàn tất cài đặt, Tester sẽ báo cáo bug lên tool quản lý lỗi và theo dõi đến khi fix bug thành công Tiếp đó, Tester thực hiện retest để verify các fix bug và regression test trong trường hợp có sự thay đổi Sau khi hoàn tất giai đoạn này, các chuyên viên kiểm thử cần có được test results (kết quả kiểm thử) và defect reports (danh sách các lỗi tìm được)
2.2.5 Test cycle closure – Đóng chu trình kiểm thử
Để đóng chu trình kiểm thử, QA team cần có được những tài liệu đã được tổng hợp và hoàn thiện từ những giai đoạn trước: tài liệu phân tích đặc tả yêu cầu, test plan, defect reports, test results… Tiếp đó, QA team sẽ tổng kết, báo cáo về quá trình kiểm thử, có bao nhiêu bug đã được fix, bug có nghiêm trọng hay không, chức năng nào còn lỗi, chức năng nào đã hoàn thành…
Trang 219
người dùng cuối và kiểm thử phần mềm để xác định bất kỳ hành vi không mong đợi hoặc lỗi nào Có các giai đoạn khác nhau cho kiểm thử thủ công như kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống và kiểm thử chấp nhận của người dùng
2.3.2 Automation Testing
Kiểm thử tự động - Test Automation, là khi người kiểm thử viết kịch bản và sử dụng phần mềm khác để kiểm thử sản phẩm Quá trình này bao gồm việc tự động hóa một quy trình thủ công Kiểm thử tự động được sử dụng để chạy lại các kịch bản kiểm thử đã được thực hiện bằng tay một cách nhanh chóng và lặp đi lặp lại
Trang 2210
được thực hiện sau khi kiểm tra đơn vị và trước khi kiểm tra hệ thống Một số phương pháp kiểm thử tích hợp:
+ Phương pháp kiểm thử Top Dowm
+ Phương pháp kiểm thử Bottom Up
+ Phương pháp kiểm thử Sandwich
2.4.3 System Test
System Test là thực hiện kiểm thử một hệ thống đã được tích hợp hoàn chỉnh để xác minh rằng nó đúng yêu cầu của phần mềm Kiểm thử hệ thống nằm trong phạm vi kiểm thử hộp đen và do đó, không yêu cầu kiến thức về thiết kế bên trong của mã hoặc logic System Test thường là thử nghiệm cuối cùng để xác minh rằng hệ thống được phân phối đáp ứng các đặc điểm kỹ thuật và mục đích của nó Kiểm thử hệ thống nên thực hiện kiểm thử chức năng và phi chức năng và được thực hiện bởi Tester
2.4.4 User Acceptance Test
Sau khi kiểm tra hệ thống đã sửa tất cả hoặc hầu hết các lỗi, hệ thống sẽ được gửi đến người dùng hoặc khách hàng để kiểm tra chấp nhận Về cơ bản kiểm thử chấp nhận cũng khá giống kiểm thử hệ thống nhưng được thực hiện bởi khách hàng Mục đích là đảm bảo phần mềm đáp ứng đúng yêu cầu của khách hàng Sản phẩm nhận được sự chấp nhận
từ khách hàng/ người dùng cuối Kiểm thử chấp nhận được chia thành 2 mức khác nhau: Kiểm thử alpha và Kiểm thử beta
2.5 Các phương pháp kiểm thử phần mềm
2.5.1 Kiểm thử hộp đen
Kiểm thử hộp đen (Black box testing) là phương pháp test dựa trên đầu vào và đầu
ra của chương trình để test mà không quan tâm tới code bên trong được viết ra sao Kiểm thử hộp đen không yêu cầu kỹ sư kiểm thử cần phải có bất kỳ kiến thức về mã hoặc thuật toán của chương trình Nó kiểm tra các chức năng của hệ thống tức là những gì hệ thống được cho là cần phải làm dựa trên các Đặc tả yêu cầu Các trường hợp kiểm thử thường được xây dựng xung quanh đó
Trang 23từ đó có thể giúp giảm đi các chi phí phát sinh có liên quan
2.6.2 Tham số đặc trưng của Test case
Trang 2412
Đối với bài báo cáo nhóm em tham gia lần này, sử dụng mẫu test case như sau:
Test case ID: Số thứ tự của test case
Test Case Description: Miêu tả chi tiết các testcase
Prerequisites/Pre-condition: Bất kì những điều kiện kiên quyết nào phải
được đảm bảo trước khi thực hiện kiểm thử
Test Steps: Quy trình từng bước để thực hiện kiểm thử
Test data: Dữ liệu để tiến hành kiểm thử
Expected result: Hành vi mong đợi của một ca kiểm thử
Test Result: Kết quả kiểm thử (Pass/Fail/Pending/NA/Block)
Test environment: Môi trường thực hiện kiểm thử
2.7 Report Bug
2.7.1 Tại sao bạn nên quan tâm đến giải thích lỗi tốt?
- Tiết kiệm thời gian liên lạc (e-mail, cuộc gọi)
- Ít công việc hơn cho các nhà phát triển (họ sẽ làm chính xác những gì bạn muốn)
- Ít căng thẳng hơn trong dự án
- Lỗi sẽ được fix nhanh hơn
- Các thành viên khác sẽ hỗ trợ dễ dàng hơn
2.7.2 Chúng ta nên làm gì trước khi báo lỗi?
- Quay video hoặc hình ảnh
- Hãy chắc chắn rằng thực sự có một lỗi
- Kiểm tra xem lỗi hoặc đề xuất chưa được báo cáo
- Nói với leader, scrum master, PO nếu lỗi này quan trọng
- Sau đó báo lỗi cho hệ thống
2.7.3 Tham số đặc trưng của Report Bug
- Bug title - tiêu đề lỗi
Trang 252.8.2 Các loại Xpath
Về cơ bản, chúng ta sẽ có 2 loại XPath bao gồm:
+ Relative XPath (XPath tương đối/ XPath không ổn định): XPath tương đối sẽ tìm kiếm các element ở bất kỳ đâu trên trang web và không cần một đường dẫn dài, đầy đủ
+ Absolute XPath (XPath tuyệt đối/ XPath ổn định): là cách trực tiếp và chính xác nhất để tìm ra vị trí của element bằng cách chọn element từ nút gốc
2.9 Tổng quan về công cụ Katalon Studio
Katalon Studio là giải pháp kiểm thử tự động được phát hành vào tháng 9 năm 2016 bởi Katalon LLC Được xây dựng dựa trên các khung tự động hóa nguồn mở Selenium, Appium với giao diện IDE chuyên dụng để kiểm thử ứng dụng web, API, Mobile và PC
Nó cung cấp cho người sử dụng có một giao diện có thể hoán đổi giúp tạo nên các trường hợp kiểm thử khác nhau Với các chế độ xem thủ công dành cho các đối tượng không chuyên kỹ thuật và chế độ xem các tập lệnh hướng đến kiểm thử có kinh nghiệm Tạo ra các kiểm thử tự động để đánh dấu các cú pháp và hoàn thành các mã thông minh Katalon Studio theo mô hình đối tượng trang với các thành phần GUI trên ứng dụng mobile, web,
PC để ghi lại các tiện ích và lưu trữ trong kho đối tượng
Trang 2614
Hình 2.6 Công cụ Katalon Studio
2.10 Giới thiệu về ngôn ngữ Groovy
Groovy là một ngôn ngữ lập trình hướng đối tượng năng động, có thể chạy trên Máy
ảo Java (JVM) Ngôn ngữ này được thiết kế nhằm mục đích dễ học và sử dụng hơn, nhờ
cú pháp tương tự như Java, nhưng có thêm các tính năng giúp nó mạnh mẽ và biểu cảm hơn Groovy thường được sử dụng làm ngôn ngữ kịch bản cho JVM, đồng thời phổ biến với việc xây dựng các ứng dụng web, Framework thử nghiệm và nhiều dự án phần mềm khác
Một số tính năng chính của Groovy như:
+ Khả năng tương thích với hệ sinh thái Java: dễ dàng tích hợp với các thư viện và Framework Java hiện có
+Viết kịch bản và tự động hóa: Groovy thường được sử dụng làm ngôn ngữ kịch bản để tự động hóa các tác vụ và hỗ trợ xây dựng các tập lệnh có thể chạy trên nền tảng Java
+ Dễ sử dụng: Groovy được thiết kế để dễ học và sử dụng, nhờ cú pháp tương tự như Java nhưng có thêm các tính năng giúp nó biểu cảm và mạnh mẽ hơn
Trang 2715
CHƯƠNG 3 TRIỂN KHAI DỰ ÁN KIỂM THỬ TỰ ĐỘNG VỚI CÔNG CỤ
KATALON STUDIO TRÊN HỆ THỐNG NOPCOMMERCE
3.1 Tổng quan trang web Nopcommerce
nopCommerce là một giải pháp thương mại điện tử mã nguồn mở dựa trên nền tảng ASP.NET MVC 5.0 kết hợp với cơ sở dữ liệu MS SQL 2008 (hoặc lớn hơn) Được cung cấp dưới dạng giấy phép nopCommerce Public V3 và chính thức ra mắt vào tháng
10 năm 2008 cho doanh nghiệp vừa và nhỏ
nopCommerce là một nền tảng thương mại điện tử an toàn và có khả năng mở rộng Tích hợp sẵn công cụ quản trị để quản lý gian hàng, khách hàng, danh sách ưa thích, khuyến mãi, và coupons Ngoài ra cũng hỗ trợ nhiều gian hàng, nhiều nhà phân phối, kho hàng, đa ngôn ngữ, các loại đơn vị tiền tệ và thuế, , cũng như hỗ trợ các cổng thanh toán phổ biến như: Authorize.net, PayPal, Google Checkout, và nhiều loại khác nopCommerce có giao diện responsive linh hoạt với các thiết bị di động nopCommerce chạy ở chế độ Medium Trust
3.2 Sơ đồ Usecase của hệ thống
Vai trò của Admin
Admin có thể thực hiện toàn quyền đối với hệ thống, các chức năng mà admin có thể thực hiện bao gồm:
+ Bảng điều khiển (Dashboard)
+ Quản lý danh mục
+ Quản lý khách hàng (Customers)
+ Quản lý bán hàng (Sales)
+ Quản lý chương trình khuyến mãi (Promotions)
+ Quản lý báo cáo (Reports)
+ Quản lý hệ thống (System)
+ Quản lý nội dung (Content Management)
Trang 2816
+ Quản lý cấu hình (Configuration)
+ Tìm kiếm trợ giúp (Help)
+ Đăng nhập/Đăng xuất: (Login/Logout)
Hình 3.1 Sơ đồ Usecase của hệ thống
3.3 Đặc tả yêu cầu
3.3.1 Đặc tả yêu cầu cho chức năng “Đăng nhập”
Tác nhân: Admin
Điều kiện tiên quyết: Tài khoản đã đăng ký trên hệ thống
Mô tả khái quát: Usecase này thực hiện khi người dùng muốn đăng nhập vào hệ
thống
Trang 2917
Hình 3.2 Giao diện màn hình đăng nhập
Mô tả chi tiết:
Bước 1: Người dùng truy cập trang web nopCommerce bằng đường link:
https://admin-demo.nopcommerce
Bước 2: Người dùng nhập email và password hoặc tick Remember me? tại đây
người dùng nhập thông tin cơ bản bao gồm:
Password X Người dùng nhập Password để đăng nhập
ghi nhớ tài khoản Bảng 3.1 Phân tích Usecase đăng nhập
Bước 3: Người dùng click vào nút ‘Login’ để truy cập vào trang web của hệ thống
Trang 3018
Hình 3.3 Giao diện màn hình Login của trang web
Bước 4: Hệ thống kiểm tra dữ liệu nhập vào:
Email + Nếu người dùng nhập email sai thì màn hình thông báo với nội dung:
“Login was unsuccessful Please correct the errors and try again No customer account found”
+ Nếu người dùng để trống Email hoặc nhập toàn khoản trắng, thì hiển thị thông báo lỗi "Please your enter email"
Password + Nếu người dùng nhập Password sai thì màn hình thông báo lỗi với nội
dung: “Login was unsuccessful Please correct the errors and try again The credentials provided are incorrect”
+ Nếu người dùng để trống Password hoặc nhập hoàn toàn khoảng trắng, thì hiển thị thông báo lỗi với nội dung: “Login was unsuccessful Please correct the errors and try again The credentials provided are incorrect” Remember
me?
+ Nếu người dùng tick vào Remember me? thì hệ thống sẽ lưu thông tin đăng nhập và những lần đăng nhập tiếp theo thì người dùng không cần nhập Email hoặc Password
+ Nếu người dùng không tick vào Remember me? thì hệ thống sẽ không lưu thông tin đăng nhập của người dùng và lần đăng nhập tiếp theo thì người dùng phải nhập Email và Password mới truy cập vào hệ thống Bảng 3.2 Hệ thống kiểm tra dữ liệu đầu vào của Login
Trang 3119
Hình 3.4 Giao diện của trang web khi đăng nhập thành công
3.3.2 Đặc tả yêu cầu cho chức năng ‘Quản lý sản phẩm’
3.3.2.1 Đặc tả yêu cầu cho chức năng ‘Tìm kiếm sản phẩm’
Tác nhân: Admin
Điều kiện tiên quyết: Đăng nhập vào hệ thống thành công
Mô tả khái quát: Use case này được sử dụng để đặt các điều kiện hiển thị danh
sách sản phẩm theo nhu cầu người dùng, có thể thực hiện lọc hoặc nhập gợi ý để tìm kiếm
Hình 3.5 Giao diện của chức năng quản lý sản phầm
Mô tả chi tiết:
Bước 1: Người dùng đến màn hình “Products”, có thể chọn các thông tin mong
muốn hiển thị như sau:
Trang 32Chọn các trường hợp để lọc như sau:
- “All”: lọc tất cả các sản phẩm thuộc Category
- “Computers”: lọc các loại sản phẩm thuộc mục Computers
- “Computers>>Desktop”: lọc các sản phẩm thuộc mục Desktop
- “Computers>>Notebooks”: lọc các sản phẩm thuộc mục Notebooks
- “Computers>>Software”: lọc các sản phẩm theo mục Software
- “Electronics”: lọc sản phẩm theo mục Electronics
- “Electronics>>Camera & photo: lọc sản phẩm theo mục Camera & photo
- “Electronics>>Cell phones: lọc sản phẩm theo mục Cell phones
- “Electronics>>Others: lọc sản phẩm theo mục Others
- “Apparel”: lọc sản phẩm theo mục Apparel
- “Apparel>>Shoes”: lọc sản phẩm theo mục Shoes
- “Apparel>>Clothing”: lọc sản phẩm theo mục Clothing
- “Apparel>>Accessories”: lọc sản phẩm theo mục Accessories
Trang 3321
- “Books”: lọc sản phẩm theo mục Books
- “Jewelry”: lọc sản phẩm theo mục Jewelry
- “Gift Cards”: lọc sản phẩm theo mục Gift Cards
Chọn các trường hợp để lọc như sau:
- “All”: lọc tất cả các Vendor
- “Vendor 1”: lọc sản phẩm theo Vendor 1
- “Vendor 2”: lọc sản phẩm theo Vendor 2 Warehouse
Chọn các trường hợp để lọc như sau:
Chọn các trường hợp để lọc như sau:
- “All”: lọc tất cả các Product type
- “Simple”: lọc sản phẩm theo mục Simple
- “Grouped” lọc sản phẩm theo mục Grouped
Published
Chọn các trường hợp để lọc như sau:
- “All”: lọc tất cả các Published
- “Publish only”: lọc sản phẩm theo mục Publish
- “Unpublish only” : lọc sản phẩm theo mục
Trang 34Tìm kiếm sản phẩm theo SKU của sản phẩm
Bảng 3.3 Phân tích Usecase của Products
Bước 2: Người dùng Click vào button ‘Search’ để tìm kiếm sản phẩm theo mong
muốn
Bước 3: Hệ thống sẽ kiểm tra dữ liệu đầu vào theo những nội dung sau:
Products name Nếu người dùng nhập đúng tên sản phẩm đã được thêm vào hệ thống
thì nó sẽ hiển thị sản phẩm đó, nếu nhập sai, màn hình sẽ hiển thị nội dung: “No data available in table”
bất kì, không chọn Subcategory thì hiện thông báo “No data available in table”
Vendor + Nếu tồn tại sản phẩm mà người bán đã chọn thì hiển thị sản phẩm
cần tìm + Nếu không tồn tại sản phẩm mà người bán đã chọn thì hiển thị với nội dung: “No data available in table”
Trang 3523
tìm + Nếu không tồn tại sản phẩm thuộc kho đã chọn thì hiển thị với nội dung: “No data available in table”
phẩm cần tìm + Nếu không tồn sản phẩm thuộc loại sản phẩm đã chọn thì hiển thị với nội dung : “No data available in table”
+ Nếu chọn “Publish Only” thì hiển thị sản phẩm chỉ xuất bản + Nếu chọn “ Unpublish Only” thì hiển thị sản phẩm không xuất bản
Go directly to
product SKU
Nếu người dùng nhập đúng tên SKU của sản phẩm đó thì hệ thống
sẽ hiển thị đúng sản phẩm đó Bảng 3.4 Hệ thống kiểm tra dữ liệu đầu vào của button Products
- Người dùng tìm kiếm sản phẩm có tên: “Windows 8 Pro”
Hình 3.6 Giao diện màn hình hiển thị sản phẩm mà người dùng muốn tìm kiếm
Trang 3624
3.3.2.2 Đặc tả yêu cầu cho chức năng ‘Tạo sản phẩm mới’
Tác nhân: Admin
Điều kiện tiên quyết: Đăng nhập vào hệ thống thành công
Mô tả khái quát: Use case này được thực hiện nhằm tạo mới một sản phẩm và quản
lý thông tin sản phẩm đó Bao gồm các thông tin chính được liệt kê dưới đây
Mô tả chi tiết:
Bước 1: Người dùng muốn tạo một sản phẩm mới, thực hiện click vào button “Add
new” tại màn hình “Products”
Hình 3.7 Giao diện màn hình thêm sản phẩm
Bước 2: Hệ thống sẽ điều hướng đến Form “Add a new products”, tại đây người
dùng sẽ cập nhật các thông tin của sản phẩm bao gồm:
Button Products infor sẽ bao gồm:
buộc
Mục đích
Trang 3725
- “All”: chọn tất cả các Category
- “Computers”: chọn loại sản phẩm thuộc mục Computers
- “Computers>>Desktop”: chọn sản phẩm thuộc mục Desktop
- “Computers>>Notebooks”: chọn sản phẩm thuộc mục Notebooks
- “Computers>>Software”: chọn sản phẩm theo mục Software
- “Electronics”: chọn sản phẩm theo mục Electronics
- “Electronics>>Camera & photo: chọn sản phẩm theo mục Camera & photo
- “Electronics>>Cell phones: chọn sản phẩm theo mục Cell phones
- “Electronics>>Others: chọn sản phẩm theo mục Others
- “Apparel”: chọn sản phẩm theo mục Apparel
- “Apparel>>Shoes”: chọn sản phẩn theo mục Shoes
- “Apparel>>Clothing”: chọn sản phẩm theo mục Clothing
- “Apparel>>Accessories”: chọn sản phẩm theo mục Accessories
- “Books”: chọn sản phẩm theo mục Books
- “Jewelry”: chọn sản phẩm theo mục Jewelry
Trang 3826
- “Gift Cards”: chọn sản phẩm theo mục Gift Cards Bảng 3.5 Phân tích chức năng Products infor
Button Prices sẽ bao gồm:
bắt buộc
Mục đích
Price X Người dùng thêm giá cho sản phẩm
phẩm có được miễn thuế hay không
- “None”: không chọn loại thuế cho mục nào cả
- “Books”: Chọn loại thuế cho Sách vở
- “Electronic&Software: chọn loại thuế cho Điện tử & Phần mềm
- “Jewelry”: chọn loại thuế cho trang sức
- “Apparel” : chọn loại thuế cho trang phục Bảng 3.6 Phân tích chức năng Prices
Button Shipping sẽ bao gồm:
+ Weight: cân nặng của sản phẩm+ Length: chiều dài của sản phẩm + Width: chiều rộng của sản phẩm + Height: chiều cao của sản phẩm
Trang 3927
Bảng 3.7 Phân tích chức năng Shipping
Bước 3: User click button “Save” để lưu sản phẩm vào hệ thống
Hình 3.8 Giao diện màn hình thêm mới một sản phẩm
Bước 4: Hệ thống sẽ kiểm tra các dữ liệu đầu vào theo nội dung sau:
Products name Người dùng nhập sản phẩm muốn thêm vào, nếu không nhập tên sản
phẩm thì hiển thị thông báo với nội dung: “Please provide a name.” SKU Nếu người dùng nhập SKU đã tồn tại trên hệ thống thì hiển thị thông
báo với nội dung: “The entered SKU is already reserved for the product 'Build your own computer'
Bảng 3.8 Hệ thống kiểm tra dữ liệu đầu vào của button Add New
- Người dùng tìm kiếm lại sản phẩm đã được thêm với tên: “iphone 13”
Trang 4028
Hình 3.9 Giao diện màn hình khi tìm kiếm sản phẩm
3.3.2.3 Đặc tả yêu cầu cho chức năng ‘Tải xuống danh mục dưới dạng PDF’
Tác nhân: Admin
Điều kiện tiên quyết: Đăng nhập vào hệ thống thành công
Mô tả khái quát: Usecase này được sử dụng để tải các các sản phẩm có trong danh
mục dưới dạng PDF
Mô tả chi tiết:
Bước 1: Người dùng muốn tải danh sách sản phẩm dưới dạng PDF, thực hiện click
vào button “Dowload Catalog as PDF” tại màn hình “Products”
Hình 3.10 Giao diện màn hình tải danh sách sản phẩm dưới dạng PDF
Bước 2: Danh sách sản phẩm được tải về thành công dưới dạng PDF