Lỗi xảy ra ở phiên bản 1

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp phân tích sự ảnh hưởng của các thành phần và ứng dụng cho kiểm thử hồi quy trong các dự án java EE luận văn ths máy tính 84801 (Trang 51)

Yêu cầu thứ nhất: Thêm trường cho bệnh nhân nội trú (In Patient) và ngoại trú (Out Patient) trong màn hình quản lý bệnh nhân. Nếu là bệnh nhân nội trú, bệnh nhân được phép thực hiện chức năng đặt phòng thông qua

Receptionist. Nếu bệnh nhân đăng ký ngoại trú sẽ không thể đặt phòng thành công.

Hình 4.5. Yêu cầu thêm mới cho giao diện quản lý bệnh nhân

Yêu cầu thứ hai: Thêm trường kiểm tra Health Insurance với các mức độ 1, 2, 3, 4 tương ứng việc giảm 10%, 20%, 30%, 40% số tiền mà bệnh nhân phải trả cho đặt phòng và mua thuốc.

Hình 4.6. Nghiệp vụ liên quan đến Health Insurance

Sau khi tiếp nhận yêu cầu của khách hàng và làm rõ yêu cầu, nhóm phát triển thực hiện triển khai và đưa ra một phiên bản mới. Kiểm thử viên thực hiện cập nhật các ca kiểm thử dựa theo yêu cầu thay đổi của khách hàng. Lúc này, mã nguồn của phiên bản mới sẽ được đưa vào công cụ JCIA để so sánh và phân tích sự ảnh hưởng từ các thay đổi.

Hình 4.7. Kết quả tập thay đổi và ảnh hưởng cho kiểm thử đơn vị

Từ kết quả trên, lập trình viên sẽ phải thực hiện kiểm thử đơn vị cho tất cả các hàm thay đổi và hàm bị ảnh hưởng để đảm bảo chất lượng cho phiên bản 2. Việc kiểm thử đơn vị có thể kết hợp với công cụ CTF4Junit, công cụ này hỗ trợ sinh ca kiểm thử cho đơn vị cho mã nguồn Java. Tuy nhiên, công cụ mới chỉ hỗ trợ một phần đối với các hàm với kiểu dữ liệu nguyên thủy.

Tiếp theo là kết quả phân loại kiểm thử hồi quy cho các thành phần giao diện (như Hình 4.9).

Hình 4.8. Kết quả tập thay đổi và ảnh hưởng cho kiểm thử giao diện

Từ kết quả trên, kiểm thử viên sẽ phải cập nhật các ca kiểm thử và chọn ra một bộ các các ca kiểm thử phù hợp để thực hiện kiểm thử hồi quy giao diện. Dựa vào kết quả đầu ra của công cụ JCIA mở rộng như Hình 4.10, các màn hình giao diện thay đổi và dự đoán thay đổi sẽ được kiểm thử để đảm bảo chất lượng của phiên bản mới. Việc kiểm thử giao diện được kết hợp với công cụ Ranorex,

công cụ này hỗ trợ kiểm thử giao diện tự động bằng kỹ thuật ghi lại và phát lại để kiểm thử tính chính xác giữa tương tác người dùng và giao diện.

Hình 4.9. Kết quả kiểm thử hồi quy giao diện với Ranorex

Hình 4.10. Kết quả tập thay đổi và ảnh hưởng cho kiểm thử tích hợp

4.3. Ý nghĩa của công cụ thực nghiệm

Công cụ JCIA mở rộng là một giải pháp nhằm hỗ trợ kiểm thử hồi quy cho các ứng dụng Web doanh nghiệp Java EE. Thực nghiệm cho thấy hướng phát triển tiềm năng của phương pháp đối với việc đảm bảo chất lượng phần mềm. Tuy phương pháp và công cụ vẫn còn một số hạn chế nhưng công cụ này vẫn có ý nghĩa quan trọng trong việc kiểm thử hồi quy. Công cụ này giúp tìm ra các thành phần bị ảnh hưởng từ các thành phần thay đổi và giúp nhóm phát triển cũng như kiểm thử viên có góc nhìn khách quan hơn trong việc phát triển ứng

rút ngắn thời gian cũng như nâng cao tính hiệu quả và chính xác trong quá trình kiểm thử các ứng dụng Web doanh nghiệp.

Khi sử dụng công cụ JCIA mở rộng, thay vì việc thực hiện lại toàn bộ các ca kiểm thử, chúng ta chỉ việc nén các tệp mã nguồn hai phiên bản khác nhau và cho vào công cụ để phân tích. Việc này giúp chúng ta giảm thiểu rủi ro, thời gian, công sức và chi phí thực hiện. Thực nghiệm cho thấy thay vì phải kiểm thử toàn bộ mã nguồn dự án (gồm 309 hàm trong mã nguồn Java và 35 tệp giao diện với mã nguồn JSP), kiểm thử viên chỉ cần tập trung kiểm thử lại 101 hàm (bao gồm 89 hàm cho kiểm thử đơn vị và 12 hàm cho kiểm thử tích hợp) và 15 tệp giao diện cho kiểm thử giao diện. Chi phí kiểm thử giảm (309+35-101- 15)/(309+35) = 66.3%.

Do đó, việc áp dụng công cụ để kiểm thử hồi quy mang lại rất nhiều lợi ích. Với ưu điểm đã nêu, trong tương lai công cụ có khả năng áp dụng hiệu quả cho các ứng dụng Web với các ngôn ngữ lập trình khác nhau.

Chƣơng 5. Kết luận

Luận văn đã cải tiến phương pháp và bộ công cụ phục vụ cho quy trình kiểm thử hồi quy để đảm bảo chất lượng mã nguồn các ứng dụng doanh nghiệp trên nền tảng và công nghệ Java EE. Các phương pháp được đề xuất bởi [2,5] tập trung phân tích chủ yếu cho mã nguồn Java. Tuy nhiên với các nền tảng khác nhau thì mã nguồn Java còn tương tác với các mã nguồn giao diện theo những cách khác nhau. Trong luận văn này, tác giả đã hoàn thành thêm chức năng cho bộ công cụ nhằm đáp ứng cho việc phân tích mã nguồn giao diện cho các ứng dụng sử dụng công nghệ Java Servlet. Bên cạnh đó, công cụ còn hỗ trợ phân loại kiểm thử hồi quy từ các thành phần thay đổi và ảnh hưởng bao gồm kiểm thử đơn vị, kiểm thử tích hợp và kiểm thử giao diện. Từ đó, đưa ra cái nhìn khách quan giữa kiểm thử viên và lập trình viên. Đối với các kiểm thử viên, họ có thể thực hiện kiểm thử hồi quy dựa trên mã nguồn hoặc đặc tả. Nếu kiểm thử hồi quy dựa trên đặc tả sẽ chọn ra các ca kiểm thử để thực hiện nếu nó liên quan đến phần đặc tả bị thay đổi, kỹ thuật này đòi hỏi đặc tả phải được quản lý tốt. Tuy nhiên, với phương pháp cải tiến mà luận văn đã thực hiện, việc kiểm thử hồi quy sẽ dựa trên mã nguồn. Kiểm thử viên chỉ cần thực hiện một số ca kiểm thử dựa trên kết quả phân tích sự ảnh hưởng các thành phần giao diện. Còn đối với lập trình viên họ có thể sử dụng công cụ để đánh giá được các thay đổi trong mã nguồn. Một bộ ánh xạ giữa thành phần mã nguồn và các giao diện, chức năng của ứng dụng được tích hợp, giúp bộ công cụ này thực sự có ích và có thể ứng dụng vào quá trình đảm bảo chất lượng phần mềm ở các công ty phát triển phần mềm hiện nay.

Về thực nghiệm, luận văn đã áp dụng công cụ để so sánh hai phiên bản mã nguồn cho ứng dụng Web quản lý bệnh viện. Kết quả thực nghiệm cho thấy, công cụ cải tiến tìm được các thành phần ảnh hưởng liên quan đến giao diện ứng dụng Web mà công cụ trước không tìm thấy. Thêm vào đó là việc phân loại các thành phần ảnh hưởng và thành phần thay đổi. Từ đó, hỗ trợ kiểm thử hồi quy một cách hiệu quả. Dựa vào kết quả thực nghiệm, công cụ đã cho chúng ta thấy được tính khả dụng của công cụ giúp giảm thời gian và chi phí kiểm thử hồi quy.

Dựa trên những gì đã thực hiện được, trong tương lai sẽ có thêm nhiều phụ thuộc giao diện cho các nền tảng khác được thêm vào để xử lý giúp bộ phân tích ảnh hưởng dự đoán tập ảnh hưởng chính xác hơn. Bộ quản lý và so sánh các

công nghệ và nền tảng khác của Java, và xa hơn nữa, trong tương lai bộ công cụ có thể phân tích cho các ngôn ngữ khác.

TÀI LIỆU THAM KHẢO TIẾNG VIỆT

[1] Phạm Ngọc Hùng, Trương Anh Hoàng, Đặng Văn Hưng (2014), Giáo trình kiểm thử phần mềm, NXB Đại học Quốc gia Hà Nội.

[2] Bùi Quang Cường, Nguyễn Minh Hiếu, Đinh Tiến Lộc. Bộ công cụ đảm bảo chất lượng mã nguồn cho các ứng dụng doanh nghiệp, Hội nghị NCKH khoa CNTT, ĐH Công nghệ, 2018.

TIẾNG ANH

[3] Bixin Li. WAVE-CIA: a novel CIA approach based on call graph mining. In Proceedings of the 28th Annual ACM Symposium on Applied Computing. [4] Bixin Li, Xiaobing Sun, Hareton Leung, Sai Zhang. A survey of code-based

change impact analysis techniques. In Software Testing, Verification and Reliability. Wiley Online Library (2012).

[5] Le Ba Cuong, Son Van Nguyen, Duc Anh Nguyen, Pham Ngoc Hung, Hieu Vo Dinh. A Tool for Change Impact Analysis of Java EE Applications.

Information Systems Design and Intelligent Applications. Advances in Intelligent Systems and Computing, vol 672. Springer, Singapore (2018). [6] Ann Millikin (2014), What Types of Software Testing Can and Should Be

Automated, https://www.seguetech.com/types-software-testing-can-should-

be-automated/.

[7] Salah, Hospital Management System, https://github.com/salahatwa/Hospital- Management-System

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp phân tích sự ảnh hưởng của các thành phần và ứng dụng cho kiểm thử hồi quy trong các dự án java EE luận văn ths máy tính 84801 (Trang 51)

Tải bản đầy đủ (PDF)

(58 trang)