Luận văn: Xây dựng Test Case tự động từ giao diện phần mềm (ĐHCN - ĐHQGHN)

Luận văn thạc sĩ: Nghiên cứu xây dựng ca kiểm thử tự động từ giao diện phần mềm. Giải pháp nâng cao hiệu quả kiểm thử, giảm chi phí phát triển phần mềm.

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Luận văn thạc sĩ

2011

55
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

DANH MỤC CÁC KÝ HIỆU THUẬT NGỮ VIẾT TẮT

DANH MỤC CÁC HÌNH VẼ

DANH MỤC CÁC BẢNG

1. Tổng quan về kiểm thử và kiểm thử tự động

1.1. Kiểm thử phần mềm

1.1.1. Khái niệm kiểm thử phần mềm

1.1.2. Mục tiêu kiểm thử

1.1.3. Luồng thông tin kiểm thử

1.2. Kiểm thử tự động

1.2.1. Khái niệm kiểm thử tự động

1.2.2. Lợi ích và hạn chế của kiểm thử tự động

1.2.3. Phân loại công cụ kiểm thử tự động

2. Phương pháp sinh ca kiểm thử tự động

2.1. Phương pháp sinh Test Case tự động dựa trên đặc tả

2.1.1. Phương pháp sinh Test Case dựa trên đặc tả SCR

2.1.2. Phương pháp sinh Test Case dựa trên đặc tả UML

2.2. Phương pháp sinh Test Case tự động dựa trên Mô hình

2.2.1. Phương pháp sinh Test Case dựa trên biểu đồ cộng tác UML

2.2.2. Phương pháp sinh Test Case tự động dựa trên lược đồ Use case

2.3. Phương pháp sinh Test Case tự động từ giao diện

2.4. Tổ hợp kiểm thử

2.4.1. Tham số và mức

2.4.2. Tổ hợp các tham số

2.4.3. Qui trình thiết kế tổ hợp kiểm thử

3. Áp dụng phương pháp sinh Test Case từ giao diện với ví dụ cụ thể

3.1. Kiểm thử form Login

3.2. Kiểm thử form Lương Cơ Bản

4. Công cụ hỗ trợ

4.1. Thiết kế chức năng

4.2. Thiết kế tổng quan

4.2.1. Biểu đồ Use case

4.2.2. Biểu đồ hoạt động

4.3. Nhập tham số

4.4. Nhập kết quả

4.5. Nhập điều kiện

4.6. Sinh Test Case

4.7. Ưu, nhược điểm của công cụ

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng Quan Về Tự Động Tạo Test Case Từ Giao Diện GUI

Trong kỷ nguyên phát triển phần mềm nhanh chóng, việc đảm bảo chất lượng sản phẩm là vô cùng quan trọng. Một trong những yếu tố then chốt để đạt được điều này là kiểm thử phần mềm. Giao diện người dùng đồ họa (GUI) là cầu nối giữa người dùng và hệ thống. Việc kiểm thử GUI là bắt buộc để đảm bảo trải nghiệm người dùng tốt. Kiểm thử GUI theo cách thủ công tốn kém và dễ xảy ra sai sót. Tự động tạo Test Case từ giao diện là giải pháp tối ưu, giúp tiết kiệm thời gian, chi phí và nâng cao hiệu quả kiểm thử. Phương pháp này sử dụng các công cụ và kỹ thuật để tự động tạo ra các Test Case dựa trên giao diện của phần mềm. Nó giúp giảm thiểu công sức của kiểm thử viên, đồng thời đảm bảo độ bao phủ kiểm thử tốt hơn. Các công cụ tự động hóa kiểm thử giao diện ngày càng trở nên phổ biến, góp phần quan trọng vào quy trình phát triển phần mềm hiện đại. Các công cụ này có thể tự động thực hiện các thao tác như click chuột, nhập liệu, kiểm tra kết quả và tạo báo cáo. Sử dụng các công cụ này, bạn có thể tự động hóa quy trình kiểm thử và giảm bớt công việc thủ công, từ đó tập trung vào các khía cạnh quan trọng khác của dự án. Test Case Generation GUI là một lĩnh vực nghiên cứu và phát triển đầy tiềm năng, hứa hẹn mang lại nhiều lợi ích cho ngành công nghiệp phần mềm. Chi phí kiểm thử phần mềm thường chiếm tới 40% tổng các nỗ lực dành cho một dự án phát triển phần mềm. Vì thế, giảm chi phí cho việc tạo Test Case (thời gian, công sức) cũng là một trong những vấn đề được quan tâm trong kiểm thử phần mềm. Tự động hoá việc tạo Test Case không những giúp giảm chi phí trong việc tạo Test Case mà còn giúp đồng nhất hoá chất lượng Test Case.

1.1. Lợi Ích Của Tự Động Hóa Kiểm Thử Giao Diện UI

Việc tự động hóa kiểm thử giao diện mang lại nhiều lợi ích thiết thực. Thứ nhất, nó giúp giảm thời gian và chi phí kiểm thử. Các công cụ tự động có thể thực hiện các Test Case một cách nhanh chóng và chính xác, giảm thiểu sự can thiệp của con người. Thứ hai, nó giúp tăng độ bao phủ kiểm thử. Các công cụ tự động có thể thực hiện nhiều Test Case khác nhau, bao gồm cả các Test Case phức tạp mà kiểm thử viên có thể bỏ sót. Thứ ba, nó giúp cải thiện chất lượng phần mềm. Bằng cách phát hiện sớm các lỗi, tự động hóa kiểm thử giúp giảm thiểu rủi ro và đảm bảo chất lượng sản phẩm. Thứ tư, nó giúp tăng năng suất của kiểm thử viên. Bằng cách giảm bớt công việc thủ công, kiểm thử viên có thể tập trung vào các nhiệm vụ quan trọng hơn như thiết kế Test Case và phân tích kết quả. Tự động hóa việc tạo Test Case không những giúp giảm chi phí trong việc tạo Test Case mà còn giúp đồng nhất hoá chất lượng Test Case.

1.2. Các Thách Thức Trong Tạo Test Case Tự Động Từ GUI

Mặc dù mang lại nhiều lợi ích, tự động tạo Test Case từ GUI cũng đối mặt với một số thách thức. GUI làm cho việc kiểm thử hệ thống khó khăn hơn vì các nguyên nhân: do bản chất sự kiện điều khiển của GUI, các sự kiện không mong muốn, miền dữ liệu đầu vào/đầu ra vô hạn mà lập trình viên không lường trước được vì không thể kiểm thử tất cả các luồng dữ kiện. Thứ nhất, giao diện người dùng thường xuyên thay đổi, đòi hỏi các Test Case tự động phải được cập nhật thường xuyên để đảm bảo tính chính xác. Thứ hai, một số thành phần giao diện khó tự động hóa, chẳng hạn như các thành phần đồ họa phức tạp hoặc các thành phần sử dụng công nghệ mới. Thứ ba, việc tạo ra các Test Case tự động hiệu quả đòi hỏi kiến thức chuyên môn về kiểm thử phần mềm và các công cụ tự động hóa. Thứ tư, việc duy trì các Test Case tự động có thể tốn kém, đặc biệt là đối với các dự án lớn và phức tạp.

II. Phương Pháp Tạo Test Case Tự Động Hiệu Quả Từ GUI

Có nhiều phương pháp tạo Test Case tự động từ giao diện, mỗi phương pháp có ưu và nhược điểm riêng. Tổ hợp kiểm thử là tổ hợp của các mức tham số được sử dụng để sinh ra một hay nhiều Test Case. Với mỗi một Test Case, trình tự thực hiện các đầu vào phải được tester xác định. Trong phương pháp này, đầu tiên tester xác định tham số từ đó xác định miền giá trị có thể có của các tham số thông qua đặc tả. Từ đó sử dụng phương pháp thiết kế tổ hợp kiểm thử để tạo ra các Test Case. Phương pháp tổ hợp kiểm thử sẽ được mô tả chi tiết bên dưới. Theo tác giả Aditya P. Mathur trong cuốn Foundations of Software Testing: Fundamental Algorithms and Techniques, tổ hợp kiểm thử là một phương pháp có thể giảm chi phí và tăng tính hiệu quả của việc kiểm thử nhiều ứng dụng phần mềm. Các phương pháp tĩnh dựa trên thực thi các ký hiệu mô tả; phương pháp động đạt được từ dữ liệu cần thiết bằng việc chạy chương trình trong khi kiểm thử. Đã có nhiều nghiên cứu về việc sinh các Test Case tối ưu dựa trên các đặc tả, tuy nhiên, không thể đạt 100% các Test Case tối ưu.

2.1. Model Based Testing MBT cho Kiểm Thử GUI

Model-Based Testing (MBT) là một phương pháp sử dụng các mô hình để mô tả hành vi của hệ thống dưới dạng biểu đồ trạng thái, biểu đồ hoạt động hoặc các loại mô hình khác. Các Test Case sau đó được tự động tạo ra từ các mô hình này. MBT giúp giảm sự phụ thuộc vào kiến thức chuyên môn của kiểm thử viên và đảm bảo độ bao phủ kiểm thử tốt hơn. Hơn nữa, nó hỗ trợ việc tái sử dụng các Test Case và mô hình, giúp tiết kiệm thời gian và chi phí trong các dự án kiểm thử lớn. Việc xây dựng mô hình đúng đắn là yếu tố then chốt để MBT thành công.

2.2. Kỹ Thuật Dựa Trên Giao Diện Phần Mềm GUI Rip

Kỹ thuật này sử dụng một công cụ để "rip" giao diện của phần mềm, tạo ra một bản đồ của tất cả các thành phần giao diện và các sự kiện có thể xảy ra. Các Test Case sau đó được tạo ra bằng cách duyệt qua bản đồ này và tạo ra các chuỗi thao tác khác nhau. Phương pháp này phù hợp với các ứng dụng có giao diện đơn giản và dễ dự đoán. Nó cho phép nhanh chóng tạo ra một lượng lớn các Test Case, nhưng có thể không bao phủ hết tất cả các trường hợp kiểm thử quan trọng. Thông qua GUI, các tester có thể thực hiện kiểm thử hộp đen để tìm ra lỗi của phần mềm.

III. Công Cụ Tạo Test Case Tự Động Từ Giao Diện Phần Mềm Hàng Đầu

Hiện nay có rất nhiều công cụ tạo Test Case tự động từ giao diện, cả mã nguồn mở và thương mại. Selenium là một trong những công cụ phổ biến nhất, cho phép tự động hóa các thao tác trên trình duyệt web. Appium là một công cụ tương tự, nhưng hỗ trợ cả các ứng dụng di động. Ranorex là một công cụ thương mại mạnh mẽ, cung cấp nhiều tính năng cao cấp như nhận dạng đối tượng thông minh và hỗ trợ nhiều công nghệ khác nhau. Việc lựa chọn công cụ phù hợp phụ thuộc vào yêu cầu cụ thể của dự án và ngân sách của tổ chức. Phần mềm sinh Test Case giúp giảm thiểu công sức của kiểm thử viên, đồng thời đảm bảo độ bao phủ kiểm thử tốt hơn. Kiểm thử tự động có một số ưu điểm:  Tiết kiệm thời gian và chi phí Sau khi xây dựng, công cụ kiểm thử tự động có thể làm đi làm lại mà không mất thêm chi phí và nhanh hơn kiểm thử thủ công thông thường. Kiểm thử tự động có thể giảm thời gian kiểm thử từ thời lượng ngày, sang giờ. Tiết kiệm được thời gian tức là tiết kiệm được chi phí.

3.1. Selenium IDE và Selenium WebDriver Chi Tiết Ứng Dụng

Selenium IDE là một plugin trình duyệt đơn giản, cho phép ghi lại và phát lại các thao tác trên trình duyệt. Nó phù hợp cho việc tạo ra các Test Case đơn giản và nhanh chóng. Selenium WebDriver là một framework mạnh mẽ hơn, cho phép tương tác trực tiếp với trình duyệt thông qua mã. Nó hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép tạo ra các Test Case phức tạp hơn. Selenium Test Case Generation rất phổ biến và được sử dụng rộng rãi trong ngành công nghiệp phần mềm.

3.2. Appium Giải Pháp Kiểm Thử Ứng Dụng Di Động Tự Động

Appium là một framework mã nguồn mở để tự động hóa kiểm thử các ứng dụng di động trên nhiều nền tảng khác nhau như iOS và Android. Nó cho phép viết Test Case bằng nhiều ngôn ngữ lập trình khác nhau và chạy trên các thiết bị thực hoặc trình giả lập. Appium Test Case Generation giúp đảm bảo chất lượng và hiệu suất của các ứng dụng di động.

IV. Ứng Dụng Thực Tế Của Tự Động Tạo Test Case Từ GUI

Các phương pháp và công cụ tự động tạo Test Case từ GUI được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau. Trong lĩnh vực thương mại điện tử, nó được sử dụng để kiểm tra các chức năng như đăng nhập, tìm kiếm sản phẩm, thêm sản phẩm vào giỏ hàng và thanh toán. Trong lĩnh vực ngân hàng, nó được sử dụng để kiểm tra các chức năng như chuyển khoản, thanh toán hóa đơn và xem lịch sử giao dịch. Trong lĩnh vực y tế, nó được sử dụng để kiểm tra các chức năng như đặt lịch hẹn, xem kết quả xét nghiệm và quản lý hồ sơ bệnh nhân. Test Case Management System giúp quản lý và theo dõi các Test Case, đảm bảo tính hiệu quả của quy trình kiểm thử. Kiểm thử tự động tăng phạm vi của kiểm thử từ đó cải thiện chất lượng phần mềm. Kiểm thử tự động có thể thực hiện những công việc mà kiểm thử thủ công không làm được, như chạy trên nhiều máy tính với cấu hình khác nhau. Kiểm thử tự động có thể “nhìn” bên trong của ứng dụng, xem nội dung của bộ nhớ, bảng dữ liệu, nội dung tập tin và trạng thái của chương trình để xác định xem sản phẩm có đáp ứng được mong đợi không.

4.1. Tự Động Hóa Kiểm Thử Form Đăng Nhập Ví Dụ Cụ Thể

Việc tự động hóa kiểm thử form đăng nhập là một ví dụ điển hình về ứng dụng của các phương pháp tạo Test Case tự động. Các Test Case có thể bao gồm các trường hợp như đăng nhập thành công với tên người dùng và mật khẩu hợp lệ, đăng nhập thất bại với tên người dùng hoặc mật khẩu không hợp lệ, đăng nhập với tên người dùng hoặc mật khẩu trống, và đăng nhập với các ký tự đặc biệt. Bằng cách tự động hóa các Test Case này, bạn có thể đảm bảo rằng chức năng đăng nhập hoạt động chính xác và an toàn.

4.2. Tự Động Kiểm Tra Luồng Thanh Toán Trong E Commerce

Kiểm tra luồng thanh toán trong thương mại điện tử là một nhiệm vụ quan trọng để đảm bảo trải nghiệm mua sắm trực tuyến suôn sẻ cho khách hàng. Tự động hóa kiểm thử cho phép kiểm tra nhiều kịch bản khác nhau, chẳng hạn như thêm sản phẩm vào giỏ hàng, nhập thông tin giao hàng và thanh toán, xác nhận đơn hàng và theo dõi trạng thái giao hàng. Điều này giúp phát hiện sớm các lỗi và đảm bảo tính ổn định của hệ thống thanh toán. Sử dụng CI/CD Pipeline Integration Testing giúp tích hợp quy trình kiểm thử vào quy trình phát triển liên tục.

V. Tương Lai Của Tự Động Tạo Test Case Từ Giao Diện GUI

Lĩnh vực tự động tạo Test Case từ GUI đang phát triển nhanh chóng, với nhiều nghiên cứu và phát triển mới đang được tiến hành. Các xu hướng chính bao gồm sử dụng trí tuệ nhân tạo (AI) và học máy (ML) để tạo ra các Test Case thông minh hơn, có khả năng tự động học hỏi và thích nghi với các thay đổi của giao diện. Một xu hướng khác là phát triển các công cụ tự động hóa có khả năng tích hợp với nhiều công cụ và nền tảng khác nhau, tạo ra một quy trình kiểm thử liền mạch. UI Testing Automation sẽ ngày càng trở nên quan trọng trong tương lai, giúp các tổ chức phát triển phần mềm nhanh hơn và hiệu quả hơn. Chi phí kiểm thử phần mềm thường chiếm tới 40% tổng các nỗ lực dành cho một dự án phát triển phần mềm. Vì thế, các nhà nghiên cứu và người thực hành đã cố gắng phát triển một số thế hệ các công cụ kiểm thử tự động khác nhau để giúp giảm thiểu chi phí này.

5.1. AI và Machine Learning Trong Test Case Generation

Việc sử dụng AI và ML trong Test Case Generation hứa hẹn sẽ mang lại những đột phá lớn. Các thuật toán ML có thể được sử dụng để phân tích dữ liệu từ các Test Case hiện có và tạo ra các Test Case mới có khả năng phát hiện lỗi cao hơn. AI có thể được sử dụng để tự động tạo ra các Test Case dựa trên mô tả tự nhiên của yêu cầu phần mềm. Điều này giúp giảm sự phụ thuộc vào kiến thức chuyên môn của kiểm thử viên và tăng tính linh hoạt của quy trình kiểm thử. Test Case Generation Algorithms sử dụng AI và ML sẽ giúp tạo ra các Test Case thông minh hơn.

5.2. Tích Hợp và Tự Động Hóa Quy Trình Phát Triển Phần Mềm

Trong tương lai, các công cụ tự động tạo Test Case sẽ được tích hợp chặt chẽ hơn vào quy trình phát triển phần mềm, từ giai đoạn thiết kế đến giai đoạn triển khai. Điều này sẽ giúp phát hiện sớm các lỗi và giảm thiểu chi phí sửa chữa. Việc sử dụng CI/CD Pipeline Integration Testing sẽ trở nên phổ biến hơn, cho phép tự động chạy các Test Case sau mỗi lần thay đổi mã và cung cấp phản hồi nhanh chóng cho các nhà phát triển. Điều này giúp đảm bảo chất lượng phần mềm và tăng tốc độ phát triển. Code Generation from UI sẽ trở thành một phần quan trọng của quy trình phát triển phần mềm.

24/09/2025

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

Chương 1 Tổng quan về kiểm thử và kiểm thử tự động 1. Kiểm thử phần mềm 1. Khái niệm kiểm thử phần mềm Kiểm thử phần mềm là hoạt động khảo sát thực tiễn sản phẩm hay dịch vụ phần mềm trong đúng môi trường chúng dự định sẽ được triển khai nhằm cung cấp cho người có lợi ích liên quan những thông tin về chất lượng của sản phẩm hay dịch vụ phần mềm ấy. Mục đích của kiểm thử phần mềm là tìm ra các lỗi hay khiếm khuyết phần mềm nhằm đảm bảo hiệu quả hoạt động tối ưu của phần mềm trong nhiều ngành khác nhau.

Theo Glen Myers: Kiểm thử phần mềm là quá trình vận hành chương trình để tìm ra lỗi [12]. Vấn đề đặt ra là: Cần vận hành như thế nào để hiệu suất tìm ra lỗi là cao nhất và chi phí (công sức, thời gian) là ít nhất. Mục tiêu kiểm thử Các nguyên tắc được xem như mục tiêu kiểm thử là: Kiểm thử là một quá trình thực thi chương trình với mục đích tìm lỗi. Một trường hợp kiểm thử tốt là trường hợp kiểm thử mà có khả năng cao việc tìm thấy các lỗi chưa từng được phát hiện.

Một kiểm thử thành công là kiểm thử mà phát hiện lỗi chưa từng được phát hiện. Luồng thông tin kiểm thử Luồng thông tin cho kiểm thử được biểu diễn bởi mô hình trong hình 1. Hai kiểu của đầu vào được truyền cho quá trình kiểm thử: Cấu hình phần mềm: gồm các đặc tả yêu cầu, đặc tả thiết kế, và mã nguồn. Cấu hình kiểm thử: gồm có kế hoạch kiểm thử, các thủ tục, trường hợp kiểm thử, và các công cụ kiểm thử.

TIEU LUAN MOI download : skknchat@gmail.1 Luồng thông tin kiểm thử 1. Kiểm thử tự động 1. Khái niệm kiểm thử tự động Trong hầu hết các mô hình phát triển phần mềm, “lập trình – phát triển – sửa lỗi” có thể lặp đi lặp lại rất nhiều lần trước khi phát hành, tuy nhiên hầu hết trong số chúng vẫn tồn tại lỗi. Mặc dù nhóm phát triển đã cố gắng phát hiện và sửa lỗi thông qua kiểm thử thủ công nhưng lỗi luôn tiềm ẩn và xuất hiện trở lại.

Kiểm thử tự động là cách tốt nhất để nâng cao hiệu quả của kiểm thử phần mềm. Kiểm thử thủ công được thực hiện bởi kiểm thử viên thông qua việc quan sát ứng dụng trên màn hình, từ dữ liệu đầu vào, so sánh dữ liệu nhận được với kết quả mong đợi và lưu lại. Kiểm thử thủ công được lặp đi lặp lại trong suốt vòng đời phát triển của phần mềm, mỗi khi có sự thay đổi về mã nguồn chương trình, sự thay đổi về môi trường, phần cứng đều phải tiến hành kiểm thử lại. Nếu một phần mềm phải thực hiện vài nghìn Test Case thì có thể chỉ đủ thời gian thực hiện số Test Case ấy 1 lần, tuy nhiên, để đảm bảo phần mềm khi phát hành không có lỗi, nhóm phát triển phải kiểm thử rất nhiều lần để kiểm tra xem lỗi tìm ra trong lần kiểm thử trước đó đã được sửa hay chưa và đảm bảo không có lỗi mới phát sinh.

Kiểm thử tự động có thể giải quyết vấn đề này. Kiểm thử tự động phần mềm là tiến trình thực hiện một cách tự động một số bước của các ca kiểm thử, bằng cách sử dụng một công cụ nhằm rút ngắn thời gian và công sức kiểm thử [1]. Công cụ kiểm thử tự động có thể thực hiện lại các hành động được xác định trước, so sánh với kết qua mong đợi và ghi lại kết quả. Để kiểm thử tự động cần thực hiện các công việc sau [1]: - Thu thập các đặc tả yêu cầu hoặc các ca kiểm thử, lựa chọn những phần cần thực hiện kiểm thử tự động.

TIEU LUAN MOI download : skknchat@gmail.com 5 - Phân tích và thiết kế mô hình cho kiểm thử tự động. - Sử dụng công cụ để tiến hành kiểm thử, với các bước cho ở bảng sau: Bước Nội dung thực hiện Mô tả 1 Tạo testScript Sử dụng công cụ kiểm thử để ghi lại các thao tác lên phần mềm và sinh tự động các testScript 2 Chỉnh sửa testScript Chỉnh testScript để thực hiện kiểm tra đúng yêu cầu đặt ra, tức alf làm theo ca kiểm thử cần thực hiện. 3 Chạy testScript Vận hành và giám sát hoạt động kiểm tra phần mềm bằng testScript 4 Đánh giá kết quả Kiểm tra kết quả sau khi thực hiện kiểm thử tự động. Bổ sung, chỉnh sửa những sai sót nếu cần.1 Các bước sử dụng công cụ để tiến hành kiểm thư tự động 1.

Lợi ích và hạn chế của kiểm thử tự động Kiểm thử tự động có một số ưu điểm:  Tiết kiệm thời gian và chi phí Sau khi xây dựng, công cụ kiểm thử tự động có thể làm đi làm lại mà không mất thêm chi phí và nhanh hơn kiểm thử thủ công thông thường. Kiểm thử tự động có thể giảm thời gian kiểm thử từ thời lượng ngày, sang giờ. Tiết kiệm được thời gian tức là tiết kiệm được chi phí.  Tăng độ chính xác Ngay cả những kiểm thử viên nhiều kinh nghiệm cũng có thể có những sai lầm khi thực hiện kiểm thử thủ công.

Kiểm thử tự động sẽ thực hiện các bước một cách chính xác vào mọi thời điểm và luôn ghi lại kết quả kiểm thử.  Tăng độ bao phủ của kiểm thử Kiểm thử tự động tăng phạm vi của kiểm thử từ đó cải thiện chất lượng phần mềm. Kiểm thử tự động có thể thực hiện những công việc mà kiểm thử thủ công không làm được, như chạy trên nhiều máy tính với cấu hình khác nhau. Kiểm thử tự động có thể “nhìn” bên trong của ứng dụng, xem nội dung của bộ nhớ, bảng dữ liệu, nội dung tập tin và trạng thái của chương trình để xác định xem sản phẩm có đáp ứng được mong đợi không.

Kiểm thử tự động có thể thực hiện hàng nghìn Test Case phức tạp một cách dễ dàng trong suốt thời gian kiểm thử để bao phủ hết tất cả các trường hợp. TIEU LUAN MOI download : skknchat@gmail.com 6  Kiểm thử tự động làm những việc mà kiểm thử thủ công không làm được Với một công ty phần mềm lớn nhất cũng không thể thực hiện việc kiểm soát ứng dụng web với hàng nghìn người truy cập cùng 1 lúc. Kiểm thử tự động có thể mô phỏng hàng chục, hàng trăm hay thậm chí hàng nghìn người sử dụng ảo tương tác với mạng hay ứng dụng web. Bên cạnh đó cũng có những khó khăn cơ bản sau [1]: - Cần chi phí để tạo và bảo trì các đặc tả kiểm thử (script).

- Đòi hỏi kỹ thuật viên phải có kĩ năng sử dụng công cụ tạo script. - Không áp dụng được trong việc tìm lỗi mới của phần mềm. Phân loại công cụ kiểm thử tự động Chi phí kiểm thử phần mềm thường chiếm tới 40% tổng các nỗ lực dành cho một dự án phát triển phần mềm. Vì thế, các nhà nghiên cứu và người thực hành đã cố gắng phát triển một số thế hệ các công cụ kiểm thử tự động khác nhau để giúp giảm thiểu chi phí này.

Chúng bao gồm: - Bộ phân tích tĩnh. Các hệ thống phân tích chương trình hỗ trợ cho “việc chứng minh” các lỹ lẽ tĩnh để phát hiện những vấn đề yếu kém về cấu trúc và định dạng của chương trình. - Bộ kiểm toán mã. Những bộ lọc chuyên dụng dùng để kiểm tra chất lượng chương trình để đảm bảo rằng, nó đáp ứng các chuẩn mã hoá tối thiểu.

- Bộ xử lý khẳng định. Những hệ thống tiền xử lý/hậu xử lý này được sử dụng để cho biết liệu những mệnh đề do người lập trình tạo ra, được gọi là khẳng định về hành vi của chương trình có thực sự đáp ứng được yêu cầu khi thực hiện chương trình hay không. - Bộ sinh tệp kiểm thử. Những bộ xử lý sinh ra và điền các giá trị đã xác định vào các tệp để chương trình đọc vào khi kiểm thử.

- Bộ sinh dữ liệu kiểm thử. Những hệ thống phân tích hỗ trợ cho người dùng trong việc lựa chọn dữ liệu kiểm thử làm cho chương trình hành xử theo một cách cụ thể. - Bộ kiểm chứng kiểm thử. Chúng đo mức bao quát của việc kiểm thử bên trong, thường liên quan tới cấu trúc điều khiển của sự vật kiểm thử và báo cáo về giá trị bao quát cho chuyên gia đảm bảo chất lượng.

- Bộ mô phỏng môi trường. Nó là một hệ thống dựa trên máy tính giúp người kiểm thử mô hình hoá môi trường bên ngoài của hệ thời gian thực để mô phỏng các điều kiện vận hành thực một cách động. - Bộ phân tích luồng dữ liệu. Công cụ này theo dõi dấu vết luồng dữ liệu đi qua hệ thống (tương tự như bộ phân tích đường đi) và cố gắng tìm ra những TIEU LUAN MOI download : skknchat@gmail.com 7 tham chiếu dữ liệu không xác định, đặt chỉ số sai và các lỗi khác có liên quan tới dữ liệu.

Việc dùng công cụ để tự động hoá kiểm thử phần mềm đang phát triển, và có thể sẽ phát triển rất nhanh trong thập kỉ tới. Các công cụ kiểm thử tạo ra những thay đổi lớn trong kiểm thử phần mềm, đem lại hiệu quả kinh tế cũng như cải tiến độ tin cậy của các hệ thống dựa trên máy tính một cách đáng kể. TIEU LUAN MOI download : skknchat@gmail.com 8 Chương 2 Phương pháp sinh ca kiểm thử tự động Ca kiểm thử (Test Case) là một thành phần mô tả đầu vào, hành động hoặc sự kiện và một kết quả mong đợi để xác định liệu một chức năng của ứng dụng đó làm việc đúng không. Một trong những lý do quan trọng nhất trong kiểm thử phần mềm là thiết kế và tạo ra các Test Case có hiệu quả.

Chi phí kiểm thử phần mềm thường chiếm tới 40% tổng các nỗ lực dành cho một dự án phát triển phần mềm. Vì thế, giảm chi phí cho việc tạo Test Case (thời gian, công sức) cũng là một trong những vấn đề được quan tâm trong kiểm thử phần mềm. Tự động hoá việc tạo Test Case không những giúp giảm chi phí trong việc tạo Test Case mà còn giúp đồng nhất hoá chất lượng Test Case. Có hai phương pháp tạo Test Case tự động: phương pháp tĩnh và phương pháp động.

Phương pháp tĩnh dựa trên thực thi các ký hiệu mô tả; phương pháp động đạt được từ dữ liệu cần thiết bằng việc chạy chương trình trong khi kiểm thử. Đã có nhiều nghiên cứu về việc sinh các Test Case tối ưu dựa trên các đặc tả, tuy nhiên, không thể đạt 100% các Test Case tối ưu.

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