Luận văn thạc sĩ về kiểm thử dựa trên mô hình và ứng dụng trong công nghệ thông tin

Luận văn thạc sĩ VNU UET nghiên cứu kiểm thử dựa trên mô hình và ứng dụng, cung cấp cái nhìn sâu sắc về phương pháp kiểm thử hiện đại.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Luận Văn Thạc Sĩ

2015

58
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

1. CHƯƠNG 1: GIỚI THIỆU

1.1. Khái quát về kiểm thử tự động và kiểm thử dựa trên mô hình

1.2. Ứng dụng kiểm thử dựa trên mô hình cho các ứng dụng Web

1.3. Mục tiêu và cấu trúc luận văn

2. CHƯƠNG 2: PHƯƠNG PHÁP ĐẶC TẢ TƯƠNG TÁC GIAO DIỆN CHO CÁC ỨNG DỤNG WEB

2.1. Đặc tả tương tác giao diện của từng trang Web bằng ôtômát hữu hạn trạng thái

2.2. Xây dựng mô hình đặc tả tương tác giao diện cho toàn bộ ứng dụng Web

3. CHƯƠNG 3: SINH VÀ THỰC THI CÁC CA KIỂM THỬ TỰ ĐỘNG

3.1. Sinh các ca kiểm thử từ mô hình đặc tả hình thức

3.2. Thực hiện các ca kiểm thử

3.3. Đánh giá phương pháp

4. CHƯƠNG 4: CÔNG CỤ VÀ THỰC NGHIỆM

4.1. Giới thiệu các công cụ bổ trợ

4.2. Kiến trúc của công cụ kiểm thử tự động tương tác giao diện

4.3. Đầu vào và đầu ra của công cụ

4.4. Kết quả cải tiến công cụ

4.5. Ý nghĩa của công cụ thực nghiệm

5. CHƯƠNG 5: KẾT LUẬN

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về Nghiên cứu kiểm thử dựa trên mô hình trong công nghệ thông tin

Nghiên cứu kiểm thử dựa trên mô hình (Model-Based Testing - MBT) đang trở thành một xu hướng quan trọng trong lĩnh vực công nghệ thông tin. Phương pháp này cho phép tự động hóa quá trình kiểm thử phần mềm, giúp tiết kiệm thời gian và chi phí. Kiểm thử dựa trên mô hình sử dụng các mô hình đặc tả hành vi của hệ thống để sinh ra các ca kiểm thử, từ đó nâng cao hiệu quả kiểm thử và giảm thiểu lỗi phần mềm.

1.1. Kiểm thử phần mềm và tầm quan trọng của nó

Kiểm thử phần mềm là một bước quan trọng trong quy trình phát triển phần mềm. Nó giúp phát hiện lỗi và đảm bảo rằng phần mềm hoạt động đúng như mong đợi. Việc kiểm thử không chỉ giúp cải thiện chất lượng sản phẩm mà còn tăng cường sự hài lòng của người dùng.

1.2. Khái niệm về kiểm thử dựa trên mô hình

Kiểm thử dựa trên mô hình là phương pháp trong đó các ca kiểm thử được sinh ra từ mô hình đặc tả hành vi của hệ thống. Mô hình này có thể được xây dựng bằng nhiều phương pháp khác nhau như ôtômát hữu hạn trạng thái, máy trạng thái UML, hoặc chuỗi Markov.

II. Vấn đề và thách thức trong kiểm thử phần mềm hiện nay

Trong bối cảnh phát triển phần mềm ngày càng phức tạp, việc kiểm thử trở nên khó khăn hơn. Các ứng dụng Web hiện đại thường có nhiều tính năng và yêu cầu kiểm thử đa dạng. Điều này dẫn đến việc kiểm thử thủ công trở nên tốn kém và không hiệu quả.

2.1. Những khó khăn trong kiểm thử thủ công

Kiểm thử thủ công thường mất nhiều thời gian và công sức. Mỗi khi có sự thay đổi trong mã nguồn, các kiểm thử viên phải thực hiện lại toàn bộ quy trình kiểm thử, dẫn đến việc lãng phí tài nguyên.

2.2. Tác động của sự phức tạp trong ứng dụng Web

Sự phức tạp của các ứng dụng Web hiện nay yêu cầu các phương pháp kiểm thử phải linh hoạt và hiệu quả hơn. Việc áp dụng kiểm thử tự động là cần thiết để đáp ứng yêu cầu này.

III. Phương pháp kiểm thử dựa trên mô hình hiệu quả

Để thực hiện kiểm thử dựa trên mô hình, cần có một quy trình rõ ràng và các công cụ hỗ trợ phù hợp. Việc xây dựng mô hình đặc tả hành vi của hệ thống là bước đầu tiên và quan trọng nhất.

3.1. Xây dựng mô hình đặc tả hành vi

Mô hình đặc tả hành vi có thể được xây dựng bằng ôtômát hữu hạn trạng thái. Mỗi trạng thái trong mô hình đại diện cho một giao diện người dùng tại một thời điểm cụ thể, và các sự kiện tương tác của người dùng sẽ tạo ra các chuyển trạng thái.

3.2. Sinh ca kiểm thử tự động từ mô hình

Sau khi xây dựng mô hình, các ca kiểm thử sẽ được sinh ra tự động từ mô hình này. Điều này giúp giảm thiểu thời gian và công sức cần thiết cho việc tạo ra các ca kiểm thử thủ công.

IV. Ứng dụng thực tiễn của kiểm thử dựa trên mô hình

Kiểm thử dựa trên mô hình đã được áp dụng thành công trong nhiều lĩnh vực khác nhau, đặc biệt là trong phát triển ứng dụng Web. Các công cụ kiểm thử tự động đã giúp nâng cao hiệu quả và độ chính xác của quá trình kiểm thử.

4.1. Các công cụ hỗ trợ kiểm thử tự động

Một số công cụ như Selenium và Jsoup đã được sử dụng rộng rãi trong kiểm thử tự động. Những công cụ này giúp tự động hóa quá trình kiểm thử và giảm thiểu lỗi do con người gây ra.

4.2. Kết quả nghiên cứu và ứng dụng thực tiễn

Nghiên cứu cho thấy rằng việc áp dụng kiểm thử dựa trên mô hình không chỉ giúp phát hiện lỗi sớm mà còn cải thiện chất lượng sản phẩm phần mềm. Các ứng dụng Web đã được kiểm thử bằng phương pháp này cho thấy sự cải thiện rõ rệt về hiệu suất và độ tin cậy.

V. Kết luận và tương lai của kiểm thử dựa trên mô hình

Kiểm thử dựa trên mô hình đang trở thành một phần không thể thiếu trong quy trình phát triển phần mềm hiện đại. Với sự phát triển của công nghệ, phương pháp này sẽ tiếp tục được cải tiến và mở rộng ứng dụng.

5.1. Tương lai của kiểm thử tự động

Dự báo rằng trong tương lai, kiểm thử tự động sẽ trở thành tiêu chuẩn trong ngành công nghiệp phần mềm. Các công nghệ mới như trí tuệ nhân tạo sẽ được tích hợp vào quy trình kiểm thử để nâng cao hiệu quả.

5.2. Những thách thức cần vượt qua

Mặc dù kiểm thử dựa trên mô hình mang lại nhiều lợi ích, nhưng vẫn còn nhiều thách thức cần giải quyết, như việc xây dựng mô hình chính xác và khả năng tương thích với các công cụ kiểm thử khác.

22/07/2025
Luận văn thạc sĩ vnu uet nghiên cứu về kiểm thử dựa trên mô hình và ứng dụng

Trích đoạn nội dung tài liệu

Chương 1: Giới thiệu Trong ngành công nghiệp phát triển phần mềm ngày nay, hầu hết các phần mềm ứng dụng đều được phát triển trên nền Web. Do đó, việc kiểm thử đảm bảo chất lượng các ứng dụng Web là một vấn đề rất quan trọng. Tuy nhiên, các ứng dụng Web ngày càng trở nên phức tạp, việc kiểm thử thủ công bao gồm cả tạo các ca kiểm thử và thực thi chúng trên các trang Web, là công việc rất tốn kém về thời gian và công sức. Hơn nữa, mỗi khi có sự cập nhật lại phiên bản của phần mềm, để tránh rủi ro phát sinh lỗi trong khi thay đổi mã nguồn thì các kiểm thử viên phải kiểm thử lại toàn bộ phần mềm, kể cả các tính năng đã được kiểm thử tốt.

Vì vậy, để hoàn thành công việc kiểm thử đúng tín độ, các công ty phần mềm cần phải áp dụng các phương pháp và công cụ nhằm tự động hóa các hoạt động kiểm thử. Kiểm thử tự động là một giải pháp hữu hiệu nhằm nâng cao tính chính xác và hiệu quả, cũng như giảm kinh phí và rút ngắn thời gian trong quá trình kiểm thử các sản phẩm phần mềm nói chung và các ứng dụng Web nói riêng [1]. Kiểm thử dựa trên mô hình đang được xem như là một phương pháp kiểm thử có khả năng tự động hóa cao. Kiểm thử dựa trên mô hình là một phương pháp kiểm thử, trong đó các ca kiểm thử được sinh ra từ mô hình đặc tả hành vi của hệ thống đang được kiểm thử [1].

Vì vậy, kiểm thử dựa trên mô hình được ứng dụng để giải quyết một số vấn đề khó khăn trong hoạt động kiểm thử các sản phẩm phần mềm. Một trong những ứng dụng của nó là kiểm thử tương tác giao diện người dùng cho các ứng dụng Web. Để ứng dụng phương pháp kiểm thử này, trước tiên chúng ta cần xây dựng mô hình đặc tả hành vi tương tác giao diện của ứng dụng Web. Mô hình này thường được biểu diễn bằng máy hữu hạn trạng thái hoặc ôtômát hữu hạn trạng thái.

Tiếp đến, các ca kiểm thử được tự động sinh ra từ mô hình. Cuối cùng, các ca kiểm thử này được thực thi trên ứng dụng nhằm phát hiện các lỗi lập trình liên quan đến tương tác giao diện người dùng. Trong thực tế, có rất nhiều hướng nghiên cứu về kiểm thử dựa trên mô hình cho ứng dụng Web như kiểm thử khả năng chịu tải, tính bảo mật, hiệu năng, kiểm thử chức năng, v. Tuy nhiên, việc kiểm thử chức năng (theo luồng tương tác giao diện người dùng) vẫn chưa có giải pháp thỏa đáng.

Một số nghiên cứu trước đã đề xuất các phương pháp và công cụ thực hiện việc kiểm thử chức năng ứng dụng Web [4,5,9]. Mặc dù vậy, các nghiên cứu này mới chỉ thực hiện kiểm thử tự động cho từng trang Web, hoặc cho các Website tĩnh [5] mà chưa có nhiều nghiên cứu hỗ trợ cho kiểm thử luồng tương tác người dùng. Trong số đó, phương pháp và công cụ kiểm thử tự động cho các ứng dụng Web được đề xuất bởi [5] đã giải quyết được một phần vấn đề nêu trên. Tuy LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 9 nhiên, phương pháp này chỉ thực hiện kiểm thử được cho một số phần tử Web cơ bản và chúng phải có thuộc tính id định danh.

Trong khi, các hệ thống ứng dụng Web thực tế cần một công cụ kiểm thử tự động, có khả năng kiểm thử được cho nhiều loại phần tử Web và các phần tử Web đó được thiết kế một cách linh động. Nghiên cứu này được đưa ra nhằm giải quyết vấn đề trên. Đề tài đưa ra phương pháp đặc tả hình thức giao diện cho các ứng dụng Web. Từ đó, chúng tôi xây dựng thuật toán sinh tự động các ca kiểm thử từ bản đặc tả trên.

Cuối cùng, đề tài dùng phương pháp đã được đề xuất trong [5] làm cơ sở để xây dựng một công cụ kiểm thử tự động tương tác giao diện các ứng dụng Web. Công cụ này kiểm thử được cho các ứng dụng Web có nhiều loại phần tử Web như: DropDownList, CheckBoxList, RadioList, DataGrid, v.; kể cả với các phần tử Web không có thuộc tính định danh (id) và các giao diện pop-up. Phần còn lại của luận văn được cấu trúc như sau. Chương 2 trình bày về phương pháp đặc tả giao diện cho các ứng dụng Web như là một ôtômát hữu hạn trạng thái và được biểu diễn dưới dạng các tệp tin MS Excel.

Ở chương 3, luận văn này trình bày phương pháp sinh tự động các ca kiểm thử từ ôtômát hữu hạn trạng thái và thực thi chúng trên trên ứng dụng Web. Tiếp đến, chương 4 trình bày công cụ và kết quả thực nghiệm. Cuối cùng, kết luận của luận văn và định hướng nghiên cứu tiếp theo được trình bày trong chương 5. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 10 Chương 2: Phương pháp đặc tả tương tác giao diện cho các ứng dụng Web Để áp dụng phương pháp kiểm thử dựa trên mô hình, chúng ta cần xây dựng mô hình đặc tả chính xác hành vi của hệ thống cần kiểm thử.

Mô hình là một sự biểu đồ hóa, mô tả chi tiết hệ thống, đồng thời mô tả chi tiết các khía cạnh, các đặc tính của hệ thống. Mô hình cần phải đủ chi tiết để giúp ta hiểu và đoán nhận được hành vi của hệ thống. Có nhiều phương pháp đặc tả mô hình như: máy hữu hạn trạng thái, ôtômát trạng thái, máy trạng thái UML, chuỗi Markov, văn phạm, bảng quyết định, v. Phụ thuộc vào phương pháp và công cụ kiểm thử, chúng ta sẽ lựa chọn phương pháp đặc tả hệ thống tương ứng.

Trong chương 2, chúng tôi chỉ trình bày một phương pháp đặc tả tương tác giao diện ứng dụng Web được sử dụng cho nghiên cứu này.1 Đặc tả tương tác giao diện của từng trang Web bằng ôtômát hữu hạn trạng thái Theo quy trình kiểm thử dựa trên mô hình [1] thì việc đầu tiên chúng ta phải làm trong số các hoạt động kiểm thử tự động ứng dụng Web đó là xây dựng mô hình đặc tả hành vi của ứng dụng Web. Có nhiều hành vi có thể được sử dụng để đặc tả nhưng trong luận văn này, chỉ đề cập đến hành vi tương tác của người dùng đối với hệ thống ứng dụng Web, thông qua sự thay đổi trạng thái (hay sự thay đổi giao diện) của ứng dụng Web [5]. Chúng tôi dùng ôtômát trạng thái làm phương pháp đặc tả hình thức giao diện ứng dụng Web. Khi đó, mỗi giao diện người dùng của một trang Web, tại một thời điểm được mô hình hóa như là một trạng thái.

Mỗi yêu cầu của người dùng được mô hình hóa như là một hành động tạo ra hàm chuyển trạng thái. Vậy, để mô hình hóa các hành vi tương tác giao diện người dùng ứng dụng Web như là một ôtômát trạng thái, chúng tôi cần thực hiện các bước sau: (1) Chia nhỏ hệ thống thành các mô-đun; (2) với mỗi mô-đun chúng ta cần xác định các giao diện người dùng; (3) với mỗi giao diện người dùng được đặc tả bằng một ôtômát trạng thái; (4) nối các ôtômát trạng thái đó lại thành một bản đặc tả hoàn chỉnh cho cả hệ thống. Phương pháp coi mỗi giao diện người dùng là một trang Web và được biểu diễn bằng một ôtômát trạng thái như định nghĩa 2.1: Hành vi tương tác giao diện của một trang Web được đặc tả bằng ôtômát trạng thái (Finite State Automaton - FSA) M = < S, s0, ∑, δ, F >, trong đó: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 11 - S là tập ập hữu hạn khác rỗng các trạng thái của trang Web, - s0 S là trạng ạng thái đầu tiên ti được tải lên của ủa trang Web, - ∑ ứng với tập sự kiện có dạng [điều kiện]sự kiện, - chuy trạng thái: δ: S × ∑→ S, và δ là hàm chuyển - là tập ập các trạng thái kết thúc, ttương ứng với các giao diện di xuất hiện cuối cùng ùng sau một m chuỗi các sự kiện liên tiếp.1: Dạng <[điềuều kiện]sự kiện> kiện có nghĩa là <sự kiện> ch chỉ xảy ra khi <điều kiện> được ợc thỏa mãn. m Ôtômát hữu hạn trạng ạng thái rỗng, ký hiệu llà M = ∏ là ôtômát hữu hạn trạng thái và có tập các trạng thái S = ∅ [5].

Sau đây là một ột số khái niệm căn bản giúp chúng ta đặc tả một trang Web như là một ôtômát hữu ữu hạn trạng thái. ần tử Web (Web Element). Phần tử Web là các thành phần Phần ần cơ c bản cấu tạo nên một trang Web. Mỗi ỗi phần tử Web có nhiều thành phần nhưng ưng để đặc tả một trang Web chúng ta cần ần mô tả một số các thành phần cơ bản như: th thẻ mở để khai báo bắt tính trong đó thuộc tính id, class, name ắt đầu một phần tử Web; các thuộc tính, thường đượcợc sử dụng để xác định vị trí của phần tử Web ttrênrên trang Web; nộin dung của ủa phần tử Web ththường được ợc sử dụng để xác định trạng thái của phần tử Web và thẻẻ đóng nằm ở vị trí cuối ccùng của phần tử Web.

Trạng thái trang Web. Trạng thái trang Web là giao diện ện của trang Web tại một ột thời điểm, mỗi trạng thái Web llà một ột tập hợp các trạng thái của từng phần tử trong một trang Web.1: Ví dụụ về trạng thái trang Web tìm kiếm ếm thông tin cán bộbộ. Giao diện trong hình 2.1 là một trạng Web (trạng thái index). Sau khi ngư ạng thái của trang We người dùng nhập thông tin tìmìm kiếm ki ếm (phần tử Web textbox hoặc vào các ô tìm kiếm dropdownlist) thì hệệ thống sẽ chuyển từ trạng thái bắt đầu sang trạng thái tiếp theo, như trong hình 2.2 là trạng thái người dùng đã nhập họ tênên ccần tìm kiếm (trạng thái TEN).

LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Trạng thái bắt đầu của trang tìm kiếm cán bộ Hình 2. Trạng thái đã nhập họ tên tìm kiếm Sự kiện. Sự kiện bao gồm các hành động (action) tác động lên các phần tử Web tại một thời điểm, làm thay đổi trạng thái của trang Web đó.

Có nhiều sự kiện tương tác người dùng trên giao diện Web, trong đó có 4 sự kiện chính được chúng tôi sử dụng để đặc tả hành vi Web như sau: sự kiện addtext dùng để nhập một đoạn ký tự vào ô textbox, sự kiện deltext dùng để xóa đoạn ký tự ở ô textbox, sự kiện click là sự kiện nhấp chuột vào một nút (button) hoặc một đường dẫn, sự kiện select dùng để chọn một hoặc nhiều, được sử dụng cho các phần tử combobox, checkbox, listbox, dropdown list, radio list.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ