Công văn Số 283/VTLTNN-NVTW-Bộ Nội Vụ là Công văn hướng dẫn chỉnh lý tài liệu hành chính được phát hàng bởi Cục văn thư và lưu trữ nhà nước - Bộ Nội Vụ, quy định các quy chuẩn cho tài liệu hành chính trước khi đưa lưu trữ, quy định các bước để chỉnh lý một tài liệu hành chính cho khớp với các quy chuẩn và quy định các mẫu văn bản cần được xác lập cho việc chỉnh lý và lưu trữ tài liệu hành chính tại các Chi cục văn thư lưu trữ nhà nước.
Qua việc nghiên cứu các quy chuẩn này, cũng như các mẫu văn bản cần phải tiến hành thực hiện, đồng thời nghiên cứu các bước thực hiện chỉnh lý văn bản/tài liệu để hiểu bài toán nghiệp vụ cần xử lý, nhóm phát triển phần mềm xác định được một số yêu cầu chính của bài toán này như sau:
1. Cấu trúc kho lưu trữ sẽ được tổ chức thành các cấp bậc khác nhau: Từ Cơ quan lưu trữ -> Phông -> Hộp Hồ sơ -> Hồ sơ -> Văn bản, nhằm mục đích hệ thống hóa rõ ràng, chính xác các tài liệu lưu trữ, tạo điều kiện cho việc quản lý, bảo quản, khai thác, sử dụng tài liệu.
Trong đó:
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
58
Phông lƣu trữ là khái niệm dùng để chỉ một khối tài liệu hoàn chỉnh hoặc tương đối hoàn chỉnh phản ánh quá trình hình thành và phát triển của một quốc gia, một cơ quan hay một cá nhân, gia đình, dòng họ. Hộp hồ sơ là đơn vị nhỏ hơn nằm trong Phông, bao gồm nhiều hồ sơ
với nhiều chủ đề khác nhau
Hồ sơ là đơn vị nhỏ hơn nằm trong Hộp hồ sơ, bao gồm nhiều văn bản có chung một chủ đề.
Văn bản là đơn vị nhỏ nhất, thuộc Hồ sơ, và chính là các tài liệu/văn bản cần lưu trữ.
2. Đảm bảo xuất dữ liệu đầy đủ theo các mẫu văn bản đính kèm. Từ các mẫu văn bản đính kèm này sẽ xác định được các thuộc tính của từng đối tượng, hệ thống hóa thành các bảng (Table) và các thuộc tính (Properties) trong Database.
3. Đảm bảo việc phân loại đối tượng chính xác theo các quy chuẩn, ví dụ Loại văn bản, Loại Tài liệu, Loại ngôn ngữ…
4. Đảm bảo có đầy đủ các thuộc tính cần thiết, ví dụ: Thời hạn bảo quản, Tình trạng vật lý, Độ mật, Độ tin cậy, Chế độ bảo quản, …
5. Đảm bảo các tác vụ theo đúng các bước của bài toán nghiệp vụ được quy định, từ thành lập Cơ quan lưu trữ, thành lập Phông, Hộp hồ sơ, Hồ sơ, Giao nhận tài liệu, chỉnh sửa, thêm các thông tin về tài liệu/văn bản …
Việc quy định này như đã nói, vừa là thuận lợi nhưng cũng vừa là thách thức trong quá trình phát triển phần mềm ứng dụng. Thêm nữa cần phải quan tâm đến các dữ liệu cũ để có thể chuyển đổi các dữ liệu còn dùng được trong khối dữ liệu cũ sang hệ thống mới nên việc phân tích bài toán cũng gặp rất nhiều khó khăn.
Dựa trên những vấn đề nghiên cứu được cũng như định hướng phát triển ứng dụng về sau, nhóm phát triển phần mềm quyết định xây dựng ứng dụng này theo hướng
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
59
mô hình, áp dụng đồng thời các phương pháp kiểm thử hướng mô hình và đánh giá tính tiện dụng trong suốt quá trình phát triển nhằm nâng cao chất lượng phần mềm và giảm thiểu tối đi hao phí bảo trì về sau.
3.1.4 Mô hình xây dựng ứng dụng Quản lý lƣu trữ.
Ứng dụng Quản lý lưu trữ và số hóa tài liệu được xây dựng trên công nghệ ASP.NET và ngôn ngữ lập trình C#, có áp dụng mô hình Server-Client bằng việc áp dụng Công nghệ WebServices trong mô hình code. Việc này hỗ trợ cho việc mở rộng hệ thống về sau trên nhiều nền tảng khác (không chỉ là web), ví dụ Android, Windows Phone, iOS … Hiện tại đã có phiên bản ứng dụng Android cho hệ thống này, kết nối trực tiếp đến WebServices và gọi các API của nó để xử lý và trả kết quả về cho Client. Tuy nhiên trong khuôn khổ của luận văn này, tác giả chỉ muốn sử dụng hệ thống để minh chứng cho các nghiên cứu lý thuyết ở trên. Do đó sẽ không nói đến các ứng dụng mở rộng của hệ thống này.
Mô hình cấu trúc tổng quan của ứng dụng được thể hiện trong Hình 6 dưới đây:
Hình 6: Sơ đồ cấu trúc Ứng dụng Quản lý lƣu trữ tài liệu. 3.2 Mục tiêu thực nghiệm
Mục tiêu của việc tiến hành thực nghiệm là để minh chứng cho các nghiên cứu lý thuyết đã nói ở Chương 1 về kiểm thử hướng mô hình và Chương 2 đánh giá tính tiện dụng của web. Các mục tiêu cụ thể sẽ được mô tả chi tiết trong từng phần 3.3 và 3.4, tương ứng với việc áp dụng kiểm thử hướng mô hình và áp dụng đánh giá tính tiện dụng vào quá trình phát triển ứng dụng web
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
60
Mục tiêu chung của toàn bộ quá trình thực nghiệm là:
- Đưa ra ví dụ cụ thể về việc áp dụng các quy trình kiểm thử hướng mô hình và đánh giá tính tiện dụng trong suốt quá trình phát triển ứng dụng web. - Đánh giá kết quả thu được sau từng vòng lặp bản mẫu (prototype) để đưa ra
các điều chỉnh cũng như đánh giá những thay đổi của việc áp dụng 2 quá trình trên so với việc không áp dụng chúng trong quá trình phát triển ứng dụng.
- Đánh giá kết quả của toàn bộ quá trình để đánh giá chất lượng của 2 quy trình trên so với khi không áp dụng chúng.
- Chứng minh sự đúng đắn và sự cải thiện chất lượng phần mềm khi áp dụng các quy trình trên.
Dưới đây là chi tiết cụ thể quá trình áp dụng kiểm thử hướng mô hình và đánh giá tính tiện dụng trong suốt quá trình phát triển ứng dụng. Để mô tả rõ ràng về từng bước của quy trình, tác giả sẽ đưa ra một ví dụ cụ thể về một chức năng cụ thể trên từng quy trình. Kết quả cuối cùng được đánh giá thông qua phản hồi từ phía người dùng cuối. Đây là một kết quả mang tính khách quan và chính xác nhất về chất lượng của sản phẩm khi đến tay người dùng cuối.
3.3 Áp dụng kiểm thử hƣớng mô hình 3.3.1 Áp dụng quy trình 3.3.1 Áp dụng quy trình
Chuẩn bị:
1. Xác định Mục tiêu: Xây dựng mô hình kiểm thử cho các tác vụ của ứng dụng
web đã xác định ở trên bằng Spec Explorer. Phân tích và đánh giá các mô hình thu được để đánh giá chất lượng và chỉnh sửa. Sau đó tạo các ca kiểm thử, các Test Script thực tế bằng Selenium. Phân tích và đánh giá chéo giữa mô hình và thực tế để rút ra kết quả đánh giá chất lượng của việc áp dụng quy trình kiểm thử hướng mô hình trên quy trình phát triển ứng dụng web hướng mô hình.
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
61
2. Xác định tài liệu: Tài liệu chính là công văn hướng dẫn Số 283/VTLTNN – NVTW – Bộ Nội Vụ đã được nói đến ở trên. Ngoài ra còn có các tài liệu yêu cầu của khách hàng thông qua các buổi gặp gỡ, trao đổi và đi đến thống nhất các chức năng cũng như làm rõ các vấn đề quan trọng trong yêu cầu của người dùng.
Từ các tài liệu này có thể xác định các chức năng của hệ thống, cũng như đầu ra mong muốn của từng chức năng/tác vụ/hành động hệ thống … Từ đó đưa ra các trường hợp, các trạng thái có thể xảy ra trên hệ thống cụ thể cho từng chức năng. Xây dựng các kịch bản cho từng trường hợp và mô hình hóa các ca kiểm thử, cũng như có thể dựa trên đó để tạo ra các ca kiểm thử thực tế trên bản mẫu ứng dụng.
3. Xác định bối cảnh: Ứng dụng được phát triển trong khuôn khổ gói thầu dự án
phần mềm, áp dụng quy trình phát triển ứng dụng Web hướng mô hình, với sự hỗ trợ của người dùng cuối thực, có chuyên môn và am hiểu về môi trường sử dụng cũng như quy trình nghiệp vụ mà bài toán đặt ra. Điều này tạo thuận lợi trong việc tham khảo các trường hợp có thể xảy ra khi thực hiện bài toán nghiệp vụ trên thực tế. Qua đó có thể chuyển thành các kịch bản kiểm thử hỗ trợ cho việc sinh mô hình cũng như việc tạo ra các ca kiểm thử chính xác hơn.
4. Xác định phương pháp kiểm tra đánh giá: Kiểm thử hướng mô hình bản chất
vẫn là kiểm thử tự động. Thêm nữa công cụ Selenium được sử dụng ở đây cũng là công cụ sử dụng trong kiểm thử tự động truyền thống. Nên phương pháp đánh giá chính là tham khảo ý kiến của các chuyên gia trong lĩnh vực kiểm thử tự động để lấy ý kiến của họ về các kết quả đạt được khi áp dụng kiểm thử hướng mô hình. Ngoài ra việc lấy ý kiển phản hồi từ khách hàng, cũng như đánh giá chéo giữa kiểm thử tự động thực tế với mô hình tự sinh bởi công cụ cũng là một phương pháp tối ưu giúp xác định chất lượng của các mô hình kiểm thử đã xây dựng được ở các bước trên.
Thực hiện:
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
62
Spec Explorer sử dụng ngôn ngữ code để mô hình hóa mô hình kiểm thử. Do đó cần học ngôn ngữ mô hình hóa này để viết code cho việc tự sinh các mô hình.
Để tiện cho việc trình bày, ở đây sẽ lựa chọn chức năng tài khoản để trình bày về quá trình mô hình hóa này. Hình 7 thể hiện mô hình kiểm thử cho chức năng tài khoản. Trong đó:
- Si : là các trạng thái chuyển đổi của hệ thống khi xảy ra các hành động
- c_login_empty(): Hành động đăng nhập khi chưa điền thông tin tài khoản (tên tài khoản + mật khẩu)
- c_login_acc(): Hành động đăng nhập khi chưa mới điền tên tài khoản mà chưa điền mật khẩu
- c_login_pass(): Hành động đăng nhập khi chưa mới điền tên mật khẩu mà chưa điền tài khoản.
- c_login_err(): Hành động đăng nhập bị lỗi.
- c_login_success(): Hành động đăng nhập thành công.
- a_back(): Hành động tự động quay trở về trạng thái ban đầu khi gặp lỗi. - c_logout(): Hành động đăng xuất hệ thống của người dùng.
Hình 7: Mô hình kiểm thử tự sinh cho chức năng tài khoản.
Để có được mô hình này, cần phải viết code bằng các ngôn ngữ mô hình trong các file tương ứng. Quan trọng nhất ở đây là file Config.cord – nơi thể hiện toàn bộ cấu hình của hệ thống mô hình hóa. Trong trường hợp này, file Config.cord có nội dung như sau:
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
63
Hình 8: Phần cấu hình các action chuyển trạng thái và trỏ file gen Test Script.
Hình 9: Phần định nghĩa mô hình kiểm thử.
Hình 10: Phần định nghĩa mô hình test case.
Từ các đoạn code cấu hình này, chúng ta có mô hình test case tự sinh như sau:
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
64
Từ mô hình Test Case này sẽ sinh ra được Test Script như hình bên dưới:
Hình 12: Mô tả code Test Script tự sinh.
Dựa trên các mô hình này kết hợp với các tài liệu yêu cầu hệ thống đã có có thể tự phán đoán và phát hiện các thiếu sót. Qua đó chỉnh sửa và đánh giá lại mô hình nhiều lần cho đến khi đạt được các yêu cầu đặt ra.
Bước 2. Thực hiện các kịch bản kiểm thử bằng Selenium.
Selenium là một công cụ kiểm thử tự động rất trực quan và dễ sử dụng. Nó có một cơ chế record để lưu lại các hành động làm thay đổi trạng thái của hệ thống và chạy lại các bản record đó trên trình duyệt.
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
65
Hình 13: Quá trình tạo Test Case bằng Selenium và FireFox
Bước 3: Đánh giá chéo giữa mô hình và thực tế.
Dựa trên các kết quả thu được từ mô hình kiểm thử so sánh với quá trình kiểm thử thực tế để tìm ra điểm khác nhau giữa mô hình lý thuyết và thực tế kiểm thử. Qua đó có thể đánh giá được chất lượng của mô hình kiểm thử, đồng thời đưa ra các điều chỉnh hợp lý cho cả mô hình và các ca kiểm thử thực tế để đạt hiệu quả kiểm thử. Quá trình lặp lại nhiều lần cho đến khi đạt được các yêu cầu đặt ra.
Bước 4: Tham khảo ý kiến của chuyên gia và người dùng cuối.
Việc tự đánh giá thông qua các kết quả thu được không có tính khách quan, cũng không thể so sánh với kinh nghiệm của các chuyên gia trong lĩnh vực kiểm thử tự động, nên rất có thể sẽ bỏ qua các trường hợp lỗi đáng tiếc. Hơn nữa mục tiêu cuối cùng hướng đến là sự hài lòng của khách hàng về chất lượng sản phẩm, nên khách hàng mới là người đánh giá cuối cùng về chất lượng sản phẩm đầu ra. Do đó việc tham khảo ý kiến chuyên gia và lấy phản hồi của người dùng cuối là rất cần thiết. Thông qua bước này sẽ hoàn thiện một cách tốt nhất mô hình kiểm thử đã đề ra.
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
66
3.3.2 Tóm lƣợc kết quả
Bằng việc áp dụng quy trình kiểm thử hướng mô hình và lặp đi lặp lại trong suốt quá trình phát triển ứng dụng này, nhóm phát triển ứng dụng thu được những kết quả rất tốt, bao gồm những lời khen ngợi của các chuyên gia trong lĩnh vực kiểm thử tự động, cũng như sự hài lòng của khách hàng sau từng phiên bản triển khai. Hầu hết các đánh giá đều hướng dần đến việc nâng cao được chất lượng sản phẩm, phát hiện sớm được rất nhiều lỗi có thể nảy sinh trong quá trình mã hóa cũng như triển khải sản phẩm đến người dùng cuối, đạt được sự hài lòng tăng lên theo thời gian và theo từng vòng đời bản mẫu ứng dụng từ phía khách hàng. Đó là niềm động viên và là động lực dồi dào để tác giả tiếp tục nghiên cứu và triển khai, áp dụng, chỉnh sửa quy trình kiểm thử hướng mô hình ngày một hoàn thiện hơn, nhằm nâng cao chất lượng sản phẩm, giảm thiểu tối đa chi phí bảo trì cũng như đạt được mức độ uy tín cao trong lòng khách hàng.
Việc áp dụng thành công quy trình kiểm thử hướng mô hình trong một dự án thực tế là minh chứng rất rõ ràng cho sự đúng đắn và khả thi của phần lý thuyết nghiên cứu được ở Chương 1.
3.4 Đánh giá tính tiện dụng của web. 3.4.1 Áp dụng quy trình 3.4.1 Áp dụng quy trình
Bước 1: Chuẩn bị
1.1. Xác định Mục tiêu: Phân tích WUEP để đánh giá hiệu quả của nó bằng cách lấy ý kiến của người dùng cuối về sự hài lòng của người dùng khi sử dụng hệ thống. Qua đó cho thấy tính khả thi của phương pháp tiếp cận này khi nó được áp dụng cho các hiện vật Web từ một quy trình phát triển Web hướng mô hình.
1.2. Xác định tài liệu: Tài liệu chính là công văn hướng dẫn Số 283/VTLTNN – NVTW – Bộ Nội Vụ đã được nói đến ở trên. Ngoài ra còn có các tài liệu yêu cầu của khách hàng thông qua các buổi gặp gỡ, trao đổi và đi đến thống nhất các chức năng cũng như làm rõ các vấn đề quan trọng trong yêu cầu của người dùng. Từ đó có thể xác
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
67
định được các yêu cầu chức năng của hệ thống, qua đó xác định được các thành phần bắt buộc có trên giao diện người dùng để hỗ trợ cho việc tương tác người-máy. Từ giao