Kiểm thử phần mềm đảm bảo rằng phần mềm được phát triển đáp ứngđược yêu cầu và mong đợi của người dùng, từ tính năng, chức năng, hiệu suất, đến độtin cậy và bảo mật.SoapUI là một công cụ
Trang 1BÁO CÁO BÀI TẬP LỚN
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
- -Hà Nội-Năm 2023
Trang 2MỤC LỤC
CHƯƠNG 1: MỞ ĐẦU 6
CHƯƠNG 2: KẾT QUẢ NGHIÊN CỨU 7
2.1 TỔNG QUAN 7
2.1.1 Khái niệm kiểm thử 7
2.1.2 Các loại kiểm thử 8
2.1.3 Các phương pháp kiểm thử phần mềm 13
2.1.4 Kiểm thử tự động 14
2.2 TÌM HIỂU CÔNG CỤ KIỂM THỬ PHẦN NỀM 16
2.2.1 Giới thiệu công cụ 16
2.2.2 Cách cài đặt công cụ 18
2.2.3 Cách sử dụng công cụ 26
2.3 Giới thiệu trang web TheTestingWorldAPI 36
2.3.1 Giới thiệu 36
2.3.2 Tài liệu đặc tả yêu cầu phần mềm 36
2.4 Kiểm thử trang web TheTestingWorldAPI 38
2.4.1 Lập kế hoạch kiểm thử (Test plan) 38
2.4.2 Vũ Văn Hùng - Lấy dữ liệu 40
2.4.3 Nguyễn Minh Khuê - TechnicalSkills 49
2.4.4 Hoàng Thị Thu Trang – Hệ thống Chi tiết sinh viên 55
2.4.5 Trịnh Đức Nhân - Địa chỉ 62
CHƯƠNG 3 KIẾN THỨC LĨNH HỘI VÀ BÀI HỌC KINH NGHIỆM 70
MỤC LỤC HÌNH ẢNH
Trang 3Ảnh 1: Các giao thức của SOAPUI 17
Ảnh 2: Các yêu cầu tải SOAPUI 19
Ảnh 3: Hình ảnh trang chủ của SoapUi 20
Ảnh 4: Hình ảnh trang downloading SoapUI 20
Ảnh 5: Chạy file để tải phần mềm SoapUI 21
Ảnh 6: Hướng dẫn thiết lập tải SoapUI 21
Ảnh 7: Chọn thư mục để lưu phần mềm SoapUi 22
Ảnh 8: Chọn thành phần muốn cài đặt xuống 22
Ảnh 9: Chọn thành phần muốn cài đặt xuống 23
Ảnh 10: Chọn vị trí thư mục lưu trữ 24
Ảnh 11: Chọn vị trí thư mục bắt đầu và next 24
Ảnh 12: Chọn Create a desktop icon 25
Ảnh 13: Cài đặt hoàn tất 25
Ảnh 14: Giao diện màn hình chính của SoapUi 26
Ảnh 15: Cấu trúc Workspace trong SOAP UI 27
Ảnh 16: Tạo 1 Workspace 27
Ảnh 17: Hoàn thành tạo Workspace 28
Ảnh 18: Chọn nơi lưu trữ Workspace 28
Ảnh 19: Hình ảnh không gian làm việc của Workspace 29
Ảnh 20: Ví dụ về kiểm thử SoapUI 30
Ảnh 21: Sự khác nhau giữa SOAP và REST 31
Ảnh 22: Tạo 1 file new Rest API 31
Trang 4Ảnh 23: Ví dụ truyền body 32
Ảnh 24: Tạo testsuite with testcase 32
Ảnh 25: Sửa tên TestSuite 33
Ảnh 26: Tạo TestSuit và đổi tên TestCase 34
Ảnh 27: Tạo TestSuit và đổi tên TestCase 34
Ảnh 28: Màn hình hiển thị sau khi tạo Test case 34
Ảnh 29: Ví dụ: truyền dữ liệu kiểu body 35
Ảnh 30: Ví dụ: truyền dữ liệu kiểu body 35
Ảnh 31: Kết quả chạy test case 36
Ảnh 32: Kết quả chạy test case 46
Ảnh 33: Tạo mới TestSuite 46
Ảnh 34: Tạo mới Test Case 47
Ảnh 35: Lấy dữ liệu 47
Ảnh 36: Lấy dữ liệu thành công 48
Ảnh 37: Dữ liệu lấy thành công 49
Ảnh 38: Thêm kỹ năng mới 51
Ảnh 39: Thêm kỹ năng mới 52
Ảnh 40: Sửa kỹ năng có id = 90048 53
Ảnh 41: Xoá kỹ năng có id = 90086 54
Ảnh 42: Xoá kỹ năng có id = 1000 55
Ảnh 43: Xoá kỹ năng có id = 1000 58
Ảnh 44: Xoá kỹ năng có id = 1000 58
Ảnh 45: Lấy ra danh sách sinh viên có id cụ thể 59
Trang 5Ảnh 46: Lấy ra danh sách sinh viên có id cụ thể 59
Ảnh 47: Thêm sinh viên có đầy đủ chi tiết 60
Ảnh 48: Tạo resource 60
Ảnh 49: Tạo resource 61
Ảnh 50: Tạo testSuite 61
Ảnh 51: Tạo testcase 62
Ảnh 52: Xoá sinh viên có id cụ thể 62
Ảnh 53: Tạo mới REST Project 64
Ảnh 54: Phương thức Post 64
Ảnh 55: Add data 65
Ảnh 56: Tạo test case và test suite, request 66
Ảnh 57: Kết quả 66
Ảnh 58: Tạo phương thức 67
Ảnh 59: Data được thêm 67
Ảnh 60: Kết quả 68
Ảnh 61: Kết quả 68
Trang 6CHƯƠNG 1: MỞ ĐẦU
Công nghệ thông tin đang phát triển với tốc độ chóng mặt và trở thành một phầnkhông thể thiếu trong đời sống của chúng ta Trong lĩnh vực phát triển phần mềm, côngnghệ thông tin đóng vai trò quan trọng trong việc tạo ra các sản phẩm phần mềm chấtlượng cao và đáp ứng nhu cầu của người dùng
Trong quá trình phát triển phần mềm, kiểm thử phần mềm là một phần quan trọng vàkhông thể thiếu Kiểm thử phần mềm đảm bảo rằng phần mềm được phát triển đáp ứngđược yêu cầu và mong đợi của người dùng, từ tính năng, chức năng, hiệu suất, đến độtin cậy và bảo mật
SoapUI là một công cụ kiểm thử phần mềm phổ biến và mạnh mẽ được sử dụng tronglĩnh vực này Nó là một công cụ kiểm thử phần mềm dựa trên giao thức SOAP (SimpleObject Access Protocol) và REST (Representational State Transfer) SoapUI cung cấpcác tính năng để kiểm tra và xác thực các dịch vụ web của phần mềm, đồng thời chophép các kỹ sư kiểm thử phần mềm kiểm tra tính năng, tương tác với cơ sở dữ liệu,kiểm tra bảo mật và hiệu suất của phần mềm
Với SoapUI, các kỹ sư kiểm thử phần mềm có thể tạo ra các kịch bản kiểm thử tự động
để đảm bảo tính toàn vẹn và độ tin cậy của các dịch vụ web Nó cũng cung cấp cáccông cụ và tính năng để giúp người dùng tìm ra các lỗi và sự cố trong quá trình kiểmthử phần mềm
Sử dụng SoapUI trong kiểm thử phần mềm giúp các kỹ sư kiểm thử phần mềm tiếtkiệm thời gian và tăng tính hiệu quả của quá trình kiểm thử Với tính năng tự độnghóa, các kịch bản kiểm thử có thể được thực hiện nhanh chóng và liên tục để đảm bảotính đáng tin cậy của phần mềm
Tóm lại, SoapUI là một công cụ kiểm thử phần mềm mạnh mẽ và hiệu quả trong việckiểm thử các dịch vụ web của phần mềm Nó giúp các kỹ sư kiểm thử phần mềm tạo racác kịch bản kiểm thử tự động và xác thực các tính năng của phần mềm để đảm bảotính toàn vẹn và độ tin cậy của sản phẩm phần mềm
Trang 7CHƯƠNG 2: KẾT QUẢ NGHIÊN CỨU2.1 TỔNG QUAN
2.1.1 Khái niệm kiểm thử
2.1.1.1 Kiểm thử là gì?
Kiểm thử (Testing) là quá trình đánh giá các tính năng và chức năng của một sản phẩmphần mềm để đảm bảo rằng nó đáp ứng các yêu cầu của khách hàng và đáp ứng đượccác tiêu chuẩn chất lượng Quá trình kiểm thử phần mềm có thể được thực hiện bằngcách sử dụng các phương pháp, kỹ thuật và công cụ khác nhau để đảm bảo rằng sảnphẩm đáp ứng được các yêu cầu chức năng, phi chức năng, hiệu suất và an toàn
Các nguyên tắc kiểm thử (7 testing principles):
Các nguyên tắc kiểm thử (7 testing principles) được đưa ra bởi ISTQB(International Software Testing Qualifications Board) và là các nguyên tắc cơbản để hướng dẫn quá trình kiểm thử phần mềm Các nguyên tắc này bao gồm:
Kiểm thử không thể chứng minh tính đúng đắn của phần mềm: Kiểm thử chỉ cóthể giúp phát hiện các lỗi hoặc khuyết tật trong phần mềm, nhưng không thểchứng minh rằng phần mềm là hoàn toàn đúng đắn
Kiểm thử sớm: Kiểm thử nên bắt đầu từ giai đoạn sớm nhất trong quá trình pháttriển phần mềm, để giảm thiểu chi phí và thời gian trong việc sửa lỗi
Toàn diện: Kiểm thử nên được thực hiện một cách toàn diện, bao gồm kiểm thửchức năng, phi chức năng và hiệu suất của phần mềm
Sự chuyên môn: Kiểm thử nên được thực hiện bởi các chuyên gia trong lĩnh vựckiểm thử, để đảm bảo tính chính xác và hiệu quả của quá trình kiểm thử
Lặp lại: Kiểm thử nên được lặp lại nhiều lần để đảm bảo tính ổn định và độ tincậy của phần mềm
Tính tự động: Kiểm thử nên được tự động hóa để tăng tính hiệu quả và giảmthiểu thời gian và chi phí
Kiểm thử phải dừng lại khi đạt được mục tiêu: Kiểm thử nên được thực hiệnđến khi đạt được mục tiêu của quá trình kiểm thử, nhưng nếu không đạt đượcmục tiêu sau một thời gian nhất định, quá trình kiểm thử có thể phải dừng lại đểtiến hành các phương pháp kiểm thử khác
Tại sao kiểm thử phần mềm là cần thiết?
Đảm bảo chất lượng sản phẩm: Kiểm thử phần mềm giúp đảm bảo rằng phầnmềm được sản xuất có chất lượng tốt, đáp ứng được yêu cầu của khách hàng vàngười dùng cuối
Trang 8 Phát hiện lỗi sớm: Kiểm thử phần mềm giúp phát hiện và sửa chữa các lỗi phầnmềm sớm, trước khi phần mềm được triển khai và sử dụng rộng rãi, điều nàygiúp giảm thiểu chi phí và thời gian sửa chữa.
Tiết kiệm chi phí: Kiểm thử phần mềm giúp giảm thiểu chi phí sửa chữa phầnmềm và giảm thiểu chi phí liên quan đến sự cố phần mềm
Đảm bảo tính ổn định và độ tin cậy: Kiểm thử phần mềm giúp đảm bảo tính ổnđịnh và độ tin cậy của phần mềm, giúp giảm thiểu nguy cơ sự cố và giúp ngườidùng sử dụng phần mềm một cách an toàn
Đảm bảo tính tương thích: Kiểm thử phần mềm giúp đảm bảo tính tương thíchcủa phần mềm với các hệ thống, phần cứng và phần mềm khác, giúp ngườidùng sử dụng phần mềm một cách dễ dàng và hiệu quả
Tăng niềm tin của khách hàng: Kiểm thử phần mềm giúp tăng niềm tin củakhách hàng và người dùng cuối vào sản phẩm, đảm bảo rằng phần mềm đápứng được các yêu cầu và mong đợi của họ
Tóm lại, kiểm thử phần mềm là cần thiết để đảm bảo chất lượng sản phẩm,giảm thiểu chi phí sửa chữa, đảm bảo tính ổn định và độ tin cậy của phần mềm,tăng niềm tin của khách hàng và người dùng cuối, và đảm bảo tính tương thíchcủa phần mềm
2.1.2 Các loại kiểm thử
2.1.2.1 Kiểm thử chức năng (functional testing)
Kiểm thử chức năng (Functional testing) là một phương pháp kiểm thử phần mềm đểđảm bảo rằng phần mềm hoạt động đúng theo các yêu cầu chức năng được đặt ra.Kiểm thử chức năng tập trung vào việc kiểm tra các tính năng, chức năng, và hành vicủa phần mềm để đảm bảo rằng chúng hoạt động đúng cách
Dựa trên yêu cầu:
Sử dụng các đặc tả kỹ thuật của các yêu cầu chức năng để làm cơ sở cho việctest các thiết kế
Nội dung của các yêu cầu có thể làm các mục kiểm thử ban đầu hoặc sử dụng
nó như là một danh sách các mục kiểm thử hoặc không kiểm thử
Dựa theo yêu cầu để phân mức độ ưu tiên trong quá trình kiểm thử Cần ưu tiêncác yêu cầu có mức độ rủi ro cao
Dựa trên quy trình nghiệp vụ:
Các quy trình nghiệp vụ mô tả các kịch bản scenarios liên quan đến các nghiệp
vụ hằng ngày của hệ thống
Trang 9 Các usecase được bắt nguồn phát triển theo hướng đối tượng nhưng hiện tại phổbiến trong nhiều trong các vòng đời phát triển.
Lấy các quy trình nghiệp vụ làm điểm khởi đầu, các quy trình nghiệp vụ xuấtphát từ các nhiệm vụ được thực hiện bởi người dùng
Các use case là một cơ sở hữu ích cho các testcase từ góc độ nghiệp vụ
Các bước trong kiểm thử chức năng bao gồm:
Phân tích yêu cầu: Đầu tiên, kiểm thử viên phải đọc và hiểu các yêu cầu chứcnăng của phần mềm
Lập kế hoạch kiểm thử: Sau khi hiểu các yêu cầu chức năng, kiểm thử viên sẽlập kế hoạch kiểm thử để đảm bảo rằng tất cả các chức năng đã được kiểm thửđầy đủ
Thiết kế kiểm thử: Kiểm thử viên sẽ thiết kế các ca kiểm thử để kiểm tra tínhđúng đắn của các chức năng của phần mềm
Thực hiện kiểm thử: Kiểm thử viên sẽ thực hiện các ca kiểm thử đã thiết kế đểđảm bảo rằng các chức năng của phần mềm hoạt động đúng cách
Quản lý lỗi: Nếu phát hiện ra các lỗi trong quá trình kiểm thử, kiểm thử viên sẽghi lại các lỗi này và báo cáo cho nhóm phát triển để sửa chữa
Xác nhận kết quả kiểm thử: Kiểm thử viên sẽ xác nhận kết quả kiểm thử để đảmbảo rằng tất cả các chức năng của phần mềm đã được kiểm thử đầy đủ và đápứng được các yêu cầu chức năng
Kiểm thử chức năng là một phương pháp quan trọng trong kiểm thử phần mềm
để đảm bảo tính đúng đắn và đáp ứng các yêu cầu chức năng của phần mềm
Các loại kiểm thử chức năng:
● Kiểm thử đơn vị (Unit Testing)
● Kiểm thử khói (Smoke Testing - check nhanh xem hệ thống có khởi động đượchay không)
● Kiểm thử độ tỉnh táo (Sanity Testing - check nhanh xem sau khi sửa đổi thìfunction có hoạt động như mong muốn hay không)
● Kiểm thử giao diện (Interface Testing)
● Kiểm thử tích hợp (Integration Testing)
● Kiểm thử hệ thống (Systems Testing)
● Kiểm thử hồi quy (Regression Testing)
● Kiểm thử chấp nhận (Acceptance testing)
Trang 102.1.2.2 Kiểm thử phi chức năng (non-functional testing).
Kiểm thử phi chức năng cùng giống kiểm thử chức năng ở chỗ là thực hiệnđược ở mọi cấp độ kiểm thử, Kiểm thử phi chức năng xem xét các hành vi bên ngoàicủa phần mềm
Kiểm thử phi chức năng bao gồm:
● Kiểm thử hiệu năng (performance testing)
● Kiểm thử khả năng chịu tải (load testing)
● Kiểm thử áp lực (stress testing)
● Kiểm thử khả năng sử dụng (usability testing)
● Kiểm thử bảo trì (maintainability testing)
● Kiểm thử độ tin cậy (reliability testing)
● Kiểm thử tính tương thích (portability testing)
Những đặc điểm phụ tương ứng:
● Độ tin cậy (reliability): được xác định rõ hơn từ các đặc trưng phụ đã được tínhtoán cẩn thận (độ bền), khả năng chịu lỗi (fault tolerance), phục hồi(recoverability) và tuân thủ (compliance)
● Khả năng sử dụng (usability): được chia thành các đặc trưng dễ hiểu, khả nănghọc hỏi (learnability), khả năng hoạt động (operability), sự thu hút(attractiveness) và tính tuân thủ (compliance)
● Tính hiệu quả (efficiency): được chia thành hành vi về thời gian (hiệu suất), sửdụng tài nguyên (resource utilization) và tuân thủ (compliance)
● Khả năng bảo trì (maintainability): bao gồm 5 đặc điểm phụ: phân tích, khảnăng thay đổi, tính ổn định, khả năng kiểm tra và tuân thủ
● Tính tương thích (portability): bao gồm 5 đặc điểm phụ: khả năng thích ứng,khả năng cài đặt, cùng tồn tại, khả năng thay thế và tuân thủ
2.1.2.3 Kiểm thử cấu trúc/kiến trúc phần mềm (structural testing).
Kiểm thử cấu trúc có thể xảy ra ở bất kỳ mức độ kiểm thử nào, được áp dụng chủ yếu
ở kiểm thử thành phần, tích hợp
Phương pháp kiểm thử cấu trúc cũng có thể áp dụng ở các mức độ như kiểm thử tíchhợp hệ thống hoặc kiểm thử chấp nhận
Trang 11Kỹ thuật kiểm thử cấu trúc được sử dụng tốt nhất sau các kỹ thuật dựa trên các đặcđiểm kỹ thuật (specification-based) Giúp đo lường kỹ lưỡng kiểm thử thông qua đánhgiá độ bao phủ của loại cấu trúc.
Độ bao phủ là phạm vi mà một cấu trúc đã được thực hiện bởi một bộ kiểm thử, tínhtheo phần trăm của các mục đã được bao phủ Nếu độ bao phủ không phải là 100% cáckiểm thử sẽ được thiết kế để kiểm tra các mục đã bị bỏ lỡ để tăng độ bao phủ
Các kỹ thuật được sử dụng để kiểm thử cấu trúc là: các kỹ thuật hộp trắng và các môhình luồng điều khiển (Control flow models)
2.1.2.4 Kiểm thử xác nhận (confirmation testing) và kiểm thử hồi quy (regression testing)
Kiểm thử xác nhận.
Sau khi một lỗi được phát hiện và sửa chữa, phần mềm được kiểm thử lại đểxác nhận lỗi ban đầu đã được khắc phục gọi là kiểm thử xác nhận (Confirmationtesting)
Khi thực hiện kiểm thử xác nhận phải đảm bảo rằng các thử nghiệm được thựchiện giống như lần đầu tiên sử dụng, sử dụng các inputs, dữ liệu và môi trườnggiống nhau
Kiểm thử hồi quy:
Mục đích của kiểm thử hồi quy là xác minh rằng sửa đổi trong phần mềm hoặcmôi trường không gây ra các phản ứng phụ không mong muốn và hệ thống vẫnđáp ứng các yêu cầu
Kiểm thử hồi quy là các kiểm thử lặp đi lặp lại của một chương trình đã đượckiểm thử, sau khi sửa đổi
Kiểm thử hồi quy được thực hiện bất cứ khi nào trong phần mềm hoặc là kếtquả của các bản sửa lỗi, chức năng mới được thay đổi
Kiểm thử hồi quy dựa vào các bộ test case Khi thêm chức năng mới thì phảithêm các testcase mới hoặc là các chức năng cũ được thay đổi hay xóa bỏ thìtest case cũng phải được thay đổi hoặc xóa bỏ
Kiểm thử hồi quy có thể được thực hiện tại tất cả mức độ kiểm thử, bao gồmkiểm thử chức năng, phi chức năng và kiểm thử cấu trúc
2.1.2.5 Kiểm thử bảo trì (Maintenance testing).
Phân tích tác động và kiểm thử hồi quy:
Trang 12 Thông thường kiểm thử bảo trì gồm 2 phần: kiểm thử các thay đổi và Kiểm thửhồi quy để cho thấy phần còn lại của hệ thống không bị ảnh hưởng bởi côngviệc bảo trì.
Hoạt động chính và quan trọng trong việc kiểm thử bảo trì là việc phân tích cáctác động Từ việc phân tích sẽ quyết định được những phần nào của hệ thống cóthể bị ảnh hưởng không mong muốn
Phân tích rủi ro sẽ giúp quyết định được nơi cần tập trung kiểm thử hồi quy
Khởi động cho kiểm thử bảo trì:
Kiểm thử bảo trì được thực hiện trên hệ thống đã tồn tại và được thực hiện khi
có sự thay đổi, di chuyển hoặc rút lui của phần mềm hoặc hệ thống
Kiểm thử bảo trì cho việc thay đổi: Các cải tiến bao gồm thay đổi tăng theo kếhoạch, khắc phục những thay đổi khẩn cấp và thay đổi môi trường
Kiểm thử bảo trì cho sự chuyển đổi: Bao gồm kiểm tra hoạt động của môitrường mới, các phần mềm đã thay đổi Kiểm thử di chuyển (kiểm thử chuyểnđổi) cũng cần thiết khi dữ liệu từ một ứng dụng khác sẽ được di chuyển vào hệthống đang được bảo trì
Kiểm thử bảo trì đối với hệ thống đã ngưng hoạt động: bao gồm kiểm thử việcchuyển đổi dữ liệu hoặc lưu trữ, nếu cần lưu trữ dữ liệu lâu dài
Từ quan điểm của việc chuyển đổi thì c漃Ā 2 loại:
Chuyển đổi theo kế hoạch bao gồm: Chuyển đổi hoàn thiện (phần mềm thíchnghi được với mong muốn người dùng), Chuyển đổi thích nghi (phần mềmthích nghi được với sự thay đổi của môi trường như phần cứng mới, phần mềm
hệ thống mới), Chuyển đổi điều chỉnh theo kế hoạch (sửa chữa lỗi)
Những chuyển đổi bột phát không thể lên kế hoạch được: đối với những lỗi nhưthế này cần phân tích rủi ro của hệ thống hoạt động để xác định chức năng hoặcchương trình gây lỗi
2.1.3 Các phương pháp kiểm thử phần mềm
2.1.3.1 Kiểm thử hộp trắng:
Phương pháp kiểm thử phần mềm White Box Testing – kiểm thử hộp trắngđược các tester áp dụng để kiểm tra cấu trúc bên trong phần mềm, đồng thời,tester sẽ tiến hành lấy dữ liệu thử nghiệm từ mã chương trình
Kiểm thử hộp trắng (White box testing) được chia thành nhiều loại khác nhau,bao gồm: API Testing, code coverage, Fault Injection Methods, Mutation
Trang 13Testing Methods, Static Testing API Testing là kiểm thử ứng dụng bằng cáchdùng hàm API private và public.
Ưu điểm:
Giúp hệ thống tối ưu hóa hơn các dòng lệnh một cách đơn giản
Giúp các tester phát hiện lỗi dễ dàng trong mỗi dòng lệnh
Loại bỏ nhanh chóng dòng lệnh có lỗi tiềm ẩn hoặc không quan trọng
Tester sau khi thực hiện phương pháp kiểm thử phần mềm này sẽ dễ dàng hơn
để đạt được độ bao phủ lớn nhất trong các trường hợp kiểm thử sau
Ưu điểm:
Tester không cần phải truy cập vào từng dòng lệnh
Hiệu quả và phù hợp với hệ thống có số lượng lớn dòng lệnh
Phân biệt một cách rõ ràng quan điểm của nhà phát triển và người dùng
Không đòi hỏi tester phải có kiến thức về ngôn ngữ lập trình khi kiểm thử phầnmềm
Nhược điểm:
Bị giới hạn bởi độ bao phủ của các trường hợp kiểm thử
Khó khăn trong việc thiết kế đầy đủ mọi trường hợp kiểm thử
Thực tế không mang lại hiệu quả cao bởi các tester bị giới hạn kiến thức về hệthống
Các tester chỉ tập trung vào dòng lệnh dễ xảy ra lỗi, khó có thể kiểm tra tất cảđoạn lệnh của hệ thống
Trang 142.1.4 Kiểm thử tự động
2.1.4.1 Kiểm thử tự động
Là một kỹ thuật tự động trong đó người kiểm thử tự viết các tập lệnh và sử dụng phầnmềm phù hợp để kiểm thử phần mềm Nó về cơ bản là một quá trình tự động hóa củamột quy trình kiểm thử thủ công Giống như kiểm thử hồi quy, kiểm thử tự động cũngđược sử dụng để kiểm thử ứng dụng theo quan điểm tải, hiệu năng và ứng suất
Kiểm thử tự động hay sử dụng phần mềm để kiểm thử với các ưu điểm:
● Có thể thực hiện các kiểm thử một cách liên tục, lặp lại và giảm chi phí chonhân lực kiểm thử
● Luôn đảm bảo hoạt động theo một kịch bản duy nhất – không bị ảnh hưởng nhưvới kiểm thử viên
2.1.4.2 Quy trình kiểm thử tự đô ̣ng
Quy trình kiểm thử tự động bao gồm: tester sử dụng các kịch bản tự động (automationscripts) và thực thi các script để chạy ứng dụng với sự giúp sức của các automationtool Một khi script đã sẵn sàng thì việc thực thi kiểm thử có thể diễn ra nhanh chóng
và hiệu quả
Các hoạt động của kiểm thử tự động:
● Phân tích yêu cầu/Xác định môi trường/công cụ
● Xác định tiêu chí đầu ra
● Lên kế hoạch và kiểm soát
● Thiết lập môi trường kiểm thử
● Triển khai thiết kế kiểm thử
● Thực thi kiểm thử
● Phân tích, báo cáo
2.1.4.3 Mục đích của kiểm thử tự đô ̣ng
Kiểm thử tự động với các mục đích:
● Giảm bớt công sức và thời gian thực hiện quá trình kiểm thử
● Tăng độ tin cậy
● Giảm sự nhàm chán cho con người
● Rèn luyện kỹ năng lập trình cho kiểm thử viên
Trang 15● Giảm chi phí cho tổng quá trình kiểm thử
2.1.4.4 Kiểm thử tự đô ̣ng khi nào?
● Không đủ tài nguyên: Khi số lượng TestCase quá nhiều mà kiểm thử viên khôngthể hoàn tất trong thời gian cụ thể
● Kiểm tra hồi quy: Nâng cấp phần mềm, kiểm tra lại các tính năng đã chạy tốt vànhững tính năng đã sửa Tuy nhiên, việc này khó đảm bảo về mặt thời gian
● Kiểm tra khả năng vận hành phần mềm trong môi trường đặc biệt (Đo tốc độtrung bình xử lý một yêu cầu của Web server, xác định cấu hình máy thấp nhất
mà phần mềm vẫn có thể hoạt động tốt)
2.1.4.5 Mô ̣t số công cụ kiểm thử tự đô ̣ng
Các công cụ kiểm thử tự động là các phần mềm được sử dụng để thực hiện các kiểmthử trong quá trình phát triển phần mềm một cách tự động, giúp giảm thiểu thời gian
và chi phí trong quá trình kiểm thử Dưới đây là một số công cụ kiểm thử tự động phổbiến:
1 Selenium: Là một công cụ kiểm thử tự động cho các ứng dụng web, cho phépkiểm thử các hành vi của trình duyệt web
2 Appium: Là một công cụ kiểm thử tự động cho các ứng dụng di động, cho phépkiểm thử các ứng dụng trên các thiết bị di động và máy tính bảng
3 JMeter: Là một công cụ kiểm thử hiệu suất cho các ứng dụng web, cho phépkiểm thử tải, thời gian đáp ứng, và khả năng chịu tải của ứng dụng
4 TestComplete: Là một công cụ kiểm thử đa nền tảng cho các ứng dụng máy tính
Trang 16Các công cụ kiểm thử tự động giúp tăng tính hiệu quả và độ chính xác trong quá trìnhkiểm thử phần mềm, giảm thiểu thời gian và chi phí, và đảm bảo tính đáng tin cậy củaphần mềm.
2.2 TÌM HIỂU CÔNG CỤ KIỂM THỬ PHẦN NỀM
2.2.1 Giới thiệu công cụ
Công cụ SoapUI bao gồm các tính năng như:
1 Tạo và chỉnh sửa các yêu cầu và phản hồi dịch vụ web
2 Tạo và thực hiện các bộ kiểm thử tự động
3 Hỗ trợ kiểm thử dịch vụ web dựa trên các giao thức như SOAP, REST và JMS
4 Đưa ra các báo cáo chi tiết về kết quả kiểm thử
5 Tích hợp với các công cụ khác như Maven và Jenkins để tự động hóa quy trìnhkiểm thử
6 Cung cấp các tính năng kiểm thử khác như kiểm thử tải và kiểm thử bảo mật.Công cụ SoapUI có thể được sử dụng trên nhiều nền tảng, bao gồm cả Windows,Linux và macOS Nó được sử dụng rộng rãi trong các dự án phần mềm để đảm bảochất lượng sản phẩm và đảm bảo tính ổn định và độ tin cậy của dịch vụ web
Tại sao lại sử dụng SOAPUI?
SOAPUI không chỉ là một công cụ dùng để test functional API mà còn cho phép chúng
ta thực hiện các bước test nonfunctional như Performance và security testing
5 tính năng quan trọng của SOAPUI
1 Functional test (Kiểm thử chức năng)
● Một công cụ mạnh mẽ cho phép các Tester test functional API trong SoapUI
● Hỗ trợ tính năng Kéo-thả giúp tăng tốc độ script development
● Hỗ trợ debug và cho phép các Tester thực hiện test data
● Hỗ trợ Nhiều Môi trường - Dễ dàng chuyển đổi giữa QA, Dev và môi trườngProd
Trang 17● Hỗ trợ script nâng cao (Tester có thể tùy chỉnh code của họ tùy thuộc vào script )
2 Security testing (Kiểm thử bảo mật)
● Có khả năng thực hiện quét các lỗ hổng bảo mật một cách hoàn chỉnh
● Ngăn chặn SQL Injection để bảo vệ cơ sở dữ liệu
● Quét Stack overflows được gây ra bởi các dữ liệu có kích thước rất lớn
● Quét cho Cross Site Scripting, thường xảy ra khi các thông số dịch vụ được hiểnthị trong các tin nhắn
● Thực hiện quét Fuzzing và Boundary để tránh hành vi thất thường của các dịchvụ
3 Load testing
● Phân phối Load test trên tất cả các số bất kỳ của loadUI Agents
● Mô phỏng dữ liệu lớn và thực một cách dễ dàng
● Cho phép báo cáo tùy chỉnh nâng cao để nắm bắt các thông số hiệu suất
● Cho phép giám sát hiệu suất End-to-End system
4 Hỗ trợ các Giao thức / Công nghệ:
SoapUI hỗ trợ Giao thức toàn diện nhất : SOAP/WSDL, REST, AMF,HTTP/HTTPS, JDBC, JMS
Ảnh 1: Các giao thức của SOAPUI
5 SOAP-Tích hợp với các công cụ tự động h漃Āa khác nhau:
Trang 18SoapUI tích hợp rất tốt với các công cụ phổ biến:
HUDSON, một công cụ tích hợp dựa trên nền tảng Java và tích hợp với các công
cụ như CVS, Subversion, Git, Perforce, Clearcase và RTC SOAPUI cũng tíchhợp với HUDSON, giúp phát hiện lỗi một cách nhanh chóng
JUnit
JUnit là một Unit Testing framework được xây dựng trong Java, có thể kiểm soátflow test từ SOAPUI rất tốt
Apache - Ant
Apache Ant, thư viện Java là một công cụ command-line giúp building software
Sử dụng Command line của SOAP UI, chúng ta có thể thực hiện test với ANTAutomated Build
2.2.2 Cách cài đặt công cụ
Để cài đặt và cấu hình SOAP UI (Phiên bản mã nguồn mở) Sau đây là yêu cầu phầnmềm và phần cứng cho các nền tảng khác nhau
Trang 19Ảnh 2: Các yêu cầu tải SOAPUI
Quá trình cài đặt
Bước 1: Tải xuống
● Điều hướng đến https://www.soapui.org/downloads/latest-release/
Trang 20Ảnh 3: Hình ảnh trang chủ của SoapUi
Chọn trình tải xuống phù hợp với hệ điều hành của bạn
Trong bài tập lớn này, chúng ta sẽ cài đặt SOAP UI trên hệ điều hành MicrosoftWindows 64-bit
Khi nhấp vào tải xuống, người dùng sẽ tự động được chuyển tiếpđến https://www.soapui.org/downloads/thank-you-for-downloading-soapui/ và quátrình tải xuống trình cài đặt sẽ tự động bắt đầu
Ảnh 4: Hình ảnh trang downloading SoapUI
Bước 2: Cài đặt
Trang 21● Sau khi tải về các bạn thực thi file 'Administrator' như hình bên dưới
Ảnh 5: Chạy file để tải phần mềm SoapUI
● Trong trình hướng dẫn thiết lập, nhấp vào 'Next' để tiếp tục
Ảnh 6: Hướng dẫn thiết lập tải SoapUI
● Chọn thư mục cài đặt hoặc để nguyên thư mục cài đặt mặc định và ấn ‘Next’
Trang 22Ảnh 7: Chọn thư mục để lưu phần mềm SoapUi
● Chọn các thành phần mà bạn muốn cài đặt
Ảnh 8: Chọn thành phần muốn cài đặt xuống
Trang 23● SOAP UI được kiểm tra theo mặc định và người dùng không thể tự cấu hình
● Source – Kích hoạt, nếu bạn muốn có quyền truy cập vào mã nguồn của
SOAP-UI
● Hermes JS – Kích hoạt, nếu ứng dụng yêu cầu thử nghiệm JMS
● Tutorials – Kích hoạt, nếu bạn muốn truy cập hướng dẫn cài đặt SOAP-UI
● Chấp nhận thỏa thuận cấp phép và nhấp vào 'Next' để tiếp tục
Ảnh 9: Chọn thành phần muốn cài đặt xuống
● Chọn vị trí thư mục cho các hướng dẫn hoặc nếu không, hãy để nguyên vị trímặc định và nhấp vào 'Next'
Trang 24Ảnh 10: Chọn vị trí thư mục lưu trữ
● Chọn vị trí thư mục menu bắt đầu hoặc nếu không, hãy để nguyên vị trí mặcđịnh và nhấp vào 'Next'
Ảnh 11: Chọn vị trí thư mục bắt đầu và next
● Bật hộp checkbox ‘Create a desktop icon’ và nhấp vào “Next”
Trang 25Ảnh 12: Chọn Create a desktop icon
Quá trình cài đặt bắt đầu và sau khi hoàn tất, trình hướng dẫn sẽ hiển thị trạngthái bên dưới Nhấp vào ‘Finish’
Ảnh 13: Cài đặt hoàn tất
● Khi nhấp vào nút 'Hoàn tất', SOAP UI sẽ được khởi chạy
Trang 26Ảnh 14: Giao diện màn hình chính của SoapUi
2.2.3 Cách sử dụng công cụ
2.2.3.1 Cách cấu hình SOAP UI
Trước tiên chúng ta hãy hiểu cấu trúc dự án trong SOAP UI
● Bước đầu tiên trong SOAP UI là tạo một không gian làm việc(Workspace) Cóthể có một số dự án được liên kết với một không gian làm việc Người dùng cóthể tạo nhiều hơn một không gian làm việc Trong phiên bản SOAP UI Pro,chúng ta có thể chuyển đổi môi trường một cách liền mạch để ánh xạ nó tới cácđiểm cuối khác nhau
● Đối với mỗi dự án, chúng ta có thể tạo một số bộ thử nghiệm(test suite)
● Đối với mỗi test suite, có thể có một số test cases được đính kèm
● Đối với mỗi test case, có thể có một số bước kiểm thử được liên kết với nó
Trang 27Ảnh 15: Cấu trúc Workspace trong SOAP UI
Trang 28Bước 1: Bước đầu tiên là tạo một Workspace Tất cả các phần sau đó mà chúng ta sẽ
tạo từ bây giờ sẽ được chứa trong Workspace này
Ảnh 16: Tạo 1 Workspace
Bước 2: Nhập tên Workspace và ấn ‘OK’
Ảnh 17: Hoàn thành tạo Workspace
Trang 29Bước 3: Bây giờ người dùng phải chọn đường dẫn nơi Workspace này phải được lưu.
1 Chọn đường dẫn nơi Workspace được lưu
2 Tên của Workspace XML phải được định vị khi người dùng muốn mởWorkspace trong tương lai
3 Nhấp ‘Save’ để lưu
Ảnh 18: Chọn nơi lưu trữ Workspace
Bước 4: Không gian làm việc được tạo như hình bên dưới Chúng ta cũng có thể truy
cập các thuộc tính của Workspace trong Tab ‘Workspace Properties’
Trang 30Ảnh 19: Hình ảnh không gian làm việc của Workspace
Bây giờ chúng ta đã cấu hình thành công SOAP-UI sau khi tải xuống và cài đặt đểchúng ta có thể tiếp tục thực hiện kiểm thử
2.2.3.2 Cách sử dụng
SoapUI bao gồm 4 bộ phần chính :
● Các thanh menu bar: Có khả năng thực hiện đầy đủ các tác vụ chức năng phầnmềm Ví dụ tạo project, import project,…Mọi thiết lập cài đặt đều dẫn từ Menu-bar Phần phía dưới là ShortCut – những biểu tượng mà người dùng hay làm
Trang 31việc, ví dụ như tạo 1 project rỗng, tạo 1 project SOAP , tạo 1 project REST,…điều hướng giữa các item
● Navigator – thanh điều hướng : Điều hướng từ project này sang project kháchoặc từ request này sang request của 1 project khác,
● Phần khung làm việc ở giữa : gồm 2 khung : request và respond
Nhìn chung có cấu trúc giống nhau nhưng khác nhau ở chỗ ở mỗi dự án có cách truyềntin khác nhau thì có cấu trúc bên trong khác nhau
Ảnh 20: Ví dụ về kiểm thử SoapUI
● SOAP là từ viết tắt của cụm Simple Object Access Protocol Đây đang là giaothức nhắn tin và cho phép những chương trình chạy trực tiếp trên nhiều hệ điều
Trang 32hành khác nhau (Linux và Windows,…) giao tiếp được cùng với nhau qua Ngônngữ XML và Giao thức HTTP.
● Thay vì sử dụng XML để tạo request, REST dựa vào một URL đơn giản Trongmột số trường hợp, bạn phải cung cấp thông tin bổ sung theo những cách đặcbiệt, nhưng hầu hết các Web service sử dụng REST đều dựa hoàn toàn vào việcthu lại các thông tin cần thiết bằng phương pháp URL REST có thể sử dụngbốn hình thái HTTP 1.1 khác nhau (GET, POST, PUT, và DELETE) để thựchiện các tasks
Ảnh 21: Sự khác nhau giữa SOAP và REST
Bước 1: Tạo project REST API ()
Cung cấp domain hiện tại của web bao gồm (Endpoint + resource + params)
Ảnh 22: Tạo 1 file new Rest API
Bước 2: Thiết lập resource
● Tùy vào dữ liệu và API yêu cầu để truyền kiểu dữ liệu, phương thức, params,body,
Trang 33Ảnh 23: Ví dụ truyền body
Bước 3: Tạo testSuite
● Tạo bộ test để tổ hợp các test case liên quan đến nhau
Ảnh 24: Tạo testsuite with testcase
● Sửa tên TestSuite
Trang 34Ảnh 25: Sửa tên TestSuite
Bước 4: Tạo Test Case
● Tạo các test case tương ứng với mỗi trường hợp test
● Các trường hợp ngoài lệ , lỗi , thành công,
Trang 35Ảnh 26: Tạo TestSuit và đổi tên TestCase
Bước 5: Tạo Test Steps
Ảnh 27: Tạo TestSuit và đổi tên TestCase
● Chọn đúng đường dẫn cần test case
● Màn hình hiển thị sau khi tạo test case
Ảnh 28: Màn hình hiển thị sau khi tạo Test case
● Nhập dữ liệu vào với kiểu dữ liệu muốn truyền
Trang 36Ảnh 29: Ví dụ: truyền dữ liệu kiểu body
● Chạy Test steps
Ảnh 30: Ví dụ: truyền dữ liệu kiểu body