Luận văn xây dựng một bộ dữ liệu bao gồm các kịch bản kiểm thử, các ca kiểm thử BDD tương ứng. Từ dữ liệu đó, áp dụng ứng dụng NLP và công cụ kiểm thử tự động hướng hành vi để khi gọi đến ca kiểm thử, các kịch bản tự động sinh ra ca kiểm thử BDD tương ứng.
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THỊ HỒNG NHUNG NGHIÊN CỨU SINH MÃ KIỂM THỬ TỰ ĐỘNG DỰA TRÊN KỊCH BẢN KIỂM THỬ HƯỚNG HÀNH VI Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phần mềm Mã Số: 8480103.01 TÓM TẮT LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà nội, 11/2018 Chương 1: Mở đầu Kiểm thử phần mềm theo hướng kiểm thử hướng hành vi ( BDD – Behavior Driven Testing) khái niệm mở rộng TDD (Test Driven Devlopment) TDD khái niệm kiểm thử theo hướng kiểm thử phần, viết ca kiểm thử trước lập trình sau Trong kiểm thử hướng hành vi dựa yêu cầu người sử dụng xây dựng ca kiểm thử Một điểm yếu lập trình phần mềm khó để đáp ứng yêu cầu người sử dụng, có nhiều nguyên nhân, có nguyên nhân người lập trình khơng hiểu u cầu người dùng Vì sử dụng trực tiếp ngôn ngữ người sử dụng vào ca kiểm thử có phần mềm với yêu cầu người sử dụng mà khơng lãng phía nhiều tài nguyên Đồng thời kiểm thử tử động với mã kiểm thử hướng hành vi giúp tiết kiệm nguồn nhân lực kiểm thử, giảm thiểu tối đa chi phí làm phần mềm, sản phẩm Giải pháp luận văn đưa nghiên cứu sinh mã kiểm thử tự động từ kịch kiểm thử hướng hành vi, đồng thời sử dụng framework Cucumber kết hợp tích hợp cơng cụ kiểm thử tự động kiểm thử hướng hành vi, từ việc nghiên cứu quy trình xử lý ngơn ngữ tự nhiên dựa NLP ( Natural Language Processing) đưa giải pháp tự động hoá kiểm thử hướng hành vi Với từ điển ca kiểm thử ngôn ngữ tự nhiên, từ liệu có hành vi tương ứng đọc đến ca kiểm thử hành vi phần mềm, lúc gọi đến kịch kiểm thử dẫn đến hành vi xử lý phần mềm khác Luận văn xây dựng liệu bao gồm kịch kiểm thử, ca kiểm thử BDD tương ứng Từ liệu đó, áp dụng ứng dụng NLP công cụ kiểm thử tự động hướng hành vi để gọi đến ca kiểm thử, kịch tử động sinh ca kiểm thử BDD tương ứng Chương mở đầu nêu lên vấn đề tổng quan, lý tác giả nghiên cứu chủ đề giải pháp đưa Tiếp theo chương đưa kiến thức tảng quy trình phần mềm, khái niệm, số khái niệm tự động hoá kiểm thử đồng thời giới thiệu thảo luận số công cụ tự động kiểm thử tự động BDD, ứng dụng xử lý ngơn ngữ tự nhiên kiểm thử phát triển phần mềm Chương Giới thiệu tổng quan số công cụ kiểm thử tự động hướng hành vi Chương Chạy thực nghiệm Framework kiểm thử tự động với BDD đưa quy trình, viết sở liệu chạy cho cơng cụ, cơng nghệ Chương Dựa tìm hiểu kiến thức công cụ tự động kiểm thử liên quan, phân tích đưa phương pháp sinh mã kiểm thử tự động dựa quy trình xử lý ngôn ngữ tự nhiên 4 Chương 2: Một số kiến thức tảng 2.1 Phát triển phần mềm dựa phương pháp Agile Trong nhiều kỉ qua, có nhiều quy trình phần mềm ứng dụng doanh nghiệp, tổ chức làm phần mềm quy trình thác nước, quy trình xoắn ốc cách thành công Tuy nhiên với nhiều yêu cầu phức tạp nhu cầu làm phần mềm ngày quy trình ln đổi lặp lặp lại Agile phương pháp phát triển phần mềm theo hướng linh hoạt, chia quy trình pha nhỏ để phát triển phần mềm Trong phương pháp Agile ● Các công việc tiến trình làm phần mềm chia kết hợp lại từ giai đoạn làm phần mềm khác ● Phần mềm triển khai dựa tài liệu hướng ● Khách hàng đàm phán thông qua hợp đồng ● Phản hồi thay đổi theo kế hoạch cách nhanh dẫn chóng, linh hoạt Agile kết hợp đa dạng quy trình làm phần mềm truyền thống khác như: Scrum, RUP,…Với tiến trình Agile phần mềm phát triển cách linh hoạt, tạo kết hợp phương pháp phát triển cách chặt chẽ Quy trình Agile kết hợp nhiều phương thức phát triển như: Test Driven Development (TDD- phát triển phần mềm kiểm thử), Behavior Driven Development(BDD- Phát triển theo hướng hành vi),… - Kiểm thử phần mềm quy trình Agile Quy trình Agile mơ hình phát triển linh hoạt, phát triển dựa quy trình lặp Đặc điểm quy trình là: dự án chia thành mảng, module nhỏ để dễ sử dụng nhanh chóng thay đổi yêu cầu khách hàng thay đổi, phần nhỏ kiểm thử làm dự án mà không cần đợi đến kết thúc dự án Trong quy trình phát triển phần mềm theo tiến trình Agile sản phẩm xây dựng tốt từ đầu, sau nhận phản hồi khách hàng cải tiến lại cho yêu cầu Kiểm thử phần mềm giai đoạn dự án mà phần dự án từ đầu Để đạt chất lượng phần mềm tốt, Kiểm thử giai đoạn tốn nhiều chi phí, nhân cơng Đặc biệt quy trình Agile, nhân cơng cho kiểm thử gia tăng, chất lượng phần mềm khó kiểm sốt tốn nhiều kinh phí Chính vậy, kiểm thử thời gian cơng sức nhóm phát triển phần mềm Tự động hóa giai đoạn việc làm giúp cải thiện chất lượng phần mềm mà không nhiều thời gian, lần thay đổi dự án lại xây dựng lại kiểm thử cần xác đảm bảo nhanh chóng kịp thời Trong quy trình Agile, chu trình thực ca kiểm thử bị dồn lại nhiều thời gian dành cho kiểm thử hồi quy Ứng dụng kiểm thử tự động quy trình Agile việc làm thiết yếu 2.2 Phát triển phần mềm hướng kiểm thử ( TDD) Test-Driven development - TDD phát triển phần mềm theo hướng kiểm thử Người lập trình viết đoạn đoạn mã để kiểm thử mã thực thi chương trình, sau viết mà chương trình Từ kết mã kiểm thử để cải thiện, thay đổi lại code chương trình Trong quy trình phát triển phần mềm theo hướng kiểm thử phần, có nhiều quy trình lặp lặp lại, yêu cầu xác định rõ làm cho phần mềm đáp ứng yêu cầu khách hàng cách đầy đủ, rõ ràng Phát triển hướng BDD( Behavior-Driven Development) Trong quy trình phát triển phần mềm theo hướng TDD, người phát triển phần mềm kiêm chức kiểm thử phần mềm, vai trò kiểm thử viên chấp nhận dường không cần thiết nữa, nhiên việc cộng gộp vai trò dẫn đến phát sinh cho người phát triển phần mềm Các câu hỏi thường thấy kiểm thử viên như: Bắt đầu kiểm thử từ đâu? Cái cần phải kiểm thử khơng? Thời gian dành cho việc kiểm thử bao lâu? Cần viết ca kiểm thử? Tại ca kiểm thử lại thất bại? [8] 2.4 Xử lý ngôn ngữ tự nhiên ( NLP) NLP lĩnh vực ngiên cứu khoa học máy tính, tập trung vào phát triển hệ thống có cho phép máy tính tương tác với người dựa ngôn ngữ tự nhiên NLP cách để máy tính phân tích, hiểu ý nghĩa ngơn ngữ tự nhiên người cách thông minh hữu ích Bằng cách sử dụng NLP nhà phát triển phần mềm tổ chức cấu trúc liệu kiến thức để thực công việc, tác vụ như: tổng hợp tự động, dịch thuật, nhận dạng thực thể, phân tích trạng thái, nhận dạng giọng nói, phân loại chủ đề, … NLP thuộc nhánh nghiên cứu trí tuệ nhân tạo Trong lĩnh vực nghiên cứu trí tuệ nhân tạo xử lý ngơn ngữ tự nhiên phức tạp tập trung vào ngơn ngữ người( Ngơn ngữ giao tiếp tư giao tiếp) Kỹ thuật sinh mã kiểm thử BDD từ kịch kiểm thử viết ngôn ngữ tự nhiên đưa ca kiểm thử tương ứng gần nghĩa cần sử dụng kĩ thuật xử lý ngôn ngữ tự nhiên Hiện có kĩ thuật xử lý ngôn ngữ tự nhiên sử dụng như: - POS tagging - Phân tích phụ thc WordNet sở liệu lớn từ vựng tiếng anh, phát triển đại học PrinceTon sử dụng để thiết kế kiểm sốt WordNet nhóm danh từ, động từ, tính từ thành đồng nghĩa Mỗi từ sở liệu có nhiều ý nghĩa khác từ WordNet bao gồm tổng cộng 90000 từ khác nhiều 166000 cặp kết nối với ý nghĩa tương đương WordNet định nghĩa mối quan hệ khác từ ngữ nghĩa mơ tả phân cấp, cung cấp biến đếm, giúp xác định từ việc dùng chung từ ngữ nghĩa định 8 Đầu vào việc sinh mã kiểm thử cho kịch kiểm thử hướng hành vi ngôn ngữ tự nhiên Do việc xử lý ngôn ngữ tự nhiên đóng với trị quan trong việc sinh mã kiểm thử tự động kịch BDD 2.5 Khái quát tự động kiểm thử BDD (Behavior Driven Development) Tự động sinh mã chạy chương trình cho biện pháp có tác động sâu sắc tới dự án, làm giảm chi phí phát triển phần mềm, chu trình phát triển rút ngắn, chất lượng phần mềm rút ngắn Theo định nghĩa công cụ tự động hỗ trợ BDD framework tự động hỗ trợ tự động giống BDD Tuy nhiên kịch ngôn ngữ BDD sẵn sàng để bên liên quan phần mềm hiểu nhà phát triển Do vậy, công cụ tự động hỗ trợ kiểm thử BDD là: - Công cụ đọc tài liệu đặc tả - Cơng cụ trực tiếp hiểu phần thức ngôn ngữ kịch kiểm thử BDD (chẳng hạn từ khố When mơ tả ngơn ngữ Gherkin) Dựa vào cơng cụ phá vỡ kịch kiểm thử thành mệnh đề có ý nghĩa - Mỗi mệnh đề riêng lẻ kịch chuyển thành số tham số cho ca kiểm thử cho yêu cầu người dùng, tùy thuộc vào dự án phần mềm Sau thực phép thử cho kịch bản, với tham số từ kịch Chương 3: Một số công cụ kiểm thử tự động hướng hành vi 3.1 Công cụ kiểm thử Cucumber 3.1.1 Giới thiệu khái niệm Một số ưu điểm sử dụng Cucumber là: - Các tài liệu đặc tả, thông số kĩ thuật tài liệu kiểm thử thành gắn kết hoàn chỉnh - Các ca kiểm thử tự động Cucumber, thơng số đặc tả cập nhật - Giúp bên liên quan theo dõi việc kiểm thử mà khơng cần có chun mơn cơng nghệ thơng tin 3.1.2 Các thành phần Cucumber v Feature Feature hiểu chức năng, hay đơn vị ứng dụng dự án Chẳng hạn sử dụng trang mạng xã hội có chức như: - Đăng kí tài khoản - Đăng nhập tài khoản - Kết nối bạn bè - Thay đổi thông tin… Trong công cụ Cucumber, feature chức độc lập sản phẩm 10 3.2 Công cụ kiểm thử Jasmine 3.2.1 Giới thiệu Jasmine - Thời gian gần JavaScript phát triển phổ biến Jasmine công cụ kiểm thử hướng hành vi cho mã nguồn viết cho ngôn ngữ JavaScripts Jasmine không phụ thuộc tảng Javascript nào, khơng u cầu cấu trúc DOM, có cú pháp rõ ràng, dễ hiểu để dễ dàng viết ca kiểm thử Vì vậy, Jasmine phù hợp cho kiểm thử web, dự án Node.js bất nơi đâu mà mã JavaScript chạy - Jasmine sử dụng ngôn ngữ gherkin để viết kịch kiểm thử Đặc điểm Jasmine: - Chi phí thấp, khơng phụ thuộc vào tác nhân bên - Bắt đầu trình kiểm thử với thứ cần thiết để kiểm tra - Chạy trình duyệt ca kiểm thử Node.js sử dụng hệ thống 3.2.2 Kiến trúc Jasmine - Để tìm hiểu kiến trúc Jasmine ta lên trang chủ: https://jasmine.github.io/ tải phiên Jasmine kiểm thử độc lập cho mã nguồn Javascript - Trong độc lập Jasmine bao gồm: ứng dụng ví dụ ca kiểm thử ví dụ Chúng ta mở tệp: SpecRunner.html chạy thông số kỹ thuật kèm 11 Cả tệp nguồn thông số đặc tả kỹ thuật tương ứng liên kết thẻ tệp SpecRunner.html 3.3 Rspec Rspec Framework TDD tập trung vào hành vi Lập trình viên viết ví dụ thực thi hành vi phần nhỏ điều khiển nội dung Trái ngược với Cucumber khơng tuyệt đối chia thành phần ngôn ngữ tự nhiên Rspec đời năm 2007 giữ nguyên nhiều tính Trong chương này, qua khảo sát công cụ kiểm thử phần mềm hướng hành vi Với mục đích ứng dụng cơng cụ vào dự án thực tế, tác giả sâu tìm hiểu cơng cụ Cucumber xây dựng Framework kiểm thử tự động hướng hành vi sử dụng Cucumber cách kết hợp công cụ Selenium tích hợp tảng Java với Eclipse để kiểm thử ứng dụng web Nội dung thực nghiệm Framework kiểm thử trình bày chương sau 12 Chương 4: Thực nghiệm Framework kiểm thử tự động đánh giá 4.1 Các thành phần Framework kiểm thử sử dụng Cucumber Trong khuôn khổ áp dụng luận văn framework Cucumber xây dựng dựa phối hợp tảng sau: Selenium Webdriver, công nghệ Java công cụ kiểm thử BDD Cucumber 4.1.1 Công nghệ Java Eclipse môi trường tích hợp phát triển cho ngơn ngữ lập trình Nền tảng Eclipse công cụ mã nguồn mở phát hành theo giấy phép EPL ( Eclipse Public License) để sử dụng miễn phí đồng thời cho phép sửa đổi phân phối cộng đồng Sau cài đặt tảng Java Eclipse, đồng thời tích hợp Maven vào Eclipse Maven cơng cụ quản lý dự án phần mềm, cung cấp nhìn mơ hình đối tượng dự án (POM) Maven cho phép tự động hoá cấu trúc thư mục ban đầu, thực việc biên dịch kiểm thử đóng gói sản phẩm cuối Nó tốt việc giảm số lượng bước trình xây dựng phần mềm Maven giúp đơn giản chuẩn hố tiến trình xây dựng dự án, xử lý biên soạn, phân phối tài liệu, kết hợp nhiệm vụ cách liền mạch Thư viện Maven 13 lưu trữ mặc định trên: http://mvnrepository.com/, ta lên địa để tải tất thư viện liên quan 4.1.2 Selenium Webdriver Công cụ kiểm thử Cucumber cơng cụ kiểm thử BDD phổ biến trình duyệt Web khơng bao gồm thư viện để tương tác với trình duyệt Web Vì cần sử dụng thư viện framework Selenium để tương tác hiệu với phần tử website trình duyệt Selenim Webdriver cơng cụ mã nguồn mở hồn tồn miễn phí Trước chạy steps bước trên, cần viết thêm tiền điều kiện hậu điều kiện Giả sử cần chạy web Chrome cần sử dụng cơng cụ google chrome kết thúc cần đóng lại trình duyệt, Framework Cucumber gọi Hooks, Cucumber hỗ trợ hooks @Before @After Với @Before, thực thi cần sẵn sàng trước chạy steps @After thực thi sau hoàn thành chạy steps kịch test 4.1.3 Cucumber Cucumber công cụ tự động sử dụng cho kiểm thử, chạy ca kiểm thử chấp nhận dạng BDD Trong framework kiểm thử này, ta sử dụng thư viện Cucumber v Đầu tiên ta viết ca kiểm thử dạng ngôn ngữ Gherkin Ta có kịch nghiệp vụ kiểm thử ta sau: 14 Người dùng vào trang chủ trang web demo: http://www.demo.guru99.com/V4/ sau nhập user password, người dùng đăng nhập thành công vào trang user Kịch đăng nhập dạng ngôn ngữ Gherkin sau: Feature: Login in account Existing account login successful Scenario: Login into account with correct details Given User navigates to demo website And User click on the button login on website homepage And User enter a valid username And User enter a valid password When User click on the login button Then User should be taken to the successful login page Ta tạo pakage feature project, thêm tệp feature trên: v Tiếp theo từ Features viết ta sinh lớp ngôn ngữ java mô tả bước (ca) chạy kiểm thử 4.2 Báo cáo kết kiểm thử Để framework tự động sinh bảng kết kiểm thử, ta sử dụng thư viện có sẵn cucumber tạo class runner, file report tổng hợp thư mục target cấu trúc mã nguồn Framework kiểm thử 15 Kết dạng file report.html cho kịch kiểm thử: 4.3 Đánh giá Framework kiểm thử Framework kiểm thử tự động với tích hợp nhiều công cụ kiểm thử tự động cách sử dụng phù hợp với kiểm thử ứng dụng web hồn tồn kiểm thử tự động theo hướng kiểm thử hướng hành vi, tạo thuận lợi cho nhiều 16 bên liên quan mang lại hiệu cao, tiết kiệm thời gian nhân lực Với kịch kiểm thử viết ngôn ngữ tự nhiên, bên liên quan dự án phát triển phần mềm dễ dàng hiểu dự án theo dõi hoàn thiện phần mềm mà cụ thể kiểm thử ứng dụng web Từ kết kiểm thử ca kiểm thử đăng nhập vào trang web hình [4-15] ta thấy thời gian kiểm thử kịch kiểm thử viết feature là: 14s + 76 ms , đồng thời bước kịch kiểm thử sau: Bảng 4-3 Thời gian chạy kịch kiểm thử tự động Bước kiểm thử Thời gian Given User navigates to 3s + 630ms stackoverflow website User click on the login buton on homepage User enter valid username 3s + 52 ms 2s + 219 ms 17 User enter valid password 108 ms User click on the login button 85 ms User should be taken to the successful login page 3s + 54ms Từ kết kiểm thử, với thông số chi tiết thời gian tự động chạy kịch kiểm thử nhanh giảm thiểu tối đa thời gian kiểm thử Với đặc trưng kiểm thử chấp nhận tốn nhiều chi phí nguồn nhân lực thời gian kiểm thử sử dụng cơng cụ kiểm thử tự động làm giảm thiểu tối đa chi phí khơng cần thiết kiểm thử 4.4 Phương pháp sinh mã kiểm thử tự động Việc tạo mã tự động có tác động sâu sắc đến dự án phần mềm, chi phí phần mềm giảm, chu trình phát triển rút ngắn, chất lượng phần mềm đạt tối ưu Trong phát triển phần mềm hướng hành vi, kịch kiểm thử cung cấp 18 thông tin ban đầu làm sở cho thiết kế phần mềm bên liên quan Tuy nhiên kịch ca kiểm thử mô tả lại theo cấu trúc định để tự động hố sinh ca kiểm thử tự động Vì vậy, nội dung này, luận văn đề xuất phương pháp để sinh thân hàm ca kiểm thử dựa quy trình xử lý ngơn ngữ tự nhiên, bước đầu tự động hố chi tiết quy trình kiểm thử 4.4.1 Phương pháp xử lý ngôn ngữ tự nhiên Stanford parser (Phân tích cú pháp) Stanford parser mã nguồn mở cơng bố nhóm Stanford NLP, phần tích cấu trúc câu ngơn ngữ khác trả cấu trúc (PST) biểu diễn ngữ nghĩa câu PST không tuần hồn với đỉnh gốc biểu diễn câu, chóp biểu diễn cho cấu trúc ngữ pháp.… Trong tốn sinh mã kiểm thử tự động, Stanford parser đóng vai trò để xử lý cấu trúc 19 câu mơ tả kịch bản, nhóm từ nhau, phân tích cấu trúc ngữ pháp câu Ví dụ với từ xác định từ chủ thể đối tượng động từ Xác suất phân tích dựa kiến thức ngôn ngữ để tạo khả cao câu mới, phân tích stanford parser cịn số lỗi, nhiên độ xác cao Trình phân tích xem bước đột phá lớn xử lý ngôn ngữ tự nhiên năm 1990 Cấu trúc câu phân tích cú pháp có định dạng sau: Dưới áp dụng phân tích cho câu đơn giản: “When Customer click on the button login” Sử dụng StanFord Parser phân tích câu ta được: (ROOT (SBAR (WHADVP (WRB When)) 20 (S (NP (NN customer) (NN click on)) (VP (VBZ the) (NP (NN button) (NN login)))))) [nsubj(sentence-4, This-1), cop(sentence-4, is-2), det(sentence-4, another-3), root(ROOT-0, sentence-4)] Có thể thấy, từ câu gắn phần với ngơn ngữ tự nhiên Có nhóm từ để tạo thành cụm thẻ từ 4.4.2 Tập liệu Với mục đích xây dựng tệp liệu để chạy ca kiểm thử, chương trình tự động sinh thân hàm hàm kiểm thử Nội dung bước mã kiểm thử dùng để tự động chạy kiểm thử gồm hàm liệu kiểm thử Do từ gợi ý có kịch viết ngơn ngữ tự nhiên cần ánh xạ thân hàm, bước kiểm thử kiểm thử web có nội dung trùng lặp trường hợp giống 21 hồn tồn xử lý với quy trình xử lý ngơn ngữ tự nhiên Các liệu dùng cho kiểm thử có khối lượng lớn tuỳ thuộc vào dự án kiểm thử BDD Luận văn đưa phương án đề xuất xây dựng tập liệu kiểm thử sau (với kịch kiểm thử ca kiểm thử đăng nhập vào trang web stackoverflow.com) 22 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết đạt 1.1 Lý thuyết Luận văn nghiên cứu kiểm thử tự động, cụ thể sâu vào kiểm thử hướng hành vi quy trình phát triển phần mềm theo hướng Agile Những lợi ích, thuận lợi sử dụng kiểm thử hướng hành vi phát triển phần mềm, quy trình xây dựng phần mềm theo hướng kiểm thử hướng hành vi Các phần lý thuyết liên quan xử lý ngôn ngữ tự nhiên sinh mã kiểm thử từ kịch kiểm thử ngôn ngữ tự nhiên, đưa phương pháp sinh hàm mã kiểm thử tự động 1.2 Thực nghiệm Dựa kết hợp công cụ kiểm thử hướng hành vi Cucumber, kết hợp công nghệ Java tảng kiểm thử Web với Selenium, luận văn thực thi kiểm thử hướng hành vi ca kiểm thử viết dạng ngôn ngữ tự nhiên ngôn ngữ Gherkin, kiểm thử ca kiểm thử web, sinh báo cáo kiểm thử đánh giá tính hiệu cơng cụ kiểm thử hướng hành vi Kết chạy ca kiểm thử chứng minh tính đắn, khả ứng dụng phát triển tự động kiểm thử theo hướng hành vi tự động cho phần mềm Giảm thiểu thời gian 23 chi phí phát sinh quy trình phát triển phần mềm, đặc biệt với quy trình phát triển phần mềm theo hướng Agile Hướng phát triển Trong luận văn tìm hiểu cơng cụ kiểm thử tự động kiểm thử hướng hành vi, đồng thời kết hợp công cụ kiểm thử tự động để xây dựng, triển khai kiểm thử tự động hướng hành vi Dựa tìm hiểu ngun tắc xây dựng cơng cụ, vận hành công cụ, phần hiểu cách phát triển sở để làm công cụ kiểm thử tự động kiểm thử tự động hướng hành vi Vì vậy, thời gian tới em tiếp tục nghiên cứu công cụ kiểm thử để phát triển cơng cụ kiểm thử tự động quy trình phát triển phần mềm hướng hành vi tích hợp công cụ kiểm thử cách hiệu xác 24 TÀI LIỆU THAM KHẢO [1] Melanie Diepenbeck, Mathias Soeken, Daniel Große, Rolf Drechsler - “Towards Automatic Scenario Generation from Coverage Information”, 2013 [2] Mathias Soeken, Robert Wille, Rolf Drechsler “Assisted Behavior Driven Development Using NLP”, 2012 [3] Prerana Pradeepkumar Rane - “Automatic generation of Test Cases for Agile using NLP”, 2017 [4]Https://medium.com/agile-vision/behavior-drivendevelopment-bdd-software-testing-in-agile-environmentsd5327c0f9e2d [5] Sunil Kamalakar - “Automatically Generating Tests from Natural Language Descriptions of software Behavior”, 2013 [6] http://toolsqa.com/cucumber/ [7] https://jasmine.github.io [8]https://en.wikipedia.org/wiki/Behaviordriven_developm ent [9] https://www.udemy.com/ [10]https://www.guru99.com/xpath-selenium.html [11]Victor Szalvay, Danube Technologies - “An Introduction to Agile Software Development” ,2004 [12] Lasse Koskela - “Test First model-driven development”, 2008 [13] Dan North - “Introducing BDD” March 2006 25 [14] David Chelimsky, Dave Astels, Zach Dennis, Aslak Hellesøy, Bryan Helmkamp, Dan North - “The Rspec Book Behavior Driven Development with Rspec, Cucumber and Friends”, 2010 [15] https://techblog.vn/index.php/tong-quan-ve-kiem-thutu-dong-tdd-va-bdd-trong-mo-hinh-phat-trien-phan-mem-agile ... pháp luận văn đưa nghiên cứu sinh mã kiểm thử tự động từ kịch kiểm thử hướng hành vi, đồng thời sử dụng framework Cucumber kết hợp tích hợp công cụ kiểm thử tự động kiểm thử hướng hành vi, từ vi? ??c... theo hướng Agile Hướng phát triển Trong luận văn tìm hiểu cơng cụ kiểm thử tự động kiểm thử hướng hành vi, đồng thời kết hợp công cụ kiểm thử tự động để xây dựng, triển khai kiểm thử tự động hướng. .. thực thi kiểm thử hướng hành vi ca kiểm thử vi? ??t dạng ngôn ngữ tự nhiên ngôn ngữ Gherkin, kiểm thử ca kiểm thử web, sinh báo cáo kiểm thử đánh giá tính hiệu cơng cụ kiểm thử hướng hành vi Kết chạy