1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng họ máy trong kiểm thử phần mềm

63 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng Dụng Học Máy Trong Kiểm Thử Phần Mềm
Tác giả Ngô Thị Thanh Bình
Người hướng dẫn PGS. TS. Phạm Văn Hải
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Luận Văn Thạc Sĩ
Năm xuất bản 2019
Thành phố Hà Nội
Định dạng
Số trang 63
Dung lượng 1,67 MB

Cấu trúc

  • CHƯƠNG 1 NGHIÊN Ứ C U T NG QUAN ......................................................... 12 Ổ (0)
    • 1.1 Giớ i thi u v ệ ề ể ki m th ph n m m ử ầ ề (0)
      • 1.1.1 Ki m th ể ử và các phương pháp kiể m th khác nhau ............................... 12 ử (0)
      • 1.1.2 Kiể m th t ng ử ự độ (0)
    • 1.2 Bài toán tối ưu trong kiểm th ph n m m ử ầ ề (0)
      • 1.2.1 M t s nghiên c u ộ ố ứ (0)
      • 1.2.2 Bài toán ki m th ph n m ể ử ầ ềm (0)
    • 1.3 T ng k ổ ết chương (22)
  • CHƯƠNG 2 THU THẬ P D LI U KI M TH PH N M M VÀ T NG QUAN Ữ Ệ Ể Ử Ầ Ề Ổ (0)
    • 2.1 Môi trườ ng thu th p và ti n x lí d li u ậ ề ử ữ ệ (0)
      • 2.1.1 Thu th p và ti n x ậ ề ử lí (25)
      • 2.1.2 Phân tích đặc trưng dữ u liệ (26)
    • 2.2 H ọc tăng cườ ng (28)
      • 2.2.1 Qu y trình Markov (28)
      • 2.2.2 H ọc máy tăng cườ ng (0)
      • 2.2.3 C p nh t chi ậ ậ ến lượ c (31)
      • 2.2.4 Q-Learning (32)
    • 2.3 H c sâu ọ (33)
      • 2.3.1 M ạng nơ -ron nhân t o ạ (33)
      • 2.3.2 Thu t toán t ậ ối ưu (0)
      • 2.3.3 H ọc tăng cườ ng sâu (36)
    • 2.4 T ng k ổ ết chương (38)
  • CHƯƠNG 3 MÔ HÌNH HỌ C MÁY CHO T ỐI ƯU KIỂ M TH PH N M M .... 38 Ử Ầ Ề (12)
    • 3.1 Bài toán t ối ưu kiể m th ử (39)
    • 3.2 Mô hình h c máy ọ tăng cườ ng cho bài toán ki m th ể ử (40)
      • 3.2.1 Không gian tr ng thái ạ – hành độ ng (41)
      • 3.2.2 Hàm ph ần thưở ng (42)
    • 3.3 M ng h c sâu ạ ọ (43)
      • 3.3.1 Xây d ng b d u h c cho m ự ộ ữ liệ ọ ạng nơ- ron (0)
      • 3.3.2 C u trúc m ấ ạng nơ - ron (0)
    • 3.4 L p l ch ki m th ậ ị ể ử và đưa vào CI (45)
    • 3.5 T ng k ổ ết chương (45)
  • CHƯƠNG 4 CÀI ĐẶ T VÀ TH C NGHI M ....................................................... 46 Ự Ệ (47)
    • 4.1 Cài đặt chương trình (47)
      • 4.1.1 Môi trườ ng phát tri n và th nghi m ể ử ệ (47)
      • 4.1.2 Phương pháp đo độ chính xác (47)
    • 4.2 D u th nghi m ữ liệ ử ệ (48)
    • 4.3 K t qu ế ả thử nghi m ệ (49)
    • 4.4 So sánh v i nghiên c u liên quan ớ ứ (53)
  • CHƯƠNG 5 Ế K T LU N ...................................................................................... 55 Ậ (56)
    • 5.1 K t qu ế ả đạt đượ c ......................................................................................... 55 5.2 Định hướ ng phát tri n .................................................................................. 56ể (56)

Nội dung

Việc thiếu các nghiên cứu về ứng dụng các kĩ thuật học máy phù hợp vào mục đích kiểm thử phần mềm là mô hình đề xuất ứng dụng học máy được trình bày trong luận văn Tác giả đề xuất một ph

NGHIÊN Ứ C U T NG QUAN 12 Ổ

T ng k ổ ết chương

Chương này cung cấp kiến thức cơ bản về kiểm thử trong ngành công nghiệp phần mềm, bao gồm kiểm thử tự động và các xu hướng hiện tại trong lĩnh vực này Cuối cùng, chúng tôi sẽ cụ thể hóa một bài toán hỗ trợ và tối ưu trong kiểm thử tự động.

Bài viết này tập trung vào việc tối ưu hóa kiểm thử thông qua việc ưu tiên và lựa chọn các trường hợp kiểm thử trong quy trình Tích hợp liên tục Tác giả đã đề xuất một bài toán và xây dựng mô hình nhằm tối ưu hóa quy trình kiểm thử, giúp nâng cao hiệu quả và giảm thiểu thời gian thực hiện.

CHƯƠNG 2 THU TH P D LI U KI M TH PHẬ Ữ Ệ Ể Ử ẦN M M VÀ Ề

Here is a rewritten paragraph that contains the meaning of the original text, complying with SEO rules:"Quá trình thu thập và tiền xử lí dữ liệu tài chính đóng vai trò quan trọng trong việc chuẩn bị dữ liệu đầu vào cho các kĩ thuật học máy Bằng cách tận dụng các đặc trưng dữ liệu, chúng ta có thể thu được các thông số hữu ích để phục vụ cho quá trình học máy Trong chương này, chúng tôi sẽ trình bày chi tiết về quá trình thu thập và tiền xử lí dữ liệu tài chính, đồng thời giới thiệu cơ sở lí thuyết của phương pháp tiếp cận dữ liệu sử dụng học máy tăng cường sâu, tạo tiền đề cho các ứng dụng học máy hiệu quả hơn trong chương sau."

2.1 Môi trường thu thập và ti n x lí d u ề ử ữliệ

Môi trường kiểm thử, đặc biệt là kiểm thử hồi quy, thường tách biệt với môi trường phát triển phần mềm Nó chỉ lưu trữ thông tin liên quan đến đặc tả yêu cầu chức năng, được chuyển đổi thành các điều kiện đầu vào và kết quả đầu ra, cùng với dữ liệu lịch sử.

Dữ liệu kiểm thử cho nghiên cứu luận văn này được thu thập từ lịch sử kiểm thử của ABB Robotics Norway, liên quan đến Paint Control, cùng với dữ liệu kiểm thử hệ thống Rails của Travis CI Quá trình thu thập dữ liệu được mô tả trong Hình 2.1, và các thực nghiệm cũng như kết quả trên bộ dữ liệu sẽ được trình bày chi tiết trong Chương 4.

 Dữ liệu Paint Control: Dữ liệu kết quả kiểm thử cho 300 vòng CI, đã tiền xử lí và chiết xuất

 Dữ liệu Travis CI: Dữ liệu cho 2000 vòng CI, chưa tiền xử lí

Quy trình thu thập dữ liệu thường liên quan đến dữ liệu hộp đen, chỉ cung cấp thông tin về kiểm thử trong môi trường CI mà không chỉ rõ sự thay đổi trong mã nguồn hay mô đun nào được kiểm thử Do đó, việc tiền xử lý và chiết xuất thông tin từ dữ liệu này là rất quan trọng để đảm bảo tính chính xác và hiệu quả trong quá trình phân tích.

2.1.1 Thu th p và ti n x ậ ề ửlí

Bảng 2.1 Dữ liệu kiểm thử thô

Dữ liệu kiểm thử Tên bộ kiểm thử Thời gian thực hiện Số trường Mã bản Tình trạng

25 thất bại hợp dựng bản dựng

0 railties/test/app_rails_loader_test.rb 0.035011 0 33391 passed

1 railties/test/application/asset_debugging_test.rb 17.408814 0 33391 passed

2 railties/test/backtrace_cleaner_test.rb 162.113491 0 33391 passed

3 railties/test/code_statistics_calculator_test.rb 41.402265 0 33391 passed

4 railties/test/engine_test.rb 2.786692 0 33391 passed

Ví dụ về dữ liệu trường hợp kiểm thử được trình bày trong Bảng 2.1, trong đó mỗi trường hợp kiểm thử được ghi lại với tên, ngày thực hiện và kết quả phân loại thành ba loại: thành công (đúng), thất bại (sai) và bỏ qua không chạy Để xác minh tính chính xác của dữ liệu, có thể chọn ngẫu nhiên một số bản ghi và so sánh với báo cáo từ hệ thống, nhằm đảm bảo rằng dữ liệu là đáng tin cậy và có thể sử dụng.

Bảng 2.2 Thông tin chung về bộ dữ liệu

Bộ dữ liệu Số trường hợp kiểm thử Số vòng CI Kết quả Tỉ lệ thất bại

2.1.2 Phân tích đặc trưng dữ u liệ

Dữ liệu thô đã được thu thập cần được chiết xuất thông tin quan trọng để đưa vào mô hình Cụ thể, chỉ sử dụng dữ liệu lịch sử của các trường hợp kiểm thử đã có sẵn.

Algorithm 2.1 Thuật toán ghi lại lịch sử chạy gần nhất của trường hợp kiểm thử

2 # chuỗi trường hợp kiểm thử và kết quả theo thứ tự thời gian và phiên bản phần mềm

5 # mảng kết quả gần nhất của trường hợp kiểm thử

7 limit: hằng số giới hạn chiều dài lịch sử gần nhất

19 l = reversed(l) [1:] # Đảo ngược thứ tự và không lấy kết quả của trường hợp hiện tại

Algorithm 2.2: Thuật toán lọc những trường hợp chạy lần đầu:

1.2 # mảng kết quả gần nhất của trường hợp kiểm thử : chỉ ố s ph n t trong chu i, ầ ử ỗ

1.4 # mảng kết quả đã lọc các trường hợp kiểm thử lần đầu 1.5 constant:

1.6 limit: hằng số giới hạn chiều dài lịch sử tối thiểu

Học máy tăng cường, mặc dù ít phổ biến hơn so với học có giám sát và không giám sát, vẫn là một kỹ thuật hiệu quả trong giải quyết các bài toán kiểm thử Dù tách biệt, mạng nơ ron - một kỹ thuật phổ biến trong học có giám sát - vẫn cho thấy hiệu quả khi được sử dụng làm hàm ước lượng trong học tăng cường.

Bài toán tối ưu hóa kiểm thử có thể được chuyển hóa thành việc giải quyết một quy trình quyết định Markov (MDP) MDP là mô hình toán học giúp tối ưu hóa quá trình ra quyết định trong các tình huống thực tiễn.

Quá trình ra quyết định Markov (MDP) là một mô hình xác suất trong môi trường không chắc chắn, nơi mà mục tiêu của máy là đạt được trạng thái mong muốn MDP được định nghĩa là một quá trình ngẫu nhiên theo thời gian, trong đó các yếu tố như trạng thái, hành động và phần thưởng đóng vai trò quan trọng trong việc đưa ra quyết định hiệu quả.

 : bộ trạng thái (hữu hạn)

 : bộ hành động (hữu hạn)

 là xác suất chọn hành động trong trạng thái sẽ dẫn tới kết quả là trạng thái

 là hàm phần thưởng tức thời được thưởng cho việc chuyển trạng thái

 là yếu tố giảm trừ vào phần thưởng tức thời hay trong tương lai

Hàm có tính chất Markov nghĩa là kết quả của việc chuyển trạng thái chỉ phụ thuộc vào trạng thái hiện tại, không phụ thuộc vào các trạng thái trước đó Nói cách khác, hàm này chỉ dựa vào trạng thái mới nhất Theo định nghĩa, một hàm được coi là có tính chất Markov nếu thỏa mãn điều kiện này.

MDP là m t quy trình ng u nhiên, vì th , vi c chuy n t ng thái sang tr ng thái ộ ẫ ế ệ ể ừtrạ ạ tiếp theo ch có th x y ra v i xác suỉ ể ả ớ ất

Hệ số giảm trừ (discount factor) là yếu tố quan trọng trong việc tính toán phần thưởng trong các quy trình Markov, giúp tránh tình trạng vô hạn Nó có nghĩa là phần thưởng trong tương lai sẽ ít quan trọng hơn, vì sự không chắc chắn thường đi kèm với những gì sẽ xảy ra sau này.

Trong bài toán tối ưu hóa kiểm thử, chúng ta đang xem xét một bài toán MDP, được giải thích chi tiết trong mục 3.2 Mô hình chính để giải quyết bài toán MDP thông qua học tăng cường (RL) là quá trình học liên tục, kết hợp giữa việc khám phá các trạng thái và hành động mang lại phần thưởng, và khai thác để cập nhật chiến lược nhằm nâng cao dự đoán phần thưởng trong tương lai.

THU THẬ P D LI U KI M TH PH N M M VÀ T NG QUAN Ữ Ệ Ể Ử Ầ Ề Ổ

H ọc tăng cườ ng

Học máy tăng cường, mặc dù ít phổ biến hơn so với học có giám sát và không giám sát, vẫn là một kỹ thuật hiệu quả trong giải quyết bài toán kiểm thử Một kỹ thuật phổ biến trong học có giám sát, mạng nơ ron, cho thấy hiệu quả khi được sử dụng làm hàm ước lượng trong học tăng cường.

Bài toán tối ưu hóa kiểm thử có thể được chuyển thành một quy trình quyết định Markov (MDP), một mô hình toán học giúp tối ưu hóa quá trình ra quyết định MDP cung cấp khung lý thuyết để phân tích và cải thiện hiệu suất trong các tình huống thực tiễn.

Quá trình quyết định Markov (MDP) là một mô hình ngẫu nhiên trong môi trường không chắc chắn, nơi mà mục tiêu của máy là đạt được trạng thái mong muốn MDP được định nghĩa như một quá trình ngẫu nhiên theo thời gian, trong đó các yếu tố và quyết định được xác định bởi các trạng thái và hành động cụ thể.

 : bộ trạng thái (hữu hạn)

 : bộ hành động (hữu hạn)

 là xác suất chọn hành động trong trạng thái sẽ dẫn tới kết quả là trạng thái

 là hàm phần thưởng tức thời được thưởng cho việc chuyển trạng thái

 là yếu tố giảm trừ vào phần thưởng tức thời hay trong tương lai

Hàm có tính chất Markov nghĩa là kết quả của việc chuyển trạng thái chỉ phụ thuộc vào trạng thái hiện tại, không phụ thuộc vào các trạng thái trước đó Điều này có thể được diễn đạt qua định nghĩa sau: Hàm được coi là có tính chất Markov nếu nó chỉ dựa vào trạng thái mới nhất.

MDP là m t quy trình ng u nhiên, vì th , vi c chuy n t ng thái sang tr ng thái ộ ẫ ế ệ ể ừtrạ ạ tiếp theo ch có th x y ra v i xác suỉ ể ả ớ ất

Hệ số giảm trừ (discount factor) là yếu tố quan trọng trong việc đánh giá phần thưởng trong quy trình Markov, giúp giảm giá trị phần thưởng theo thời gian Về mặt toán học, việc áp dụng hệ số giảm trừ giúp tránh hiện tượng vô hạn trong các chu trình Markov Điều này có nghĩa là phần thưởng trong tương lai sẽ có giá trị thấp hơn, do sự không chắc chắn của các sự kiện trong tương lai.

Trong bài toán tối ưu hóa kiểm thử, chúng ta đang xem xét một bài toán MDP, sẽ được giải thích chi tiết trong mục 3.2 Mô hình chính để giải quyết bài toán MDP thông qua học tăng cường (RL) là quá trình học liên tục, kết hợp giữa việc khám phá các trạng thái và hành động dẫn đến phần thưởng, và khai thác để cập nhật chiến lược nhằm nâng cao phần thưởng dự đoán trong tương lai.

Học tăng cường (Reinforcement Learning - RL) là một lĩnh vực trong học máy, tập trung vào các phương pháp và vấn đề học từ phần thưởng tính toán mà máy nhận được thông qua việc tương tác với môi trường.

Máy trong học tăng cường (RL) hoạt động mà không có sự giám sát và không nắm rõ thông tin về môi trường Do đó, máy cần phải khám phá và khai thác kiến thức của mình Trong mỗi bước, máy sẽ quan sát trạng thái của môi trường và nhận tín hiệu phần thưởng Dựa vào trạng thái hiện tại và hàm điều khiển hành động của hệ thống, hay còn gọi là chiến lược, hệ thống sẽ lựa chọn hành động để thực hiện.

Hành động này sau đó được đưa vào môi trường, cập nhật và vòng lặp lại Chi tiết thể hiện trong Hình 2.2 [43]

Hình 2.2 Tương tác giữa hệ thống và môi trường

Có nhiều phương pháp để học chiến lược tối ưu, bao gồm các phương pháp dựa vào mô hình, tập trung vào việc học sự thay đổi của môi trường, và các phương pháp không dựa vào mô hình, giải quyết vấn đề mà không cần mô hình hóa hàm chuyển đổi môi trường.

Luận văn này tập trung vào phương pháp không dựa mô hình, đã chứng tỏ hiệu năng cao trên nhiều bài toán khác nhau Để cập nhật chiến lược, khái niệm hàm giá trị được sử dụng, đánh giá mức độ tốt đẹp của môi trường theo một chiến lược nhất định Hàm giá trị cho biết phần thưởng có thể nhận được trong tương lai nếu thực hiện đúng theo chiến lược trong môi trường cụ thể.

Hàm trạng thái giá trị- cho chiến lược trong trạng thái được định nghĩa như sau: [43]

Trong đó tương ứng với , bi u di n giá tr d ể ễ ị ự đoán của bi n ng u nhiên khi máy làm theo chiế ẫ ến lược , và là bước thời gian

Hàm hành động-giá trị xác định giá trị của việc thực hiện hành động trong trạng thái sử dụng chiến lược Đây chính là hàm giá trị Q, thể hiện mối quan hệ giữa hành động và giá trị mà nó mang lại trong từng trạng thái cụ thể.

Chiến lược tối ưu, ký hiệu , có thể dựa vào hàm hành động- giá trị hoặc hàm trạng thái giá trị Hàm hành động giá trị được định nghĩa như sau:

Nếu chúng ta hiểu hàm hành động giá trị trong quá trình tối ưu, chúng ta có thể xác định một chiến lược tối ưu đơn giản bằng cách chọn hành động mang lại giá trị tối đa.

Q-learning là một thuật toán không phụ thuộc chiến lược, có nghĩa là máy có thể khám phá và tự ra quyết định và tính toán chiến lược tối ưu dựa trên cập nhật giá trị Q [46]

Theo lý thuyết, lựa chọn hành động tiếp theo là ngẫu nhiên, nhưng thực tế áp dụng giải pháp tham lam để tăng tốc độ hội tụ Hành động có phần thưởng tiềm năng cao hơn sẽ được ưu tiên chọn, đồng thời vẫn có một tỷ lệ ngẫu nhiên để chọn các hành động khác, với một tham số tương ứng để xác định khả năng chọn hành động ngẫu nhiên.

Q-learning đi tìm giá trị Q tối ưu theo công thức Bellman [47]:

Theo đó, việc cập nhật luật để cải thiện việc ước tính hàm Q cụ thể như sau:

(7) Trong đó là tốc độ học

- Thuật toán Q learning này đả bảo sẽ đi đến được phương án tối ưu

Trong một bài toán đơn giản, mặc định tất các giá trị Q cho các cặp trạng thái-hành động được lưu lại trong một bảng.

H c sâu ọ

Những thành công gần đây với mạng nơ ron sâu đã đưa tới lĩnh vực - học sâu

Deep learning là một lĩnh vực trong học máy, chuyên nghiên cứu mạng nơ-ron nhiều lớp và các kỹ thuật nhằm cải thiện tốc độ và độ tin cậy trong việc huấn luyện các mô hình này.

Mạng nơ-ron nhân tạo (ANN) là một hệ thống tính toán được cấu thành từ các nút liên kết, lấy cảm hứng từ nơ-ron sinh học.

Hình 2.3 Biểu diễn học sâu

Nghiên cứu về mạng nơ ron bắt nguồn từ các đặc điểm của nơ ron sinh học ở con người, với khả năng giải quyết vấn đề phân nhãn trên dữ liệu tuyến tính tách biệt, được biết đến với tên gọi perceptron.

Một perceptron có véc tơ trọng s và giá tr ố ị bias vô hướng s ẽ có đầu ra được tính toán như sau từ đầ u vào :

Trong đó là tích vô hướng

Mô hình mạng nơ-ron đầu tiên, được gọi là perceptron đa lớp (multilayer perceptrons - MLP), bao gồm các lớp tổ chức với các nút độc lập liên kết theo thiết kế thẳng (feed forward), tạo thành một đồ thị chu kỳ.

MLP có một lớp đầu vào và ộ ớp đầ m t l u ra và mộ ố ợt s lư ng l p n nhớ ẩ ất định

M i l p bao g m m t b perceptron ỗ ớ ồ ộ ộ được đi qua một hàm kích hoạt từ giá trị đầu ra ban đầu:

Mạng MLP, với sự hiện diện của nhiều nơ-ron trong một lớp và hàm kích hoạt không tuyến tính, có khả năng phân loại dữ liệu không tuyến tính ngay cả khi chỉ có một lớp ẩn.

The MLP network, commonly referred to as a feed-forward neural network, consists of simple perceptron layers that are fully connected.

Mạng nơ ron chủ yếu được sử dụng trong các bài toán phân loại với học có giám sát, áp dụng rộng rãi trong nhiều lĩnh vực Trong khuôn khổ luận văn này, mạng nơ ron sẽ nhận đầu vào là dữ liệu huấn luyện, bao gồm véc tơ đầu vào.

Việc học trong mạng nơ-ron có thể được hiểu là tối thiểu hóa một hàm lỗi (còn gọi là hàm mất mát) được định nghĩa trước

Hàm l loss là một thành phần quan trọng trong việc đánh giá hiệu suất của mạng nơ-ron, với hai loại hàm lỗi phổ biến là sai số toàn phương trung bình (mean squared error - MSE) và độ lệch tuyệt đối trung bình (mean absolute error - MAE) Những hàm này giúp xác định mức độ chính xác của mô hình trong việc dự đoán đầu ra mong muốn.

Bài toán tối ưu được đưa về bài toán tối thiểu hóa hàm lỗi đã định nghĩa.

Có nhiều phương pháp để tối ưu hóa mạng nơ-ron, nhưng trong bài viết này, chúng ta sẽ tập trung vào thuật toán truyền ngược sai số (backpropagation) để tính toán gradient.

Về cơ bản, truyền ngược sai số dựa vào việc đầu tiên tính toán lỗi ở lớp đầu ra và truyền ngược lại các lớp sau thông qua mạng

Hình 2.4 Biến thiên truyền ngược theo quy tắc chuỗi

Cụ thể hơn, ta tính đạo hàm riêng của hàm lỗi theo trọng số của các lớp và thay đổi trọng số giữa các nơ-ron và theo gradient

Lỗi được truyền ngược tới tất cả trọng số ở các lớp trước và sẽ lặp lại ở tất cả các lớp cho đến lớp ẩn đầu tiên

Sử dụng truyền ngược sai số, việc học thường được thực hiện sử dụng Stochastic Gradient Descent (SGD):

(12) Trong đó là tốc độ ọ h c và là hàm lỗi

Các phương pháp tối ưu hóa khác cho gradient descent trong mạng nơ-ron bao gồm Adam và RMSProp, được phát triển dựa trên nguyên tắc điều chỉnh tốc độ học phù hợp với sự biến đổi của gradient, nhằm mang lại hiệu quả tốt hơn trong thực nghiệm.

Việc cập nhật trọng số trong quá trình huấn luyện mạng thường được thực hiện theo các đợt, cho phép truyền một lượng lớn dữ liệu mẫu cùng lúc Điều này giúp tăng tốc độ huấn luyện và cải thiện khả năng hội tụ của mô hình.

Học tăng cường sâu sử dụng mạng nơ-ron làm hàm ước lượng, cho phép xử lý không gian trạng thái lớn và liên tục Một trong những thuật toán nổi bật trong lĩnh vực này là DQN (Deep Q-learning), trong đó Q-learning được cải tiến và kết hợp với mạng nơ-ron để nâng cao hiệu quả học tập.

Hình 2.5 Mạng tăng cường học sâu

Mặc dù Q learning là một thuật toán mạnh, nhưng nó thiếu tính tổng quát, đặc biệt khi gặp các trạng thái chưa thấy trước đây Điều này cho thấy Q learning giống như lập trình động, vì nó không thể ước lượng giá trị cho các trạng thái mới Để khắc phục vấn đề này, DQN đã thay thế mảng hai chiều bằng cách sử dụng mạng nơ-ron.

DQN sử dụng mạng nơ ron để ước lượng hàm giá trị Q Đầu vào của mạng là trạng thái hiện tại, trong khi đầu ra là giá trị Q tương ứng cho từng hành động.

Mạng nơ ron sẽ được huấn luyện thông qua công thức cập nhật giá trị Q, áp dụng phương pháp kinh nghiệm lặp lại (experience replay) để tối ưu hóa quá trình học.

Algorithm 2.3 Thuật toán huấn luyện giá trị Q với mạng nơ-ron [45]

Khởi t o b ạ ộ nhớ replay v ới gi i h ớ ạn

Khởi t o hàm giá tr - ạ ị hành động với tr ng s ọ ố ngẫu nhiên

MÔ HÌNH HỌ C MÁY CHO T ỐI ƯU KIỂ M TH PH N M M 38 Ử Ầ Ề

Bài toán t ối ưu kiể m th ử

Trong phát triển phần mềm liên tục, hệ thống agent có vai trò quan trọng trong việc lựa chọn và sắp xếp thứ tự ưu tiên các trường hợp kiểm thử Điều này giúp tạo ra bộ kiểm thử tối ưu, từ đó chuyển giao cho quá trình thực thi kiểm thử tự động, giảm thiểu tối đa công việc tự động trong quy trình.

Bài toán ưu tiên và gợi ý kiểm thử thích nghi (ATCS) đã được giới thiệu trong mục 1.2.2, trong khi cơ sở lý thuyết về quy trình Markov được trình bày ở mục 2.2.1 Trong phần này, tác giả sẽ tóm tắt các điểm chính của bài toán và chuyển đổi nó thành một quy trình Markov, nhằm áp dụng phương pháp học tăng cường sâu để giải quyết.

Xét bộ trường hợp kiểm thử tại ời điểth m :

Xét tập trường h p ki m th ợ ể ử được ch n l a và lên th t : ọ ự ứ ự là tất cả các chỉnh hợp của với là hiệu năng

Bài toán TCP đi tìm là một chỉnh hợp mà là tối đa Nói cách khác, TCPđi tìm

Trong mỗi trường hợp kiểm thử, giá trị k t qu thể hiện mức độ thành công và thời gian thực thi kiểm thử Thời gian tối đa để thực thi kiểm thử được xác định là gự ể ử Bài toán ATCS tìm kiếm cách tối đa hóa giá trị này trong khi vẫn nằm trong giới hạn cho phép.

Mô hình h c máy ọ tăng cườ ng cho bài toán ki m th ể ử

Phần này giới thiệu phương pháp tiếp cận bài toán ATCS sử dụng học máy tăng cường và các thành phần chính trong mô hình đề xuất.

Hình 3.1 Tương tác hệ thống và môi trường

Mô hình RL sẽ được áp dụng một cách trực tiếp và không có định hướng trước để giải quyết bài toán ATCS Mỗi trường hợp kiểm thử sẽ được ưu tiên hóa riêng, và sau khi hoàn tất tất cả các trường hợp, một bộ kiểm thử có thứ tự sẽ được tạo ra từ những trường hợp quan trọng nhất, nhằm tiếp tục quá trình thực thi và kiểm định kết quả.

Mô hình học không định nghĩa môi trường kiểm thử và cách thức các hành động ảnh hưởng đến nó, điều này ảnh hưởng đến việc lựa chọn và ưu tiên các trường hợp kiểm thử Bởi vì không có mô hình chính xác nào mô tả cách thức hoạt động của hệ thống và các lỗi tiềm ẩn, việc này trở nên quan trọng hơn bao giờ hết.

Học trực tiếp là phương pháp học máy liên tục trong quá trình kiểm thử được tích hợp vào quy trình CI, điều này giúp tối ưu hóa hiệu quả kiểm thử.

40 dấu hiệu cho thấy việc kiểm thử không thành công sẽ thay đổi theo thời gian, khi mỗi cụm trường hợp thường chỉ tập trung vào một số thay đổi nhỏ trong mã nguồn Vì vậy, việc áp dụng phương pháp ưu tiên để xử lý là rất cần thiết.

Trong Reinforcement Learning (RL), một hệ thống (agent) tương tác với môi trường bằng cách nhận diện trạng thái và thực hiện các hành động phù hợp Agent có thể tự động khám phá hoặc áp dụng một chiến thuật cụ thể Kết quả của các hành động này là phần thưởng, một khái niệm quan trọng dùng để đánh giá hiệu suất của hành động trước đó.

Kết quả kiểm thử trong quá khứ đã chứng minh hiệu quả trong việc phát hiện lỗi phần mềm, nhưng câu hỏi đặt ra là độ tin cậy của lịch sử này Một lịch sử dài có thể cung cấp cái nhìn tổng quan về phân bố lỗi, tuy nhiên, việc xử lý lượng dữ liệu lớn hơn có thể ít liên quan đến các nâng cấp gần đây của hệ thống trước đó ổn định và không có lỗi Ảnh hưởng của lịch sử dữ liệu đối với mô hình sẽ được phân tích chi tiết hơn sau này Bên cạnh đó, chiến thuật của agent, bao gồm cách máy ra quyết định, ghi nhớ kinh nghiệm và hàm phần thưởng, cũng sẽ được đề cập để thay đổi chiến lược.

3.2.1 Không gian tr ng thái ạ – hành động

Biểu diễn trạng thái hiện tại cần đảm bảo rằng hệ thống có đầy đủ thông tin cần thiết để đưa ra quyết định chính xác, đồng thời hạn chế tối thiểu thông tin thừa không cần thiết Việc giảm thiểu thông tin thừa là rất quan trọng, vì nó giúp giảm thời gian huấn luyện; nếu không, không gian trạng thái lớn sẽ kéo dài thời gian tính toán ở mỗi bước.

Máy sẽ được huấn luyện bằng thuật toán DQN, sử dụng véc-tơ thông tin kết quả từ các trường hợp kiểm thử làm trạng thái Không gian hành động được giới hạn bởi việc lựa chọn hoặc không lựa chọn trường hợp kiểm thử, cùng với thứ tự thực thi Mô phỏng môi trường kiểm thử sẽ được mô tả chi tiết trong bài viết.

 B h u h n tr ng thái ộ ữ ạ ạ : véc-tơ kết quả thực thi kiểm thử lần gần nhấtn

 B h u hộ ữ ạn hành động : một loại hành động thể hiện độ ưu tiên của trường hợp trong bộ kiểm thử được lựa chọn

Hàm phần thưởng cung cấp phần thưởng ngay lập tức sau khi thực hiện một hành động, và giá trị phần thưởng sẽ tăng lên nếu máy đạt gần mục tiêu Thông tin chi tiết sẽ được trình bày trong phần tiếp theo.

Mỗi vòng chạy (episode) là kết quả từ sự tương tác giữa việc lựa chọn trường hợp kiểm thử và môi trường kiểm thử Bộ kiểm thử sẽ được chuyển đến quá trình kiểm thử tự động trên phần mềm cần kiểm tra, sau đó nhận lại báo cáo chứa thông tin cần thiết để đưa ra hành động cho vòng chạy tiếp theo.

Trong bài toán ATCS, một bộ kiểm thử hiệu quả được xác định qua việc lựa chọn và ưu tiên các trường hợp kiểm thử nhằm phát hiện sự thất bại và tối thiểu hóa thời gian phản hồi Hàm phần thưởng cần phản ánh các mục tiêu này và ảnh hưởng đến hành động của máy Đồng thời, hàm phần thưởng cũng đóng vai trò quan trọng trong việc triển khai và đánh giá hiệu suất của bộ trường hợp kiểm thử.

Với mục đích nghiên cứu, ba loại phần thưởng sẽ được sẽ được xem xét Định nghĩa 3.1Hàm phần thưởng đếm số lần thất bại fail

(13) Định nghĩa 3.2 Hàm phần thưởng thất bại của trường hợp kiểm thử tcfail

(14) Định nghĩa 3.3 Hàm phần thưởng xếp hạng thời gian time

M ng h c sâu ạ ọ

Trong cấu trúc mô hình RL ở Hình , hệ thống (gọi là NetworkAgent) sẽ được huấn luyện theo thuật toán Algorithm 2.3 sử dụng các thông số trong Bảng 3.1

Bảng 3.1 Thông số cho NetworkAgent

Kích thước bộ nhớ replay 10000 Kích thước khối replay 1000

T l ỉ ệkhấu tr ( ) ừ 0.99 Kích thước véc tơ trạng thái- n 10 Loại véc tơ trạng thái- Binary Giới hạn thời gian M 70%

Khi thực hiện hành động phù hợp với trạng thái, tỷ lệ khám phá được sử dụng trong huấn luyện, đặc biệt là khi bắt đầu và khi hoàn thành quá trình replay Từ đó, hành động tiềm năng nhất sẽ được lựa chọn; nếu không, hành động ngẫu nhiên sẽ được chọn để khám phá thêm.

3.3.1 Xây d ng bự ộ d u h c cho m ng -ron ữliệ ọ ạ nơ

Bộ dữ liệu học được chia thành hai phần chính: dữ liệu đầu vào và dữ liệu đầu ra Cụ thể, dữ liệu đầu vào là không gian trạng thái cũ, được xác định bởi lịch sử kết quả kiểm thử gần nhất.

(16) Đầu ra: không gian hành động – xác xuất lựa chọn trường hợp kiểm thử đưa vào lịch kiểm thử

3.3.2 C u trúc m ng -ron ấ ạ nơ Ứng dụng lí thuyết đã trình bày ở chương hai, mạng nơ-ronsẽ được sử dụng dưới dạng hàm ước lượng để lưu lại bộ trạng thái hành động của máy qua các bước - học tăng cường và đưa ra hành động tiếp theo Mạng nơ-ronđề xuất là mạng nơ-ron truyền thẳng với lớp đầu vào kích thước 10 nút, đầu ra 1 nút, 3 lớp ẩn với lần lượt

200, 100, 50 nút Kết nối đầy đủ (full connected) giữa các nút thuộc các lớp -

Hình 3.2 Mô hình mạng nơ ron đề xuất

Phương pháp huấn luyện áp dụng là thuật toán truyền ngược sai số (backpropagation) kết hợp với giảm độ dốc ngẫu nhiên (stochastic gradient descent) như đã nêu trong chương 2 Hàm kích hoạt được sử dụng là ReLU, trong khi hàm tối ưu là hàm Adam Tốc độ học của mạng được thiết lập là 0.05.

L p l ch ki m th ậ ị ể ử và đưa vào CI

Các trường hợp kiểm thử được lập lịch dựa trên độ ưu tiên, thời gian thực thi và giới hạn thời gian Phương pháp lập lịch có thể thay đổi tùy thuộc vào môi trường Trong trường hợp môi trường thực thi kiểm thử đơn, các trường hợp sẽ được chọn theo thứ tự ưu tiên giảm dần cho đến khi đạt đến giới hạn thời gian.

Trong quy trình CI được mô tả trong Hình 3.3, bộ trường hợp kiểm thử được ưu tiên hóa, giúp xác định thứ tự ưu tiên để lựa chọn và lập lịch thực thi kiểm thử một cách hiệu quả.

Mô hình đề xuất sẽ mở rộng quy trình CI bằng cách bổ sung một kênh ghi lại phản hồi từ chương trình, cụ thể là kết quả kiểm thử sau mỗi vòng chạy hoàn chỉnh Thông tin này sẽ được sử dụng để tạo báo cáo tổng hợp cho các kỹ sư phát triển phần mềm.

T ng k ổ ết chương

Chương này trình bày chi tiết cách áp dụng học máy vào việc hỗ trợ và tối ưu hóa kiểm thử phần mềm, thông qua việc sử dụng học máy tăng cường kết hợp với mạng nơ ron để ưu tiên và lựa chọn các trường hợp kiểm thử Mô hình học được cấu trúc nhằm nâng cao hiệu quả trong quy trình kiểm thử.

Mô hình học tăng cường sử dụng thuật toán Q-learning kết hợp với cấu trúc mạng nơ-ron để tối ưu hóa kết quả kiểm thử Mạng nơ-ron đóng vai trò quan trọng trong việc hỗ trợ ra quyết định trong quy trình học tăng cường, giúp cải thiện hiệu suất và độ chính xác của mô hình.

CÀI ĐẶ T VÀ TH C NGHI M 46 Ự Ệ

Cài đặt chương trình

4.1.1 Môi trường phát tri n và th nghi m ể ử ệ

Mô hình ưu tiên và lựa chọn trường hợp kiểm thử ứng dụng học máy tăng cường được phát triển trong môi trường lập trình Python, sử dụng mạng nơ-ron đã được huấn luyện trước với thư viện sckit-learn Phương pháp này sẽ được đánh giá hiệu quả và so sánh với các phương pháp khác trong phần sau của bài viết.

Mô hình đựng xây dựng nhằm mang lại giá trị ưu tiên cho việc thực hiện các trường hợp kiểm thử Để nâng cao hiệu quả của kiểm thử hồi quy, cần có các biện pháp cụ thể để đo lường vấn đề này trong lĩnh vực khoa học.

4.1 Định nghĩa Tỉ lệ lỗi trung bình (Average Percentage of Fault Detected (APFD) [10]: Tính toán độ nhanh c a m t b v i lủ ộ ộ ớ ỗi được ki m th ể ử bởi trường hợp kiểm thử Nó sẽ trả giá trị giữa 0 và 1, trong đó 1 (về lí thuyết) là tối ưu, hay giá trị tốt nhất Nói cách khác, giá trị cao hơn cho thấy những trường hợp kiểm thử phát hiện lỗi được thực hiện trước theo thứ tự ưu tiên:

Tuy nhiên, thiết kế chỉ tập trung vào việc ưu tiên hóa trường hợp kiểm thử mà không nhằm mục đích chọn lựa bộ kiểm thử con APFD chuẩn hóa (NAPFD) đóng vai trò quan trọng trong việc cải thiện quy trình kiểm thử phần mềm.

Có 47 phương pháp mở rộng của APFD để tính toán tỷ lệ giữ lỗi phát hiện và lỗi có thể phát hiện, giúp lựa chọn bộ kiểm thử khi không thể đưa tất cả các trường hợp kiểm thử vào lịch Nếu tất cả lỗi được phát hiện, thì NAPFD sẽ bằng APFD.

4.2 Định nghĩa Tỉ lệ lỗi trung bình chuẩn hóa (Normalized Average Percentage of Faults Detected –NAPFD) [59]:

D u th nghi m ữ liệ ử ệ

Kết quả thực nghiệm được tiến hành trên dữ liệu kiểm thử Pain Control của ABBt và Rails của Travis CI trong năm 2016 Đánh giá được thực hiện bằng cách ghi lại kết quả NAPFD qua từng vòng CI theo thời gian.

Bài viết mô tả chi tiết hai bộ dữ liệu phân loại theo hoạt động hằng ngày (Paint Control) và hàng giờ (Rails) trong năm 2016 Khối lượng kiểm thử và số lượng thất bại trong bộ dữ liệu Rails vượt trội hơn hẳn so với Paint Control, như được thể hiện rõ trong hình dưới đây.

Hình 4.1 Thất bại theo trường hợp kiểm thử dữ liệu Paint Control

Hình 4.2 Thất bại theo trường hợp kiểm thử dữ liệu Rails

K t qu ế ả thử nghi m ệ

Hệ thống được đánh giá hiệu năng với ba hàm phần thưởng khác nhau trên hai bộ dữ liệu, như thể hiện trong Hình 4.3 và Hình 4.4 Mỗi hàm phần thưởng tương ứng với các phương pháp ra quyết định trong học tăng cường, bao gồm Q-learning truyền thống sử dụng bảng và mạng nơ-ron Kết quả cho thấy hiệu năng tối ưu nhất trên cả hai bộ dữ liệu khi áp dụng hàm phần thưởng cho trường hợp thất bại.

TCFail sử dụng mạng nơ-ron hỗ trợ hành động trong học tăng cường Ban đầu, máy không có nhiều hiểu biết về kiểm thử, dẫn đến kết quả kém khi chưa nhận diện được kiểm thử thất bại Tuy nhiên, qua thời gian, việc nhận được kết quả từ hàm phần thưởng và cải thiện kỹ năng đã giúp nâng cao hiệu năng đáng kể.

Mô hình cho thấy hiệu năng vượt trội trên bộ dữ liệu PaintControl với 300 vòng CI, so với bộ dữ liệu Rails có hơn 2000 vòng.

CI cho thấy rằng tính hiệu quả của mô hình có mối liên hệ chặt chẽ với độ dài giai đoạn kiểm thử áp dụng Đồng thời, một yếu tố khác là bộ dữ liệu Rails có số lượng trường hợp kiểm thử thất bại ít hơn nhiều.

Hình 4.3 Kết quả trên dữ liệu thử nghiệm trên bộ dữ liệu 1

Hình 4.4 Kết quả trên dữ liệu thử nghiệm trên bộ dữ liệu 2

Hiệu năng của mô hình có thể không ổn định và biến động do nhiễu dữ liệu Những biến động này thường xảy ra khi các trường hợp kiểm thử thất bại vì nhiều lý do khác nhau, gây khó khăn trong việc dự đoán Chẳng hạn, khi chỉ số NAPFD giảm mạnh, điều này có thể được giải thích là do một số lượng lớn trường hợp kiểm thử được đưa vào trong vòng CI, dẫn đến nhiều trường hợp kiểm thử thất bại, làm cho mô hình gặp khó khăn trong việc đưa ra dự đoán chính xác.

Kết quả trung bình NAPFD trên bộ dữ liệu Paincontrol đạt 0.686, cao hơn mức 0.51 trong bài báo [32] và nằm trong khoảng cơ bản từ các nghiên cứu khác (xấp xỉ 0.5 ~ 0.6) [60] [11] Đối với bộ dữ liệu Rails, mặc dù có kích thước lớn hơn nhiều và tỷ lệ kiểm thử thất bại thấp, nhưng điều này đã tạo ra thách thức cho hiệu quả của mô hình Tuy nhiên, như thể hiện trong hình, hiệu suất vẫn khả quan với chỉ một vài biến động nhỏ.

Để đánh giá hiệu quả của phương pháp học máy, mô hình sẽ được so sánh với phương pháp ngẫu nhiên và phương pháp có sắp xếp, như đã đề cập trong Chương 3 Mặc dù hai phương pháp này không yêu cầu tính toán phức tạp như mô hình đề xuất, chúng vẫn cung cấp thông tin cơ bản về dữ liệu và cách giải quyết vấn đề thực tiễn Kết quả so sánh với bộ dữ liệu Paincontrol được thể hiện qua Hình 4.5 và Hình 4.6, dựa trên trung bình NAPFD qua 30 lần chạy Kết quả dương cho thấy mô hình học máy hoạt động hiệu quả hơn, trong khi kết quả âm cho thấy mô hình so sánh có ưu thế Trong những vòng CI đầu tiên, phương pháp so sánh cho kết quả tốt hơn, nhưng sau đó, mô hình học máy đã cải thiện hiệu suất, đạt hiệu quả tương đương hoặc tốt hơn với chỉ một vài biến động Kết quả tương tự cũng được ghi nhận với các bộ dữ liệu khác, mặc dù thời gian thích nghi lâu hơn.

Hình 4.5 So sánh với phương pháp ngẫu nhiên

Hình 4.6 So sánh với phương pháp có sắp xếp

So sánh v i nghiên c u liên quan ớ ứ

Trong Chương 1, đã trình bày các nghiên cứu gần đây liên quan đến tối ưu hóa kiểm thử phần mềm Mỗi nghiên cứu tiếp cận bài toán từ những hướng khác nhau, mang đến cái nhìn đa dạng và phong phú về vấn đề này.

Trong nghiên cứu [27], phương pháp gán xác suất lựa chọn cho từng trường hợp kiểm thử được đề xuất, cùng với khái niệm tuổi lỗi, trong đó tuổi lỗi sẽ tăng lên nếu một lỗi không được phát hiện khi thử nghiệm Nghiên cứu [28] giới thiệu kỹ thuật dựa trên dữ liệu lịch sử, tập trung vào chi phí, với một mô-đun lưu trữ hồ sơ dữ liệu về mức độ nghiêm trọng và chi phí của các trường hợp kiểm thử trước đó Theo [29], không có giải pháp cố định nào cho việc tìm ra thứ tự thực hiện tối ưu của các trường hợp kiểm thử Nghiên cứu [30] đã đề xuất FATCP (Ưu tiên trường hợp kiểm thử nhận biết lỗi), tận dụng thông tin lỗi lịch sử thông qua kỹ thuật định vị lỗi, cho thấy FATCP vượt trội hơn các phương pháp ưu tiên khác như bao phủ nhánh và độ bao phủ Cuối cùng, [31] đề xuất MCCTCP.

TCP nhận thức chi phí đã sửa đổi dựa trên lịch sử thực hiện các trường hợp kiểm thử MCCTCP không yêu cầu phân tích mã nguồn và cung cấp thông tin lịch sử cho từng trường hợp kiểm thử, hỗ trợ cho thuật toán di truyền (GA).

Kỹ thuật xác lập ưu tiên kiểm thử trong thời gian có hạn đã được nghiên cứu từ sớm, với việc áp dụng thuật toán di truyền (GA) để xác định bộ dữ liệu tối ưu Một nghiên cứu sử dụng bộ giải mã Knapsack nhằm hoàn thành kiểm thử trong khoảng thời gian quy định Hơn nữa, kỹ thuật Lập trình tuyến tính số nguyên (ILP) cũng đã được áp dụng để ưu tiên kiểm thử trong các môi trường hạn chế thời gian Tuy nhiên, nhược điểm của phương pháp ILP là yêu cầu thời gian phân tích cao, đặc biệt đối với bộ kiểm thử lớn Một ví dụ từ một tổ chức phát triển phần mềm cho thấy rằng với 30.000 trường hợp kiểm thử, việc chạy toàn bộ mất đến 1000 giờ máy Điều này nhấn mạnh rằng nếu không có giới hạn thời gian, việc ưu tiên kiểm thử sẽ không mang lại hiệu quả về chi phí.

Một số công trình khác có ứng dụng học máy trong kiểm thử phần mềm như

Đề xuất áp dụng học máy cùng với các kỹ thuật xử lý thông tin mờ nhằm tối ưu hóa các trường hợp kiểm thử trong môi trường công nghiệp Một trong những cách tiếp cận hiệu quả là sử dụng học máy bán giám sát để phân nhóm, từ đó cải thiện kỹ thuật kiểm thử.

Học chủ động là cần thiết để phân loại kiểm thử, kết hợp học máy với việc cắt nhỏ chương trình nhằm ưu tiên các trường hợp kiểm thử hồi quy Đồng thời, việc ưu tiên các trường hợp kiểm thử cũng có thể dựa trên phương pháp phân cụm.

Mặc dù có nhiều phương pháp tối ưu hóa cho kiểm thử hồi quy, nhưng việc áp dụng chúng gặp khó khăn do tính phức tạp và chi phí tính toán cao để thu thập và phân tích các thông số cần thiết Trong khi đó, phương pháp dựa trên học tăng cường (RL) trong luận văn này cung cấp một giải pháp đơn giản hơn, chỉ cần sử dụng kết quả lịch sử và kinh nghiệm để cải thiện quy trình kiểm thử.

Mô hình tích hợp liên tục với 54 phương pháp cho phép thích ứng linh hoạt trong các môi trường động, nơi có sự thay đổi thường xuyên về mã và kiểm thử Điều này giúp phát triển các bộ kiểm thử hiệu quả hơn.

Ế K T LU N 55 Ậ

K t qu ế ả đạt đượ c 55 5.2 Định hướ ng phát tri n 56ể

Luận văn giới thiệu một phương pháp cải tiến ứng dụng học máy trong kiểm thử phần mềm tự động, tập trung vào việc khai thác đặc trưng từ dữ liệu lịch sử và đề xuất mô hình cho dữ liệu Một số kết quả nổi bật của nghiên cứu đã được trình bày rõ ràng.

Bài viết trình bày một mô hình toán học nhằm tối ưu hóa và lựa chọn trường hợp kiểm thử, dựa trên phân tích các nghiên cứu trước đây Đặc biệt, nó tập trung vào bài toán tối ưu hóa trường hợp kiểm thử thích nghi với các ràng buộc về thời gian.

 Luận văn bao gồm cả nghiên cứu việc đặc trưng dữ liệu kiểm thử phần mềm trong bối cảnh ứng dụng tự động và Tích hợp liên tục (CI)

Tinh chỉnh và cải thiện mô hình học máy tăng cường với cấu trúc mô hình và phương pháp ứng dụng mạng nơ ron làm bộ nhớ để ra quyết định Mặc dù không phải là một mô hình phổ biến, nó vẫn chứng minh được tính thích hợp cho bộ dữ liệu trong quá trình kiểm thử.

Chương trình thử nghiệm hiện tại chỉ hoạt động trên dữ liệu với nền tảng command-line, nhưng nếu được tích hợp vào hệ thống liên tục thực, nó sẽ có tính ứng dụng cao.

Phương pháp đề xuất đã được thử nghiệm với dữ liệu ở quy mô vừa và lớn, đạt hiệu suất 60%, một kết quả chấp nhận được so với các nghiên cứu tương tự trong lĩnh vực này.

Luận văn này đề xuất cải thiện học sâu thông qua việc áp dụng học tăng cường, một phương pháp chưa được khai thác nhiều trong các nghiên cứu trước đây Thay vì sử dụng các thuật toán truyền thống và dựa vào lượng dữ liệu lớn, luận văn chỉ cần sử dụng dữ liệu lịch sử thực thi mà không cần quan tâm đến mã nguồn hay chức năng của phần mềm (thông tin hộp trắng) Sự khác biệt chính của nghiên cứu này so với các nghiên cứu liên quan là việc cải thiện mô hình học sâu một cách hiệu quả hơn.

56 mạng nơ ron trong học máy tăng cường và việc tiền xử lí dữ liệu trước khi đưa vào - mô hình

Phương pháp đề xuất trong luận văn cho thấy khả năng ứng dụng hiệu quả trong việc tối ưu hóa và hỗ trợ kiểm thử, mang lại kết quả khả quan Mặc dù vậy, vẫn còn nhiều cơ hội để cải thiện và phát triển phương pháp này trong tương lai.

Mô hình học máy hiện tại bao gồm giai đoạn tiền huấn luyện, giúp máy nắm bắt kiến thức về ưu tiên hóa kiểm thử trước khi thực hiện Để nâng cao hiệu quả, có thể sử dụng dữ liệu từ trước khi đưa vào quy trình CI.

Mở rộng dữ liệu là cần thiết, hiện tại chỉ một số khía cạnh của dữ liệu được khai thác Việc sử dụng thêm nhiều đặc trưng khác sẽ giúp làm rõ nguyên nhân của các trường hợp kiểm thử thất bại và mối liên hệ giữa mã nguồn và những trường hợp này.

[1] W E Lewis, Software testing and continuous quality improvement, CRC press, 2016

[2] P C Jorgense, Software Testing: A Craftsman’s Approach, Boca Raton, FL, USA: CRCPress, Inc., 1995

[3] Q T M Godfrey, "Growth, evolution, and structural change in open source software," in 4th international workshop on principles of softwareevolution,

[4] A P O G B C F M Y Zhauniarovich, "Towards black box testing of android app," in 2015 10th International Conference on Availability,

Reliability and Security (ARES), Toulouse, France, 2015

[5] M K N L L J M V P A Laplante, "Building caring healthcare systems in the internet of things," EEE Systems Journal, 2017

The article discusses the low percentage of software testing engineers in Vietnam, highlighting a significant gap in the industry This underrepresentation poses challenges for software quality assurance and overall development The need for more skilled professionals in this field is crucial for enhancing the country's technological capabilities and meeting international standards.

[7] "AI in Testing: The third wave of automation," CloudQA, [Online] Available: https://cloudqa.io/ai- -testing-the-in third-wave-of-automation/ [Accessed

[8] G G A P A Z M Beller, "When, how, and why developers (do not) test in their ides," in 10th Joint Meeting on Foundations of Software Engineering,

[9] G Rothermel and M Harrold, "Analyzing regression test selection techniques," IEEE Transactions on Software Engineering , vol 22, no 8, pp

[10] G Rothermel, R Untch, C Chu and M Harrold, "Prioritizing test cases for regression testing," in Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis, Portland, Oregon, USA, 2000

[11] A Ansaria, A Khanb, A Khanc and K Mukadam, "Optimized Regression Test using Test Case Prioritization," in 7th International Conference on

[12] B Busjaeger and T Xie, "Learning for Test Prioritization: An Industrial Case Study," in Proceedings of the 2016 24th ACM SIGSOFT International

Symposium on Foundations of Software Engineering, Seattle, WA, USA,

[13] C Kaner, "Exploratory testing," in Quality Assurance Institute Worldwide

Annual Soft-ware Testing Conference, Orlando, FL, 2006

[14] W W Royce, "Managing the development of large software systems,,"

Proceedings of IEEE WESCON, no 26, pp 1-9, 1970

[15] J Voas and G McGraw, Software Fault Injection, Hoboken, NJ: John Wiley

[16] M N Dhingra, "Contingent study of black box and white box testing techniques," International Journal of Current Engineering and Technology,

[17] A Kolawa and D Huizinga, Automated Defect Prevention: Best Practices in Software Management, Wiley-IEEE Computer Society Press, 2007

[18] K Beck, Test-Driven Development by Example, Vaseem: Addison Wesley,

[19] D Graham, Foundations of Software Testing: ISTQB Certification, Int

[20] I C B M M H A Leitner, "Reconciling manual and automatedtesting: The autotest experience," in 40th AnnualHawaii International Conference, 2007

[21] R Ramler, "Economic Perspectives in Test Automation: Balancing Automated and Manual Testing with Opportunity Cost," in International Workshop on

Automation of Software Test, Shanghai, China, 2006

[22] S Berner, R Weber and R Keller, "Observations and lessons learned from automated testing," in IEEE, Saint Louis, MO, USA, USA, 2005

[23] P K Chittimalli and M J Harrold, "Re-computing Coverage Information to Assist Regression Testing," in 2007 IEEE International Conference on

[24] G U R C C H M Rothermel, "Prioritizing test cases for regression testing,"

IEEE Trans Software Eng, vol 27, pp 929-948, 2001

[25] W M J L S M A Wong, "Effect of test setminimization on fault detection effectiveness," Software Practice and Experience, – vol 28, p 347 369, 1998 –

[26] N M A V S Juristo, "Reviewing 25 Years of Testing Technique

Experiments," Empirical Software Engineering, vol 9, pp 7-44, 2004

[27] J.-M Kim and A Porter, "A history-based test prioritization technique for regression testing in resource constrained environments," in Proceedings of the

24th International Conference on Software Engineering, Orlando, FL, USA,

[28] H R H B J Park, "Historical value-based approach for cost-cognizant test case prioritization to improve the effectiveness of regression testing," in The 2nd IEEE International Conference on Secure System Integration and

[29] Y K A A A M P S Fazlalizadeh, "Prioritizing test cases for resource constraint environments using historical test case performance data," in 2009 2nd IEEE International Conference on Computer Science and Information Technology, Beijing, China, 2009

[30] S B J Kim, "An effective fault aware test case prioritization by incorporating a fault localization technique," in Proceedings of the 2010 ACM-IEEE

International Symposium on Empirical Software Engineering and

Measurement, New York, NY, USA, 2010

[31] Y P K H C Huang, "A history-based cost-cognizant test case prioritization technique in regression testing," Journal of Systems and Software, vol 85, no

[32] A G D M M M Helge Spieker, "Reinforcement Learning for Automatic Test Case Prioritization and Selection in Continuous Integration," in

Proceedings of 26th International Symposium on Software Testing and

Analysis, Santa Barbara, CA, USA, 2017

[33] M L S , G M K , R S R Kristen R Walcott, "Time-Aware Test Suite Prioritization," in Proceedings of the ACM/SIGSOFT International Symposium on Software Testing and Analysis, Portland, Maine, USA, 2006

In the paper titled "Efficient Time-Aware Prioritization with Knapsack Solvers," presented at the 1st ACM International Workshop on Empirical Assessment of Software Engineering Languages and Technologies, the authors K R W., M B., G M K., and M L S Sara Alspaugh explore innovative methods for prioritizing tasks effectively within time constraints This research, featured in conjunction with the 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE) in Atlanta, highlights the application of knapsack solvers to enhance decision-making processes in software engineering.

[35] S.-s H , C G , T X , H M Lu Zhang, "Time-aware test-case prioritization using integer linear programming," in Proceedings of the eighteenth international symposium on Software testing and analysis, Chicago, IL, USA,

[36] H Do, S Mirarab, L Tahvildari and G Rothermel, "The Effects of Time Constraints on Test Case Prioritization: A Series of Controlled Experiments,"

IEEE Transactions on Software Engineering , vol 36, no 5, pp 593 - 617,

In their 2011 study presented at the 26th ACM Symposium on Applied Computing in Taichung, Taiwan, You et al conducted an empirical investigation into the effectiveness of time-aware test case prioritization techniques Their research highlights the impact of prioritization strategies on testing efficiency and overall software quality.

[38] K C S R S R Stanislav Kirdey, "Lerner using RL agents for test case — scheduling," Netflix, 22 May 2019 [Online] Available: https://medium.com/netflix-techblog/lerner-using- -agents- -rl for test case- - scheduling-3e0686211198 [Accessed June 2019]

[39] R H U C C M J H Gregg Rothermel, "Prioritizing Test Cases For

Regression Testing," in Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis , Portland, Oregon, USA, 2000

[40] "The Paint Control Dataset of Testing Results," ABB Robotics, 2016 [Online] Available: https://new.abb.com/products/robotics

[41] S E G R Jingjing Liang, "The Rails Dataset of Testing Results from Travis CI," 2018 [Online] Available: https://github.com/elbaum/CI-Datasets

[42] S J Russell and P №rvig, Artificial Intelligence: A Modern Approach, vol 3, Prentice Hall, 2009

[43] A G B Richard S Sutton, "Adaptive computation and machine learning," in

Reinforcement Learning: An Introduction, MIT Press, 1998

[44] G Tesauro, "Temporal difference learning and TD-Gammon,"

Communications of the ACM, vol 38, no 3, pp 58-68, 1995

I A H K D K Volodymyr Mnih, "Human-level control through deep reinforcement learning," Nature , vol 518, p 529 533, 2015 –

[46] P D Christopher J.C.H Watkins, "Technical №te Q-Learning," Machine

[47] R Bellman, Dynamic programming, Courier Corporation, 2013

[48] F Rosenblat, "The perceptron: A probabilistic model for information storage and organization in the brain," Psychological Review, p 65 386, 1958 –

[49] K Hornik, "Approximation capabilities of multilayer feedforward networks,"

Neural Networks, vol 4, no 2, pp 251-257, 1991

[50] P J Werbos, Beyond regression: New tools for prediction and analysis inthe behavioral sciences, MA, USA: Doctoral Dissertation, Applied Mathematics,

[51] R Hecht-Nielsen, "Theory of the backpropagation neural network," Neural

[52] D P K v J Ba, "Adam: A Method for Stochastic Optimization," in 3rd

International Conference for Learning Representations, San Diego, 2015

[53] G H Tijmen Tieleman, "Lecture 6.5-rmsprop: Divide the gradientby a running average of its recent magnitude," COURSERA: Neural networksfor machine learning, 2012

[54] Y B A C Ian Goodfellow, Deep Learning, MIT Press, 2016

[55] H v Hasselt and M A Wiering, "Reinforcement Learning in Continuous Action Spaces," in 2007 IEEE International Symposium on Approximate

Dynamic Programming and Reinforcement Learning, Honolulu, HI, USA,

[56] L.-J Lin, "Self-Improving Reactive Agents Based on Reinforcement Learning, Planning and Teaching," Machine Learning, vol 8, no 3-4, p 293 321, 1992 –

[57] G D J Fred L Van Rossum, The Python Language Reference Manual

(Python Manual), Network Theory Ltd., 2011

[58] A Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow, O'Reilly Media, 2017

[59] X Qu, M B Cohen and K M Woolf, "Combinatorial Interaction Regression Testing: A Study of Test Case Generation and Prioritization," in Conference:

[60] B Jiang and W Chan, "Input-based adaptive randomized test case prioritization: A local beam search approach," Journal of Systems and

[61] S Chen, Z Chen, Z Zhao, B Xu and Y Feng, "Using semi-supervised clustering to improve regression test selection techniques," in 2011 Fourth

IEEE International Conference on Software Testing, Verification and

[62] J F Bowring, J M Rehg and M J Harrold, "Active learning for automatic classification of software behavior," in Proceedings of the 2004 ACM

SIGSOFT international symposium on Software testing and analysis, Boston,

Ngày đăng: 26/01/2024, 15:51

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN