Tải bản đầy đủ (.pdf) (28 trang)

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.pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (723.47 KB, 28 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

1 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

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

II. GIỚI THIỆU VỀ CÔNG CỤ SOAPUI ... 6

<small>1.Sự ra đời của SoapUI ... 7</small>

<small>2.SoapUI là gì? ... 8</small>

<small>3.Cơng nghệ, kỹ thuật ... 9</small>

<small>4.Đối tượng sử dụng ...11</small>

<small>5.Các chức năng chính của SoapUI ...11</small>

<small>6.Ưu điểm và nhược điểm ...12</small>

<small>6.1.1Ưu điểm ... 12</small>

<small>6.1.2Nhược điểm ... 12</small>

III. HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG SOAPUI ... 13

<small>1.Cài đặt ...13</small>

<small>1.1Cài đặt trên Linux/Unix ... 13</small>

<small>1.2Cài đặt trên Windows ... 17</small>

<small>1.3Cài đặt trên MacOS ... 19</small>

<small>2.Demo sử dụng SoapUI với project ...22</small>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

3 Lời m ở đầu

Kiểm thử phần mềm là đỉnh cao của q 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ả

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

I. 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 tồ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 q 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

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

script và test case bằng cách sử dụng công cụ tự động hóa và sau đó

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.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

tă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

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

1. 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.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

2. 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.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

3. Công nghệ, kỹ thuật

Kiến trúc của SoapUI ở mức tổng quan. - Trong đó:

o Test config files: Các tệp yêu cầu tài nguyên để thực hiện kiểm thử, bao gồm dữ liệu kiểm tra, kết quả mong đợi, biến kết nối cơ sở dữ

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

liệ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.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

4. Đố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 SOAP-based và muốn thử nghiệm việc triển khai chúng.

-

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.

▪ Ngồ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ụ.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

o 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. ▪ Ngồ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.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

III. Hướng dẫn cài đặt và sử dụng SoapUI 1. Cài đặt

<small>- </small> SoapUI hỗ trợ trên 3 hệ điều hành bao gồm MacOS, Windows và Linux. 1.1 Cài đặt trên Linux/Unix

- Yêu cầu trước tiên: Hãy chắc chắn rằng máy bạn đã cài đặt Java (JRE) - Cài đặt:

1. Tải Linux binary zip từ link sau 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:

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

-Bấ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, …

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

Note: 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

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

Sau một vài phút thì q trình cài đặt sẽ hồn tất và bạn sẽ màn hình tiếp theo

Giờ bạn đã có thể hồn tồn sử dụng SoapUI

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

1.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 Files\SmartBear\SoapUI-5.5.0.

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

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

’ Cuối cùng bấm Next để bắt đầu quá trình cài đặt

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

Sau vài phút thì q trình cài đặt sẽ hồ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

- Q 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,...

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

Sau khi q trình hồ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

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

2. 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.

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

2.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

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

- Chọn tiêu chí để đánh giá ca kiểm thử

-

- Đặt tên cho ca kiểm thử

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

IV. 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 trên.

Selenium chỉ có thể thực hiện functional, performance testing ở một mức độ nào đó vì nó có thể theo dõi thời gian thực hiện liên quan đến hiệu suất nhưng không thể test multi user và multi ten-ancy. Selenium chắc chắn không thể được sử dụng để security testing. Phụ thuộc vào các giao thức chứ không

phụ thuộc vào trình duyệt.

Phụ thuộc vào khả năng của trình duyệt

</div>

×