Nhúng

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 71

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH


KHOA CÔNG NGHỆ THÔNG TIN

----🙣🕮🙡---

ĐỒ ÁN MÔN HỌC
KIỂM THỬ PHẦN MỀM NÂNG CAO

ĐỀ TÀI: TÌM HIỂU VÀ PHÂN TÍCH


CÔNG CỤ KIỂM THỬ CYPRESS

TP. Hồ Chí Minh, tháng 5 năm 2024


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN MÔN HỌC
KIỂM THỬ PHẦN MỀM NÂNG CAO

ĐỀ TÀI: TÌM HIỂU VÀ PHÂN TÍCH


CÔNG CỤ KIỂM THỬ CYPRESS

Mã học phần: 2321COMP130903

GVHD: TS. Trần Sơn Hải

CN. Lê Thanh Thoại

Nhóm SV thực hiện: Nhóm 2

Nguyễn Phạm Minh Giang


47.01.104.080

Trần Duy Quân


47.01.104.169

Nguyễn Văn Thuận


47.01.104.204

Lê Văn Vũ 47.01.104.243
TP. Hồ Chí Minh, tháng 5 năm 2024
i

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN


..............................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
ii

MỤC LỤC
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN...................................................i
LỜI CẢM ƠN...........................................................................................................iv
DANH MỤC BẢNG BIỂU.......................................................................................v
DANH MỤC TỪ VIẾT TẮT...................................................................................vi
DANH MỤC HÌNH ẢNH......................................................................................vii
PHẦN MỞ ĐẦU........................................................................................................1
1. Lí do chọn đề tài...............................................................................................1
2. Kết cấu.............................................................................................................1
PHẦN NỘI DUNG....................................................................................................2
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT.....................................................................2
1.1. Kiểm thử phần mềm..................................................................................2
1.1.1. Khái niệm............................................................................................2
1.1.2. Vai trò của kiểm thử phần mềm...........................................................3
1.1.3. Các kĩ thuật kiểm thử phần mềm.........................................................4
1.1.4. Các giai đoạn hay cấp độ kiểm thử phần mềm....................................4
1.1.5. Một số loại hình kiểm thử phổ biến.....................................................4
1.2. Kiểm thử tự động hóa................................................................................5
1.3. Công cụ Cypress........................................................................................6
1.3.1. Khái niệm............................................................................................6
1.3.2. Đối tượng sử dụng...............................................................................6
1.3.3. Kiến trúc..............................................................................................7
1.3.4. Tính năng vượt trội..............................................................................7
1.3.5. Tính năng kiểm thử trong Cypress......................................................8
1.3.5.1. Kiểm thử đầu cuối (End-to-end tests)...........................................8
1.3.5.2. Kiểm thử thành phần (Component tests)......................................8
1.3.5.3. So sánh..........................................................................................9
1.4. Đánh giá về Cypress..................................................................................9
1.5. Công cụ quản lý kiểm thử Xray test management for Jira......................10
CHƯƠNG 2. THỰC HÀNH VỚI CYPRESS...................................................12
2.1. Làm việc với Cypress..............................................................................12
2.1.1. Chương trình được dùng để kiểm thử bằng Cypress:........................12
iii

2.1.2. Các cài đặt ban đầu............................................................................12


2.1.2.1. Node.js........................................................................................12
2.1.2.2. Visual Studio Code......................................................................13
2.1.2.3. Cypress........................................................................................13
2.1.3. Tiến hành viết Testcase cho chương trình bằng Cypress...................20
2.1.3.1. E2E Testing dành cho Food App.................................................20
2.1.3.2. Component Testing cho Hotel Management App.......................27
2.2. Xray Test Management for Jira................................................................30
2.2.1. Cài đặt và thiết lập.............................................................................30
2.2.2. Viết Test.............................................................................................31
2.2.2.1. Testcase.......................................................................................31
2.2.2.2. Parameterized Tests.....................................................................37
2.2.3. Organizing Tests................................................................................41
2.2.3.1. Sử dụng Test Sets........................................................................41
2.2.3.2. Sử dụng Test Repository.............................................................48
2.2.4. Planning Tests....................................................................................50
2.2.5. Document Generation........................................................................56
CHƯƠNG 3. KẾT LUẬN...................................................................................59
DANH MỤC TÀI LIỆU THAM KHẢO...............................................................60
iv

LỜI CẢM ƠN
Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép chúng em được
bày tỏ lòng biết ơn đến tất cả các cá nhân và tổ chức đã tạo điều kiện hỗ trợ, giúp đỡ
chúng em trong suốt quá trình học tập và nghiên cứu đề tài này.
Với lòng biết ơn sâu sắc nhất, chúng em xin gửi đến quý Thầy Cô ở Khoa
Công nghệ Thông tin - Trường Đại học Sư phạm Thành phố Hồ Chí Minh đã truyền
đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại trường.
Nhờ có những lời hướng dẫn, dạy bảo của các thầy cô nên đề tài nghiên cứu của
chúng em mới có thể hoàn thiện tốt đẹp.
Một lần nữa, chúng em xin chân thành cảm ơn Thầy Trần Sơn Hải và Thầy
Lê Thanh Thoại - người đã trực tiếp giúp đỡ, quan tâm, hướng dẫn chúng em hoàn
thành tốt bài báo cáo này trong thời gian qua.
Bài báo cáo cuối kỳ thực hiện trong khoảng thời gian gần 1 tháng. Bước đầu
đi vào thực tế của chúng em còn hạn chế và còn nhiều bỡ ngỡ nên không tránh khỏi
những thiếu sót, chúng em rất mong nhận được những ý kiến đóng góp quý báu của
quý Thầy để kiến thức của chúng em trong lĩnh vực này được hoàn thiện hơn đồng
thời có điều kiện bổ sung, nâng cao ý thức của mình.
Chúng em xin chân thành cảm ơn!
Thành phố Hồ Chí Minh, tháng 5 năm 2024
NHÓM SINH VIÊN THỰC HIỆN
v

DANH MỤC BẢNG BIỂU


Bảng 1.1: 2 kỹ thuật phần mềm “xác minh” và “xác nhận”.......................................3
Bảng 1.2: Các giai đoạn của quá trình sản xuất phần mềm........................................3
Bảng 1.3: So sánh 2 tính năng kiểm thử trong Cypress..............................................9
vi

DANH MỤC TỪ VIẾT TẮT

Từ viết tắt Từ đầy đủ


QA Quality Assurance
CI Continuous Integration
CD Continuous Delivery
SDET Software Developer Engineer in
Test
vii

DANH MỤC HÌNH ẢNH


Hình 2.1: Tạo thư mục để sử dụng Cypress..............................................................13
Hình 2.2: Mở thư mục bằng Visual Studio Code......................................................14
Hình 2.3: Sử dụng lệnh trên terminal - 1..................................................................14
Hình 2.4: File package.json đã được tạo trong thư mục làm việc............................15
Hình 2.5: Sử dụng lệnh trên terminal - 2..................................................................15
Hình 2.6: Package được cài đặt.................................................................................15
Hình 2.7: Sử dụng lệnh trên terminal - 3..................................................................16
Hình 2.8: Giao diện Cypress - 1................................................................................16
Hình 2.9: Giao diện Cypress - 2................................................................................17
Hình 2.10: Chọn trình duyệt sử dụng........................................................................17
Hình 2.11: Giao diện Cypress - 3..............................................................................18
Hình 2.12: Tạo file test mới......................................................................................18
Hình 2.13: Thư mục E2E đã tạo...............................................................................19
Hình 2.14: Test report - 1..........................................................................................20
Hình 2.15: Test report - 2..........................................................................................20
Hình 2.16: Test report - 3..........................................................................................20
Hình 2.17: Test script - 1...........................................................................................21
Hình 2.18: Test script - 2...........................................................................................22
Hình 2.19: Test script - 3...........................................................................................23
Hình 2.20: Test script - 4...........................................................................................23
Hình 2.21: Test script - 5...........................................................................................24
Hình 2.22: Test script - 6...........................................................................................25
Hình 2.23: Kết quả testcase - 1.................................................................................26
Hình 2.24: Kết quả testcase - 2.................................................................................26
Hình 2.25: Testcase planning....................................................................................27
Hình 2.26: Test script - 1...........................................................................................27
Hình 2.27: Test script - 2...........................................................................................28
Hình 2.28: Test script - 3...........................................................................................28
Hình 2.29: Kết quả Testcase - 1................................................................................29
Hình 2.30: Kết quả Testcase - 2................................................................................29
Hình 2.31: Giao diện plugin Xray.............................................................................30
Hình 2.32: Configuration project..............................................................................30
Hình 2.33: Add Issue Type........................................................................................31
Hình 2.34: Create new Issue.....................................................................................31
Hình 2.35: Create new Issue.....................................................................................32
Hình 2.36: Thông tin cần điền khi create issue.........................................................33
Hình 2.37: Create Test Step Type.............................................................................34
Hình 2.38: Create Test Type Cucumber....................................................................35
Hình 2.39: Create Test Type Generic........................................................................36
Hình 2.40: Lịch sử khi làm việc với Xray................................................................37
Hình 2.41: Lịch sử khi làm việc với Xray................................................................37
viii

Hình 2.42: Tạo danh sách chỉ dành cho tham số......................................................39
Hình 2.43: Dùng danh sách có sẵn............................................................................39
Hình 2.44: Tạo hàng mới..........................................................................................41
Hình 2.45: Chọn Existing tests trong phần Tests......................................................43
Hình 2.46: Tìm kiếm test được liên kết bằng tab Select...........................................43
Hình 2.47: Tìm kiếm test được liên kết bằng tab Search..........................................44
Hình 2.48: Tìm kiếm test được liên kết bằng JQL....................................................45
Hình 2.49: Giao diện Folders trong Test Repository................................................48
Hình 2.50: Giao diện Test Sets trong Test Repository..............................................50
Hình 2.51: Giao diện Test Plan.................................................................................50
Hình 2.52: Chọn xuất test plan theo dạng CSV hoặc Document Generator.............51
Hình 2.53: Giao diện Test Plan Board......................................................................52
Hình 2.54: Trạng thái trong thanh tiến trình thực hiện kiểm tra...............................54
Hình 2.55: Bộ lọc chạy thử.......................................................................................55
Hình 2.56: Thông tin Test chạy thử nghiệm.............................................................56
Hình 2.57: Cài đặt Template và tạo trực tiếp tại Document Generator.....................57
Hình 2.58: Tạo Document Generator trực tiếp tại Issues.........................................57
1

PHẦN MỞ ĐẦU

1. Lí do chọn đề tài
Xu hướng phát triển phần mềm ngày nay đề cao tốc độ và sự linh hoạt, đòi hỏi
các giải pháp kiểm thử hiệu quả và tự động hóa cao. Kiểm thử thủ công vốn tốn
nhiều thời gian, chi phí và tiềm ẩn nhiều rủi ro, không thể đáp ứng được yêu cầu
ngày càng cao của thị trường. Do đó, việc áp dụng các công cụ kiểm thử tự động
hóa trở nên cấp thiết hơn bao giờ hết. Nổi bật trong lĩnh vực kiểm thử tự động hóa,
Cypress mang đến trải nghiệm liền mạch, tích hợp trực tiếp vào trình duyệt, giúp
nhà phát triển dễ dàng theo dõi và tương tác với ứng dụng trong suốt quá trình kiểm
thử. Nhờ sử dụng JavaScript - ngôn ngữ lập trình phổ biến và dễ học, Cypress giúp
giảm thiểu thời gian học tập và triển khai, đồng thời hỗ trợ đa dạng các loại kiểm
thử, từ kiểm thử đơn vị, kiểm thử tích hợp đến kiểm thử đầu cuối và kiểm thử giao
diện người dùng. Bên cạnh đó, Cypress còn cung cấp nhiều tính năng hữu ích như
chụp ảnh màn hình, ghi video, gỡ lỗi và báo cáo chi tiết, đáp ứng mọi nhu cầu kiểm
thử của nhà phát triển. Nhóm chúng em chọn đề tài “Tìm hiểu và phân tích công
cụ Cypress” để nghiên cứu. Điều này khá là cần thiết để ứng dụng hiệu quả công
nghệ này vào thực tế, góp phần nâng cao chất lượng phần mềm và tối ưu hóa quy
trình phát triển.

2. Kết cấu
Ngoài phần Mở đầu và danh mục Tài liệu tham khảo, báo cáo gồm có:
Chương 1: Cơ sở lý thuyết
Giới thiệu các khái niệm cơ bản về kiểm thử phần mềm và xác định vai trò của
việc kiểm thử phần mềm trong qui trình phát triển phần mềm. Giới thiệu các khái
niệm cơ bản về công cụ kiểm thử phần mềm tự động Cypress, công cụ quản lý kiểm
thử Jira Xray và các tính năng của chúng.
Chương 2: Thực hành với Cypress
Thực hành cài đặt Cypress và viết các Testcase để kiểm thử phần mềm do
nhóm tự chọn. Thực hành quản lý kiểm thử với Jira Xray để quản lý các Testcase
giành cho Cypress
Chương 3: Kết luận
Chốt lại các tính năng vượt trội của Cypress và tổng kết những gì nhóm đã
nghiên cứu và trình bày
2
3

PHẦN NỘI DUNG


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

1.1. Kiểm thử phần mềm

1.1.1. Khái niệm


Kiểm thử phần mềm là hoạt động khảo sát thực tiễn sản phẩm hay dịch vụ
phần mềm trong đúng môi trường chúng dự định sẽ được triển khai nhằm cung cấp
cho những người có lợi ích liên quan những thông tin về chất lượng của sản phẩm
hay dịch vụ phần mềm ấy. Mục đích của kiểm thử phần mềm là tìm ra các lỗi hay
khiếm khuyết phần mềm nhằm đảm bảo hiệu quả hoạt động tối ưu của phần mềm
trong nhiều ngành khác nhau. [1]
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 hay gọi tắt là V&V). Verification (chữ V đầu tiên)
là quá trình đánh giá một hệ thống hoặc thành phần để xác định xem các sản phẩm
của một giai đoạn phát triển nhất định đáp ứng các điều kiện áp đặt vào lúc bắt đầu
của giai đoạn đó hay không. Các hoạt động Verification bao gồm việc kiểm thử và
đánh giá. Ví dụ trong phần mềm chơi game Monopoly, chúng ta có thể xác minh
rằng hai người choi không thể sở hữu cùng một nhà. Validation là quá trình đánh giá
một hệ thống hoặc một thành phần trong hoặc ở cuối của quá trình phát triển để xác
định xem nó đáp ứng yêu cầu quy định
Verification Validation
Thông qua Verification chúng ta muốn Thông qua Validation chúng ta sẽ xác
chắc chắn rằng phần mềm có các hành vi nhận rằng những nỗi không đúng với
đúng như chúng ta mong đợi. Ví dụ: yêu cầu của khách hàng sẽ không
được thực hiện tiếp theo trong suốt
quá trình xây dựng xây dựng phần
mềm. Validation luôn luôn liên quan
tới việc so sánh với các yêu cầu của
khách hàng. Ví dụ khách hàng yêu
cầu là làm cho họ game Monopoly

Trong game Monopoly, người chơi có thể


được cộng 200 điểm nếu họ hạ cánh trên
4

sân hoặc đi qua Go nhưng người lập trình


lại cài đặt là người chơi phải đi qua Go

nhưng đội ngũ phát triển lại làm đưa


cho game Life vì họ nghĩ là game
Life hay hơn game Monopoly như
yêu cầu ban đầu
Bảng 1.1: 2 kỹ thuật phần mềm “xác minh” và “xác nhận”

1.1.2. Vai trò của kiểm thử phần mềm


Việc tạo ra một sản phẩm phát triển phần mềm, bắt buộc phần mềm phải trải qua
nhiều đầu từ khi bắt đầu có ý thi. Khối lượng công việc giai đoạn, người ta gọi là
qui trình tưởng cho đến khi đưa ra sản trong từng giai đoạn của quá trình sản xuất
phần mềm cũng thay đổi theo thời gian. Bảng dưới đây minh họa cụ thể hơn về điều
này:
Giai đoạn Phân tích Thiết kế Thiết kế Lập trình Tích hợp Kiểm thử
yêu cầu sơ bộ chi tiết và kiểm và kiểm hệ thống
thử đơn thử tích
vị hợp
Hai thập 10% 80% 10%
kỉ 1960-
1970
Thập kỉ 20% 60% 20%
1980
40% 30% 30%
Bảng 1.2: Các giai đoạn của quá trình sản xuất phần mềm
Như vậy, một sản phẩm phần mềm không chỉ còn rất nhiều phần ẩn đằng sau
nó. Vì vậy, việc mắc lỗi không chỉ xảy ra trong khi lập trình mà còn xảy ra cao hơn
trong các công đoạn trình phát triển một sản phẩm phần mềm. Việc kiểm thử cũng
vì được tiến hành trong tất cả các phần tạo nên một sản phẩm phần mềm.
5

1.1.3. Các kĩ thuật kiểm thử phần mềm


Kiểm thử hộp đen (Black Box testing): dùng để kiểm tra chức năng mà
không xem xét mã nguồn cũng như cấu chúc chương trình bên trong.
Thường kiểm thử hộp đen quan tâm nhiều đến các bộ dữ liệu kiểm thử đầu
vào.
Kiểm thử hộp trắng (White Box testing): khác với kiểm thử hộp đen, kiểm
thử hộp trắng xem xét mọi module trong chương trình, các luồng thực hiện
công việc để từ đó đưa ra các chiến lược kế hoạch cụ thể cho việc kiểm thử.
Kiểm thử hộp xám (Grey Box Testing): đây là một kĩ thuật kiểm thử mới dựa
trên những đặc tính của cả kiểm thử hộp đen và hộp trắng. Mục tiêu chính
của kiểm thử hộp xám là kiểm thử các ứng dụng trên nền web (web based).

1.1.4. Các giai đoạn hay cấp độ kiểm thử phần mềm
Kiểm thử đơn vị (Unit test): kiểm thử từng module nhỏ trong chương trình
để tìm ra các lỗi và khắc phục.
Kiểm thử tích hợp: sau khi đã thực hiện thành công kiểm thử đơn vị, ta sẽ
tiến hành tích hợp các module này với nhau và kiểm thử trên toàn bộ khối
mã lệnh đã tích hợp này.
Kiểm thử hệ thống (System test): kiểm thử trên toàn bộ ứng dụng.
Kiểm thử chấp nhận (Acceptance Test): khâu này do khách hàng trực tiếp
đảm nhận trước khi bản giao sản phẩm chính thức
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.

1.1.5. Một số loại hình kiểm thử phổ biến


Hiện nay, do sự phát triển mạnh mẽ của công nghệ phần mềm nên có một số
loại hình kiểm thử tiêu biểu như:
Kiểm thử các phần mềm trên Desktop: đây là các ứng dụng được cài đặt trực
tiếp trên máy tính cá nhân nhằm thực hiện các chức năng theo yêu cầu người
dùng. Đây vẫn đang là những ứng dụng phổ biến nhất.
Kiểm thử Web hay kiểm thử trên đám mây: với sự lớn mạnh của Internet thì
các ứng dụng web cũng ngày càng phát triển và đang dần thay thế các ứng
6

dụng trên Desktop truyền thống như Google Document, Microsoft web apps,
...
Kiểm thử trên Mobile: ngày nay xã hội với sự phát triển nhanh chóng, các
thiết bị di động (điện thoại thông minh, máy tính bảng, ...) có số lượng người
dùng cũng đang tăng lên chóng mặt, cùng với đó là số lượng phần mềm phục
vụ cho nhu cầu cũng tăng cao vì vậy đây là một lĩnh vực đầy tiềm năng và
thách thức trong công nghệ phần mềm.

1.2. Kiểm thử tự động hóa


Kỷ nguyên phần mềm hiện đại được đánh dấu bởi tốc độ phát triển chóng mặt,
đòi hỏi các giải pháp kiểm thử hiệu quả và tự động hóa cao để theo kịp xu hướng.
Việc kiểm thử thủ công truyền thống không còn đáp ứng được nhu cầu ngày càng
cao về tốc độ, độ chính xác và khả năng bảo trì của phần mềm. Do đó, kiểm thử tự
động hóa đã trở thành một công cụ không thể thiếu trong quy trình phát triển phần
mềm hiện đại. Xu hướng phát triển phần mềm hiện đại hướng đến các yếu tố sau:
Tốc độ: Nhu cầu thị trường thay đổi nhanh chóng, đòi hỏi phần mềm phải
được phát triển và cập nhật liên tục. Kiểm thử thủ công tốn nhiều thời gian và công
sức, không thể đáp ứng được tốc độ phát triển này.
Linh hoạt: Phần mềm cần có khả năng thích ứng với những thay đổi về yêu
cầu của người dùng và thị trường. Kiểm thử thủ công khó có thể đảm bảo khả năng
linh hoạt này.
Hiệu quả: Việc phát triển phần mềm cần được tối ưu hóa về thời gian, chi phí
và nguồn lực. Kiểm thử thủ công tốn nhiều thời gian và chi phí, ảnh hưởng đến hiệu
quả chung của dự án.
Chất lượng: Phần mềm cần có chất lượng cao, đáp ứng được yêu cầu của
người dùng và thị trường. Kiểm thử thủ công dễ xảy ra sai sót, ảnh hưởng đến chất
lượng phần mềm.
Kiểm thử tự động hóa mang lại nhiều lợi ích vượt trội so với kiểm thử thủ
công, giúp giải quyết các vấn đề nêu trên:
Tăng tốc độ kiểm thử: Các bài kiểm thử tự động hóa có thể được thực thi
nhiều lần một cách nhanh chóng và chính xác, giúp tiết kiệm thời gian và công sức.
Nâng cao độ chính xác: Kiểm thử tự động hóa ít xảy ra sai sót do yếu tố con
người, giúp đảm bảo chất lượng phần mềm tốt hơn.
7

Phát hiện lỗi sớm: Kiểm thử tự động hóa giúp phát hiện lỗi sớm trong quá
trình phát triển, giảm chi phí sửa lỗi sau này.
Tăng khả năng bảo trì: Viết các bài kiểm thử tự động hóa giúp dễ dàng bảo trì
và cập nhật phần mềm.
Tăng sự tự tin: Kiểm thử tự động hóa giúp nhà phát triển tự tin hơn về chất
lượng phần mềm của họ.
Với những lợi ích trên, kiểm thử tự động hóa đã trở thành một công cụ không
thể thiếu trong quy trình phát triển phần mềm hiện đại. Các công cụ kiểm thử tự
động hóa ngày càng phổ biến và được sử dụng rộng rãi bởi các doanh nghiệp và tổ
chức trong nhiều lĩnh vực khác nhau. Việc áp dụng kiểm thử tự động hóa mang lại
nhiều lợi ích cho doanh nghiệp, giúp tiết kiệm thời gian và chi phí: giảm thời gian
và chi phí cho việc kiểm thử phần mềm; nâng cao chất lượng phần mềm: đảm bảo
chất lượng phần mềm tốt hơn, giảm thiểu lỗi và sự cố; tăng tốc độ phát triển: giúp
phát triển phần mềm nhanh chóng hơn, đáp ứng nhu cầu thị trường; tăng khả năng
cạnh tranh: giúp doanh nghiệp cạnh tranh tốt hơn trên thị trường.

1.3. Công cụ Cypress

1.3.1. Khái niệm


Cypress là công cụ kiểm thử giao diện miễn phí, mã nguồn mở thế hệ mới
được xây dựng cho trang web hiện đại. Cypress giải quyết các điểm khó khăn chính
cho nhà phát triển và kỹ sư QA gặp phải khi kiểm thử các ứng dụng hiện đại.
Cypress thường được so sánh với Selenium; tuy nhiên Cypress khác biệt cả về
cơ bản lẫn kiến trúc. Cypress không bị ràng buộc bởi những hạn chế tương tự như
Selenium. Điều này cho phép viết các bài kiểm tra nhanh hơn, dễ dàng hơn và đáng
tin cậy hơn.

1.3.2. Đối tượng sử dụng


Đối tượng sử dụng Cypress thường là nhà phát triển hoặc kỹ sư QA xây dựng
ứng dụng web bằng khung JavaScript hiện đại. Cypress có thể thử và thao tác thông
qua trình duyệt.
Cypress có thể sử dụng để kiểm thử API và hoạt động của các trang web với
front-end hiện đại.
8

1.3.3. Kiến trúc


Đằng sau Cypress là một quy trình máy chủ Node. Cypress và Node liên tục
liên lạc, đồng bộ hóa và thực hiện các nhiệm vụ thay mặt cho nhau. Việc có quyền
truy cập vào cả hai phần (trước và sau) mang lại cho nó khả năng phản hồi các sự
kiện của ứng dụng trong thời gian thực, đồng thời hoạt động bên ngoài trình duyệt
đối với các tác vụ yêu cầu đặc quyền cao hơn.

1.3.4. Tính năng vượt trội


Ngoài những tính năng cơ bản mà một phần mềm kiểm thử nên có như: Thiết
lập, viết, chạy và gỡ lỗi các trường hợp kiểm thử thì Cypress có những tính năng
vượt trội hơn so với các framework kiểm thử khác:
Time Travel (Du hành thời gian): Cypress cho phép xem lại các trạng thái của
thành phần, đối tượng trước khi thực hiện kiểm thử.
Debuggability (Khả năng gỡ lỗi): Có thể tự động rà soát được nguyên nhân bài
kiểm tra không thành công.
Automatic Waiting (Chờ đợi tự động): Cypress tự động chờ mục tiêu kiểm thử
xuất hiện và xác nhận trước khi tiếp tục chứ không cần phải chờ đợi (như chờ trang
web load, phần tử chưa kịp load lên). Không còn bất đồng bộ địa ngục nữa.
Spies, Stubs, and Clocks (Truy cứu, mô phỏng và đếm giờ): Xác minh và kiểm
soát hành vi của các chức năng, phản hồi của máy chủ hoặc bộ hẹn giờ.
Network Traffic Control (Kiểm soát lưu lượng mạng): Dễ dàng kiểm soát, sơ
khai và kiểm tra các trường hợp biên mà không cần liên quan đến máy chủ. Có thể
kiểm tra băng thông truy cập mạng.
Consistent Results (Kết quả nhất quán): Kiểm tra nhanh, nhất quán và đáng tin
cậy, không có vảy.
Screenshots, Videos, and Test Replay (Chụp màn hình, quay và phát lại kiểm
thử): Xem ảnh chụp màn hình được chụp tự động khi không thành công và có thể
xem lại quá trình thực hiện kiểm thử như một video. Ghi vào Cypress Cloud và phát
lại thử nghiệm khi nó được thực hiện trong quá trình chạy để gỡ lỗi cấu hình 0 bằng
cách sử dụng Phát lại kiểm thử.
9

Cross Browser Testing (Kiểm thử trình duyệt chéo): Chạy thử nghiệm trong
các trình duyệt thuộc dòng Firefox và Chrome (bao gồm Edge và Electron) cục bộ
và tối ưu trong quy trình CI.
Smart Orchestration (Điều phối thông minh): Sau khi đã thiết lập để ghi vào
Cypress Cloud, có thể dễ dàng song song hóa bộ thử nghiệm, chạy lại các thông số
kỹ thuật không thành công trước bằng Spec Prioritization (Ưu tiên thông số kỹ
thuật) và hủy các lần chạy thử nghiệm khi xảy ra lỗi bằng tính năng Auto
Cancellation (Tự động hủy) để có vòng phản hồi chặt chẽ.
Flake Detection (Phát hiện vảy): Khám phá và chẩn đoán các bài kiểm tra
không đáng tin cậy bằng tính năng quản lý kiểm thử Cypress Cloud's Flaky.

1.3.5. Tính năng kiểm thử trong Cypress


Cypress cung cấp 2 tùy chọn kiểm thử là End-to-end tests (Kiểm thử đầu
cuối) và component tests (Kiểm thử thành phần).
1.3.5.1. Kiểm thử đầu cuối (End-to-end tests)
Kiểm thử đầu cuối là một kỹ thuật kiểm thử ứng dụng từ trình duyệt web cho
đến phần back-end của ứng dụng, cũng như kiểm tra khả năng tích hợp với API
và dịch vụ của bên thứ ba. Những loại thử nghiệm này rất hữu ích trong việc
đảm bảo toàn bộ ứng dụng của hoạt động như một tổng thể gắn kết.
Ưu điểm: Đảm bảo ứng dụng hoạt động như một tổng thể gắn kết. Các thử
nghiệm phù hợp với trải nghiệm người dùng. Có thể được viết bởi nhà phát triển
hoặc Nhóm QA. Có thể được sử dụng để kiểm thử tích hợp.
Nhược điểm: Khó thiết lập, vận hành và bảo trì hơn. Cung cấp cơ sở hạ tầng
thử nghiệm trong CI. Kiểm thử trong các trường hợp cụ thể yêu cầu thiết lập
nhiều hơn.
1.3.5.2. Kiểm thử thành phần (Component tests)
Các web framework hiện đại cung cấp các cách viết ứng dụng bằng cách chia
chúng thành các đơn vị logic nhỏ hơn gọi là các thành phần. Các thành phần có
thể từ khá nhỏ (như nút - button) đến phức tạp hơn (như biểu mẫu đăng ký -
form).
Do tính chất của chúng, các thành phần có xu hướng dễ dàng kiểm tra được,
đó là lúc Kiểm tra thành phần Cypress phát huy tác dụng.
10

Ưu điểm: Dễ dàng hơn để kiểm tra các thành phần riêng biệt. Nhanh chóng
và đáng tin cậy. Dễ dàng thiết lập các kịch bản cụ thể trong các thử nghiệm.
Không dựa vào bất kỳ hệ thống bên ngoài nào để chạy.
Nhược điểm: Không đảm bảo chất lượng ứng dụng tổng thể. Không gọi vào
API/Dịch vụ bên ngoài. Thường được viết bởi các nhà phát triển làm việc trên
thành phần đó.
1.3.5.3. So sánh
Kiểm thử thành phần khác với kiểm thử đầu cuối ở chỗ thay vì truy cập URL
để hiển thị toàn bộ ứng dụng, một thành phần có thể được "chọn ra" và tự kiểm
thử. Điều này cho phép tập trung vào việc kiểm tra chức năng của thành phần và
không phải lo lắng về các vấn đề khác khi kiểm tra một thành phần như một
phần của ứng dụng lớn hơn.
Kiểm thử đầu cuối Kiểm thử thành phần
(End-to-end tests) (Component tests)
Kiểm thử gì? Tất cả các lớp của ứng Thành phần riêng lẻ
dụng
Đặc trưng Toàn diện, chậm hơn, Chuyên nghiệp, nhanh
dễ bị bong tróc hơn chóng, đáng tin cậy

Sử dụng cho Đảm bảo ứng dụng hoạt Kiểm tra chức năng của
động như một thể gắn từng thành phần
kết
Viết bởi Nhà phát triển, đội ngũ Các nhà phát triển và thiết
QA, SDETs kế
Cơ sở hạ tầng CI Thường yêu cầu thiết Không cần thiết
lập phức tạp
Lệnh khởi tạo cy.visit(url) cy.mount(<MyComponent
/>)
Bảng 1.3: So sánh 2 tính năng kiểm thử trong Cypress

1.4. Đánh giá về Cypress


Cypress là một công cụ kiểm thử tự động mã nguồn mở dành cho việc kiểm
thử ứng dụng web. Mặc dù Cypress có nhiều ưu điểm như dễ sử dụng, độ tin cậy
cao và tích hợp dễ dàng, nhưng cũng có một số hạn chế như sau:
11

Ưu điểm:
Mã nguồn mở.
Tài liệu hướng dẫn đa dạng, đầy đủ.
Dễ sử dụng: Cypress có cú pháp rõ ràng và dễ hiểu, điều này giúp cho các nhà
phát triển và kiểm thử dễ dàng tiếp cận và sử dụng công cụ này.
Độ tin cậy cao.
Giao diện đồ họa rõ ràng: Cypress cung cấp giao diện người dùng đồ họa rõ
ràng và thân thiện, giúp người dùng dễ dàng hiểu và tương tác với các bài kiểm thử.
Tích hợp dễ dàng: Cypress có thể tích hợp với nhiều công cụ và framework
phổ biến như Jira.
Tốc độ thực thi nhanh: Cypress thực thi các bài kiểm thử một cách nhanh
chóng, giúp tăng hiệu suất trong quá trình phát triển.
Nhược điểm:
Cộng đồng chưa đa dạng, khi phát hiện lỗi mới khó để có thể sửa.
Hạn chế trong việc kiểm thử đa trình duyệt: Mặc dù Cypress hỗ trợ kiểm thử
trên nhiều trình duyệt, nhưng các bài kiểm thử chỉ có thể chạy trên một trình duyệt
duy nhất tại một thời điểm.
Không hỗ trợ đa luồng (multi-threading): Cypress không hỗ trợ chạy các bài
kiểm thử đồng thời trên nhiều luồng vì nó chỉ chạy giao diện trên một cửa sổ trình
duyệt.
Về chức năng kiểm thử thành phần chỉ hỗ trợ cho một số front-end framework
cụ thể.
Không hoàn toàn miễn phí. Cần trả phí để có thể tích hợp các ứng dụng khác
được. (Ví dụ như Jira).

1.5. Công cụ quản lý kiểm thử Xray test management for Jira
Quản lý kiểm thử thường đề cập đến hoạt động quản lý quy trình kiểm thử.
Công cụ quản lý kiểm tra là phần mềm được sử dụng để quản lý các bài kiểm tra (tự
động hoặc thủ công) đã được quy định trước đó bởi quy trình kiểm tra. Nó thường
được liên kết với phần mềm tự động hóa. Các công cụ quản lý kiểm thử lấy kết quả
từ công cụ kiểm thử, từ đó người dùng có thể sử dụng chúng để lập kế hoạch kiểm
thử chuyên nghiệp hơn.
12

Xray Test Management for Jira là một công cụ quản lý kiểm thử phần mềm
tích hợp sâu vào hệ thống Jira. Công cụ này cung cấp một giải pháp toàn diện cho
việc quản lý, theo dõi và báo cáo về các hoạt động kiểm thử trong các dự án phần
mềm.

CHƯƠNG 2. THỰC HÀNH VỚI CYPRESS

2.1. Làm việc với Cypress

2.1.1. Chương trình được dùng để kiểm thử bằng Cypress:


Để demo việc thực hành với công cụ kiểm thử Cypress, chúng em sẽ sử dụng
Cypress để kiểm thử một chương trình thuộc đồ án cá nhân của chúng em ở các
môn học khác. Đó là chương trình website Food App và chương trình website Hotel
Management App.
Website Food App được phát triển dựa trên framework ASP.NET, dùng để
kinh doanh các loại công thức nấu ăn, từ các món nhanh dễ làm theo công thức đến
các món cỡ nhà hàng mà dưa trên công thức đó, khách hàng vẫn có thể làm theo,
với một trọng tâm đặc biệt trên sự đa dạng và chất lượng.
Website Hotel Management App được phát triển dựa trên framework React,
dùng để quản lý thông tin của một khách sạn, giúp việc quản lý khách hàng, phòng,
thông tin đặt phòng và các dịch vụ liên quan trong khách sạn dễ dàng hơn, thuận
tiện hơn.
Lí do nhóm chọn 2 chương trình là vì chương trình Food App mà nhóm lựa
chọn để kiểm thử sử dụng framework ASP.NET để xây dựng, nên sẽ không phù hợp
với Component Testing. Component Testing chỉ được sử dụng để kiểm thử các
thành phần giao diện tự đóng gói như React components, Vue components, Angular
components, … Trong khi đó, các thành phần giao diện trong framework ASP.NET
MVC được tạo ra bằng HTML và Razor views.

2.1.2. Các cài đặt ban đầu


Trước khi sử dụng được Cypress, ta cần phải cài đặt:
2.1.2.1. Node.js
Node.js là một môi trường thực thi mã JavaScript nền tảng dựa trên Chrome's
V8 JavaScript engine. Nó cho phép chạy mã JavaScript không chỉ trên trình duyệt
13

web mà còn trên máy chủ, tạo điều kiện cho việc phát triển ứng dụng web cả phía
máy chủ và phía client bằng cùng một ngôn ngữ lập trình.
Cypress được viết bằng JavaScript, và nó chạy trong môi trường Node.js. Việc
sử dụng Node.js cho phép Cypress tương tác với các yếu tố của trang web, thực
hiện các thao tác và kiểm tra kết quả một cách tự động.
2.1.2.2. Visual Studio Code
Visual Studio Code là một trình biên soạn dành cho việc viết, chỉnh sửa và
debug mã cho nhiều ngôn ngữ lập trình khác nhau. Đặc biệt, VS Code được thiết kế
để hỗ trợ các ngôn ngữ phổ biến như JavaScript, TypeScript, HTML, CSS, Python
và nhiều ngôn ngữ khác.
Có thể sử dụng Visual Studio Code để viết và chỉnh sửa các test scripts cho
Cypress một cách thuận tiện và hiệu quả do Cypress được tích hợp rất mạnh mẽ với
Visual Studio Code để cung cấp rất nhiều tính năng hữu ích, trong đó có trình nhắc
lệnh giúp cho việc kiểm thử bằng Cypress trên Visual Studio Code đơn giản hơn
bao giờ hết.
2.1.2.3. Cypress
Để dùng Cypress thì đầu tiên ta phải tải package Cypress qua các bước sau:
Bước 1: Tạo mới một thư mục có tên là Food App Testing.

Hình 2.1: Tạo thư mục để sử dụng Cypress


14

Bước 2: Mở thư mục bằng Visual Studio Code.

Hình 2.2: Mở thư mục bằng Visual Studio Code


Bước 3: Mở Terminal mới rồi gõ ‘npm init -y’

Hình 2.3: Sử dụng lệnh trên terminal - 1


15

Hình 2.4: File package.json đã được tạo trong thư mục làm việc

Bước 4: Tải package Cypress trong thư mục làm việc bằng cú pháp ‘npm
install Cypress’.

Hình 2.5: Sử dụng lệnh trên terminal - 2


Package Cypress đã được cài đặt vào thư mục làm việc.

Hình 2.6: Package được cài đặt


16

Bước 5: Mở Cypress để Cypress hoàn thiện các file cuối cùng trước khi ta bắt
tay vào kiểm thử bằng cú pháp ‘npx cypress open’

Hình 2.7: Sử dụng lệnh trên terminal - 3


Lúc này, trang giao diện của Cypress được hiển thị trên màn hình, nó yêu cầu
ta chọn 1 trong 2 phương thức kiểm thử chính của Cypress là E2E Tesing (End to
end Testing) và Component Testing.

Hình 2.8: Giao diện Cypress - 1


Sau khi chọn E2E Testing, Cypress sẽ cho ta thấy các file mà Cypress sẽ thêm
vào thư mục làm việc. Nhấn vào ‘Continue’.
17

Hình 2.9: Giao diện Cypress - 2


Bước 6: Chọn trình duyệt mà ta muốn sử dụng để kiểm thử chương trình rồi
nhấn ‘Start E2E Testing’

Hình 2.10: Chọn trình duyệt sử dụng


18

Giao diện Cypress sẽ xuất hiện trên màn hình.

Hình 2.11: Giao diện Cypress - 3


Bước 7: Chọn ‘Create new spec’ để tạo file test mới. Cypress sẽ yêu cầu ta
chọn đường dẫn và đặt tên cho file test đó. Ta nên giữ nguyên đường dẫn và đổi tên
file lại là Test1.cy.js rồi nhấn ‘Create spec’.

Hình 2.12: Tạo file test mới


19

Quay lại Visual Studio Code, ta đã thấy thư mục cypress giờ đây đã có thêm
thư mục e2e kèm với file mà ta mới tạo.

Hình 2.13: Thư mục E2E đã tạo


Khi muốn tiến hành kiểm thử, ta chỉ cần viết các test script trong các file nằm
trong thư mục e2e là được.
20

2.1.3. Tiến hành viết Testcase cho chương trình bằng Cypress
2.1.3.1. E2E Testing dành cho Food App
 Test report

Hình 2.14: Test report - 1

Hình 2.15: Test report - 2

Hình 2.16: Test report - 3


21

 Test script cho các Testcase

Hình 2.17: Test script - 1


22

Hình 2.18: Test script - 2


23

Hình 2.19: Test script - 3

Hình 2.20: Test script - 4


24

Hình 2.21: Test script - 5


25

Hình 2.22: Test script - 6


26

 Kết quả cho các Testcase

Hình 2.23: Kết quả testcase - 1

Hình 2.24: Kết quả testcase - 2


27

2.1.3.2. Component Testing cho Hotel Management App


 Test report

Hình 2.25: Testcase planning


 Test script cho các Testcase

Hình 2.26: Test script - 1


28

Hình 2.27: Test script - 2

Hình 2.28: Test script - 3


29

 Kết quả các Testcase

Hình 2.29: Kết quả Testcase - 1

Hình 2.30: Kết quả Testcase - 2


30

2.2. Xray Test Management for Jira

2.2.1. Cài đặt và thiết lập


Đầu tiên, người dùng tạo project Jira Scrum. Lưu ý chọn Company-managed
project để lúc sau khi add Xray thì mới sử dụng được các Configure project
Tiếp theo, để bắt đầu sử dụng Xray, người dùng cần cài đặt plugin Xray Test
Management for Jira từ Atlassian Marketplace. Sau khi cài đặt, người dùng có thể
truy cập vào các tính năng của Xray từ giao diện Jira.

Hình 2.31: Giao diện plugin Xray

Hình 2.32: Configuration project


31

Sau khi Configure thì tiếp tục chọn Project Setting -> Xray Setting -> Summary ->
Add Issue Type và được kết quả như sau:

Hình 2.33: Add Issue Type

2.2.2. Viết Test


2.2.2.1. Testcase
Kiểm tra là một chuỗi các bước kết hợp với các điều kiện hoặc biến số, đầu
vào kiểm tra và kết quả mong đợi. Nó nhằm mục đích thiết lập chất lượng, hiệu suất
hoặc độ tin cậy của một phần hệ thống, tức là mục tiêu thử nghiệm. Thông thường,
mọi yêu cầu hoặc mục tiêu mà mục tiêu kiểm thử dự kiến đạt được đều cần ít nhất
một Kiểm thử. Sự thành công của Thử nghiệm được xác định bằng cách so sánh kết
quả mong đợi và thực tế.

 Tạo testcase:
Bước 1: Nhấp vào Create Issue ở đầu màn hình để mở hộp /trang Create
Issue.

Hình 2.34: Create new Issue


32

Và trong giao diện người dùng cũ, nhấp vào dấu "+" ở bên trái:

Hình 2.35: Create new Issue

Bước 2: Chọn Project và tại Issue Type, chọn Test.

Bước 3: Nhập Summary cho bài kiểm tra và điền vào tất cả các trường thích
hợp - ít nhất là những trường bắt buộc được đánh dấu hoa thị.
33

Hình 2.36: Thông tin cần điền khi create issue


Bước 4: Khi đã hài lòng với nội dung bài kiểm tra, hãy nhấp vào nút Create.
Bước 5: Nếu đã chọn hộp Create another, hộp thoại Create Issue mới sẽ xuất
hiện.
Chỉnh sửa Test Type:
Bước 1: Nếu đang chỉnh sửa nội tuyến Test Step:
34

- Di chuột qua Test Type, nhấp vào nó và thay đổi nó thành loại khác có sẵn
trên hộp chọn.
- Bằng cách nhấp vào nút Create Step, thao tác này sẽ tạo một bước mới ở cuối
danh sách các bước

Hình 2.37: Create Test Step Type


Bước 2: Nếu đang chỉnh sửa nội tuyến Cucumber Test:
- có thể di chuột qua Test Type, nhấp vào nó và thay đổi nó thành loại khác có
sẵn trên hộp chọn.
- có thể di chuột qua Scenario, nhấp vào nó và chỉnh sửa nội dung của nó.
35

Hình 2.38: Create Test Type Cucumber


Bước 3: Nếu đang chỉnh sửa nội tuyến Generic Test:
- Có thể di chuột qua Test Type, nhấp vào nó và thay đổi nó thành loại khác có
sẵn trên hộp chọn.
- Có thể di chuột qua Definition, nhấp vào trường đó và chỉnh sửa nội dung
của nó.
36

Hình 2.39: Create Test Type Generic


Lịch sử X-ray
Mọi thay đổi được thực hiện đối với dữ liệu Xét nghiệm đều được ghi lại trên
phần Lịch sử X-ray. Bao gồm các:
Thay đổi loại bài kiểm tra
Thay đổi Định nghĩa hoặc các bước kiểm tra
Liên kết Kiểm thử với các thực thể khác (Điều kiện tiên quyết, Kế hoạch kiểm
thử, Bộ kiểm thử, v.v.)
Di chuyển bài kiểm tra giữa các thư mục trên Kho lưu trữ bài kiểm tra.
37

Hình 2.40: Lịch sử khi làm việc với Xray

Hình 2.41: Lịch sử khi làm việc với Xray


2.2.2.2. Parameterized Tests
Là một phương pháp mạnh mẽ cho phép thực hiện cùng một thử nghiệm nhiều
lần với các tham số khác nhau. Các tham số tương tự như giá trị đầu vào (biến) có
thể thay đổi sau mỗi lần thực thi.
Các tham số có thể có các loại sau:
Văn bản - nơi giá trị tham số sẽ được đặt bằng trường văn bản mở.
38

Danh sách - nơi có thể chọn giá trị tham số từ danh sách tùy chọn được xác
định trước.
Các tham số danh sách có thể được tạo bằng cách sử dụng danh sách đặc biệt
hoặc danh sách được xác định trước.
Danh sách đặc biệt được xác định cục bộ cho từng tham số, trong khi danh
sách được xác định trước được tạo bởi quản trị viên ở các cấp độ khác nhau:
Toàn cầu - do quản trị viên Jira quản lý
Dự án - được quản lý bởi quản trị viên dự án
Danh sách chung không thể được sử dụng trực tiếp. Những thứ này phải được
quản trị viên dự án đưa vào dự án trước khi chúng có thể được truy cập trong tập dữ
liệu của dự án đó.
Việc có các danh sách được xác định trước sẽ hữu ích nếu các tham số danh
sách thường được sử dụng trong nhiều bộ dữ liệu. Nếu nhiều dự án sử dụng cùng
một danh sách, cũng có thể tạo một danh sách chung để các dự án khác nhau có thể
sử dụng danh sách đó. Bằng cách này, có một vị trí trung tâm để quản lý danh sách
tham số chung.
Để tạo hoặc chỉnh sửa tập dữ liệu mặc định (trong thử nghiệm):
Bước 1: Nhấn nút " Dataset".
Thao tác này sẽ mở hộp thoại tập dữ liệu. Tại đây, có thể xác định tập dữ liệu
bằng cách tạo tham số và thêm giá trị cho chúng.
Bước 2: Tạo parameters:
2.1. Nhấn nút " Creating parameters" nằm trên thanh công cụ chính của tập
dữ liệu hoặc trên chế độ xem trống. Thao tác này sẽ mở một hộp thoại nhỏ để chỉ
định các thuộc tính tham số.
2.2. Chỉ định tên. Tên tham số phải bắt đầu bằng một chữ cái hoặc dấu gạch
dưới và chỉ có thể chứa các chữ cái, số, khoảng cách giữa các từ, "_", "-" và tối đa
64 ký tự.
2.3. Chọn hộp kiểm Combinatorial nếu đang tạo tham số tổ hợp.
2.4. Chọn loại tham số: Text hoặc List. Nếu loại tham số là Danh sách, có thể:
Tạo một danh sách đặc biệt chỉ dành cho tham số này. cần chỉ định các giá trị
cho danh sách.
39

Hình 2.42: Tạo danh sách chỉ dành cho tham số


- Sử dụng danh sách được xác định trước của dự án.

Hình 2.43: Dùng danh sách có sẵn


2.5. Nhấn "Save" để tạo tham số. Tham số phải được đặt trên tập dữ liệu.
40

Bước 3: Thêm các giá trị tham số tổ hợp:


Khi có ít nhất một tham số, có thể bắt đầu điền các giá trị của chúng và thêm
các lần lặp mới.
Một trình giữ chỗ được cung cấp trong mỗi tham số tổ hợp. Để thêm các giá
trị mới vào các tham số tổ hợp:
3.1. Đối với tham số Text, chỉ cần nhập giá trị và nhấn nút check bên cạnh
trường.

3.2. Đối với các tham số List, hãy chọn một tùy chọn và nhấn nút check bên cạnh
trường đó.

Bước 4: Thêm hàng (điền các giá trị tham số):


4.1. Khi có các tham số không tổ hợp, một hàng giữ chỗ trống sẽ xuất hiện để
có thể điền các tham số cho lần lặp mặc định.
Chỉnh sửa giá trị tham số cũng đơn giản như chỉnh sửa các ô tương ứng của
chúng. Các giá trị sẽ được giữ khi ô mất tiêu điểm.
41

Có thể điều hướng giữa các ô của cùng một hàng và giữa các hàng bằng bàn
phím: TAB (chuyển tiếp), SHIFT+TAB (lùi).

4.2. Để tạo hàng mới, có thể nhấn nút "New" bên dưới bảng hoặc điều hướng bằng
bàn phím từ hàng cuối cùng (một hàng mới sẽ được tạo tự động bằng cách điều
hướng về ô cuối cùng của hàng cuối cùng).

Hình 2.44: Tạo hàng mới

2.2.3. Organizing Tests


Tổ chức các bài kiểm tra là một phần quan trọng trong hoạt động kiểm tra
hàng ngày. Vì dự án có thể có hàng trăm hoặc hàng nghìn bài kiểm tra nên bắt buộc
phải tổ chức chúng một cách hiệu quả để có thể nhanh chóng tìm thấy các bài kiểm
tra liên quan.
Mặc dù nhiều tổ chức sử dụng nhãn, thành phần, mức độ ưu tiên, v.v. nhưng
chúng thường không đủ và sẽ không mở rộng quy mô theo nhu cầu.
Xray cung cấp hai cách tổ chức Bài kiểm tra khác nhau nhưng rất hiệu quả:
2.2.3.1. Sử dụng Test Sets
Configure Test Columns
Xray cung cấp khả năng định cấu hình các cột cho bảng Kiểm tra. Cấu hình
này dành riêng cho từng người dùng và có thể được khôi phục về cấu hình mặc định
được xác định trong Default Column Layouts trong cài đặt dự án ứng dụng Xray.
42

Để định cấu hình các cột cho bảng Kiểm tra


Bước 1: Mở vấn đề Test Set.
Bước 2: Nhấp vào Columns, chọn danh sách thả xuống xuất hiện trong phần
Kiểm tra phía trên bảng ở góc trên bên phải. Danh sách các cột cấu hình hiện
tại và tất cả các cột có sẵn sẽ xuất hiện.
Bước 3: Thêm hoặc xóa cột bằng cách nhấp vào hộp kiểm bên cạnh mỗi
trường.
Bước 4: Nhấn Done khi hoàn tất hoặc Cancel để hủy thao tác này. Bảng làm
mới với các cột được cấu hình.
- Khôi phục các cột về cấu hình mặc định
Bước 1: Mở vấn đề Test Set.
Bước 2: Nhấp vào Columns, chọn danh sách thả xuống xuất hiện trong phần
Kiểm tra, phía trên bảng ở góc trên bên phải. Danh sách các cột cấu hình hiện
tại và tất cả các cột có sẵn sẽ xuất hiện.
Bước 3: Nhấp vào liên kết Restore Columns trên danh sách cột. Bảng làm
mới
với các cột được cấu hình mặc định.
- Thay đổi thứ tự cột
Bước 1: Mở vấn đề Test Set.
Bước 2: Di chuột qua tiêu đề cột mong muốn.
Bước 3: Click vào tiêu đề cột và kéo đến vị trí mong muốn.
Associate Tests
Các bài kiểm tra có thể liên quan đến các vấn đề của Bộ kiểm tra:
- Từ màn hình xem vấn đề của Bộ kiểm tra
Kiểm tra liên kết
Để liên kết Kiểm tra với Tập kiểm tra từ màn hình xem sự cố của Tập kiểm
tra:
Bước 1: Mở Bộ kiểm tra mà muốn liên kết Kiểm tra.
Bước 2: Nhấp vào nút Thêm bài kiểm tra (trong tab Kiểm tra trên trang xem)
43

và chọn Bài kiểm tra hiện có để mở hộp thoại Thêm bài kiểm tra.

Hình 2.45: Chọn Existing tests trong phần Tests


Bước 3: Chọn hoặc tìm kiếm các bài Test cần liên kết với Test Set:
Để chọn các Xét nghiệm được liên kết, có thể trong tab Chọn:
- Nhập Khóa số phát hành kiểm tra mong muốn vào trường Kiểm tra.
- Nhấp vào Mũi tên xuống trên trường Kiểm tra và chọn Kiểm tra từ danh
sách Tìm kiếm Lịch sử của nó.

Hình 2.46: Tìm kiếm test được liên kết bằng tab Select
Để tìm kiếm các Bài kiểm tra được liên kết, có thể trong tab Tìm kiếm:
44

- Chọn Dự án mong muốn và bất kỳ trường mong muốn nào khác như Loại
thử nghiệm, Chứa, Nhãn, Phiên bản sửa lỗi, Thành phần, Che phủ, Che phủ
Phiên bản sửa lỗi, Bộ lọc đã lưu và Trạng thái quy trình làm việc
- Nhấp vào nút Tìm kiếm sau khi điền vào các trường duyệt để có danh sách
các mục phù hợp

Hình 2.47: Tìm kiếm test được liên kết bằng tab Search
Để tìm kiếm các Bài kiểm tra được liên kết, có thể trong tab JQL:
- Viết tìm kiếm JQL mong muốn
- Bấm vào nút Tìm kiếm để thực hiện tìm kiếm JQL và nhận danh sách các mục
phù hợp
45

Hình 2.48: Tìm kiếm test được liên kết bằng JQL
Bước 4: Nhấn vào Thêm
Từ màn hình xem Vấn đề kiểm tra
Để liên kết Kiểm tra với Tập kiểm tra từ màn hình xem Vấn đề kiểm tra:
Bước 1: Mở Bài kiểm tra mà muốn liên kết với Bộ kiểm tra.
Bước 2: Nhấp vào nút Thêm bộ kiểm tra (trong tab Bộ kiểm tra trên trang
xem) và chọn Bộ kiểm tra hiện có để mở hộp thoại Thêm bộ kiểm tra.

(Lưu ý: để tạo bộ kiểm tra mới hãy nhấp vào Bộ kiểm tra mới.)
46

Bước 3: Chọn hoặc tìm kiếm các vấn đề của Test Set để liên kết với Test Set:
Để chọn Bộ xét nghiệm được liên kết, có thể:
- Nhập Khóa phát hành của Bộ kiểm tra mong muốn vào trường Bộ kiểm tra.
- Nhấp vào Mũi tên xuống trên trường Bộ kiểm tra và chọn Bộ kiểm tra từ danh
sách Tìm kiếm lịch sử của nó.

Để tìm kiếm Bộ kiểm tra được liên kết, có thể trong tab Tìm kiếm:
- Chọn Dự án bộ thử nghiệm mong muốn và bất kỳ trường mong muốn nào
khác như Loại thử nghiệm, Chứa, Nhãn, Phiên bản sửa lỗi, Thành phần, Che
phủ, Phiên bản sửa lỗi che phủ, Bộ lọc đã lưu và Trạng thái quy trình làm việc
- Nhấp vào nút Tìm kiếm sau khi điền vào các trường duyệt để nhận một danh sách
các mục phù hợp
47

Để tìm kiếm Bộ kiểm tra được liên kết, có thể: trong tab JQL:
- Viết tìm kiếm JQL mong muốn
- Bấm vào nút Tìm kiếm để thực hiện tìm kiếm JQL và nhận danh sách các mục
phù hợp

Bước 4: Nhấn vào Thêm.


48

2.2.3.2. Sử dụng Test Repository


Kho lưu trữ thử nghiệm cho phép xem hai loại vấn đề về tổ chức:
 Tổ chức phân cấp các Kiểm tra và Điều kiện tiên quyết ở cấp dự án bằng
cách cho phép sắp xếp Kiểm tra và Điều kiện tiên quyết trong các thư mục và
thư mục con.
 Tổ chức các Bài kiểm tra theo danh sách phẳng thông qua việc sử dụng Bộ
kiểm tra
Kho lưu trữ thử nghiệm có hai chế độ xem, Thư mục và Bộ kiểm tra:
- Chế độ xem thư mục

Hình 2.49: Giao diện Folders trong Test Repository


Chế độ xem Thư mục Kho lưu trữ Kiểm tra là chế độ xem chi tiết tổng thể.
Chế độ xem chính (ở bên trái) chứa hệ thống phân cấp thư mục trong khi chế độ
xem chi tiết (ở bên phải) chứa các bài kiểm tra thuộc thư mục cụ thể đã chọn.
Tại thư mục gốc Test Repository sẽ thấy thư mục Test Repository, thư mục
này có đặc điểm sau:
Nó tương ứng với thư mục gốc
Là chỉ đọc; có nghĩa là nó không thể bị xóa hoặc đổi tên.
Bao gồm nhiều thư mục và thư mục con cùng với các Bài kiểm tra, trong bối
cảnh của dự án hiện tại
Chứa tất cả các vấn đề Kiểm tra không có tổ chức (tức là các Kiểm tra không
thuộc bất kỳ thư mục nào), trong bối cảnh của dự án hiện tại
Trong thư mục gốc của Kho lưu trữ kiểm tra, nhiều thư mục có thể được tạo
và có thể thêm Kiểm tra vào chúng. Các bài kiểm tra chỉ có thể là một phần của một
thư mục.
49

Các bài kiểm tra và Điều kiện tiên quyết có thể được "thêm" (tức là di chuyển)
từ thư mục Kho lưu trữ kiểm tra đến thư mục Kho lưu trữ kiểm tra đích bằng cách
chọn và di chuyển chúng bằng cách kéo và thả. Các bài kiểm tra và điều kiện tiên
quyết cũng có thể được di chuyển giữa các thư mục. có thể chọn Kiểm tra để thêm
vào một thư mục nhất định bằng cách chọn thư mục và nhấp vào hành động ngữ
cảnh Thêm → Kiểm tra và có thể chọn Điều kiện tiên quyết để thêm bằng cách sử
dụng hành động ngữ cảnh Thêm → Điều kiện tiên quyết.
Các thư mục có thể được tạo ở thư mục gốc của Kho lưu trữ thử nghiệm hoặc
trong bất kỳ thư mục con nào trong đó.
Trong thư mục mẹ nhất định, các thư mục không được có tên giống nhau. Đối
với điều này, Xray thực hiện kiểm tra phân biệt chữ hoa chữ thường đối với tên thư
mục đã được cắt bớt bất cứ khi nào tạo hoặc đổi tên thư mục. Điều này có nghĩa là
tất cả các tên thư mục này sẽ được coi là các thư mục khác nhau: " phanTom",
"phantom", "PHANTOM". Hơn nữa, tên thư mục không được sử dụng ký tự "/"
hoặc "\".
Khuyến nghị:
Cấu trúc cẩn thận hệ thống phân cấp của các thư mục của, hãy nhớ rằng Kiểm
tra hoặc Điều kiện tiên quyết chỉ có thể nằm trong một thư mục duy nhất. sẽ sắp
xếp chúng trên máy tính xách tay như thế nào nếu đang xử lý tài liệu? Bắt đầu bằng
cách xác định các thư mục mà muốn đặt ở thư mục gốc, sau đó thử đi sâu hơn và
tạo các thư mục con có liên qua đến.
Nếu đang sử dụng Bộ kiểm tra, đừng cố sao chép mô hình Bộ kiểm tra trong
chế độ xem Thư mục kho lưu trữ kiểm tra vì rất có thể nó sẽ không hoạt động. Xin
nhắc lại, Bài kiểm tra chỉ có thể là một phần của một thư mục trong Kho lưu trữ bài
kiểm tra; với Bộ kiểm tra, một Bộ kiểm tra có thể thuộc về một số Bộ kiểm tra.
Thay vào đó hãy sử dụng chế độ xem Tập kiểm tra.
Tránh ngữ nghĩa khi nói đến giai đoạn thực thi, nếu không, Kho lưu trữ thử
nghiệm của sẽ bị rối tung. Sử dụng các thực thể phù hợp, chẳng hạn như Kế hoạch
kiểm tra (và các Bảng tương ứng) để lập kế hoạch/tổ chức liên quan đến thực thi.
- Chế độ xem tập kiểm tra
Chế độ xem Bộ kiểm tra kho lưu trữ thử nghiệm cũng là chế độ xem chi tiết
tổng thể. Chế độ xem chính (ở bên trái) chứa Bộ Tết của dự án tương ứng và chế độ
xem chi tiết (ở bên phải) chứa các bài kiểm tra thuộc Bộ kiểm tra đã chọn.
50

Hình 2.50: Giao diện Test Sets trong Test Repository

2.2.4. Planning Tests


Lập kế hoạch là hoạt động mà quyết định chiến lược thử nghiệm, ví dụ: vấn
đề nào muốn xác thực, xác thực chúng như thế nào, nó sẽ là thủ công hay tự động,
tài nguyên sẽ được phân bổ như thế nào, khi nào và ai sẽ thực hiện thử nghiệm. Tùy
thuộc vào một số yếu tố, có thể muốn ưu tiên một số thử nghiệm hoặc tập trung vào
các yêu cầu cụ thể.
Tổng quan về giao diện người dùng Xem kế hoạch kiểm tra

Hình 2.51: Giao diện Test Plan


A:
 A1: Lọc kế hoạch kiểm tra theo văn bản.
 A2: Chuyển đổi lọc Kế hoạch kiểm tra được chỉ định cho người dùng đã
đăng nhập hay không.
 A3: Sử dụng các bộ lọc tùy chỉnh để lọc Kế hoạch kiểm thử trong dự án
 A4: Chọn trường để sắp xếp Kế hoạch kiểm tra theo
51

 A5: Chọn thứ tự tăng dần hoặc giảm dần để sắp xếp Test Plan.
B:
 B1: Tạo một kế hoạch kiểm tra mới.
 B2: Xuất danh sách Test Plan.
C:
 C1: Đặt Phạm vi trạng thái cho thanh tiến trình.
 C2: Liên kết Kế hoạch kiểm tra đến Chế độ xem kế hoạch kiểm tra tương
ứng.
 C3: Thanh tiến trình của Kế hoạch kiểm thử.
 Tạo kế hoạch kiểm tra
Tạo một kế hoạch thử nghiệm mới.
 Xuất khẩu
Xuất Kế hoạch kiểm tra được liệt kê dưới dạng CSV hoặc thông qua Trình tạo tài
liệu.

Hình 2.52: Chọn xuất test plan theo dạng CSV hoặc Document Generator

Hình ảnh bên dưới mô tả một số khu vực chính của màn hình Test Plan Board,
bao gồm chính Test Plan Board, cùng với các thư mục con của nó.
52

Hình 2.53: Giao diện Test Plan Board


A: Phần thư mục (chính)
A1: cây thư mục Test Plan Board, bao gồm các thư mục và thư mục con với
các Bài kiểm tra được sắp xếp bên trong chúng
A2: một thư mục nhất định; Có thể truy cập các hành động CRUD cho thư
mục đã chọn (ví dụ: tạo, đổi tên, xóa) bằng cách nhấp chuột phải vào thư mục
A3: thông tin về số lượng Bài kiểm tra trong thư mục hiện tại và tổng số Bài
kiểm tra, bao gồm các thư mục con
A4: hành động ngữ cảnh cho thư mục hiện được chọn; những hành động này
cũng có thể truy cập được bằng cách nhấp chuột phải vào một thư mục.
B: Phần kiểm tra (chi tiết)
B1: lọc cho các bài kiểm tra.
B2: chuyển từ chế độ xem phân cấp sang chế độ xem phẳng.
B3: tiến trình thư mục.
B4: một bài kiểm tra từ danh sách các Bài kiểm tra được xếp hạng trong thư
mục hiện tại (chỉ dành cho trẻ em trực tiếp)
B5: trạng thái của bài kiểm tra.
B6: nút để mở hộp thoại với các lần chạy thử của bài kiểm tra đã cho trong bối
cảnh Kế hoạch kiểm tra.
53

B7: nút để mở tập dữ liệu được xác định cho Xét nghiệm tương ứng.
C: Chức năng khác
C1: liên kết breadcrumb cho Ban kiểm tra.
C2: Tóm tắt Test Plan (có thể chỉnh sửa nếu vấn đề có thể chỉnh sửa được).
C3: thêm Test vào Test Plan.
C4: mở hộp thoại vấn đề Jira.
C5: phạm vi trạng thái của các Bài kiểm tra.
C6: tạo các tệp tính năng dưa chuột và xuất thông tin kế hoạch kiểm tra thông
qua Trình tạo tài liệu.
C7: Các trường Kế hoạch kiểm tra, có thể chỉnh sửa nội tuyến nếu vấn đề có
thể chỉnh sửa được.
C8: tiến độ chung.
C9: tạo Test Execution trong Test Plan
C10: Liên kết đến các Test Executions được liên kết với Test Plan
Test Execution
Fields:
Thực hiện kiểm thử có các trường tùy chỉnh sau:
Begin Date- ngày thực hiện kiểm thử dự kiến bắt đầu. Đây là trường tùy chỉnh
Jira bình thường.
End Date- ngày thực hiện kiểm thử dự kiến kết thúc. Đây là trường tùy chỉnh
Jira bình thường
Revision - mã nguồn và phiên bản tài liệu hiện tại được sử dụng trong Thực
thi kiểm tra. Đây là trường tùy chỉnh Jira bình thường.
Test Environments- môi trường trong đó Chạy thử nghiệm được thực thi.
Các trường tùy chỉnh này nằm ở cột bên phải (chi tiết vấn đề).
Sections:
- Tình trạng thực hiện tổng thể
54

Chế độ xem này có thanh tiến trình được tô màu để có thể thấy rõ trạng thái
Thực hiện kiểm thử. Trạng thái cuối cùng trôi sang bên trái; màu trạng thái cuối
cùng xuất hiện là trạng thái TODO.
Có thể lọc các bài kiểm tra theo trạng thái trong Thanh tiến trình thực hiện
kiểm tra như trong hình bên dưới:

Hình 2.54: Trạng thái trong thanh tiến trình thực hiện kiểm tra
- Bộ lọc chạy thử
Phần bộ lọc hiện diện phía trên bảng Lần chạy thử nghiệm để cho phép lọc
Lần chạy thử nghiệm theo Người được giao, Trạng thái, Bộ kiểm tra, Thành phần
hoặc văn bản mở. Cũng có thể thêm các trường khác vào bộ lọc bằng cách nhấp
vào nút Thêm và chọn các trường mong muốn.
55

Hình 2.55: Bộ lọc chạy thử


- Bảng chạy thử nghiệm
Bảng này có tất cả các lần Chạy thử nghiệm được tạo cho vấn đề thực hiện
Thử nghiệm. Mỗi hàng đại diện cho một lần Chạy thử và chứa một tập hợp các
hành động có thể được thực hiện trong một lần Chạy thử.
có thể định cấu hình Cột, thực hiện các thao tác hàng loạt và thay đổi thứ
hạng của các lần chạy thử.
Khi Xray được cài đặt, các cột mặc định là: Xếp hạng, Khóa, Tóm tắt, Loại
kiểm tra, Tập dữ liệu, Trạng thái và Hành động, trong đó Trạng thái được cố
định và không thể xóa được.
56

Hình 2.56: Thông tin Test chạy thử nghiệm

2.2.5. Document Generation


Để có được các số liệu liên quan về tiến độ thử nghiệm cũng như mức độ đầy
đủ của các yêu cầu, Xray cung cấp một số cách giúp toàn bộ nhóm dự án có cái
nhìn rõ ràng hơn về mức độ sẵn sàng chung của dự án.
Là một phần trong công việc hàng ngày của, có thể sử dụng các báo cáo và
công cụ chuyên dụng để đánh giá tiến trình thử nghiệm.
Generation all test:
Các bước thực hiện: Chọn Project Setting -> App -> Xray Setting ->
Document Generator.
Sau đó vào Store để tải các loại Template Reports mà muốn. Sau khi tải xong
sẽ hiện như sau:
57

Hình 2.57: Cài đặt Template và tạo trực tiếp tại Document Generator
Sau đó có thể nhấn vào lick .docx ở dưới tiêu đề mỗi loại Template Reports để
tải file về. Ngoài ra có thể chỉnh sửa Template Reports bằng cách nhấn vào hình
răng cưa bên mỗi loại Template.
Generator từng test:
Các bước thực hiện: Chọn vào Issues -> Chọn vào phần 3 chấm mở rộng

-> Xray – Document Generator.

Hình 2.58: Tạo Document Generator trực tiếp tại Issues


58

Sau khi chọn Xray – Document Generator thì sẽ có 1 hộp thoại mở ra, chọn
Template và Output Format (DOCX hoặc PDF) mà muốn. Cuối cùng là nhấn vào
Export, đợi vài giây rồi có thể Download.
59

CHƯƠNG 3. KẾT LUẬN


Trong quá trình nghiên cứu và thử nghiệm công cụ kiểm thử Cypress, nhóm đã
thu được những kết quả quan trọng về hiệu suất và khả năng ứng dụng của công cụ
này trong quy trình kiểm thử phần mềm.
Cypress đã chứng tỏ được khả năng hiệu quả trong việc tự động hóa các kiểm
thử frontend của ứng dụng web. Với cú pháp rõ ràng và dễ sử dụng, Cypress cho
phép các nhà phát triển thực hiện các bài kiểm tra một cách nhanh chóng và hiệu
quả.
Công cụ Cypress đã chứng minh được tính đáng tin cậy qua việc cung cấp các
cơ chế phát hiện và xử lý lỗi thông minh. Các bài kiểm tra được thực hiện bởi
Cypress đem lại kết quả chính xác và nhất quán, giúp đảm bảo chất lượng của ứng
dụng.
Cypress cũng cho phép tích hợp dễ dàng với các công cụ và framework phổ
biến khác trong quy trình phát triển phần mềm, như CI/CD pipelines hoặc test
management tools, tạo điều kiện thuận lợi cho quy trình kiểm thử tự động.
Kết lại, báo cáo đã cung cấp cái nhìn tổng quan về công cụ kiểm thử Cypress
và mô tả được tiềm năng và lợi ích của việc áp dụng công cụ này trong quy trình
phát triển phần mềm. Những kết quả này có thể là cơ sở để xem xét và áp dụng
Cypress trong các dự án thực tế để nâng cao chất lượng và hiệu suất của sản phẩm
phần mềm.
60

DANH MỤC TÀI LIỆU THAM KHẢO

[1] "Wikipedia," [Online]. Available: http://en.wikipedia.org/wiki/Software testing.

[2] [Online]. Available: http://en.wikipedia.org/wiki/Unit testing.

[3] "Cypress," [Online]. Available: https://docs.cypress.io/guides/overview/why-


cypress.

-HẾT-

You might also like