Kiểm lỗi WebGIS: Để Chất lượng hệ thống GIS vẹn toàn

Gửi bởi edic  |  30 Tháng Tám 2017 3:24:29 SA  | 

PHẦN 1:  NỀN TẢNG WEB TEST – Cơ bản về web test


Trong bối cảnh nhiều hệ thống và ứng dụng GIS “lên đời” từ desktop sang web platform, chất lượng của webgis là điều cần quan tâm bởi nó liên quan đến nhiều quy trình tác nghiệp khác cũng như bảo mật cơ sở dữ liệu. Kiểm lỗi WebGIS, một phần của quy trình sản xuất phần mềm, cần được đặt ra đối với bất kì hệ thống web, đặc biệt GIS. Và quy trình kiểm lỗi chính là sự thấu hiểu về vấn đề giao thoa và tích hợp của các nền tảng kỹ thuật lập trình tạo nên trang WebGIS với các quy trình GIS. Ngày nay, nhiều công ty đã mở các dịch vụ web test để kiểm định chất lượng cho các sản phẩm web. Đây được dự báo là một xu hướng dịch vụ nở rộ trong những năm tiếp theo.
 

1.     Test WebGIS – Trình độ nào để vén màn bí mật một trang web


Thuật ngữ software testing (thử nghiệm nhằm tìm lỗi phần mềm) đã hình thành khá lâu và gắn liền với lịch sử phát triển phần mềm. Theo thời gian, các hệ thống được “web” hóa với số người người sử dụng tăng lên và các dữ liệu cũng nhiều hơn đáng kể. Do đó, ngày nay việc kiểm thử phần mềm trên web là một trong những nhu cầu cấp bách để đảm bảo an ninh dữ liệu và các khả năng vận hành của web. Khái niệm web testing mang ý nghĩa kiểm tra ứng dụng web có các tiềm năng lỗi trước khi đưa web vào vận hành. Thuật ngữ web testing cũng có ngữ nghĩa là một quy trình nghiêm ngặt nhằm đảm bảo chất lượng khi tạo ra trang web. Đối với các hệ thống GIS trực tuyến, việc kiểm tra chất lượng web testing là điều quan trọng bởi những hỗ trợ quyết định của hệ thống GIS sẽ dẫn đến sự tác động lên nhiều đối tượng, đôi khi là cả một thành phố hoặc cả nước, kể cả quốc tế (như các ứng dụng môi trường, hàng không,…).


Mức độ kiểm định phần mềm thông thường trãi dài và rộng theo các tính năng và môi trường ứng dụng của nó. Đối với các hệ thống, sự chính xác, độ ổn định, tính đúng đắn và tốc độ phản hồi là những yếu tố hàng đầu. Tuy nhiên, một số hệ thống khác lại cần sự nhẹ nhàng, dễ sử dụng và bảo mật. Để hoạch định được kiểm tra webgis, trình độ của người kiểm định cần:

 

  • Hiểu rõ và nắm vững công nghệ, bao gồm cả công nghệ web và công nghệ GIS.
  • Hiểu rõ và nắm vững quy trình tác nghiệp, là những yêu cầu tác nghiệp và nhóm người sử dụng, yêu cầu trong khi hiển thị bản đồ,...
  • Hiểu rõ và nắm bắt được những rủi ro của trang webgis sẽ đối mặt, ví dụ như: nhiều người truy cập, thông tin cần thông báo nhanh, an ninh (hacker, tấn công mạng,…)…
  • Hiểu rõ và nắm bắt được những yêu cầu của hệ thống về xử lý.

 

2.      TestWeb Checklist – Danh sách kiểm lỗi


Vậy thì, một loạt các câu hỏi được đặt ra là kiểm tra ứng dụng web sẽ thực hiện các bước nào? Cần kiểm tra những hạng mục nào trong hệ thống? Sử dụng công cụ gì? Cơ sở gì để kết luận chất lượng của trang webgis?


Để trả lời hết các vấn đề chúng ta phải hiểu rõ hệ thống WebGIS từ các thành phần: webserver, gisserver, web application và các dịch vụ web kèm theo. Theo từng bước, trước hết, đối với trang web thông thường, quy trình test bao gồm các bước như sau:


2.1.Functionality testing – Kiểm định chức năng: việc kiểm định này đảm bảo trang web thực hiện đúng và đủ các chức năng như yêu cầu (theo tài liệu yêu cầu phát triển/xây dựng – developmental documentation). Các hoạt động trong quá trình test này bao gồm:


+ Kiểm tất cả các liên kết (links): kiểm các liên kết trong trang web thực hiện đúng tính năng, không có liên kết sai, liên kết không thực thi được. Các loại liên kết web bao gồm: liên kết ra liên kết bên ngoài, liên kết trong nội bộ trang web, anchor links, mailto links.


+ Kiểm forms: kiểm tất cả các form hoạt động theo yêu cầu. Bao gồm: các script đi theo (ví dụ: chọn Quận thì danh sách Phường trong Quận sẽ đi kèm); kiểm các giá trị mặc định (ví dụ: chọn tên Chồng thì giới tính mặc định là Nam); kiểm các dữ liệu trong form khi form gửi dữ liệu; kiểm sự “dễ đọc” và thuận tiện phím chuột tay vuốt khi nhập/xử lý dữ liệu.


+ Kiểm Cookies: kiểm các cookies đã được xóa khi cache đã xóa hoặc chúng quá hạn. Hoặc kiểm thử xóa các cookies phục vụ đăng nhập khi lần sau đăng nhập.


+ Kiểm HTML và CSS: gồm các lỗi: cú pháp, màu sắc, thỏa các chuẩn kèm theo như: W3C, OASIS, IETF, ISO, ECMA hoặc WS-I.


+ Kiểm các luồng quy trình tác vụ: kiểm “ngược xuôi” các luồng sự kiện, xử lý các lỗi phát hiện và thể hiện trên ứng dụng.


2.2.Usability testing – kiểm định tính khả dụng của trang web: nghĩa là sự dễ dàng trong sử dụng ở trang web. Các nội dung bao gồm: công việc Test Navigation (điều trang hoặc chuyển sang mục khác) có dễ không, cụ thể: sự thuận tiện, dễ thấy của các chức năng như Menu, buttons và các links để tính năng/trang khác (phạm vi trên toàn bộ tất cả các trang web). Ngoài ra là Test về Content (nội dung): kiểm tra các từ ngữ, đoạn văn không lỗi ngữ pháp, những hình ảnh thiếu sót đã được thay thế bằng những hình ảnh “alt”.
 

2.3.Interface Tesing – Kiểm giao diện: Ba lĩnh vực cần kiểm giao diện bao gồm: Ứng dụng (application), máy chủ web và hệ quản trị cơ sở dữ liệu (database server):


+ Application: Kiểm tất cả các yêu cầu đều được gửi đúng đến CSDL và các output ở client đều hiển thị đúng kết quả mong đợi. Các lỗi xảy ra đều được ứng dụng kiểm soát và chỉ được thể hiện phía người quản trị, không phải người sử dụng.

+ Web server: kiểm tra web server xử lý được tất cả các yêu cầu từ ứng dụng mà không bỏ sót/từ chối dịch vụ nào từ ứng dụng

+ Database server: đảm bảo rằng tất cả các truy vấn đều trả về kết quả.

Kiểm phản hồi của hệ thống khi sự kết nối giữa 3 lớp kết nối (Application, web và database) không thiết lập được. Khi đó, thông tin phù hợp phải hiển thị lên phía khách hàng (user).


2.4.Database Testing – Kiểm cơ sở dữ liệu: thành phần phải được kiểm tra toàn diện, bao gồm:


+ Kiểm các lỗi liên quan đến truy vấn.

+ Kiểm dữ liệu toàn vẹn khi tạo, cập nhật và xóa dữ liệu trong CSDL.

+ Kiểm thời gian phản hồi (response time) của các câu truy vấn và tinh chỉnh các câu truy vấn để đạt thời gian truy vấn khi cần thiết.

+ Kiểm dữ liệu được triệu hồi từ các câu truy vấn giống với dữ liệu thể hiện trên ứng dụng web.


2.5.Compatibility Testing – Kiểm sự tương thích: đảm bảo ứng dụng thể hiện đúng với các thiết bị, bao gồm các loại kiểm:


+ Kiểm tương thích về trình duyệt:

+ Kiểm sự tương thích về hệ điều hành: các hệ điều hành khác nhau thường có đối tượng web khác nhau như buttons, text fields,… Chúng ta phải đảm bảo rằng ứng dụng web chạy tốt dưới các tổ hợp của hệ điều hành (Windows, Linux, Mac) và các trình duyệt (Firefox, Internet Explorer, Safari, Chrome,...).


2.6.Performance Testing – Kiểm tốc độ: đảm bảo thời gian ứng dụng web tải các nội dung web đạt một số chỉ tiêu. Hoạt động kiểm này không giới hạn, ít nhất bao gồm các hoạt động sau:


+ Kiểm thời gian trả lời của ứng dụng web theo các tốc độ kết nối.

+ Lập các kịch bản kiểm ứng dụng phản hồi trong trường hợp thông thường và trường hợp nhiều load (ví dụ: khi truy vấn và hiển thị tất cả các dữ liệu).

+ Thực hiện stress test để xác định điểm dừng (break point) khi đẩy vượt quá tải bình thường lúc cao điểm (peak load).

+ Kiểm nếu một sự cố xảy ra khi peak load, trong bao lâu thì site mới phục hồi.

+ Kiểm các kỹ thuật tối ưu như: nén gzip, trình duyệt và các cache dạng server side để giảm số lần tải (load times).


2.7.Security test – Kiểm tra bảo mật: là bài test bắt buộc đối với các trang có giao dịch thương mại, các trang có trình bày nhiều dữ liệu (trong GIS), các trang có thông tin khách hàng,… Các loại kiểm bảo mật gồm:


+ Kiểm truy xuất không được quyền (unauthorized access) với những trang cần đăng nhập bảo mật.

+ Kiểm truy xuất các tập tin ngăn cấm (restricted file) tải về (theo các đường links tải)

+ Kiểm các session có tự động “killed” sau một thời gian dài người sử dụng không hoạt động.

+ Kiểm các trang mã hóa SSL.


2.8.Crowd Testing – trong khâu kiểm này, nhiều người sẽ thực thi để nhận diện các khuyết điểm khó nhận diện được


Với khối lượng công việc cực kì lớn, việc kiểm tra web sẽ phải đối mặt với vấn đề thời gian kiểm tra. Do đó, trên thực tế, trưởng nhóm kiểm định phải nắm bắt được những “trọng tâm” để kiểm định trang web tối ưu. Và trong một số trường hợp, nhóm quản lý chất lượng sản phẩm phải đặt ra những yêu cầu trong bước phát triển/lập trình web tuân theo.

3.      Công cụ phần mềm test web


Dựa theo các bước test trên, dưới đây là danh sách phần mềm gợi ý:
 

TT

Bước kiểm định

Tên công cụ phần mềm

1

Functionality testing

QTP, IBM Rational, Selenium

2

Usability testing

Chalkmark, Clicktale, Clixpy and Feedback Army

3

Interface testing

AlertFox, Ranorex

4

Database testing

QTP, Selenium

5

Compatibility testing

NetMechanic

6

Performance Testing

Loadrunner, Jmeter

7

Security Testing

Babel Enterprise, BFBTester and CROSS

8

Crowd Testing

Con người, cần nhiều và rất nhiều người cùng lên web

 

4.      WebGIS Tester – Anh Chị là ai? Từ đâu đến?


Từ những nhận định trên, chúng ta có thể thấy để trở thành một tester, tester cần phải được trang bị các kiến thức lẫn phần mềm cả quy trình. Đối với phần mềm, các phần mềm web, database, ứng dụng cho khách hàng cần được thấu hiểu để biết hoạt động của web có tốt không. Ngoài ra, người tester cần biết các công cụ test. Đó là những phần mềm test tự động kết hợp với trình duyệt để thực thi.


Về quy trình, tester cần phải thấu hiểu được các bước trong quản lý. Đặc biệt với các sản phẩm GIS, tester phải là người được đào tạo các kiến thức:

 

  • Bản đồ: cách thể hiện, độ chính xác, dữ liệu tương tác,…
  • Các dịch vụ bản đồ: tính bảo mật, dữ liệu trao đổi trên hệ thống,…
  • Cơ sở dữ liệu: bao gồm các câu lệnh truy vấn sql và cách cài đặt hệ quản trị cơ sở dữ liệu.
  • Hệ thống và web server: hiểu rõ các kiến thức liên quan đến web và hệ thống.

CTXP tổng hợp theo http://hcmgisportal.vn/hcmgisportal/srv/vi/news.main.get?id=140