CÁC KỸ THUẬT SINH TỰ ĐỘNG DỮ LIỆU KIỂM THỬ DỰA TRÊN CÁC BIỂU ĐỒ UML

Luận án tiến sĩ nghiên cứu các kỹ thuật sinh tự động dữ liệu kiểm thử dựa trên các biểu đồ uml luận án ts máy tính 624801, phát triển phương pháp mới, đánh giá hiệu quả ứng dụng

2018

175
2
0

Phí lưu trữ

45 Point

Tóm tắt

I. Tổng Quan Về Kỹ Thuật b Sinh Tự Động Test Case UML b

Trong quá trình phát triển phần mềm, kiểm thử đóng vai trò quan trọng để đảm bảo chất lượng sản phẩm. Việc tự động hóa quá trình kiểm thử, đặc biệt là khâu thiết kế test case, ngày càng được quan tâm. Kỹ thuật sinh tự động test case UML nổi lên như một giải pháp hiệu quả, giúp giảm chi phí, tiết kiệm thời gian và nâng cao độ tin cậy của phần mềm. Thay vì thiết kế thủ công, các test case được tạo ra tự động dựa trên các biểu đồ UML, đặc biệt là biểu đồ tuần tự, giúp kiểm tra hệ thống một cách có hệ thống và toàn diện. Các nghiên cứu cũng chỉ ra rằng, các test case sinh ra từ UML có khả năng tìm lỗi cao hơn so với các phương pháp truyền thống, ví dụ như viết test case theo kinh nghiệm cá nhân. Tóm lại, sinh tự động test case UML là hướng đi tất yếu trong ngành công nghiệp phần mềm hiện đại.

1.1. Tầm quan trọng của b mô hình UML trong kiểm thử b

Mô hình UML đóng vai trò trung tâm trong việc sinh tự động test case. Chúng cung cấp một cái nhìn trực quan và trừu tượng về hệ thống, cho phép các chuyên gia kiểm thử hiểu rõ hành vi và cấu trúc của phần mềm. Từ các biểu đồ UML, đặc biệt là biểu đồ tuần tự, có thể xác định các kịch bản và luồng thực thi khác nhau, từ đó sinh ra các test case tương ứng. Sử dụng UML đảm bảo tính bao phủ và hệ thống trong quá trình kiểm thử. Điều này đặc biệt quan trọng đối với các hệ thống phức tạp, nơi việc kiểm thử thủ công trở nên khó khăn và tốn kém. "Biểu đồ tuần tự là biểu đồ chi tiết và giàu hành vi trong các biểu đồ UML."

1.2. Ưu điểm của b tự động hóa kiểm thử UML b

Việc tự động hóa kiểm thử UML mang lại nhiều lợi ích, bao gồm giảm chi phí, tăng tốc độ, nâng cao độ chính xác và cải thiện khả năng tái sử dụng. So với kiểm thử thủ công, tự động hóa giúp giảm thiểu sai sót do con người gây ra và cho phép thực hiện các test case lặp đi lặp lại một cách nhanh chóng và hiệu quả. Việc sử dụng công cụ sinh test case từ UML giúp tiết kiệm thời gian và công sức của các chuyên gia kiểm thử, cho phép họ tập trung vào các nhiệm vụ phức tạp hơn như phân tích kết quả kiểm thử và tìm kiếm lỗi. "Việc sinh tự động dữ liệu kiểm thử này được thực hiện ở giai đoạn sau khi có mã nguồn và số kịch bản kiểm thử được sinh ra rất lớn."

II. Thách Thức Trong b Sinh Tự Động Test Case Từ UML b

Mặc dù mang lại nhiều lợi ích, kỹ thuật sinh tự động test case UML cũng đối mặt với nhiều thách thức. Một trong những thách thức lớn nhất là xử lý độ phức tạp của các biểu đồ UML, đặc biệt là các biểu đồ chứa nhiều toán tử và ràng buộc. Ngoài ra, việc đảm bảo tính bao phủ và độ tin cậy của các test case sinh ra tự động cũng là một vấn đề quan trọng. Các phương pháp sinh test case hiện tại thường gặp khó khăn trong việc xử lý các loại dữ liệu phức tạp như chuỗi và cấu trúc động, cũng như các tình huống tương tranh và vòng lặp. Thêm vào đó, việc đánh giá hiệu quả sinh test case tự động và so sánh với các phương pháp khác cũng là một thách thức đáng kể.

2.1. Vấn đề xử lý các ràng buộc phức tạp trong UML

Các biểu đồ UML thường đi kèm với các ràng buộc, được biểu diễn bằng OCL (Object Constraint Language), để mô tả các điều kiện và quy tắc mà hệ thống phải tuân thủ. Việc xử lý các ràng buộc này là một thách thức lớn trong sinh tự động test case, đặc biệt là khi các ràng buộc trở nên phức tạp và liên quan đến nhiều đối tượng và thuộc tính. Các phương pháp hiện tại thường gặp khó khăn trong việc giải quyết các ràng buộc phức tạp này một cách hiệu quả, dẫn đến việc bỏ sót các test case quan trọng hoặc tạo ra các test case không hợp lệ. Do đó, cần có các phương pháp mới để xử lý các ràng buộc phức tạp trong UML một cách chính xác và hiệu quả.

2.2. Khó khăn trong việc xử lý dữ liệu phức tạp

Các phương pháp sinh test case từ UML thường tập trung vào các kiểu dữ liệu đơn giản như số nguyên và boolean, và gặp khó khăn trong việc xử lý các kiểu dữ liệu phức tạp như chuỗi và cấu trúc động. Việc sinh test case cho các kiểu dữ liệu phức tạp đòi hỏi các kỹ thuật đặc biệt để tạo ra các giá trị đầu vào hợp lệ và kiểm tra các trường hợp biên. Ngoài ra, việc xử lý các tình huống tương tranh và vòng lặp cũng là một thách thức lớn, vì chúng có thể dẫn đến sự bùng nổ số lượng test case và khó khăn trong việc đảm bảo tính bao phủ. "Trong các phương pháp đề xuất, luận án đều xây dựng công cụ để cài đặt và thực nghiệm trên đó."

2.3. Hạn chế của các b công cụ sinh test case từ UML b hiện tại

Các công cụ sinh test case từ UML hiện tại thường có những hạn chế về khả năng xử lý các loại biểu đồ UML khác nhau, hỗ trợ các kiểu dữ liệu phức tạp và xử lý các tình huống tương tranh. Nhiều công cụ chỉ hỗ trợ một số ít biểu đồ UML và không thể xử lý các ràng buộc phức tạp trong OCL. Ngoài ra, các công cụ này thường thiếu khả năng tùy chỉnh và mở rộng, khiến cho việc áp dụng chúng vào các dự án cụ thể trở nên khó khăn. Do đó, cần có các công cụ sinh test case từ UML mạnh mẽ và linh hoạt hơn để đáp ứng nhu cầu của các dự án phần mềm hiện đại.

III. Phương Pháp b Sinh Tự Động Test Case UML b Từ Biểu Đồ

Một phương pháp tiếp cận phổ biến là chuyển đổi biểu đồ UML thành một biểu diễn trung gian, chẳng hạn như đồ thị dòng điều khiển (CFG), sau đó sử dụng các thuật toán tìm kiếm đồ thị để sinh các kịch bản kiểm thử. Các ràng buộc OCL có thể được tích hợp vào quá trình tìm kiếm để đảm bảo rằng các kịch bản kiểm thử thỏa mãn các điều kiện và quy tắc của hệ thống. Một số phương pháp sử dụng kiểm chứng mô hình (model checking) để kiểm tra tính đúng đắn của các test case sinh ra và đảm bảo rằng chúng bao phủ tất cả các trạng thái và chuyển đổi của hệ thống. Cuối cùng, các test case được cụ thể hóa thành các đoạn mã kiểm thử có thể thực thi để kiểm tra hệ thống thực.

3.1. Chuyển đổi UML thành đồ thị dòng điều khiển CFG

Việc chuyển đổi biểu đồ UML thành CFG là một bước quan trọng trong quá trình sinh test case, vì nó cho phép áp dụng các thuật toán tìm kiếm đồ thị để khám phá các kịch bản kiểm thử khác nhau. CFG biểu diễn các luồng điều khiển có thể có trong hệ thống, với các nút đại diện cho các trạng thái và các cạnh đại diện cho các chuyển đổi. Bằng cách duyệt CFG, có thể xác định các đường dẫn thực thi khác nhau và sinh ra các test case tương ứng. Việc chuyển đổi UML thành CFG đòi hỏi việc xử lý các toán tử và cấu trúc phức tạp trong UML, chẳng hạn như các nhánh điều kiện và vòng lặp. "Luận án nghiên cứu một số giải pháp hỗ trợ sinh dữ liệu kiểm thử tự động từ các biểu đồ UML2."

3.2. Sử dụng thuật toán tìm kiếm đồ thị để sinh kịch bản

Sau khi biểu đồ UML được chuyển đổi thành CFG, có thể sử dụng các thuật toán tìm kiếm đồ thị như tìm kiếm theo chiều sâu (DFS) và tìm kiếm theo chiều rộng (BFS) để sinh các kịch bản kiểm thử khác nhau. Các thuật toán này duyệt CFG và tạo ra các đường dẫn thực thi, mỗi đường dẫn đại diện cho một kịch bản kiểm thử. Việc lựa chọn thuật toán tìm kiếm đồ thị phù hợp phụ thuộc vào mục tiêu kiểm thử và độ phức tạp của hệ thống. Ví dụ, DFS có thể được sử dụng để tìm các kịch bản kiểm thử sâu, trong khi BFS có thể được sử dụng để tìm các kịch bản kiểm thử bao phủ. Các thuật toán này cần có cơ chế tránh lặp để tránh bùng nổ số lượng test case.

3.3. Tích hợp ràng buộc OCL vào quá trình sinh Test Case

Các ràng buộc OCL cung cấp thông tin quan trọng về các điều kiện và quy tắc mà hệ thống phải tuân thủ, và do đó cần được tích hợp vào quá trình sinh test case. Việc tích hợp OCL có thể được thực hiện bằng cách sử dụng các bộ giải ràng buộc (constraint solver) để kiểm tra xem một kịch bản kiểm thử có thỏa mãn các ràng buộc hay không. Nếu một kịch bản kiểm thử không thỏa mãn các ràng buộc, nó sẽ bị loại bỏ hoặc điều chỉnh để thỏa mãn. Việc tích hợp OCL giúp đảm bảo rằng các test case sinh ra là hợp lệ và có khả năng phát hiện các lỗi liên quan đến vi phạm ràng buộc. "Với mỗi thực nghiệm các dữ liệu kiểm thử và kịch bản kiểm thử sinh ra được so sánh về độ bao phủ, khả năng tìm lỗi so với các phương pháp hiện tại."

IV. Nghiên Cứu Về b Sinh Tự Động Dữ Liệu Kiểm Thử Chuỗi UML b

Một lĩnh vực nghiên cứu quan trọng khác là sinh tự động dữ liệu kiểm thử cho các kiểu dữ liệu chuỗi. Việc kiểm thử các hàm xử lý chuỗi, chẳng hạn như tìm kiếm, thay thế và cắt chuỗi, đòi hỏi các kỹ thuật đặc biệt để tạo ra các giá trị đầu vào hợp lệ và kiểm tra các trường hợp biên. Một số phương pháp sử dụng các bộ giải chuỗi (string solver) để giải quyết các ràng buộc liên quan đến chuỗi và sinh ra các test case tương ứng. Các bộ giải chuỗi này sử dụng các kỹ thuật như biểu thức chính quy (regular expression) và tự động hóa hữu hạn (finite automata) để xử lý các ràng buộc chuỗi một cách hiệu quả. "Trong các phương pháp đề xuất, luận án đều xây dựng công cụ để cài đặt và thực nghiệm trên đó."

4.1. Các thách thức khi b kiểm thử phần mềm UML b với dữ liệu chuỗi

Kiểm thử phần mềm UML với dữ liệu chuỗi đặt ra nhiều thách thức do tính phức tạp và đa dạng của dữ liệu chuỗi. Các hàm xử lý chuỗi thường có nhiều trường hợp biên và các điều kiện đặc biệt cần được kiểm tra kỹ lưỡng. Ví dụ, các hàm tìm kiếm chuỗi cần được kiểm tra với các chuỗi rỗng, chuỗi chứa các ký tự đặc biệt và chuỗi có độ dài khác nhau. Các hàm thay thế chuỗi cần được kiểm tra với các chuỗi mẫu khác nhau và các chuỗi thay thế khác nhau. Việc tạo ra các test case bao phủ tất cả các trường hợp này là một nhiệm vụ khó khăn và tốn kém. Ngoài ra, việc kiểm tra tính đúng đắn của kết quả trả về của các hàm xử lý chuỗi cũng là một thách thức, vì kết quả có thể phụ thuộc vào nhiều yếu tố và cần được kiểm tra một cách cẩn thận.

4.2. Sử dụng bộ giải chuỗi String Solver trong b sinh Test Case b

Các bộ giải chuỗi (string solver) là các công cụ mạnh mẽ được sử dụng để giải quyết các ràng buộc liên quan đến chuỗi và sinh ra các test case tương ứng. Các bộ giải chuỗi này sử dụng các kỹ thuật như biểu thức chính quy và tự động hóa hữu hạn để xử lý các ràng buộc chuỗi một cách hiệu quả. Ví dụ, một bộ giải chuỗi có thể được sử dụng để tìm một chuỗi thỏa mãn một biểu thức chính quy cho trước, hoặc để kiểm tra xem một chuỗi có thuộc một ngôn ngữ được định nghĩa bởi một tự động hóa hữu hạn hay không. Việc sử dụng các bộ giải chuỗi giúp tự động hóa quá trình sinh dữ liệu kiểm thử cho các kiểu dữ liệu chuỗi và đảm bảo rằng các test case sinh ra là hợp lệ và có khả năng phát hiện các lỗi liên quan đến chuỗi. "Các phương pháp hiện tại thường gặp khó khăn trong việc giải quyết các ràng buộc phức tạp này một cách hiệu quả, dẫn đến việc bỏ sót các test case quan trọng hoặc tạo ra các test case không hợp lệ."

V. Kết Luận Và Hướng Phát Triển Của b Kỹ Thuật Sinh Test UML b

Kỹ thuật sinh tự động test case UML đã đạt được những tiến bộ đáng kể trong những năm gần đây, nhưng vẫn còn nhiều thách thức cần được giải quyết. Các hướng nghiên cứu tiềm năng bao gồm phát triển các phương pháp hiệu quả hơn để xử lý các biểu đồ UML phức tạp, tích hợp các kỹ thuật trí tuệ nhân tạo để cải thiện khả năng sinh test case và tạo ra các công cụ dễ sử dụng và tùy chỉnh hơn. Ngoài ra, việc nghiên cứu các ứng dụng thực tế của kỹ thuật sinh tự động test case UML trong các lĩnh vực khác nhau, chẳng hạn như hệ thống nhúng và ứng dụng di động, cũng là một hướng đi đầy hứa hẹn.

5.1. Tích hợp trí tuệ nhân tạo để cải thiện hiệu quả

Tích hợp trí tuệ nhân tạo (AI) có tiềm năng lớn trong việc cải thiện hiệu quả của sinh tự động test case UML. Các kỹ thuật AI như học máy (machine learning) và tối ưu hóa (optimization) có thể được sử dụng để học từ các dữ liệu kiểm thử lịch sử và tự động sinh ra các test case có khả năng phát hiện lỗi cao hơn. Ví dụ, một mô hình học máy có thể được huấn luyện để dự đoán các vùng dễ bị lỗi trong hệ thống và tạo ra các test case tập trung vào các vùng đó. Hoặc một thuật toán tối ưu hóa có thể được sử dụng để tìm kiếm không gian test case và tìm ra các test case bao phủ tốt nhất. "Kiểm thử từ các biểu đồ UML cũng như việc kiểm thử thông thường được thực hiện qua các bước: sinh các kịch bản kiểm thử, sinh dữ liệu kiểm thử và thực thi các đoạn mã kiểm thử."

5.2. Phát triển các b công cụ b dễ sử dụng và tùy chỉnh

Để kỹ thuật sinh tự động test case UML được áp dụng rộng rãi trong thực tế, cần phải phát triển các công cụ dễ sử dụng và tùy chỉnh hơn. Các công cụ này nên cung cấp giao diện trực quan và thân thiện với người dùng, hỗ trợ nhiều loại biểu đồ UML khác nhau và cho phép người dùng tùy chỉnh quá trình sinh test case theo nhu cầu cụ thể của dự án. Ngoài ra, các công cụ này nên tích hợp với các môi trường phát triển tích hợp (IDE) phổ biến và hỗ trợ các ngôn ngữ lập trình khác nhau. Việc phát triển các công cụ dễ sử dụng và tùy chỉnh sẽ giúp giảm rào cản đối với việc áp dụng kỹ thuật sinh tự động test case UML và cho phép các nhà phát triển phần mềm tận dụng tối đa lợi ích của nó. "Cácdữliệukiểmthửcóđộbaophủcànglớnthìđộtincậycủatậpdữliệukiểmthửcàngcao[24],cóthểtìmđượcnhiềulỗicủahệthốngvàgiúpkiểmsoátvàquảnlýquátrìnhkiểmthửtốthơn."

28/05/2025

Tài liệu "Kỹ Thuật Sinh Tự Động Dữ Liệu Kiểm Thử Dựa Trên Biểu Đồ UML" cung cấp cái nhìn sâu sắc về việc áp dụng các kỹ thuật sinh tự động trong kiểm thử phần mềm thông qua biểu đồ UML. Tài liệu này không chỉ giải thích các khái niệm cơ bản mà còn nêu bật những lợi ích của việc sử dụng biểu đồ UML để tối ưu hóa quy trình kiểm thử, giúp tiết kiệm thời gian và nâng cao hiệu quả phát hiện lỗi. Độc giả sẽ tìm thấy những phương pháp và công cụ hữu ích để cải thiện quy trình kiểm thử của mình, từ đó nâng cao chất lượng sản phẩm phần mềm.

Nếu bạn muốn mở rộng kiến thức của mình về các kỹ thuật kiểm thử phần mềm, hãy tham khảo thêm tài liệu Luận văn thạc sĩ nghiên cứu kỹ thuật kiểm thử phần mềm trên cơ sở mô hình uml, nơi bạn sẽ tìm thấy những nghiên cứu sâu hơn về mô hình UML trong kiểm thử. Ngoài ra, tài liệu Luận văn thạc sĩ nghiên cứu kỹ thuật kiểm thử tự động dựa trên mô hình áp dụng trong hệ thống nhúng cũng sẽ cung cấp cho bạn cái nhìn về kiểm thử tự động trong các hệ thống nhúng, một lĩnh vực đang phát triển mạnh mẽ. Cuối cùng, bạn có thể khám phá thêm về Luận văn thạc sĩ nghiên cứu các kỹ thuật kiểm thử bảo mật ứng dụng web, để hiểu rõ hơn về các phương pháp kiểm thử bảo mật, một yếu tố quan trọng trong phát triển phần mềm hiện đại. Những tài liệu này sẽ giúp bạn mở rộng kiến thức và nâng cao kỹ năng trong lĩnh vực kiểm thử phần mềm.

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

CÁC KỸ THUẬT SINH TỰ ĐỘNG DỮ LIỆU KIỂM THỬ DỰA TRÊN CÁC BIỂU ĐỒ UML VŨ THỊ ĐÀO Tháng 04 năm 2018 TIEU LUAN MOI download : skknchat@gmail.com LỜI CẢM ƠN Luận án được thực hiện tại Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội, dưới sự hướng dẫn của PGS. Nguyễn Việt Hà. Tôi xin gửi lời cảm ơn chân thành và sâu sắc nhất tới PGS. Nguyễn Việt Hà – Bộ môn Công nghệ phần mềm, Khoa Công nghệ thông tin, Trường Đại học Công nghệ. Người thầy tâm huyết đã tận tình hướng dẫn, động viên khích lệ, dành nhiều thời gian quí báu để định hướng cho tôi trong quá trình tham gia khóa học và hoàn thiện luận án. Tôi xin gửi lời cảm ơn chân thành tới lãnh đạo trường Đại học Công nghệ, lãnh đạo Khoa Công nghệ thông tin, cảm ơn các đồng nghiệp đã tạo điều kiện thuận lợi cho tôi trong quá trình làm luận án. Tôi xin gửi lời cảm ơn chân thành tới các thầy, cô trong Bộ môn Công nghệ phần mềm, Khoa Công nghệ thông tin, Trường Đại học Công nghệ, những người luôn hướng dẫn, định hướng, góp ý cho tôi trong quá trình viết luận án. Cuối cùng, tôi xin gửi lời cảm ơn sâu sắc tới gia đình và bạn bè, những người đã luôn ủng hộ và hỗ trợ tôi về mọi mặt để tôi yên tâm học tập, nghiên cứu, và hoàn thành luận án. i TIEU LUAN MOI download : skknchat@gmail.com LỜI CAM ĐOAN Tôi xin cam đoan: Bản luận án tốt nghiệp này là công trình nghiên cứu thực sự của cá nhân. Các kết quả được viết chung với các tác giả khác đều được sự đồng ý của các đồng tác giả trước khi đưa vào luận án. Các kết quả nêu trong luận án là trung thực và chưa từng được công bố dưới bất cứ hình thức nào trước khi trình, bảo vệ và công nhận bởi “Hội Đồng đánh giá luận án tốt nghiệp Tiến sĩ Công nghệ Thông Tin”. Một lần nữa, tôi xin khẳng định về sự trung thực của lời cam kết trên. Tác giả: ii TIEU LUAN MOI download : skknchat@gmail.com MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN ii MỤC LỤC iii DANH MỤC CÁC THUẬT NGỮ VÀ KÝ HIỆU vii DANH MỤC CÁC BẢNG ix DANH MỤC CÁC HÌNH VẼ xi TÓM TẮT LUẬN ÁN xiii Chương 1 GIỚI THIỆU 1 1.2 Phương pháp và nội dung nghiên cứu .3 Cấu trúc luận án . 6 Chương 2 KIẾN THỨC NỀN TẢNG 7 2.1 Các khái niệm cơ bản .2 Kiểm thử dựa trên mô hình .3 Các biểu đồ UML và ràng buộc OCL .1 Biểu đồ tuần tự UML và các toán tử .2 Các ràng buộc OCL trong các biểu đồ UML .3 Đồ thị dòng điều khiển . 18 iii TIEU LUAN MOI download : skknchat@gmail.4 Các độ bao phủ và độ phân tích đột biến trong kiểm thử .1 Độ bao phủ tương tranh .2 Độ bao phủ trong kiểm thử vòng lặp .3 Độ phân tích đột biến .5 Tổng quan về sinh dữ liệu kiểm thử tự động .1 Sinh dữ liệu kiểm thử trong kiểm thử cấu trúc .2 Sinh dữ liệu kiểm thử trong kiểm thử chức năng .3 Sinh dữ liệu kiểm thử tự động từ các biểu đồ UML .6 Các công cụ sinh dữ liệu kiểm thử hiện tại . 34 Chương 3 SINH DỮ LIỆU KIỂM THỬ CHO KIỂU DỮ LIỆU SỐ VÀ CẤU TRÚC ĐỘNG 35 3.2 Những nghiên cứu liên quan .3 Phương pháp sinh dữ liệu kiểm thử cho biến kiểu dữ liệu số và cấu trúc động .1 Tổng quan về phương pháp đề xuất .2 Chuyển đổi biểu đồ tuần tự UML thành CFG .3 Sinh các kịch bản kiểm thử .4 Chọn các vị từ và chuyển thành các hàm vị từ .5 Hàm vị từ với các ràng buộc OCL .6 Sinh dữ liệu kiểm thử từ các hàm vị từ .2 Kết quả và đánh giá . 85 Chương 4 SINH DỮ LIỆU KIỂM THỬ CHO VÒNG LẶP VÀ iv TIEU LUAN MOI download : skknchat@gmail.com CÁC ỨNG DỤNG TƯƠNG TRANH 87 4.2 Những nghiên cứu liên quan .3 Phương pháp sinh dữ liệu kiểm thử theo các độ bao phủ tương tranh và lặp .1 Tổng quan về phương pháp đề xuất .2 Sinh các kịch bản kiểm thử .3 Sinh dữ liệu kiểm thử .2 Kết quả và đánh giá . 113 Chương 5 SINH DỮ LIỆU KIỂM THỬ CHO KIỂU DỮ LIỆU CHUỖI 115 5.2 Những nghiên cứu liên quan .3 Phương pháp sinh tự động dữ liệu kiểm thử cho các ràng buộc chuỗi .1 Tổng quan về phương pháp đề xuất .2 Sinh các kịch bản kiểm thử .3 Giải các ràng buộc chuỗi .2 Kết quả và đánh giá . 142 Chương 6 KẾT LUẬN 144 6.1 Các kết quả đạt được của luận án . 144 v TIEU LUAN MOI download : skknchat@gmail.2 Hướng nghiên cứu tiếp theo . 146 DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC CỦA TÁC GIẢ LIÊN QUAN ĐẾN LUẬN ÁN 148 TÀI LIỆU THAM KHẢO 149 vi TIEU LUAN MOI download : skknchat@gmail.com DANH MỤC CÁC THUẬT NGỮ VÀ KÝ HIỆU Tên thuật ngữ đầy đủ Chữ viết tắt Giải nghĩa Breadth-first search BFS Thuật toán tìm kiếm theo chiều rộng Black box testing Kiểm thử hộp đen Control Flow Graph CFG Đồ thị dòng điều khiển Constraint solver Bộ giải ràng buộc Coverage criteria Tiêu chuẩn bao phủ Dynamic Domain Reduction DDR Phương pháp giảm miền động Deadlock Khóa chết Depth-first search DFS Thuật toán tìm kiếm theo chiều sâu Extended Finite State Machine EFSM Máy hữu hạn trang thái mở rộng Finite State Machine FSM Máy hữu hạn trạng thái Gray box testing Kiểm thử hộp xám Invariant Bất biến Linear Temporal Logic LTL Logic thời gian tuyến tính Message Thông điệp Model Checking Kiểm chứng mô hình Mutation Score MS Độ đo đột biến Object Constraint Language OCL Ngôn ngữ ràng buộc đối tượng Parallel Fragment Par Toán tử song song Post–condition Hậu điều kiện Pre–condition Tiền điều kiện Predicate Vị từ Safety property Thuộc tính an toàn Satisfiable SAT Thỏa mãn Symbolic execution SE Thực thi tượng trưng Weak Sequencing Fragment Seq Toán tử tuần tự yếu vii TIEU LUAN MOI download : skknchat@gmail.com Tên thuật ngữ đầy đủ Chữ viết tắt Giải nghĩa Satisfiability Modulo Theories SMT Các lý thuyết môđun về tính thỏa được System Under Testing SUT Hệ thống được kiểm thử Test Case Ca kiểm thử Test Data Dữ liệu kiểm thử Test Scenario Kịch bản kiểm thử Test Script Mã kiểm thử dạng đặc tả kịch bản dùng để tự động hóa Unified Modeling Language UML Ngôn ngữ mô hình hóa thống nhất Unsatisfiable UNSAT Không thỏa mãn Variable Assignment Graph VAG Đồ thị tham số biến White box testing Kiểm thử hộp trắng eXtensible Markup Language XML Ngôn ngữ đánh dấu mở rộng Z3-Str solver Bộ giải Z3-Str viii TIEU LUAN MOI download : skknchat@gmail.com DANH MỤC CÁC BẢNG 2.1 Các biểu đồ UML và sử dụng để mô hình hóa cho kiểm thử [100] 30 3.1 Bảng giá trị chân lý cho các toán tử logic [3] .2 Hàm vị từ cho các toán tử logic trong OCL [3] .3 Hàm vị từ cho các toán tử quan hệ OCL cho kiểu dữ liệu số [3] .4 Các kịch bản kiểm thử được sinh ra của máy bán hàng tự động .5 So sánh kết quả đề xuất và kết quả nghiên cứu trong [72] .6 Thực nghiệm đưa ra độ bao phủ các đường dẫn của đồ thị của phương pháp đưa ra và phương pháp kiểm thử ngẫu nhiên .7 Kết quả thực nghiệm so sánh phương pháp đề xuất với phương pháp [30] .1 Kết quả MS sử dụng cho từng kịch bản kiểm thử được sinh ra trong cách tiếp cận [95] và Phương pháp đề xuất .2 Kết quả MS của phương pháp đề xuất và phương pháp ngẫu nhiên112 5.1 Ví dụ giải các toán tử chuỗi .2 Cách Z3–str thực hiện xử lý các ràng buộc chuỗi trong Bảng 5.3 Ngữ pháp của các ràng buộc trong Z3–str, mở rộng cho search và replaceAll so với [114] .4 Định nghĩa cho Thuật toán 5.5 Các quy tắc giảm [114] .6 Quy tắc giảm sử dụng gọi đệ quy .7 Các quy tắc tiền xử lý cho các toán tử chuỗi .8 So sánh khả năng tìm lỗi của các chức năng trong các ứng dụng . 140 ix TIEU LUAN MOI download : skknchat@gmail.9 So sánh xử lý các toán tử chuỗi và hiệu năng của SeqString với phương pháp của nhóm Tác giả Shoichiro [39] .624801 TIEU LUAN MOI download : skknchat@gmail.624801 DANH MỤC CÁC HÌNH VẼ 1.1 Các nội dung luận án giải quyết trong bài toán kiểm thử dựa trên mô hình.1 Quy trình kiểm thử dựa trên mô hình [100].2 Ví dụ biểu đồ tuần tự UML có toán tử alt và opt.3 Ví dụ biểu đồ tuần tự UML có toán tử loop và break.4 Ví dụ biểu đồ tuần tự UML có toán tử par và seq.5 Ví dụ biểu đồ tuần tự UML có toán tử strict và critical.6 Ví dụ biểu đồ tuần tự UML có toán tử ignore và consider.7 Ví dụ biểu đồ tuần tự UML có toán tử negative và assert.8 Ví dụ biểu đồ lớp.9 Các loại nút của đồ thị dòng điều khiển .10 Các hướng tiếp cận của sinh dữ liệu kiểm thử tự động [99].11 Phân loại các công cụ sinh kiểm thử tự động [40].1 Sinh ca kiểm thử sử dụng kiểm chứng mô hình theo cách tiếp cận [17].2 Các bước cơ bản sinh các dữ liệu kiểm thử.3 Ví dụ biểu đồ tuần tự UML.4 File xmi sau khi chuẩn hóa mô tả dữ liệu của biểu đồ tuần tự trong Hình 3.5 Chuyển từ biểu đồ tuần tự sang CFG (của toán tử opt và alt).6 Chuyển từ biểu đồ tuần tự sang CFG (của toán tử break và loop).7 Chuyển từ biểu đồ tuần tự sang CFG (của toán tử par và seq).8 Chuyển từ biểu đồ tuần tự sang CFG (của toán tử strict và critical).624801 TIEU LUAN MOI download : skknchat@gmail.9 Chuyển từ biểu đồ tuần tự sang CFG (của toán tử ignore và consider).10 Chuyển từ biểu đồ tuần tự sang CFG (của toán tử assert và negative).11 Biểu đồ tuần tự của máy bán hàng tự động.12 Biểu đồ lớp của chức năng máy bán hàng tự động.13 Đồ thị dòng điều khiển của máy bán hàng tự động.14 Biểu đồ tuần tự với kiểu dữ liệu biến là cấu trúc động.15 Đồ thị dòng điều khiển với kiểu dữ liệu biến là cấu trúc động.16 Đường dẫn con P1 thực thi.17 Đường dẫn con P2 thực thi.18 Đường dẫn con P3 thực thi.19 Kiến trúc thực thi của SequenceTesting.1 Toán tử lặp chuyển sang CFG.2 Toán tử song song chuyển sang CFG.3 Quá trình sinh dữ liệu kiểm thử: phát triển từ [75] cho vòng lặp.4 Tính điểm chia split phụ thuộc các miền giá trị của biến trong [75].5 Biểu đồ tuần tự của chức năng chuyển tiền trong hệ thống ngân hàng.6 Biểu đồ lớp và ràng buộc OCL cho chức năng chuyển tiền.7 Đồ thị dòng điều khiển của chức năng chuyển tiền.8 Kiến trúc phát triển của công cụ SequenceConcur.1 Kiến trúc của Bộ giải Z3–str trong [114].2 Biểu đồ tuần tự cho chức năng kiểm tra thông tin của một ứng dụng web.

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