Kiểm thử thủ công - Kiểm thử thủ công là kiểm thử một phần mềm một cách thủ công không sử dụng bất kỳ công cụ tự động hoặc bất kỳ đoạn mã nào.. Kiểm thử tự động - Kiểm thử tự động là một
Trang 11
VIETNAM UNIVERSITY UNIVERSITY OF ENGINEERING AND TECHNOLOGY
BÁO CÁO BÀI TẬP NHÓM KIỂM THỬ VÀ ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
TÌM HIỂU VỀ CÔNG CỤ KIỂM THỬ SOAPUI
Giảng viên : ThS Nguyễn Thu Trang
Người thực hiện : Nhóm 13
Thành viên : Trần Thanh Tùng 20021472
18021433 Phạm Dương Vũ
Lớp : INT3117 40
Trang 22
MỤC LỤC
I KIỂM THỬ TỰ ĐỘNG VÀ KIỂM THỬ THỦ CÔNG 4
1 Về khái niệm 4
2 Về đặc điểm 5
II GIỚI THIỆU VỀ CÔNG CỤ SOAPUI 6
1 Sự ra đời của SoapUI 7
2 SoapUI là gì? 8
3 Công nghệ, kỹ thuật 9
4 Đối tượng sử dụng 11
5 Các chức năng chính của SoapUI 11
6 Ưu điểm và nhược điểm 12
6.1.1 Ưu điểm 12
6.1.2 Nhược điểm 12
III HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG SOAPUI 13
1 Cài đặt 13
1.1 Cài đặt trên Linux/Unix 13
1.2 Cài đặt trên Windows 17
1.3 Cài đặt trên MacOS 19
2 Demo sử dụng SoapUI với project 22
2.1 Bài toán 22
2.2 Tác nhân liên quan 22
2.3 Mã nguồn và hướng dẫn 23
IV SO SÁNH SOAPUI VỚI CÁC CÔNG CỤ KIỂM THỬ KHÁC 28
Trang 33
Lời m ở đầu
Kiểm thử phần mềm là đỉnh cao của quá trình phát triển ứng dụng mà qua
đó người kiểm thử phần mềm đánh giá code bằng cách đặt câu hỏi về nó Việc đánh giá này có thể ngắn gọn hoặc tiến hành cho đến khi tất cả các bên liên quan hài lòng Kiểm thử phần mềm xác định các lỗi và sự cố trong quá trình phát triển
để chúng được khắc phục trước khi ra mắt sản phẩm Cách tiếp cận này đảm bảo rằng chỉ những sản phẩm chất lượng mới được phân phối đến người tiêu dùng,
từ đó nâng cao sự hài lòng và tin tưởng của khách hàng
Để hiểu tầm quan trọng của kiểm thử phần mềm, hãy xem xét ví dụ về Starbucks Vào năm 2015, công ty đã mất hàng triệu đô la doanh thu khi nền tảng điểm bán hàng (POS) của họ ngừng hoạt động do quá trình làm mới hệ thống bị lỗi do trục trặc phần mềm Điều này có thể tránh được nếu phần mềm POS đã được kiểm tra kỹ lưỡng Nissan cũng chịu chung số phận vào năm 2016 khi triệu hồi hơn 3 triệu xe do lỗi phần mềm trong bộ phận phát hiện cảm biến túi khí
Có nhiều loại kiểm thử phần mềm, nhưng hai loại chính là kiểm thử động
và kiểm thử tĩnh Kiểm tra động là một đánh giá được tiến hành trong khi chương trình được thực thi; thử nghiệm tĩnh kiểm tra mã của chương trình và tài liệu liên quan Các phương thức động và tĩnh thường được sử dụng cùng nhau Trong những năm qua, kiểm thử phần mềm đã phát triển đáng kể khi các công ty áp dụng kiểm thử Agile và môi trường làm việc DevOps Điều này đã giới thiệu các chiến lược thử nghiệm nhanh hơn và hợp tác hơn cho lĩnh vực thử nghiệm phần mềm
Báo cáo này sẽ giới thiệu về công cụ kiểm thử SoapUI, công cụ kiểm thử chức năng hàng đầu cho để kiểm thử SOAP và REST Báo cáo được thực hiện bởi nhóm sinh viên Trần Thanh Tùng, Phạm Dương Vũ Dù đã cố gắng hoàn thiện, song báo cáo không thể tránh khỏi các thiếu sót Chúng em xin trân trọng cảm ơn
Nhóm tác giả
Trang 4I Kiểm thử tự động và kiểm thử thủ công
1 Về khái niệm
1.1 Kiểm thử thủ công
- Kiểm thử thủ công là kiểm thử một phần mềm một cách thủ công (không sử dụng bất kỳ công cụ tự động hoặc bất kỳ đoạn mã nào) Với loại kiểm thử này, tester hoặc end user sẽ kiểm tra phần mềm để xác định bất kỳ hành vi không mong muốn hoặc lỗi
- Có rất nhiều giai đoạn để kiểm thử bằng tay như Kiểm thử đơn vị (Unit testing), Kiểm thử tích hợp (Integration testing), Kiểm thử hệ thống (System testing) và Kiểm thử chấp nhận (Acceptance testing)
- Bất kỳ ứng dụng mới nào cũng phải được kiểm thử thủ công trước khi thực hiện kiểm thử tự động hóa Kiểm thử thủ công đòi hỏi nhiều nỗ lực hơn nhưng lại rất cần thiết để kiểm tra tính khả thi để thực hiện tự động hóa
- Tester sử dụng kế hoạch kiểm thử (test plans), ca kiểm thử (test case), hoặc kịch bản kiểm thử (test scenarios) để đảm bảo tính đầy đủ của kiểm thử Kiểm thử thủ công cũng bao gồm kiểm thử khám phá, tester kiểm thử khám phá phần mềm để tìm ra lỗi trong phần mềm đó
1.2 Kiểm thử tự động
- Kiểm thử tự động là một kỹ thuật sử dụng một ứng dụng để thực hiện toàn bộ vòng đời của phần mềm trong thời gian ngắn hơn và sử dụng được nhiều lần cho test hồi quy
- Kiểm thử tự động là một kỹ thuật tự động hóa, trong đó người kiểm thử tự viết các tập lệnh và sử dụng phần mềm phù hợp để kiểm thử phần mềm Về cơ bản nó là một quá trình tự động hóa của một quy trình 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 tra ứng dụng theo quan điểm load, performance
và stress test
- Nói cách khác, kiểm thử tự động sử dụng các công cụ tự động hóa để viết và thực hiện các test case, không cần sự tham gia thủ công trong khi thực hiện một test suite Thông thường, người kiểm thử viết test
Trang 5script và test case bằng cách sử dụng công cụ tự động hóa và sau đó nhóm thành các test suite
- Mục tiêu chính của kiểm thử tự động là tăng hiệu quả kiểm thử và phát triển giá trị phần mềm
Cho phép tester chạy test
mà không cần tới kiến thức
Vì được thực thi bởi con người nên
sẽ không thể tránh được việc có thể xảy ra sai sót
Tốn thời gian hoặc nhân lực và đôi khi là có thể tốn cả hai
Kiểm thử hiệu năng được coi là không thực tiễn trong mục kiểm thử thủ công
Cũng như kiểm thử hiệu năng, việc
so sánh một khối dữ liệu lớn cũng được coi là phi thực tiễn
Xử lý yêu cầu trong quá trình bảo trì phần mềm sẽ tốn cực kì tốn thời gian
Đối với mỗi lần có sự thay đổi, tester vẫn phải thực hiện lại một tập hợp các test case đã chạy dẫn đến sự nhàm chán và tốn thời gian
Trang 6tăng năng suất kiểm thử
Tất cả các bên liên quan có
thể đăng nhập vào hệ thống
tự động và xem được kết
quả kiểm thử
Không có yếu tố con người rất khó
để có cái nhìn sâu sắc về các khía cạnh trực quan của giao diện người dùng như màu sắc, phông chữ, kích cỡ,
Tốn kém hơn rất nhiều so với kiểm thử thủ công cho các công cụ tự động hóa như hệ thống, training,
II Giới thiệu về công cụ SoapUI
Trang 71 Sự ra đời của SoapUI
- Khi ngày càng nhiều công ty chuyển hướng sang DevOps, tích hợp liên tục (CI) và triển khai liên tục (CD), phản hồi kiểm thử cần nhanh hơn bao giờ hết
- Bên cạnh đó, API là cơ sở của phát triển phần mềm hiện đại, đặc biệt là khi ngày càng có nhiều nhóm rời bỏ các ứng dụng nguyên khối và bắt đầu
áp dụng phương pháp tiếp cận microservices để phát triển phần mềm Với các microservices tạo nên xương sống của hầu hết các phần mềm mới, việc kiểm tra API thậm chí còn trở nên quan trọng hơn trước đây
- Khi SoapUI ban đầu được tạo ra vào năm 2006, không có công cụ kiểm tra API mã nguồn mở nào trên thị trường Ý tưởng ban đầu đằng sau SoapUI là "Hãy kiếm thật nhiều người để giúp!" kể từ đó, các nhà phát - triển đã đóng góp mã nguồn và những phản hồi giá trị, làm cho SoapUI trở thành sản phẩm như ngày hôm nay
Trang 82 SoapUI là gì?
- SoapUI là công cụ kiểm thử chức năng hàng đầu để kiểm thử web services, cho phép Tester thực hiện các chức năng như test functional, regression, compliance và load testing một cách tự động trên Web API khác nhau
- SoapUI hỗ trợ tất cả các giao thức chuẩn và công nghệ để test API như SOAP (Simple Object Access Protocol)/WSDL, RESTful hoặc HTTP
- Tính đến thời điểm hiện tại SoapUI đã có hơn 3 triệu lượt tải và nằm trong top đầu công cụ dùng để kiểm thử API Service do là công cụ có open source và có giao diện thân thiện với người dùng
Trang 10liệu và mọi chi tiết cụ thể về thông tin kiểm thử chi tiết hoặc môi trường kiểm thử
o Third-Party API: API của bên thứ ba giúp tạo ví dụ về khung tự động hóa thử nghiệm được tối ưu hóa API JExcel để giúp tích hợp với Microsoft Excel để tạo khung điều khiển dữ liệu
o Selenium: Các file JAR Selenium được sử dụng để tự động hóa giao diện người dùng
o SoapUI Runner: Công cụ này được sử dụng để chạy dự án SoapUI
và là một tiện ích rất hữu ích để tự động hóa thử nghiệm vì nó cho phép bạn chạy thử nghiệm kiểm thử từ môi trường dòng lệnh
o Groovy: Thư viện này được sử dụng để cho phép SoapUI cung cấp cho người dùng ngôn ngữ Groovy dưới dạng ngôn ngữ kịch bản
o Properties: Các thuộc tính để lưu dữ liệu động đã được tạo, cấu hình SSL và các cấu hình bảo mật khác cho các yêu cầu kiểm thử
o Test Report: SoapUI cung cấp báo cáo kiểu Junit và tiện ích báo cáo người dùng Jasper để báo cáo kết quả thử nghiệm
- SoapUI hỗ trợ hai ngôn ngữ là Groovy và JavaScript
Trang 114 Đối tượng sử dụng
- Phù hợp với bất kỳ ai làm các dịch vụ web SOAP-based, đặc biệt là ở cấp
độ mới bắt đầu khi đang làm quen giao thức SOAP
- Phù hợp cho những người có kinh nghiệm trong lĩnh vực kiểm thử phần mềm, những người muốn thử nghiệm một luồng dựa trên các dịch vụ web khác nhau
- Phù hợp cho các nhà phát triển làm việc trên các dịch vụ web based và muốn thử nghiệm việc triển khai chúng
SOAP
5 Các chức năng chính của SoapUI
- Nhìn chung, SoapUI sở hữu gần hết các chức năng cần có để test API
- Sau đây là 4 chức năng quan trọng của SoapUI:
o Kiểm thử chức năng ( Functional Testing):
▪ SoapUI cho phép người dùng kiểm thử chức năng mà không cần đến mã code Bạn chỉ cần sử dụng các thao tác kéo và thả để tạo ra các bài test, tăng tốc độ script development, ngay cả trong những tình huống phức tạp nhất
▪ Ngoài ra còn hỗ trợ nhiều môi trường test như QA, dev hay môi trường Production
▪ Hỗ trợ debug các ca kiểm thử và cho phép testers xây dựng các ca kiểm thử data-driven
o Kiểm thử tải (Load Testing):
▪ SoapUI có thể cân bằng tải các ca kiểm thử cho các luồng đang hoạt động nên mô phỏng được việc kiểm thử khối lượng lớn trong thế giới thực một cách dễ dàng
▪ Cho phép giám sát hiệu suất quy trình đầu cuối của hệ thống
o Kiểm thử bảo mật (Security Testing):
▪ SoapUI có thể ngăn chặn SQL Injection để bảo mật cơ sở dữ liệu
▪ SoapUI có thể quét Cross Site Scripting, thường xảy ra khi các thông số dịch vụ được hiển thị trong nội dung response
▪ SoapUI có thể thực hiện quét fuzzing scan và boundary scan
để tránh các hành vi bất thường của các dịch vụ
Trang 12o Mô phỏng dịch vụ (Mocking):
▪ SoapUI có thể giả lập các dịch vụ Web như: HTTP, HTTPS, REST, SOAP, … trước khi chúng thực sự được triển khai
▪ Ngoài ra thì SoapUI còn tích hợp rất tốt với một số công cụ
tự động hóa phổ biến như: Maven, JUnit, HUDSON,
6 Ưu điểm và nhược điểm
6.1.1 Ưu điểm
- SoapUI có khả năng thực hiện vai trò của cả khách hàng và dịch vụ
- SoapUI cho phép người dùng tạo các bài kiểm tra chức năng và phi chức năng một cách nhanh chóng và hiệu quả bằng cách sử dụng một môi trường duy nhất
- SoapUI hỗ trợ đa nền tảng (Windows, Mac, Linux)
- SoapUI cho phép người thử nghiệm thực hiện các thử nghiệm chức năng, hồi quy, tuân thủ và tải tự động trên các API Web khác nhau
- SoapUI hỗ trợ tất cả các giao thức và công nghệ tiêu chuẩn để kiểm tra tất cả các loại API
- SoapUI thân thiện với người dùng cũng như dễ dàng chuyển đổi kiểm thử chức năng thành kiểm thử phi chức năng như kiểm tra tải, kiểm tra căng thẳng
6.1.2 Nhược điểm
- Không thể truy cập thư viện script: nghĩa là SoapUI không hỗ trợ báo cáo nâng cao
- Trong một vài trường hợp, SoapUI yêu cầu việc mã hóa đáng kể để xác thực
- SoapUI nặng và tốn nhiều bộ nhớ của CPU Chính vì đặc điểm này, đôi khi SoapUI có thể khiến máy bị treo khi đang chạy Bạn cũng sẽ dễ dàng mất hết mất hết dữ liệu nếu chưa kịp lưu lại
- Đối với việc thực hiện load test, SoapUI chỉ phù hợp với những dự án có quy
mô nhỏ Nó không phải là sự lựa chọn tốt nhất để xử lý các tác vụ phức tạp
- Không tạo báo cáo xác thực dữ liệu Đây cũng là một nhược điểm khiến nhiều người dùng phiền lòng
- Không thể kiểm tra được Web UI và ứng dụng di động
Trang 13III Hướng dẫn cài đặt và sử dụng SoapUI
1 Tải Linux binary zip từ link sau https://www.soapui.org/
2 Unzip nó thành đường link trong thư mục quen thuộc của bạn
3 Đảm bảo rằng bạn có đủ quyền để unzip thư mục soapUI
4 Vào trong thư mục đó và chạy lệnh $bin/soapui.sh
Khi bạn đã tải xuống thành công thì mọi thứ gần như khá đơn giản Hãy bắt đầu với việc double clicking vào file vừa tải thì bạn sẽ thấy màn hình khởi tạo như sau:-
Trang 14Bấm Next để tiếp tục
Chọn thư mục đích mà mặc định đó sẽ là home/User/SmartBear/SoapUI-5.5.0:
Bước tiếp theo sẽ gợi ý cho bạn về việc cài đặt thêm 1 số lựa chọn như hướng dẫn, tệp
mã nguồn SoapUI, …
Trang 15Note: Nếu bạn lựa chọn cài đặt thêm cả HermesJMS thì hãy chắc chắn rằng bạn đồng
ý với thỏa thuận sử dụng giấy phép của nó
Sau đó, 1 cửa sổ sẽ xuất hiện và hỏi bạn về việc tạo nên 1 icon trên màn hình desktop hay không
Sau đó hãy bấm Next để bắt đầu quá trình cài đặt
Trang 16Sau một vài phút thì quá trình cài đặt sẽ hoàn tất và bạn sẽ màn hình tiếp theo
Giờ bạn đã có thể hoàn toàn sử dụng SoapUI
Trang 171.2 Cài đặt trên Windows
Giống với việc cài đặt trên hệ điều hành Linux, việc cài đặt công cụ SoapUI cũng sẽ
có các bước thực hiện quá trình tương tự như:
Chọn thư mục đích cho file, mặc định sẽ là C:\Program 5.5.0
Files\SmartBear\SoapUI-Tiếp đó bạn sẽ được hỏi rằng chọn thư mục để thêm shortcut cũng như tạo desktop icon
Trang 18’Cuối cùng bấm Next để bắt đầu quá trình cài đặt
Trang 19Sau vài phút thì quá trình cài đặt sẽ hoàn tất và bạn đã có thể bắt đầu sử dụng công cụ SoapUI
1.3 Cài đặt trên MacOS
- Quá trình cài đặt trên hệ điều hành MacOS sẽ có 1 số điểm lưu ý nhỏ như sau:
o Nếu quá trình cài đặt SoapUI trên hệ điều hành Mac không phản ứng thì bạn có thể thử các giải pháp như sau để giải quyết:
1 Trong file soapui-settings.xml hãy thêm hoặc cập nhật dòng sau:
<con:setting id="UISettings@disable-browser">true</con:setting>
2 Nếu vẫn không được thì bạn có thể khởi động ReadyAPI với param như sau khi thêm vào cmd:
-Dsoapui.jxbrowser.disable=true
3 Có thể tắt GateKeeper sau đó thử khởi động lại SoapUI
- Quá trình cài đặt cơ bản trên hệ điều hành Mac sẽ bao gồm các bước cơ bản như chọn thư mục đích, cài đặt thêm, tạo icon desktop,
Trang 21Sau khi quá trình hoàn thành thì bạn sẽ thấy màn hình như sau và điều đó đồng nghĩa với việc bạn đã có thể bắt đầu kiểm thử với công cụ SoapUI
Trang 222 Demo sử dụng SoapUI với project
2.1 Bài toán
Module xác thực tài khoản trên hệ thống và đăng nhập
2.2 Tác nhân liên quan
User: Đăng nhập vào hệ thống sử dụng tài khoản đã đăng ký và tương tác với CSDL trên hệ thống
Trang 232.3 Mã nguồn và hướng dẫn
- Kiểm thử chức năng cho REST service xác thực đăng nhập
- Link mã nguồn: github
- Lần lượt chọn các option theo các ảnh sau đây để tiến hành xây dựng các kiểm thử:
- Điền vào đầu api cần kiểm tra
Trang 26- Chọn tiêu chí để đánh giá ca kiểm thử
-
- Đặt tên cho ca kiểm thử
Trang 27- Lựa chọn các ca kiểm thử dựa trên kết quả trả về của api
- Trường hợp valid là ca kiểm thử hợp lệ
- Trường hợp failed là ca kiểm thử thất bại và kèm theo là lỗi gây ra fail
Trang 28IV So sánh SoapUI với các công cụ kiểm thử khác
SoapUI không được sử dụng để kiểm
thử giao diện người dùng (UI) Nó chỉ
được sử dụng cho WebAPI hoặc Web
Services Testing
Selenium được sử dụng để test giao diện người dùng
Có khả năng kiểm thử dữ liệu gửi và
nhận giữa các trình duyệt và máy chủ
Có thể các giao thức/công nghệ như
REST, SOAP
Không thể test giao thức nhưng thay vì
đó lại có thể kiểm thử giao diện người dùng
Có khả năng thực hiện functional, load
và security testing của các công nghệ nói
phụ thuộc vào trình duyệt
Phụ thuộc vào khả năng của trình duyệt