Với mong muốn có cái nhìn xác thực, rõ ràng hơn về kiểm thử phần mềm và tiếp cận được với công cụ kiểm thử tự động Katalon để làm tiền đề cho định hướng tương lai khi tốt nghiệp đại học
Trang 1BÁO CÁO KHÓA LUẬN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN
TÊN ĐỀ TÀI:
Nghiên cứu về công cụ kiểm thử tự động Katalon Studio và ứng dụng cho hệ thống
Trường học Trực Tuyến
Sinh viên : VƯƠNG THỊ HÀ NHI
ĐÀ NẴNG, 6/2020
Trang 2học Sư Phạm - Đại học Đà Nẵng, sự góp ý của các bạn và đặc biệt là sự quan tâm hướng dẫn trực tiếp , chỉ bảo tận tình của thầy giáo TS Nguyễn Trần Quốc Vinh em
đã hoàn thành đề tài cùng với bản báo cáo đúng thời gian quy định Với khả năng và thời gian có hạn nên không tránh khỏi những thiếu sót, em rất mong nhận được sự quan tâm, giúp đỡ và tạo điều kiện của thầy cô giáo để em hoàn thiện hơn đề tài nghiên cứu trong thời gian tới
Một lần nữa em xin chân thành cám ơn tất cả các thầy, cô giáo trong Trường Đại học Sư Pham – Đại học Đà Nẵng cũng như các cô giáo của các trường, các tổ chức liên kết đã dạy dỗ, chỉ bảo em trong suốt thời gian học tập
Em xin chân thành cám ơn!
Trang 3Nhận xét của giáo viên hướng dẫn
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Đà Nẵng, ngày … tháng … năm 2020
Giáo viên hướng dẫn
Nguyễn Trần Quốc Vinh
Trang 4Lời Cam Đoan
Tôi xin cam đoan:
1 Những nội dung trong báo cáo tốt nghiệp này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy Nguyễn Trần Quốc Vinh
2 Mọi tham khảo dùng trong đồ án tốt nghiệp đều được trích dẫn rõ ràng và trung thực tên tác giả, tên công trình, thời gian, địa điểm công bố
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá Tôi xin chịu hoàn toàn trách nhiệm
Đà Nẵng, ngày tháng năm 2020
Sinh viên thực hiện
Vương Thị Hà Nhi
Trang 5Phụ Lục
LỜI CÁM ƠN 0
Nhận xét của giáo viên hướng dẫn 1
Lời Cam Đoan 2
Phụ Lục 3
MỞ ĐẦU 6
1 Lý do chọn đề tài 6
2 Mục tiêu nghiên cứu 6
CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 7
1 Kiểm thử phần mềm và một số khái niệm liên quan 7
1.1 Kiểm thử phần mềm 7
2 Quy trình kiểm thử phần mềm 7
3 Các cấp độ kiểm thử 9
4 Các kỹ thuật kiểm thử phần mềm 9
4.1 Kiểm thử hộp trắng (White-Box Testing) 9
4.2 Kiểm thử hộp đen (Black-Box Testing) 9
5 Kỹ thuật thiết kế ca kiểm thử 10
5.1 Cấu trúc của ca kiểm thử 10
6 Tạo Bug Report 11
6.1 Bug và Bug Report 12
6.2 Cấu trúc của một Bug Report 12
6.3 Severity và Priority 13
CHƯƠNG 2: TỔNG QUAN VỀ KIỂM THỬ TỰ ĐỘNG 14
1 Khái niệm và quy trình kiểm thử tự động 14
1.1 Lập kế hoạch kiểm thử 14
1.2 Thiết kế test case 14
1.3 Phát triển test script 14
Trang 61.4 Thực hiện kiểm thử 15
1.5 Đánh giá kết quả kiểm thử 15
2 Ưu và nhược điểm của kiểm thử tự động 15
3 Các trường hợp nên áp dụng kiểm thử tự động 16
4 Một số công cụ kiểm thử tự động phổ biến 17
5 Sử dụng công cụ tự động hóa để đạt hiệu quả tốt nhất 17
CHƯƠNG 3: TÌM HIỂU VỀ KATALON STUDIO 19
1 Giới thiệu về Katalon Studio 19
2 Các tính năng chính của Katalon Studio 19
3 Làm việc với Katalon 20
4 Quy trình làm việc của Katalon Studio 20
4.1 Khởi tạo (Initiate): 20
4.2 Triển khai (Create) 21
4.3 Hoạt động (Operate) 21
4.4 Báo cáo (Report) 21
4.5 Bảo trì (Maintain) 21
5 So sánh các công cụ kiểm thử tự động 22
CHƯƠNG 4: TIẾN HÀNH CÀI ĐẶT VÀ DEMO THỰC NGHIỆM CÔNG CỤ KATALON STUDIO VỚI HỆ THỐNG TRƯỜNG HỌC TRỰC TUYẾN 26
1 Cài đặt và cấu hình 26
1.1 Cài đặt 26
1.2 Cấu hình 26
2 Một số chức năng trong Katalon Studio 28
3 Cách viết một kịch bản với Katalon Studio 30
3.1 Cách lấy ID của đối tượng trên màn hình 30
3.2 Cách viết test case cho các đối tượng 34
3.3 Một số plugin hỗ trợ kiểm thử ứng dụng Web 36
3.4 Bài toán thực tế 37
KẾT LUẬN 52
Trang 71 Kết quả đạt được 52
2 Hạn chế 52
3 Hướng phát triển 52
TÀI LIỆU THAM KHẢO 53
Trang 8MỞ ĐẦU
1 Lý do chọn đề tài
Trong giai đoạn phát triển của công nghệ thông tin, ngành công nghệ phần mềm đang ngày một chiếm vị trí quan trọng trong xu hướng phát triển kinh tế công nghiệp hóa, hiện đại hóa của đất nước ta Cùng với sự phát triển của công nghệ phần mềm, lỗi phần mềm và chất lượng phần mềm luôn là thách thức lớn với bản thân ngành phần mềm khi thực tế đã chứng minh, kiểm thử phần mềm là giai đoạn chiếm đến hơn 40% thời gian, kinh phí và nguồn nhân lực phát triển dự án phần mềm Tuy nhiên ở Việt Nam hiện nay, việc kiểm thử phần mềm vẫn chưa thực sự được nhìn nhận đúng với tầm quan trọng của nó Điều này thể hiện ở tỷ lệ kỹ sư kiểm thử phần mềm ở Việt Nam còn khá thấp,
cứ 5 lập trình viên thì mới có 1 kỹ sư kiểm thử (số liệu thống kê năm 2011 của công ty LogiGear), trong khi tỷ lệ này theo chuẩn quốc tế là 3:1 Thêm vào đó, mức độ đáp ứng của kỹ sư kiểm thử phần mềm ở Việt Nam chưa cao Nguyên nhân của việc này đến từ sự thiếu hụt các đơn vị đào tạo chuyên sâu về kiểm thử và nguyên nhân sâu xa vẫn là vấn đề kiểm thử phần mềm ở Việt Nam vẫn chưa được chuyên nghiệp hóa và đầu tư đúng mức
Với mong muốn có cái nhìn xác thực, rõ ràng hơn về kiểm thử phần mềm và tiếp cận được với công cụ kiểm thử tự động Katalon để làm tiền đề cho định hướng tương lai khi tốt nghiệp đại học sẽ trở thành một kỹ sư kiểm thử phần mềm, cá nhân em lựa chọn để tài “Nghiên cứu các vấn đề về kiểm thử phần mềm và công cụ kiểm thử tự động Katalon” làm đề tài cho đồ án tốt nghiệp đại học của mình Trong khuôn khổ đồ án, do thời gian và kinh nghiệm thực tế còn hạn chế nên có những phần thực hiện chưa được tốt, em rất mong nhận được sự góp ý của thầy cô và các bạn
2 Mục tiêu nghiên cứu
- Có cái nhìn đúng đắn và sâu sắc hơn về các vấn đề cơ bản của công nghệ phần mềm, lỗi phần mềm và kiểm thử phần mềm
- Hiểu rõ về các thành phần của bộ công cụ Katalon
- Ứng dụng các kiến thức kiểm thử phần mềm, kiểm thử tự động và kiến thức về công cụ Katalon Studio để viết kịch bản kiểm thử cho một ứng
dụng cụ thể
Trang 9CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM
1 Kiểm thử phần mềm và một số khái niệm liên quan
1.1 Kiểm thử phần mềm
Kiểm thử phần mềm là một cuộc kiểm tra được tiến hành để cung cấp cho các bên liên quan thông tin về chất lượng của sản phẩm hoặc dịch vụ được kiểm thử Kiểm thử có thể cung cấp cho doanh nghiệp một quan điểm, một cách nhìn độc lập về phần mềm để từ đó cho phép đánh giá và thấu hiểu được những rủi ro trong quá trình triển khai phần mềm
Trong kỹ thuật kiểm thử không chỉ giới hạn ở việc thực hiện một chương trình hoặc ứng dụng với mục đích đi tìm các lỗi phần mềm (bao gồm các lỗi
và các thiếu sót) mà còn là một quá trình phê chuẩn và xác minh một chương trình máy tính / ứng dụng / sản phẩm nhằm:
- Đáp ứng được mọi yêu cầu hướng dẫn khi thiết kế và phát triển phần mềm
- Thực hiện công việc đúng như kỳ vọng
- Có thể triển khai được với những đặc tính tương tự
- Và đáp ứng được mọi nhu cầu của các bên liên quan
Tùy thuộc vào từng phương pháp, việc kiểm thử có thể được thực hiện bất
cứ lúc nào trong quá trình phát triển phần mềm Theo truyền thống thì các nỗ lực kiểm thử được tiến hành sau khi các yêu cầu được xác định và việc lập tình được hoàn tất nhưng trong Agile (là một tập hợp các phương pháp phát triển phần mềm linh hoạt dựa trên việc lặp đi lặp lại và gia tăng giá trị) thì việc kiểm thử được tiến hành liên tục trong suốt quá trình xây dựng phần mềm Như vậy, mỗi phương pháp kiểm thử bị chi phối theo một quy trình phát triển phần mềm nhất định
2 Quy trình kiểm thử phần mềm
Mục đích của kiểm thử là thiết kế một chuỗi các trường hợp kiểm thử
mà có khả năng phát hiện lỗi cao Để cho việc kiểm thử đạt được kết quả tốt cần có sự chuẩn bị về kế hoạch kiểm thử, thiết kế các trường hợp kiểm thử và các dữ liệu kiểm thử cho các trường hợp Đây chính là đầu vào cho giai đoạn kiểm thử Và sản phẩm công việc của giai đoạn chính là “báo cáo kiểm thử”
Trang 10mà tài liệu hóa tất cả các trường hợp kiểm thử đã chạy, dữ liệu đầu vào, đầu
ra mong đợi, đầu ra thực tế và mục đích của kiểm thử
Hình 1.1 Giai đoạn kiểm thử trong xử lý phần mềm
Quy trình kiểm thử bao gồm một số giai đoạn:
- Lập kế hoạch kiểm thử: Bước đầu tiên là lập kế hoạch cho tất cả các hoạt động sẽ được thực hiện và các phương pháp được sử dụng Các chuẩn IEEE bao gồm các thông tin về tác giả chuẩn bị kế hoạch, danh sách liệt kê của
kế hoạch kiểm thử Vấn đề quan trọng nhất đối với kế hoạch kiểm thử:
• Mục đích: Quy định về phạm vi, phương pháp, tài nguyên và lịch biểu của các hoạt động kiểm thử
• Các tài liệu tham khảo
• Các định nghĩa
• Khái niệm về xác minh và thẩm định (V&V): tổ chức, tài nguyên, trách nhiệm, các công cụ, kỹ thuật và các phương pháp luận
• Vòng đời của V&V: các nhiệm vụ, các dữ liệu vào và các kết quả
ra trên một giai đoạn vòng đời
• Báo cáo xác minh và thẩm định (V&V): bao gồm các chính sách, thủ tục, các chuẩn, thử nghiệm và các quy ước
- Giai đoạn bố trí nhân viên kiểm thử: Việc kiểm thử thường phải tiến hành một cách độc lập và các nhóm độc lập có trách nhiệm tiến hành các hoạt động kiểm thử Gọi là các nhóm kiểm thử
- Thiết kế các trường hợp kiểm thử: Các trường hợp kiểm thử là các đặc tả đầu vào cho kiểm thử và đầu ra mong đợi của hệ thống cùng với các câu lệnh được kiểm thử
thử
Dữ liệu kiểm thử
Trang 11• Các kỹ thuật kiểm thử hộp đen để kiểm thử dựa trên chức năng
• Các kỹ thuật kiểm thử hộp trắng để kiểm thử dựa vào cấu trúc bên trong
- Xử lý đo lường kiểm thử bằng cách thu thập dữ liệu
- Đánh giá sản phẩm phần mềm để xác nhận sản phẩm có thể sẵn sàng phát hành được hay chưa?
3 Các cấp độ kiểm thử
Các mức kiểm thử phần mềm thông thường:
- Unit Test – Kiểm thử mức đơn vị
- Integration Test – Kiểm thử tích hợp
- System Test – Kiểm thử mức hệ thống
- Acceptance Test – Kiểm thử chấp nhận sản phẩm
- Regression Test – Kiểm thử hồi quy
4 Các kỹ thuật kiểm thử phần mềm
4.1 Kiểm thử hộp trắng (White-Box Testing)
Kiểm thử hộp trắng: Là kỹ thuật kiểm thử dựa trên đặc tả bên trong của chương trình, dựa vào mã nguồn, cấu trúc chương trình Kiểm thử hộp trắng thường phát hiện các lỗi lập trình Loại kiểm thử này khá khó thực hiện và chi phí cao
Với các module quan trọng, thực thi việc tính toán chính của hệ thống, phương pháp này là cần thiết
4.2 Kiểm thử hộp đen (Black-Box Testing)
Kiểm thử hộp đen là một phương pháp kiểm thử phần mềm được thực hiện mà không biết được cấu tạo bên trong của phần mềm, là cách mà các tester kiểm tra xem hệ thống như một chiếc hộp đen, không có cách nào nhìn thấy bên trong của cái hộp
Phương pháp này được đặt tên như vậy vì các chương trình phần mềm, trong con mắt của các tester, giống như một hộp đen, bên trong mà người
ta không thể nhìn thấy Phương pháp này cố gắng tìm ra các lỗi trong các loại sau:
• Chức năng không chính xác hoặc thiếu
• Lỗi giao diện
Trang 12• Lỗi trong cấu trúc dữ liệu hoặc truy cập cơ sở dữ liệu bên ngoài
• Hành vi hoặc hiệu suất lỗi
• Khởi tạo và chấm dứt các lỗi
Hình 1.2 Minh họa kiểm thử hộp đen
❖ Ưu điểm:
- Kỹ sư kiểm thử có thể không phải IT chuyên nghiệp
- Hệ thống thật sự với toàn bộ yêu cầu của nó được kiểm thử chính xác
- Thiết kế kịch bản kiểm thử khá nhanh, ngay khi mà các yêu cầu chức năng được xác định
❖ Nhược điểm
- Dữ liệu đầu vào yêu cầu một khối lượng mẫu (sample) khá lớn
- Khó viết kịch bản kiểm thử do cần xác định tất cả các yếu tốt đầu vào, và thiếu cả thời gian cho việc tập hợp này
- Khả năng để bản thân kỹ sư lạc lối trong khi kiểm thử là khá cao Mọi kỹ thuật nào cũng có ưu điểm và nhược điểm của nó Các hệ thống thường phải được sử dụng nhiều phương pháp kiểm thử khác nhau để đảm bảo được chất lượng của hệ thống khi đến tay người dùng
5 Kỹ thuật thiết kế ca kiểm thử
Quá trình phát triển ca kiểm thử có thể giúp tìm ra lỗi trong các yêu cầu hoặc thiết kế của ứng dụng, vì nó đòi hỏi phải tư duy hoàn toàn thông qua các hoạt động của ứng dụng Vì lý do này, việc chuẩn bị ca kiểm thử sớm nhất có thể trong quy trình phát triển phần mềm là rất hữu ích Các trường hợp kiểm thử phải bao phủ được toàn bộ luồng xử lý chức năng mô tả trong tài liệu phân tích và thiết kế; các yêu cầu về bảo mật an toàn thông tin, yêu cầu hiệu năng của hệ thống
5.1 Cấu trúc của ca kiểm thử
Trang 13• Test Case ID: Giá trị cần để xác định số lượng trường hợp cần để
kiểm thử
• Test Case Description: Mô tả sơ lược về mục đích của ca kiểm thử
đó
• PreRequisites: Điều kiện tiền đề nếu có
• Test Data: Những dữ liệu đầu vào cần chuẩn bị để test
• Step: Các bước thực hiện 1 ca kiểm thử
• Execution Step: Mô tả các bước thực hiện kiểm thử
• Expected Results: Kết quả mong đợi khi chạy chương trình
• Actual Results: Kết quả thực tế khi chạy chương trình
• Results: Đánh giá về kết quả, thông thường sẽ là Pass, Fail
• Note: Cột này dùng để ghi chú những thông tin liên quan khi thực
hiện ca kiểm thử
Các bước xác định ca kiểm thử:
Bước 1: Xác định mục đích kiểm thử: cần hiểu rõ đặc tả yêu cầu
của khách hàng
Bước 2: Xác định chức năng cần kiểm tra: cần phải biết làm thế nào
phần mềm được sử dụng bao gồm các hoạt động, tổ chức chức năng khác nhau
Các bước thực hiện chỉ mô tả các bước thực hiện đứng từ phía người dùng cuối bao gồm nhập dữ liệu, nhấn button, …
Bước 3: Xác định các yêu cầu phi chức năng: Yêu cầu phần cứng,
hệ điều hành, các khía cạnh an ninh
Bước 4: Xác định biểu mẫu cho Ca kiểm thử: bao gồm giao diện
UI, chức năng, khả năng tương thích và hiệu suất
Bước 5: Xác định tính ảnh hưởng giữa các nguyên tắc modul: mỗi
một ca kiểm thử nên được thiết kế để có thể che phủ được sự ảnh hưởng của các modul với nhau ở mức độ cao nhất
6 Tạo Bug Report
Bug report là một phần rất quan trọng và không thể thiếu trong quy trình
thực hiện kiểm thử Khi phần mềm xảy ra lỗi, kiểm thử viên phải tạo được ra các Bug report và gửi cho nhà phát triển phần mềm đó Một Bug report được
Trang 14viết rõ ràng và rành mạch, sẽ luôn gây ấn tượng và hiệu ứng tốt hơn với một Bug report sơ xài và cẩu thả Làm cho người sửa Bug đó và cả người xác nhận lại bug đó không có cảm giác khó chịu khi phải đọc một Bug report sơ xài
6.1 Bug và Bug Report
Bug: Bug của phần mềm là những sai lầm, hỏng hóc, lỗi, khiếm khuyết để
tạo ra một kết quả sai, hoặc không lường đến được, có thể coi nó như một thứ
gì đó không hoạt động đúng theo thiết kế
Bug report: văn bản chứa đầy đủ thông tin về một lỗi của một sản phẩm
được kiểm thử viên gửi cho một tổ chức hay cá nhân liên quan để sửa chữa được gọi là Bug report
6.2 Cấu trúc của một Bug Report
• Project: tên của dự án phần mềm
• Reported by: kiểm thử viên tạo ra Bug report
• Bug Name, Bug ID và Date: Tên của bug, ID và ngày tạo report
• Assigned to: Cá nhân hoặc tổ chức phát triển phần mềm đó
• Status: Trạng thái thực hiện của report
• Summary/Description: mô tả ngắn gọn về bug
• Environments: Môi trường chạy thử phần mềm
• Step to reproduce: Mô tả lại các bước thực hiện gây ra bug
• Actual Result: Kết quả thực tế
• Expected Result: Kết quả mong đợi
• Severity: Mức độ nghiêm trọng của bug
• Priority: Mức độ ưu tiên của bug
• Attachment: Đính kèm với bug (Tệp, đường dẫn, hình ảnh,…)
Một số yêu cầu khi tạo Bug report:
• Tiêu đề phải rõ ràng: Khi lập trình viên đọc bug, thứ đầu tiên đập vào mắt là Bug Name Nó cũng là phần được đọc nhiều nhất, không phải là description Một bug name tốt phải ngắn gọn và diễn tả được bug một cách tối giản
• Phải mô phỏng lại được quá trình gây ra bug: Nếu không mô phỏng lại được, bug sẽ không thể được khắc phục
Trang 15• Không viết luận trong description: viết ngắn gọn và vào trọng tâm Cố gắng viết ít chữ nhất có thể những vẫn đầy đủ ý
6.3 Severity và Priority
Có hai phần quan trọng trong những bug report đó là:
• Severity – Mức độ nghiêm trọng
• Priority – Mức độ ưu tiên
Mặc dù hai yếu tố này không phải là yếu tố sống còn trong quản lý bug Tuy nhiên, việc hiểu đúng về mức độ nghiêm trọng, độ ưu tiên của sản phẩm cho thấy chúng ta thực sự hiểu rõ và quan tâm đến chất lượng sản phẩm cũng như thể hiện sự chuyên nghiệp của một kỹ sư kiểm thử
Trang 16CHƯƠNG 2: TỔNG QUAN VỀ KIỂM THỬ TỰ ĐỘNG
1 Khái niệm và quy trình kiểm thử tự động
Kiểm thử tự động là việc sử dụng các công cụ để thực hiện các test case Kiểm thử tự động cũng có thể nhập dữ liệu thử nghiệm vào hệ thống kiểm thử,
so sánh kết quả mong đợi với kết quả thực tế và tạo ra các báo cáo kiểm thử chi tiết
Quy trình kiểm thử tự động gồm 4 bước:
• Bước 1: Lập kế hoạch kiểm thử
• Bước 2: Thiết kế test case
• Bước 3: Phát triển test script
• Bước 4: Thực hiện kiểm thử
• Bước 5: Đánh giá kết quả kiểm thử
1.1 Lập kế hoạch kiểm thử Mục đích: Nhằm chỉ định hoặc mô tả các loại kiểm thử sẽ được
triển khai và thực hiện Kết quả của bước lập kế hoạch là bản tài liệu kế hoạch kiểm thử phần mềm, bao gồm:
• Các giai đoạn kiểm thử áp dụng cho dự án phần mềm
• Chiến lược kiểm thử
• Các công cụ kiểm thử
• Nguồn lực kiểm thử
• Môi trường kiểm thử, bao gồm tài nguyên phần cứng và phần mềm
• Mốc bàn giao các tài liệu kiểm thử
1.2 Thiết kế test case Mục đích: Nhằm xác định các test case và các bước kiểm tra chi
tiết cho mỗi phiên bản phần mềm Giai đoạn thiết kế test case là hết sức quan trọng, nó đảm bảo tất cả các tình huống kiểm thử “quét” hết tất cả yêu cầu cần kiểm tra
1.3 Phát triển test script Mục đích: Bước này thường không bắt buộc trong các loại và mức
kiểm thử, chỉ yêu cầu trong những trường hợp đặc thù cần thiết kế, tạo ra các test script có khả năng chạy trên máy tính giúp tự động
Trang 17hóa việc thực thi các bước kiểm tra đã định nghĩa ở bước thiết kế test case
Trong đó, một test script được hiểu là một nhóm mã lệnh dạng đặc
tả kịch bản dùng để tự động hóa một trình tự kiểm thử, giúp co việc kiểm thử nhanh hơn, hoặc cho những trường hợp mà kiểm thử bằng tay sẽ rất khó khăn hoặc không khả thi Các test script có thể tạo thủ công hoặc tạo tự động dùng công cụ kiểm thử tự động
1.4 Thực hiện kiểm thử Mục đích: Thực hiện các bước kiểm tra đã thiết kế hoặc thực thi
các test script nếu tiến hành kiểm tra tự động ghi nhận kết quả
1.5 Đánh giá kết quả kiểm thử Mục đích: Đánh giá toàn bộ quá trình kiểm thử, bao gồm xem xét
và đánh giá kết quả kiểm thử, liệt kê lỗi, chỉ định các yêu cầu thay đổi, và tính toán các số liệu liên quan đến quá trình kiểm thử như số giờ, thời gian kiểm thử, số lượng lỗi, phân loại lỗi,…
2 Ưu và nhược điểm của kiểm thử tự động
Loại kiểm thử Ưu điểm Nhược điểm
Thủ công Cho phép tester thực
hiện việc kiểm thử khám phá
Thích hợp kiểm tra sản phẩm đầu tiên
Thích hợp kiểm thử trong trường hợp test case chỉ phải thực hiện một số ít lần
Giảm được chi phí ngắn hạn
Tốn thời gian Đối với mỗi lần release, người kiểm thử vẫn phải thực hiện một số tập hợp các test case đã chạy dẫn đến sự mệt mõi và lãng phí effort
Tự động Thích hợp với trường
hợp phải test nhiều lần cho một test case, có tỉnh ổn định và tin cậy
Tốn kém hơn kiểm thử
tự động, chi phí đầu tư ban đầu lớn
Trang 18cao hơn so với kiểm thử thủ công
Có thể thực hiện các thao tác lặp đi lặp lại (nhập dữ liệu, click, check kết quả,…) giúp tester không phải làm những việc gây nhàm chán và dễ nhầm lần như vậy
Giảm chi phí đầu tư dài hạn
Kiểm thử thủ công là không thể thay thế vì người ta không thể tự động hóa mọi thứ
Hình 2.1 Ưu và nhược điểm của kiểm thử tự động
3 Các trường hợp nên áp dụng kiểm thử tự động
Không phải lúc nào cũng nên áp dụng kiểm thử tự động trong việc kiểm thử phần mềm, vì nhiều khi chi phí và thời gian cho việc kiểm thử tự động còn lớn hơn nhiều so với kiểm thử thủ công Dưới đây là một số trường hợp nên
áp dụng phương pháp kiểm thử tự động để đạt được hiệu quả cao về thời gian, chi phí cũng như chất lượng
- Trường hợp không đủ tài nguyên: Là khi số lượng trường hợp kiểm
thử lặp lại quá nhiều trên nhiều môi trường kiểm thử khác nhau, không
có đủ nguồn nhân lực để kiểm thử thủ công trong một giới hạn thời gian nào đó
- Trường hợp kiểm thử hồi quy: Trong quá trình phát triển phần mềm,
nhóm lập trình thường đưa ra nhiều phiên bản phần mềm liên tiếp để kiểm thử Thực tế cho thấy việc đưa ra các phiên bản phần mềm có thể
là hàng ngày, mỗi phiên bản bao gồm những tính năng mới hoặc tính năng cũ được sửa lỗi hay nâng cấp Việc bổ sung hoặc sửa lỗi mã chương trình cho những tính năng ở phiên bản mới có thể làm cho những tính năng khác đã kiểm tra chạy tốt chạy sai mặc dù phần mã chương trình của nó không hề chỉnh sửa Để khắc phục điều này, đối với từng phiên bản, kiểm thử viên không chỉ kiểm tra chức năng mới
Trang 19hoặc được sửa, mà phải kiểm tra lại tất cả những tính năng đã kiểm tra tốt trước đó Điều này khó khả thi về mặt thời gian nếu kiểm thử thủ công
- Trường hợp kiểm thử khả năng vận hành phần mềm trong môi
trường đặc biệt: Đây là kiểm thử nhằm đánh giá xem vận hành của
phần mềm có thỏa mãn yêu cầu đặt ra hay không Thông qua đó kiểm thử viên có thể xác định được các yếu tố về phần cứng, phần mềm ảnh hưởng đến khả năng vận hành của hệ thống Có thể liệt kê một số tình huống kiểm tra tiêu biểu thuộc loại này như sau:
• Đo tốc độ trung bình xử lý một yêu cầu của web server
• Thiết lập 1000 yêu cầu, đồng thời gửi đến web server để kiểm tra tình huống 1000 người dùng truy xuất web cùng lúc
• Xác định số yêu cầu tối đa được xử lý bởi web server hoặc xác định cấu hình máy thấp nhất mà tốc độ xử lý của phần mềm vẫn
5 Sử dụng công cụ tự động hóa để đạt hiệu quả tốt nhất
Để có được ROI (tỷ lệ lợi nhuận thu được so với chi phí đầu tư) tốt đa, hãy tuân thủ các điều sau:
• Phạm vi của kiểm thử tự động hóa cần được xác định chi tiết trước khi bắt đầu dự án
• Chọn công cụ kiểm thử tự động hóa phù hợp: Không nên chọn công cụ dựa trên mức độ phổ biến của công cụ đó, mà phải phù hợp với yêu cầu
tự động hóa
Trang 20• Chọn một framework thích hợp
• Các tiêu chuẩn về kịch bản phải được tuân theo trong khi viết các kịch bản cho kiểm thử tự động hóa Một trong số đó là:
o Tạo script thống nhất, nhận xét và thụt đầu dòng đoạn code
o Xử lý đầy đủ những trường hợp ngoại lệ - Cách xử lý lỗi đối với lỗi hệ thống hoặc hành vi không mong muốn trong ứng dụng
o Thông báo do người dùng xác định phải được mã hóa hoặc tiêu chuẩn hóa để ghi nhật ký lỗi để tester hiểu
• Đo lường số liệu – Thành công của kiểm thử tự động hóa không thể được xác định bằng cách so sánh effort của kiểm thử thủ công với effort của kiểm thử tự động, mà có thể nắm bắt dựa vào các số liệu sua:
o Phần trăm lỗi được tìm thấy
o Thời gian cần thiết để kiểm thử tự động hóa cho mỗi chu kỳ phát hành
o Thời gian tối thiểu được thực hiện để phát hành
o Sự hài lòng của khách hàng
o Nâng cao năng suất
Trang 21CHƯƠNG 3: TÌM HIỂU VỀ KATALON STUDIO
1 Giới thiệu về Katalon Studio
Katalon Studio là một bộ công cụ toàn diện để kiểm thử tự động áp dụng Web và Mobile Công cụ này bao gồm một gói đầy đủ các tính năng mạnh mẽ giúp vượt qua các thách thức phổ biến trong kiểm thử
tự động giao diện người dùng web Ví dụ: Cửa sổ bật lên, iFrame và thời gian chờ Giải pháp thân thiện và linh hoạt này giúp cho người kiểm tra tốt hơn, làm việc nhanh hơn và khởi chạy phần mềm chất lượng cao nhờ vào sự thông mình mà nó cung cấp cho toàn bộ quy trình kiểm thử tự động
2 Các tính năng chính của Katalon Studio
- Triển khai đơn giản (Simple deployment): gói triển khai duy nhất, gắn kết chứa mọi thứ cần để triển khai một công cụ kiểm thử tự động mạnh
mẽ
- Cài đặt nhanh chóng và dễ dàng (Quick & Esay set-up): không chỉ cung cấp cài đặt đơn giản, Katalon Studio còn giúp tester dễ dàng thiết lập môi trường Người kiểm thử có thể chạy kịch bản kiểm thử đầu tiên của
họ khá nhanh chóng bằng cách sử dụng các mẫu và tập lẹnh kiểm thử
dựng sẵn của nó, chẳng hạn như kho đối tượng và thư viện từ khóa
- Kết quả nhanh hơn và tốt hơn (Faster & Better results): các mẫu dựng sẵn với hướng dẫn rõ ràng giúp người kiểm tra nhanh chóng xây dựng
và chạy các kịch bản kiểm thử tự động Có thể thực hiện từng bước một tốc độ và hiệu quả, từ thiết lập dự án, tạo kiểm thử, thực hiện, tạo báo
cáo và bảo trì
- Chế độ linh hoạt (Flexible modes): có thể sử dụng bản ghi và từ khóa
để xây dựng bài kiểm thử tự động, trong đó có IDE đầy đủ để xây dựng
tập lệnh nâng cao
- Dễ sử dụng (Ease of use): ngay cả thủ công với kinh nghiệm lập trình
tối thiểu cũng có thể khai thác lợi ích của nó một cách dễ dàng
- Ứng dụng đa trình duyệt (Cross-browser application): Katalon Studio
hỗ trợ nhiều nền tảng: Windowns 32 và 64 (7, 8 và 10) và OS X 10.5+
Trang 223 Làm việc với Katalon
Katalon Studio là một giải pháp tự động hóa sâu sắc, thân thiện với người dùng, được đặc trưng bởi sự đơn giản và tốc độ Nó rất hữu ích cho các nhóm
và cá nhân người kiểm thử tự động dành ít nỗ lực nhất từ việc thiết lập một dự
án mới đến thực hiện các kiểm thử và sau đó giám sát kết quả thực hiện Mỗi quy trình công việc được cung cấp rất nhiều khả năng và tùy chỉnh để bảo trì
dễ dàng và mở rộng dự án:
• Cấu trúc được xác định trước (Pre-defined structure): test cases, test suites, test objects, reports Người kiểm tra không cần phải dành hàng
giờ để xác định và duy trì chúng sau này
• Từ khóa (Custom keyworks): tùy chỉnh cung cấp linh hoạt trong việc thêm các từ khóa bổ sung để kiểm tra AUT hiệu quả cho các mục đích
thử nghiệm cụ thể và phức tạp
• Hỗ trợ các nhu cầu kiểm tra chính: web, mobile và API
• Thực hiện nhiều bộ kiểm thử cùng một lúc với bộ sưu tập bộ kiểm thử
• Mở rộng dong CI hiện tại một cách dễ dàng với việc thực hiện chế độ bàn điều khiển mà không cần nỗ lực Thực hiện dòng lệnh có thể được tạo ra nhanh chóng bằng cách sử dụng tính năng “Generate Command
Line for console mode”
• Giám sát kết quả thực hiện dễ dàng với chế độ xem bảng hoặc chế độ
xem cây trong/ sau khi thực hiện
• Báo cáo chi tiết bộ kiểm thử giảm thời gian phân tích kết quả Có thể xuất nó sang các định dạng khác nhau CSV, PDF, HTML và lưu trữ để
sử dụng sau
4 Quy trình làm việc của Katalon Studio
Điều hành một luồng công việc tuyến tính:
4.1 Khởi tạo (Initiate):
Các mẫu dự án tích hợp: bằng cách cung cấp các mẫu dựng sẵn để tổ chức các trường hợp kiểm thử, kho lưu trữ đối tượng và từ khóa, Katalon Studio giúp việc kiểm thử dễ dàng hơn cho người kiểm thử
Nhiều khả năng: hổ trợ đầy đủ kiểm thử cho Web, Android, IOS và API trên tất cả các hệ điều hành
Trang 23Tích hợp trên công cụ không rắc rối: dễ dàng kết hợp với Jenkins, GIT và JIRA với các plug-in gốc
4.2 Triển khai (Create)
Tạo kiểm thử tự động: ghi lại các hành động và tạo các kịch bản tự động bằng các từ khóa tích hợp
Tập lệnh Hi-end: cho phép xây dựng kịch bản kiểm thử nâng cao hoặc từ khóa tùy chỉnh dễ dàng và hiệu quả
Thu thập thông tin đối tượng: máy ghi âm tiên tiến phát hiện các thuộc tính đối tượng một cách hiệu quả để tối đa hóa nhận dạng
4.3 Hoạt động (Operate)
Thực hiện kiểm thử (Test execution) mạnh mẽ: chạy các trường hợp kiểm thử hoặc bộ kiểm thử bằng cách sử dụng nhiều cấu hình và bộ dữ liệu Tính linh hoạt trong thực thi: cung cấp bảng điều khiển tích hợp CI với các tham số khác nhau để thực hiện từ xa Chạy thử nghiệm trên nhiều trình duyệt và hệ điều hành OS cục bộ hoặc với Sauce Labs và BrowserStack
Xử lý lỗi linh hoạt hoặc thực hiện lại tự động: bao gồm các quy tắc thời gian chạy để tự động xử lý các luồng thực thi phức tạp
4.4 Báo cáo (Report)
Báo cáo có sẵn trong một số định dạng: với ghi nhật lý nâng cao, dữ liệu
Trang 245 So sánh các công cụ kiểm thử tự động
- Katalon Studio ẩn tất cả các sự phức tạp về mặt kỹ thuật đằng sau hiện trường và cung cấp giao diện thân thiện với chế độ thủ công (người dùng có thể kéo-thả, chọn từ khóa và thử nghiệm các đối tượng để tạo thành các bước thử nghiệm) nhưng vẫn giữ vũ khí cần thiết cho những người dùng kỹ thuật mạnh mẽ sâu hơn vào mã hóa với chế độ kịch bản
hỗ trợ đầy đủ các tiện ích phát triển như làm nỗi bật cú pháp, đề xuất
Nền tảng phát triển kiểm thử
Cross-platform Window Cross-platform
Application under test
Web apps Windowns
desktop, Web, Mobile apps, API/Web services
Web, Mobile, API/Web
services
Ngôn ngữ kịch bản
Java, C#, Perl, Python,
JavaScript, Ruby, PHP
VBScript Java/Groovy
Kỹ năng lập trình
Kỹ năng nâng cao cần thiết để tích hợp cho các công cụ khác nhau
Không yêu cầu Đề xuất cho các kịch bản nâng cao
Không yêu cầu
Đề xuất cho các kịch bản nâng cao
Trang 25Dễ cài đặt và sử dụng
Yêu cầu cài đặt
và tích hợp các công cụ khác nhau
Dễ dàng cài đặt và chạy
trì đối tượng
Xpath, bản đồ
UI
Kho lưu trữ đối tượng tích hợp, phát hiện
và điều chỉnh đối tượng thông minh
Kho lưu trữ đối tượng tích hợp, Xpath, nhận dạng lại đối tượng
Kiểm thử dựa trên hình ảnh
Yêu cầu cài đặt thư viện bổ sung
Hỗ trợ tích hợp, nhận dạng đối tượng dựa trên hình ảnh
Hỗ trợ tích hợp
Kiểm thử phân tích
Không Không Katalon
Analytics Loại giấy phép Mã nguồn mở
(Apache 2.0)
Bản quyền Phần mềm miễn
phí Phí Miễn phí Phí giấy phép
Công cụ Điểm mạnh Hạn chế
Trang 26Katalon Studio
Không có phí cấp phép và bảo trì cần thiết (dịch vụ hỗ trợ chuyên dụng có trả phí có sẵn nếu cần)
Tích hợp các framework và tính năng cần thiết để tạo và thực hiện các trường hợp kiểm thử nhanh
Được xây dựng dựa trên Selenium nhưng loại bỏ nhu cầu
về các kỹ năng lập trình nâng cao cần thiết cho Selenium
Giải pháp mới nổi với một cộng đồng phát triển nhanh chóng
Bộ tính năng vẫn đang phát triển Thiết các lựa chọn cho các ngôn ngữ kịch bản: chỉ hỗ trợ Java/Groovy
Selenium Mã nguồn mở, không có phí cấp
phép và bảo trì
Cộng đồng người dùng và phát triển lớn và tích cực để kịp với các công nghệ phần mềm
Mở để tích hợp các công cụ và các framework khác để tăng cường khả năng của nó
Các nhóm kiểm thử cần phải có kỹ năng
và kinh nghiệm lập trình tốt để thiết lập
và tích hợp với Selenium với các công cụ và framework khác
Hỗ trợ chậm từ cộng đồng
QTP/UFT Các tính năng kiểm thử tự động
toàn diện được tích hợp vào một
hệ thống duy nhất
Hỗ trợ người dùng chuyên dụng với một cộng đồng người dùng lớn được thành lập
Chỉ yêu cầu các kỹ năng lập trình
cơ bản để bắt đầu với việc tạo và thực thi kiểm thử
Giải pháp tốn kém: giấy phép và phí bảo trì cao đáng kể Chi phí cao để nâng cấp và các module
bổ sung
Chỉ hỗ trợ VBScript
Hình 3.2 So sánh các điểm mạnh và hạn chế chính của các công cụ
Trang 27Đánh giá:
Không có công cụ nào phù hợp cho tất cả để kiểm thử tự động Rất khuyến khích người dùng kiểm thử đánh giá các công cụ khác nhau để chọn ra những gì sẽ đáp ứng tốt nhất nhu cầu kiểm thử tự động của họ Các ngôn ngữ lập trình và công nghệ được sử dụng để phát triển phần mềm tiếp tục phát triển, cũng như các công cụ kiểm thử tự động, khiến chi phí trở thành một yếu tố quan trọng trong việc lựa chọn công cụ Các nhà cung cấp thương mại thường tính phí nâng cấp công cụ, có thể là đáng kể nếu phần mềm của bạn sử dụng các công cụ mới nổi và thường xuyên thay đổi
Mặc khác, các công cụ mã nguồn mở và phi thương mại không phải chịu phí
bổ sung mà đòi hỏi nỗ lực và chuyên môn để tích hợp các nâng cấp mới Thât khó để tìm thấy sự hỗ trợ và chuyên môn cần thiết để tích hợp các công cụ và framework khác nhau vào các giải pháp mã nguồn mở các công cụ mở nổi tích hợp với các framework mã nguồn mở, như Katalon, cung cấp một giải pháp thay thế khả thi cho
cả các giải pháp kiểm thử tự động mã nguồn mở và thương mại