Luận Văn Thạc Sĩ Kỹ Thuật Viễn Thông: Nghiên Cứu Phát Triển Phần Mềm Tự Động Kiểm Định Ứng Dụng

Luận văn thạc sĩ kỹ thuật phân tích kỹ thuật viễn thông nghiên cứu phát triển phần mềm tự động kiểm định ứng dụng, đánh giá thực trạng, chỉ ra hạn chế, đề xuất giải pháp khả thi

Người đăng

Ẩn danh

Thể loại

luận văn thạc sĩ

2016

135
2
0

Phí lưu trữ

35 Point

Tóm tắt

I. Giới thiệu

Chương 1 của Luận Văn Thạc Sĩ Kỹ Thuật Viễn Thông giới thiệu tổng quan về khái niệm tự động kiểm định (automated testing). Mục đích nghiên cứu của đề tài là xây dựng một hệ thống phần mềm tự động kiểm định ứng dụng hiệu quả, tiết kiệm thời gian và chi phí. Kiểm tra thủ công (manual testing) đòi hỏi nhiều nguồn lực và dễ gây lỗi, trong khi kiểm tra tự động (automated testing) giúp tăng tốc độ, độ chính xác và khả năng mở rộng. Đề tài tập trung vào việc phát triển một hệ thống tự động hóa đơn giản nhưng hiệu quả, với mã nguồn mở để cộng đồng có thể phát triển thêm.

1.1. Tổng quan

Kiểm tra thủ công là quá trình con người thực hiện từng bước kiểm tra ứng dụng. Kiểm tra tự động sử dụng công cụ tự động để thực hiện các bước kiểm tra, so sánh kết quả và tạo báo cáo. Tự động hóa kiểm tra giúp tiết kiệm thời gian, chi phí và nâng cao hiệu suất. Các trường hợp phù hợp cho kiểm tra tự động bao gồm các tác vụ lặp lại, phức tạp hoặc tốn thời gian. Tuy nhiên, các tác vụ mới hoặc thường xuyên thay đổi không phù hợp với kiểm tra tự động.

1.2. Mục đích nghiên cứu

Mục đích của đề tài là xây dựng một hệ thống tự động kiểm định đơn giản, hiệu quả và có mã nguồn mở. Hệ thống này đáp ứng các yêu cầu cơ bản của kiểm tra tự động, bao gồm việc xác định các thành phần giao diện (UI Element), tạo kịch bản (script) và thực thi các lệnh kiểm tra. Đề tài cũng hướng đến việc ứng dụng thực tế, như đo thời gian quay số kết nối trong hệ thống tổng đài Voice IP.

II. Lý thuyết tổng quan và tình hình nghiên cứu

Chương 2 trình bày các lý thuyết nền tảng và tình hình nghiên cứu trong lĩnh vực kiểm tra tự động. Đề tài tập trung vào hai mảng chính: kiểm tra tự động trên nền Windowskiểm tra tự động trên nền Web. Công nghệ User Interface Automation (UIA) của Microsoft được giới thiệu chi tiết, cùng với hệ thống Selenium cho kiểm tra tự động trên web. Chương này cũng so sánh các hệ thống kiểm tra tự động nổi tiếng như HP Quick Test ProSelenium, đồng thời giới thiệu về trình biên dịch và cách ứng dụng vào hệ thống tự động kiểm định.

2.1. Công nghệ Automation trên Windows

Công nghệ User Interface Automation (UIA) của Microsoft kế thừa từ MS Active Accessibility (MSAA), cung cấp khả năng truy cập và tương tác với các thành phần giao diện (UI Element) trên nền Windows. UIA hỗ trợ các loại điều khiển (Control Types) và kiểu điều khiển (Control Patterns), giúp xác định và tương tác với các thành phần giao diện một cách chính xác. Đề tài sử dụng UIA để xây dựng hệ thống tự động kiểm định trên các ứng dụng Windows.

2.2. Hệ thống Automation trên Web

Hệ thống Selenium là một công cụ mã nguồn mở phổ biến cho kiểm tra tự động trên web. Selenium hỗ trợ nhiều trình duyệt và cung cấp các công cụ như Selenium WebDriverSelenium IDE để tạo và thực thi các kịch bản kiểm tra. Đề tài so sánh Selenium với HP Quick Test Pro, một công cụ thương mại, và nhấn mạnh ưu điểm của Selenium về tính linh hoạt và chi phí thấp.

III. Cấu trúc giải thuật và kết quả thực hiện

Chương 3 trình bày cấu trúc giải thuật của hệ thống tự động kiểm định và kết quả thực hiện. Hệ thống bao gồm hai phần chính: phần bắt các thành phần giao diện (UI Element) và phần trình biên dịch để thực thi các kịch bản kiểm tra. Đề tài đã thử nghiệm hệ thống trên các ứng dụng như CalculatorSoftphone 3CX, đạt được kết quả khả quan trong việc tự động hóa quy trình kiểm tra.

3.1. Cấu trúc chương trình

Hệ thống tự động kiểm định bao gồm hai phần chính: phần bắt các thành phần giao diện (UI Element) và phần trình biên dịch. Phần bắt UI Element sử dụng công nghệ UIA để xác định và tương tác với các thành phần giao diện. Phần trình biên dịch đọc và thực thi các kịch bản kiểm tra, bao gồm các lệnh cơ bản như RunApp, GetID, PushID, và lệnh điều kiện If.

3.2. Kết quả thực hiện

Hệ thống đã được thử nghiệm trên các ứng dụng CalculatorSoftphone 3CX. Kết quả cho thấy hệ thống có khả năng tự động hóa quy trình kiểm tra một cách hiệu quả, tiết kiệm thời gian và nâng cao độ chính xác. Hệ thống cũng ghi nhận các bước thực hiện trong quá trình kiểm tra, giúp người dùng dễ dàng kiểm tra và xử lý lỗi.

IV. Kết luận và hướng phát triển

Chương 4 tổng kết các kết quả đạt được và đề xuất hướng phát triển cho hệ thống tự động kiểm định. Đề tài đã xây dựng thành công một hệ thống đơn giản nhưng hiệu quả, với mã nguồn mở để cộng đồng có thể phát triển thêm. Hướng phát triển trong tương lai bao gồm mở rộng hỗ trợ cho các loại điều khiển khác, bổ sung thêm các lệnh kiểm tra và xây dựng hệ thống báo cáo chuyên nghiệp hơn.

4.1. Kết quả đạt được

Đề tài đã xây dựng thành công một hệ thống tự động kiểm định trên nền Windows, với khả năng xác định và tương tác với các thành phần giao diện (UI Element) một cách chính xác. Hệ thống cũng bao gồm một trình biên dịch để thực thi các kịch bản kiểm tra, giúp tự động hóa quy trình kiểm tra ứng dụng.

4.2. Hướng phát triển

Hướng phát triển trong tương lai bao gồm mở rộng hỗ trợ cho các loại điều khiển khác, bổ sung thêm các lệnh kiểm tra và xây dựng hệ thống báo cáo chuyên nghiệp hơn. Đề tài cũng hướng đến việc ứng dụng hệ thống tự động kiểm định trong nhiều lĩnh vực khác nhau, như kiểm định sản phẩm phần mềm và tự động hóa các ứng dụng trên Windows.

21/02/2025

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

Chương 1 mục 1.1 giới thiệu tổng quan về khái niệm automated testing.2 trình bày mục đích nghiên cứu của đề tài, các yêu cầu đặt ra, các tính năng đã đạt được, cũng như khả năng mở rộng trong tương lai. Mục này có một số từ thuật ngữ liên quan được trình bày chi tiết trong chương 2.1 Tổng quan Kiểm tra thủ công (manual testing) là hoạt động của con người trước máy tính cẩn thận thực hiện kiểm tra từng bước một. Tự động hóa kiểm tra (automated testing) có nghĩa là dùng công cụ tự động để thực hiện công việc kiểm tra, kiểm định. Phần mềm tự động có thể nhập dữ liệu kiểm tra, chạy các bước theo quy trình, so sánh kết quả thực tế với kết quả dự kiến và phát sinh ra báo cáo kiểm định.

Kiểm tra yêu cầu việc đầu tư đáng kể tiền bạc và nguồn nhân lực. Dùng công cụ kiểm tra tự động có thể ghi nhận lại quá trình kiểm tra và chạy lại nếu có yêu cầu. Một khi việc kiểm tra được tự động hóa, không cần có sự can thiệp của con người. Tại sao dùng test automation: • Kiểm tra thủ công tốn thời gian, chi phí và nguồn lực.

• Khó khăn để kiểm tra nhiều ứng dụng một lúc thủ công. • Tự động không yêu cầu sự can thiệp của con người, có thể chạy bất cứ lúc nào (chạy qua đêm chẳng hạn). • Kiểm tra tự động tăng tốc độ kiểm tra ứng dụng, tăng phạm vi kiểm tra. • Kiểm tra thủ công có thể dẫn đến sự lặp lại nhàm chán và phát sinh lỗi.

Các trường hợp có thể kiểm tra tự động: • Các trường hợp kiểm tra có tính lặp lại. • Các trường hợp kiểm tra khó thực hiện thủ công hoặc rất chán ngắt cho con người. • Các trường hợp kiểm tra tiêu tốn quá nhiều thời gian. Các trường hợp không thích hợp cho việc kiểm tra tự động: • Các công việc mới và chưa thực hiện thủ công ít nhất một lần.

• Các công việc yêu cầu thay đổi thường xuyên. GVHD: LƯU THANH TRÀ HVTH: LÊ TRƯỜNG ANH TIẾN LUẬN VĂN TỐT NGHIỆP 10 Các lợi ích của việc kiểm tra tự động: • Nhanh hơn kiểm tra thủ công rất nhiều lần. • Kết quả đáng tin cậy. • Kết quả đảm bảo tính nhất quán.

• Tiết kiệm thời gian và tiền bạc. • Đảm bảo sự chính xác cao. • Không cần sự can thiệp của con người. • Nâng cao hiệu suất.

• Các kịch bản kiểm tra có thể sử dụng lại. • Có thể kiểm tra một cách thường xuyên.2 Mục đích nghiên cứu đề tài Có nhiều ứng dụng test automation hiện nay trên thị trường rất mạnh và nhiều tính năng phong phú. Tuy nhiên, các phần mềm này có thu phí bản quyền hàng năm và chi phí sử dụng rất đắt. Mục đích nghiên cứu của đề tài là xây dựng ứng dụng test automation đơn giản nhưng hiệu quả.

Đáp ứng yêu cầu cơ bản của một hệ thống tự động kiểm định, kiểm tra nhưng phần mã nguồn mở, công khai cho mọi người. Có thể dựa vào nghiên cứu và sử dụng mã nguồn này để từ đó phát triển thêm, tạo nên một hệ thống hoàn thiện sau này.1 Yêu cầu Có nhiều loại test automation khác nhau trong nhiều lĩnh vực khác nhau. Mục đích nghiên cứu của đề tài là xây dựng một hệ thống test automation trên ứng dụng Windows gồm 2 phần chính: • Phần bắt các UI Element (User Interface Element) trên ứng dụng test một cách chính xác, kết hợp với một số lệnh để tương tác với Element này tạo thành một kịch bản (script) để tùy biến thực hiện nhiều việc khác nhau, kết hợp với lệnh điều kiện If tùy theo giá trị thực tế trả về như thế nào sẽ có hành động khác nhau phù hợp. Script là ngôn ngữ được thể hiện với những câu lệnh đơn giản và lưu ở định dạng văn bản dễ đọc.

Ví dụ test automation trên web: tự động điền username, điền password và nhấn nút đăng nhập GVHD: LƯU THANH TRÀ HVTH: LÊ TRƯỜNG ANH TIẾN LUẬN VĂN TỐT NGHIỆP 11 trên một website. Tùy theo giá trị trả về là đăng nhập thành công hay thất bại ta sẽ có các bước tiếp theo khác nhau. • Phần biên dịch, đọc và phân tích các lệnh từ file script. Trình biên dịch thực hiện chức năng phân tích từ vựng và phân tích cấu trúc ngữ pháp của từng dòng lệnh, từ đó chạy các dòng lệnh trong file scrip theo nội dung yêu cầu.

Đồng thời cũng có hệ thống logs ghi nhận lại các bước chạy thành công hoặc thất bại để người sử dụng kiểm tra và xử lý.2 Tính năng Đề tài phát triển một hệ thống tự động kiểm định (test automation) có các tính năng như sau: • Xác định và highlight các thành phần UI (UI Element) theo vị trí và kích thước trên ứng dụng cần test. • Xác định được tất cả các đặc tính (Properties) của mỗi thành phần UI Elelement, sử dụng kết hợp một trong số những đặc tính này để xác định duy nhất một giá trị ID đại diện cho UI Element này. • Xây dựng các UI Element theo cấu trúc cây phân nhánh với gốc là desktop và các nhánh con là các UI Element thành phần. • Cơ chế tìm kiếm UI Element dựa theo chuỗi ID đã xác định từ gốc ứng dụng xuống các nhánh con nhanh và chính xác.

• Ghi nhận tương tác người sử dụng đối với các UI Element trên ứng dụng cần test theo 2 chế độ manual và tự động để lưu vào script. • Thực hiện được Invoke (click) đối với các UI Element có ControlType là button, lấy giá trị và đặt giá trị cho các ControlType là dạng text. • Xây dựng được một trình biên dịch gồm có phần phân tích từ vựng, phân tích cú pháp với cấu trúc lệnh rẽ nhánh có điều kiện If, kết hợp với một số lệnh tương tác cơ bản với UI Element. • Có hệ thống logs để lưu lại quá trình biên dịch nhằm mục đích kiểm tra và xác định lỗi.

GVHD: LƯU THANH TRÀ HVTH: LÊ TRƯỜNG ANH TIẾN LUẬN VĂN TỐT NGHIỆP 12 1.3 Độ phức tạp Để xây dựng một hệ thống test automation hoàn chỉnh, yêu cầu nhận diện, xác định và tương tác được tất cả các kiểu điều khiển (Control Pattern) của các thành phần UI Element như bảng 2. Phần trình biên dịch yêu cầu nhiều lệnh khác nhau để tương tác với mỗi UI Element khác nhau, cùng với nhiều lựa chọn và xuất kết quả báo cáo. Có một hệ thống báo cáo hoàn chỉnh, chi tiết để hỗ trợ người sử dụng.4 Mở rộng Hiện đề tài chỉ hỗ trợ kiểu điều khiển (Control Pattern) là InvokePattern và TextPattern. Có thể mở rộng cho tất cả các kiểu điều khiển trong bảng 2.

Mở rộng thêm nhiều lệnh cho trình biên dịch, cũng như các lệnh tùy chọn và xuất báo cáo. Mở rộng xây dựng một hệ thống báo cáo chuyên nghiệp hơn, hiệu quả, thân thiện với người sử dụng.5 Ứng dụng Ứng dụng cụ thể của đề tài trong việc kiểm định đo thời gian quay số kết nối giữa client và server trong hệ thống tổng đài Voice IP. Hệ thống sẽ tự động chạy ứng dụng softphone trên Windows, quay số kết nối đến tổng đài và chờ đến khi kết nối thành công hoặc thất bại trong khoảng thời gian cho phép. Việc kiểm tra tự động được thực hiện trên rất nhiều số điện thoại khác nhau sẽ tiết kiệm rất nhiều thời gian so với thao tác bằng tay, đây cũng là một ví dụ ứng dụng thực tế của hệ thống test automation.

Mở rộng việc ứng dụng hệ thống test automation cho nhiều mục đích khác nhau như tự động hóa kiểm định sản phẩm phần mềm, tự động hóa các chương trình ứng dụng trên Windows, các ứng dụng hỗ trợ người dùng, … 1.3 Phạm vi nghiên cứu và phương pháp nghiên cứu 1.1 Phạm vi nghiên cứu Giới hạn đối với các ứng dụng chạy trên môi trường Windows nền tảng WinForm, Dot Net và Windows Presentation Foundation (WPF). GVHD: LƯU THANH TRÀ HVTH: LÊ TRƯỜNG ANH TIẾN LUẬN VĂN TỐT NGHIỆP 13 Giới hạn thao tác đối với các điều khiển Control Type dạng nút nhấn (Button) và trường Edit box dạng text. Đối với trình biên dịch, xây dựng một số lệnh cơ bản để tương tác với ứng dụng cần test như: RunApp, GetID, PushID, WaitID, SetID, ShowID và lệnh điều kiện rẽ nhánh If.2 Phương pháp nghiên cứu Dùng công cụ lập trình Visual C# trong bộ Microsoft Visual Studio 2015, chỉ sử dụng các thư việc sẵn có của Microsoft. Ứng dụng chạy yêu cầu máy tính cài.

Đề tài được phát triển bởi tham khảo các tài liệu nghiên cứu, các sách kỹ thuật liên quan được giới thiệu trong phần tài liệu tham khảo; diễn đàn cho các nhà phát triển ứng dụng của công ty Microsoft. GVHD: LƯU THANH TRÀ HVTH: LÊ TRƯỜNG ANH TIẾN LUẬN VĂN TỐT NGHIỆP 14 Chương 2: Lý thuyết tổng quan và tình hình nghiên cứu Trong lĩnh vực automated software testing có hai mảng lớn là kiểm định tự động các ứng dụng trên nền Windows và trên nền Web. Chương 2 mục 2.1 trình bày chi tiết công nghệ User Interface Automation (UIA) của Microsoft trên nền Windows mà đề tài nghiên cứu. Tất cả các từ thuật ngữ viết tắt trong mục này được công ty Microsoft định nghĩa và sử dụng trong các tài liệu kỹ thuật của họ.2 trình bày hệ thống automation mã nguồn trên nền Web là Selenium cũng như một số ví dụ ứng dụng hệ thống này trong thực tế.3 so sánh các đặc điểm, tính năng, ưu khuyết điểm giữa hai hệ thống automated testing rất nổi tiếng hiện nay, HP Quick Test Pro là hệ thống được thương mại hóa và Selenium là một hệ thống mã nguồn mở.

Đối với một hệ thống automated testing, sau khi ghi nhận lại các thành phần giao diện của ứng dụng và các tương tác trên các thành phần này thành các dòng lệnh lưu vào một kịch bản dạng text đơn giản (file script), hệ thống cần phải có một trình biên dịch để dịch ngược lại các lệnh và thực thi các lệnh theo yêu cầu.1 chương 2 giới thiệu thế nào là một trình biên dịch cơ bản, mục 2.2 trình bày cách ứng dụng trình biên dịch vào hệ thống automated testing mà đề tài đang xây dựng.1 Giới thiệu công nghệ Automation trên Windows Công nghệ User Interface Automation (UIA) kế thừa MS Active Accessibility (MSAA) của Microsoft, cung cấp các truy cập có thể lập trình đến tất cả các thành phần giao diện người dùng (User Interface element – UI element) trên desktop, nhằm mục đích hỗ trợ người sử dụng (assistive) và tự động hóa kiểm tra (test automation). Hỗ trợ các ứng dụng được viết trên nền WPF, WinForm, ASP.NET, Win32, trong đó WPF mặc định hỗ trợ UIA.

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

Luận Văn Thạc Sĩ Kỹ Thuật Viễn Thông: Phát Triển Phần Mềm Tự Động Kiểm Định Ứng Dụng là một nghiên cứu chuyên sâu về việc xây dựng phần mềm tự động hóa quy trình kiểm định ứng dụng, giúp tối ưu hóa hiệu suất và độ tin cậy của các hệ thống phần mềm. Tài liệu này không chỉ cung cấp cái nhìn chi tiết về các phương pháp và công nghệ được áp dụng mà còn mang lại lợi ích thiết thực cho các nhà phát triển và kỹ sư phần mềm trong việc nâng cao chất lượng sản phẩm. Để mở rộng kiến thức về các ứng dụng tự động hóa và công nghệ liên quan, bạn có thể tham khảo thêm Luận văn thạc sĩ ứng dụng agent phần mềm trong tích hợp thông tin về phương tiện giao thông, Luận văn xây dựng chatbot bán hàng dựa trên mô hình sinh, và Luận văn thạc sĩ theo dõi các nguồn dữ liệu nhạy cảm trên thiết bị Android. Những tài liệu này sẽ giúp bạn hiểu rõ hơn về các xu hướng công nghệ hiện đại và cách chúng được áp dụng trong thực tế.