Bài 3. Kiểm thử ứng dụng web

Kiểm thử ứng dụng web là một trường hợp trong kiểm thử phần mềm, ở chương này sẽ đi sâu nghiên cứu loại ứng dụng kiểm thử Web về khái niệm, các loại kiểm thử ứng dụng Web, chất lượng của một ứng dụng web cần đạt được , các công việc khi kiểm thử một ứng dụng web và sẽ giới thiệu một số công cụ hỗ trợ kiểm thử cho ứng dụng web.


Kiểm thử ứng dụng web

Khái quát

Các ứng  dụng Web đã được  phát  triển và trở thành một nền tảng kết nối thông tin thiết yếu trong nhiều doanh nghiệp. Các ứng dụng Web đóng vai trò quyết định của thương mại điện tử, trao đổi thông tin.

Để có thể đạt được điều này các ứng dụng Web cần phải có hiệu năng cao, đáng tin cậy,… Việc đưa ra một ứng dụng web hoàn hảo cho những người đang và sẽ sử dụng ứng dụng đã trở thành một thử thách chính trong đảm bảo chất lượng.

Kiểm thử là một trong những công việc quan trọng để đánh giá chất lượng của một sản phẩm và đương nhiên là các ứng dụng Web cũng không phảo là ngoại lệ. Các phương pháp kiểm thử thông thường là các kỹ thuật tập trung vào đánh giá các chức năng yêu cầu của ứng dụng.

Tuy nhiên, không thể tập trung được vào hết tất cả các chức năng yêu cầu của ứng dụng. Không thể nào tập trung được vào hết tất cả các chức năng yêu cầu. Bởi có rất nhiều chức năng quan trọng cho người sử dụng ứng dụng như: tính hiệu năng, tính dễ sử dụng, độ tin cậy và tính bảo mật cần được xem xét. Những yêu cầu và mong đợi của người sử dụng, những vấn đề về nền tảng và cấu hình, mô hình nghiệp vụ, sự phát triển và chi phí cho việc kiểm thử là những vấn đề thường hay gặp phải và thay đổi liên tục đổi xuyên suốt chu trình của một ứng dụng Web. Vì thế, cần thiết phải phát triển một chiến lược hiệu quả cho việc kiểm thử mà có thể bao quát được giới hạn tổng thể và rộng lớn của những yêu  cầu, chức năng cho một ứng dụng  Web  qua đó có thể giúp cho việc cài đặt, hoàn thành ứng dụng cũng như tránh đư ợc các rủi ro có thể gặp.


Đặc điểm về chất lượng của một ứng dụng Web

Người sử dụng không chỉ mong đợi chương trình của họ sẽ vận  hành  một cách ổn định, chính xác mà họ còn yêu cầu một số chức năng nào đó phải luôn sẵn sàng trên 24 giờ trong 1 ngày và 7 ngày trong tuần. Hơn nữa, người sử dụng còn mong đợi ở chương trình những ưu điểm sau: tính dễ sử dụng, độ tin cậy, tốc độ, tương  thích  với  các  hệ thống  khác  nhau  và  tương  thích  với  các  phiên  bản  trong tương lai. Còn với một ứng dụng Web, thì những yêu cầu về chất lượng bao gồm:

  • Yêu cầu về chức năng:Sự hiện diện của các chức năng đáp ứng những yêu cầu được xác định. Các yêu cầu cần có nữa là tính phù hợp, chính xác, khả năng tương tác, tuân thủ và bảo mật.
  • Yêu cầu về độ tin cậy: khả năng của một ứng dung để duy trì sự hiệu quả của nó trong một điều kiện cụ thể và trong một khoảng thời gian xác định.
  • Yêu cầu về khả năng sử dụng: Tính dễ sử dụng và hiệu quả của một ứng dụng. Vấn đề này có thể được thẩm định bởi một nhóm người dùng giả định.
  • Yêu cầu về hiệu quả:Tỷ lệ giữa mức độ hiệu quả của một ứng dụng và các tài nguyên mà nó sử dụng trong các điều kiện cụ thể.Các yêu cầu về chất lượng đóng một vai trò thiết yếu khi thử nghiệm các ứng dụng Web. Mặc dù nhìn chung thì chúng t ương t ự như những yêu cầu về chất lượng cho các hệ thống phần mềm truyền thống. Tuy nhiên, chúng có thể có mức độ đòi hỏi cao hơn về chiều sâu.

Do ý nghĩa quan trọng của các đặc điểm về chất lượng và sự khác biệt ở cách mà chúng được kiểm thử, nhiều phương pháp để kiểm thử một ứng dụng Web tập trung vào một vài đặc điểm. Tuy nhiên, tất cả các đặc điểm đều quan trọng đối với một ứng dụng Web. Và công việc kiểm thử phải đảm bảo được những yêu cầu cài đặt thành công.


Công việc khi kiểm thử một ứng dụng Web.

Kiểm thử là một hoạt động để đánh giá chất lượng của một sản phẩm phần mềm quan trọng là cải thiện nó bằng cách tìm ra những thiếu xót, khiếm khuyết.

Một vấn đề thường hay xảy ra trong quá trình phát triển ứng dụng Web đó là các yêu cầu thường không đầy đủ, tường minh và có thể thay đổi bất cứ lúc nào. Thông thường chúng ta cần có cái nhìn khái quát về các chức năng cơ bản mà ứng dụng  Web sẽ có. “Cái nhìn khái quát” này sẽ là tầm nhìn để thực hiện phát hành lần đầu ứng dụng.

Phương pháp tiếp cận nhanh – tập trung vào tính chất lặp và tiến hóa của một ứng dụng Web và vòng đ ời phát triển của chúng mà không hề có bất cứ một đoạn văn bản cụ thể nào định ngh ĩa v ề phương pháp này. Các mục tiêu, mối quan tâm và mong  đợi  của  các  bên  liên  quan  có  đẻ hình  hành  cơ  s ở cho  việc  thực  nghiệm.

Để hỗ trợ giúp cho những kiểm thử viên có thể có được những cái nhìn sâu sắc và thấu đáo những mong đợi, kỳ vọng về chất lượng ứng dụng Web của người sử dụng  thì  những  kiểm  thử viên  này  cần  được  tham  gia  càng  sớm  càng  tốt  vào công việc xác định và định nghĩa các y êu c ầu theo các phương pháp kỹ thuật sau:


Kiểm tra chức năng

Kiểm tra các trang web cho chức năng chính xác, định dạng, tập tin cookie, và xác nhận dữ liệu. Chức năng thử nghiệm là lý tưởng để thực hiện kiểm tra khói, kiểm tra hồi quy, và thử nghiệm hội nhập.

- Kiểm tra các liên kết:

  • Liên kết bên trong một cấu trúc siêu văn bản mà điểm đến không tồn tại một nút (các trang web, hình ảnh...) gọi là liên hết hỏng thường xuy ên xảy ra sai sót trong các ứng dụng web.  Để kiểm tra tính chính xác của các trang liên kết (link kiểm tra), tất cả các liên kết được hệ thống theo sau bắt đầu trên một trang bắt đầu, và sau đó được nhóm trong một đồ thị liên kết (bản đồ trang web).
  • Khi chạy một kiểm tra liên kết thường xuyên , người ta thường thấy các liên kết không chỉ là điểm đến không tồn tại trang, nhưng cũng có các trang không được interlinked với những trang khác hoặc cái gọi là các trang mồ côi. Những trang mồ côi có thể đến thông qua một liên kết, nhưng không có một liên kết đến cấu trúc siêu văn bản. Để đơn giản cho người sử dụng nó không xác định nơi để đi tới, để chúng rời bỏ trang web.
  • Ngoài ra, khi vượt qua các liên kết, người ta thường có thể tìm thấy dữ liệu bổ sung để cung cấp chỉ dẫn tiềm năng lỗi. Ví dụ, độ sâu và b ề rộng của các cơ cấu chuyển hướng, khoảng cách giữa hai trang liên quan, được đo bằng số lượng các liên kết hoặc lần tải của các trang.

-  Kiểm tra các hình thức web trên trang:

  • Kiểm tra các lĩnh vực logic xác nhận cho từng lĩnh vực.
  • Kiểm tra các giá trị mặc định cho từng lĩnh vực.
  • Kiểm tra xem các lĩnh vực mật khẩu không hiển thị nội dung mật khẩu.
  • Kiểm tra giá trị đầu vào không h ợp lệ cho từng lĩ nh vực.
  • Xác nhận đáp ứng với một hình thức gửi .

-  Thử nghiệm quản lý phiên làm việc và cookie:

  • Kiểm tra các ứng dụng đăng nhập trong phiê n bằng cách cho phép và vô hiệu hóa các tập tin cookie.
  • Cookie thử nghiệm ti êu c ực bằng cách sử dụng một tên miền không phối hợp.
  • Kiểm tra xem cookie phiên thiết lập lại giữa các phiên trình duy ệt.
  • Kiểm tra bảo mật ứng dụng bằng cách xóa các tập tin cookie có chọn lọc trong khi ki ểm tra hoạt động .

-  Xác nhận Cascading Style Sheet (CSS) tags:

  • Xác định các tag CSS 404 trả lại hoặc lỗi tải khác CSS.
  • Xác định trên HTML id, class, và các thuộc tính tên không phù hợp với bất kỳ thẻ CSS nào.

-  Xác nhận thẻ JavaScript:

  • Xác định các tag Script trả lại l ỗi 404 hoặc lỗi tải khác.
  • Xác định id, tên, trên ... thu ộc tính không phù hợp với bất kỳ thẻ Script.

-  Kiểm tra nội dung động (kiểm tra cơ sở dữ liệu):

  • Kiểm tra dữ  liệu  thống  nhất  trong  các  hình  th ức  web  cơ  s ở  dữ  liệu  theo định hướng .
  • Kiểm tra chức năng t ạo, chỉnh sửa, xóa, cập nhật công việc .
  • Kiểm tra dữ liệu cung cấp dữ liệu chính xác .
  • Xác đị nh kết nối cơ sở dữ liệu và các lỗi truy vấn .

Kiểm tra sự tương thích trình duyệt

Sự khác biệt trong các trình duy ệt Web, môi trường hoạt động, và các thiết bị phần cứng ảnh hưởng đến các hoạt động chính xác của ứng dụng Web của bạn.

- Trình duyệt tương thích:

  • Thử nghiệm ứng dụng web của bạn cho chức năng chính xác trên m ột số trình duyệt như Firefox, IE, Chrome, Opera, và Safari. Lý tưởng nhất là ứng dụng web của bạn xử lý sự khác biệt trình duy ệt thanh lịch.
  • Kiểm tra chức năng ứng dụng với một loạt các cài đặt cấu hình bảo mật trình duyệt.
  • Kiểm tra chức  năng  ứng  dụng  với  các  tính  năng  trình  duyệt bật -tắt (JavaScript, cookies).
  • Kiểm tra dựng hình trình duyệt của giao diện người dùng ứng dụng của bạn.
  • Kiểm tra các thiết lập bảo mật của trình duyệt cho tên miền chéo truy cập và hack.
  • Kiểm tra chức năng ứng dụng nhất quán trên nhiều phiên bản của một trình duyệt.

-  Môi trường hoạt động tương thích:

  • Kiểm tra ứng dụng giao diện ng ư ời d ùng vẽ trên hệ thống cửa sổ hệ điều hành.
  • Kiểm tra chức năng tích hợp máy tính đ ể bàn, bao gồm kéo và thả tập tin và lựa chọn.
  • Thử nghiệm ứng dụng web của bạn trên các hệ điều hành khác nhau, bao gồm cả Windows, Unix, Mac, Linux, và Solaris .

- Thiết bị di động tương thích:

  • Kiểm tra khả năng tương thích ứng dụng với các dịch vụ thiế t bị, bao gồm cả vị trí và các dịch vụ quay số.
  • Kiểm tra giao diện người dùng vẽ tr ên điện thoại di động kích thước màn hình thiết bị, bao gồm cả màn hình xoay.
  • Kiểm  tra  hoạt  động  ứng  dụng  chính  xác  khi  điện  thoại  đang  trong  và  ra khỏi phạm vi của các dịch vụ mạng.

Thử nghiệm tính năng

- Load Test:

  • Tuyến tính khả năng mở rộng - nơi hiệu suất của một ứng dụng không thay đổi khi số lượng người dùng tăng lên. Kiểm tra tải trọng xác định một chỉ số Khả năng mở rộng cho hiệu suất ứng dụng web của bạn.
  • Kiểm tra phản ứng máy chủ để dưới dạng trình duyệt gửi yêu cầu .
  • Xác định thay đổi hoạt động trong một khoảng thời gian .
  • thử nghiệm cho các chức năng mà ngừng làm việc ở các cấp độ cao hơn của người sử dụng tải.
  • Xác đị nh các vấn đề về độ trễ mạng về chức năng ứng dụng Web .

- Stress Test:

  • Xác định cách thức ứng dụng đáp ứng theo mức độ tải .
  • Xác định các phần của ứng dụng web mà không theo mức độ tải .
  • Xác định các chức năng ứng dụng sau khi một vụ tai nạn hệ thống hoặc thành phần thất bại.
  • Xác định các hình th ức v à các liên k ết hoạt động khác nhau theo mức độ tải.

Kiểm tra bảo mật

  • Bảo vệ dữ liệu ứng dụng Web và duy trì chức năng như thiết kế.
  • Kiểm tra các hoạt động mà không cần loging .
  • Kiểm tra xác thực cơ bản sử dụng tên giả và các thông tin mật khẩu
  • Kiểm tra giấy chứng nhận X.509 an ninh an toàn trên các trang web
  • Thử  nghiệm  cho  các  chức  năng  ứng  dụng  chính  xác  dựa  trên  các  giá trị thu ộc tính không hợp lệ URL.
  • Kiểm tra các chức năng ứng dụng với các lĩnh vực đầu vào không hợp lệ, bao gồm các lĩnh vực văn bản.
  • Kiểm  tra  bảo  vệ  máy  chủ  web  của  các  thư  mục  web  không  thể  truy  cập hoặc các tập tin.
  • Kiểm tra để xác định ứng dụng Web vi phạm an ninh, bao gồm cả thông báo l ỗi và vi phạm an ninh nỗ lực đang được đăng nhập.
  • Kiểm tra các lĩnh vực CAPTCHA cho các hình th ức web và đăng nhập.
  • Kiểm tra các thiết lập bảo mật trình duyệt để di chuyển từ an to àn vào các trang web không an toàn.

Giám sát sản xuất

  • Vận hành thử nghiệm ứng dụng web theo định kỳ và lưu các bản ghi kiểm tra như là bằng chứng của Hiệp định Cấp Servlice (SLA) tuân thủ .
  • Định kỳ kiểm tra kinh nghiệm người dùng cuối.
  • Cung cấp tự động mở rộng quy mô và h ệ thống cân bằng tải với cuối số liệu kinh nghiệm người dùng.
  • Kiểm tra các chức năng ứng dụng đúng từ nhiều vị trí địa lý.

Kiểm tra khả năng sử dụng

Việc thiết kế và trình bày của một ứng dụng có ảnh hưởng lớn đến thành công người dùng của bạn sẽ có trong việc sử dụng các ứng dụng Web.

- Kiểm tra đối với Danh mục chính:

  • Kiểm tra người sử dụng có kiểm soát rõ ràng và d ễ dàng di chuy ển từ trang này sang trang.
  • Kiểm tra dòng chảy của một ứng dụng web bằng cách quan sát cách người sử dụng hoàn thành m ục tiêu của họ - Kiểm tra xem người dùng có thể tìm thấy  hướng dẫn nên họ không trực giác biết làm thế nào để vận hành một chức năng
  • Kiểm tra các đối t ư ợng chuyển h ư ớng chung xuất hiện tr ên t ất cả các trang luôn
  • Chức năng tìm kiếm thử nghiệm cho các chức năng ứng dụng thích hợp

- Kiểm tra nội dung:

  • Kiểm tra nội dung là hợp lý sắp xếp và dễ dàng cho người sử dụng hiểu.
  • Kiểm tra lỗi chính tả.
  • Kiểm tra xem trang adhear đến m àu s ắc và hoa văn hướng dẫn phong cách, bao gồm phông chữ, khung hình, và biên giới.
  • Kiểm tra xem các h ình ảnh tải một cách chính xác và có kích thước phù hợp.

Một số lưu ý khi test web và test windows application:

- Window Application hay còn gọi Desktop Application sử dụng kiến trúc 2 tầng giữa client và server.

  • Install rồi chạy trên những máy tính cố định
  • Nếu có thay đổi, thường là phải install lại và test lại ứng dụng.
  • Hệ thống thường là một người dùng, nếu có share dữ liệu thì cũng là share mạng LAN là chủ yếu.
  • Thực thi trên máy tính cá nhân, server, vì vậy khi test trên ứng dụng desktop người ta chú trọng trên 1 môi trường cụ thể.
  • Vì thường chỉ sử dụng bởi 1 người dùng trên máy cụ thể nên không cần thực thi Load Test với giả lập số lượng user nhiều.
  • Kiểm thử bảo mật cũng đơn giản và dễ dàng hơn.
  • Background và màu sắc, layout thường giống nhau đối với các cửa sổ.

- Web Application sử dụng kiến trúc đa tầng ( user client, database và server)

  • Nhiều người dùng tại 1 thời điểm.
  • Duyệt bằng trình duyệt, không biết trước môi trường duyệt web của người dùng, vì thế phải test tất cả trình duyệt và tất cả hệ điều hành
  • Thường phải thực hiện load test.
  • Kiểm thử bảo mật phức tạp hơn, khó khăn hơn.
  • Background và màu sắc thì thay đổi theo từng ứng dụng, layout và font chữ có thể hiển thị khác nhau trên từng trình duyệt.

Kiểm thử web

Các trang web là các ứng dụng client/server (các máy chủ web và “trình duyệt” của khách hàng) cơ bản. Cần xem xét đến sự tương tác giữa các trang html, dịch vụ web, thông tin liên lạc đã được mã hóa, kết nối Internet, tường lửa, các ứng dụng chạy trong các trang web (như javascript, flash, plug-in các ứng dụng), nhiều ứng dụng có thể chạy ở phía máy chủ, vv… Ngoài ra, có rất nhiều loại máy chủ và các trình duyệt, các phiên bản khác nhau của từng, nhỏ nhưng đôi khi sự khác biệt giữa chúng, các biến đổi trong tốc độ kết nối, công nghệ thay đổi nhanh chóng, các tiêu chuẩn và giao thức. Kết quả cuối cùng là kiểm thử các trang web có thể trở thành một nỗ lực lớn đang diễn ra. Những điều cần xem xét khác có thể bao gồm:

  • Tải mong muốn trên máy chủ là gì (ví dụ, số lượt truy cập trên một đơn vị thời gian?), loại hiệu năng yêu cầu là gì (như thời gian đáp ứng của máy chủ web, thời gian đáp ứng của truy vấn cơ sở dữ liệu). Những loại công cụ cần thiết để thử nghiệm hiệu năng (ví dụ như load testing tool, các công cụ có sẵn khác có thể điều chỉnh, thiết bị tạo tải, vv…)
  • Đối tượng mục tiêu là ai? Loại và phiên bản nào của trình duyệt sẽ được họ sử dụng, và mức độ bao quát sẽ kiểm thử cho các thay đổi này? Loại kết nối nào sẽ được họ sử dụng? Họ nằm trong nội bộ của một tổ chức (nếu như vậy, thì tốc độ kết nối có khả năng cao và các trình duyệt tương tự nhau) hoặc bên ngoài internet (nếu như vậy, thì có nhiều tốc độ kết nối và các loại trình duyệt khách nhau)
  • Những hiệu năng nào mong muốn trên phía máy khách (ví dụ, trang web sẽ xuất hiện nhanh như thế nào, flash sẽ nhanh như thế nào, các ứng dụng applet, v.v… thời gian tải và chạy)
  • Thời gian nghỉ cho server và việc bảo trì/nâng cấp nội dung sẽ cho phép hay không? Bao nhiêu
  • Loại bảo mật nào (firewalls, encryption, passwords, functionality, v.v…) sẽ được yêu cầu và mong muốn sẽ làm gì? Có thể kiểm thử như thế nào
  • Các yêu cầu quốc tế hóa/nội địa hóa/ngôn ngữ có yêu cầu hay không, và làm thế nào để kiểm tra các điều này
  • Mức độ tin cậy kết nối Internet của trang web sẽ được yêu cầu như thế nào? Và ảnh hưởng đến hệ thống dự phòng hoặc các yêu cầu kết nối dự phòng và kiểm thử như thế nào
  • Qui trình sẽ được yêu cầu để quản lý cập nhật nội dung trang web, và các yêu cầu cho việc bảo trì, theo dõi và điều khiển nội dung, đồ họa, link, v.v… của trang web là gì
  • HTML và mô tả chi tiết (spec) liên quan nào sẽ được sử dụng? Mức độ chặt chẽ thế nào? Các thay đổi dự định sẽ được phép đối với các trình duyệt
  • Liệu có bất kỳ tiêu chuẩn hoặc yêu cầu đối với sự giao diện và/hoặc đồ họa của một phần hoặc một trang web
  • Liệu có bất kỳ quá trình phát triển thực tế/tiêu chuẩn sử dụng cho các thành phần và nhận dạng của trang web (components và identifiers), nó có thể tác động đáng kể đến việc kiểm thử tự động.
  • Liên kết nội bộ và bên ngoài sẽ được xác nhận và cập nhật như thế nào? Mức độ thường xuyên ra sao
  • Cả hệ thống sản phẩm có thể được kiểm thử hết, hoặc sẽ tách riêng một phần hệ thống để kiểm thử? Trình duyệt caching (lưu bộ nhớ đệm) như thế nào, thay đổi thiết lập tùy chọn trong trình duyệt, thay đổi kết nối, và vấn đề "tắc nghẽn giao thông" của Internet trong thế giới thực sẽ được tính toán cho vào kiểm thử
  • Làm thế nào mở rộng hay tùy biến nhật ký (log) của máy chủ và các yêu cầu báo cáo; chúng có được coi là một phần của hệ thống và chúng có được yêu cầu thử nghiệm không
  • Các thành phần như flash, applet, javascript, ActiveX component, v.v… sẽ được bảo trì, theo dõi, điều khiển, test như thế nào

Vậy những điều cần chú ý khi test website ?


Kiểm thử chức năng

Test tất cả các links trong trang web, kết nối cơ sở dữ liệu, định dạng được sử dụng trong các trang web để gửi/ nhận những thông tin cần thiết từ người dùng, kiểm tra cookie

Kiểm tra tất cả các liên kết (links):

  • Kiểm tra các links liên kết ngoài trang web
  • Kiểm tra tất cả các links nội bộ
  • Kiểm tra các links tới các vị trí trong cùng trang
  • Kiểm tra cá links sử dụng để gửi mail tới admin hoặc người dùng khác từ trang web
  • Kiểm tra xem có trang trống nào không
  • Kiểm tra các links bể trong tất cả các links nói trên

Kiểm tra form của tất cả các trang: Form là phần cơ bản của bất kỳ trang web nào. Form được sử dụng để nhận thông tin từ người dùng và tương tác với họ. Vậy, những gì cần phải được kiểm tra trong form?

  • Kiểm tra tất cả trường bắt buộc
  • Kiểm tra các giá trị mặc định của các trường
  • Các đầu vào sai cho các trường
  • Kiểm tra các form bất kỳ: xóa, xem, sửa

Kiểm thử cookie: Cookies là các file nhỏ được lưu trong máy người dùng. Đây là cách cơ bản để duy trì các phiên làm việc, đặc biệt là các phiên đăng nhập. Kiểm tra ứng dụng bằng cách chọn “cho phép lưu” (enable) hoặc “không cho phép lưu” (disable) cookies từ trình duyệt của bạn. Kiểm tra các cookies có được mã hóa trước khi ghi vào máy người dùng? Nếu bạn đang kiểm thử cookies (cí dụ cookies hết hạn sau khi kết thúc phiên làm việc), hãy kiểm tra các phiên đăng nhập và trạng thái của người dùng sau khi phiên làm việc kết thúc. Kiểm tra bảo mật ứng dụng bằng cách xóa các cookies.

Xác minh HTML/CSS của bạn: Nếu bạn đang tối ưu hóa trang web của bạn cho các công cụ tìm kiếm (Search engines) thì việc xác minh HTML/SCC rất quan trọng. Việc xác minh chủ yếu là các lỗi cú pháp HTML. Kiểm tra xem trang web có được nhận diện với các công cụ tìm kiếm khác nhau hay ko?

Kiểm thử cơ sở dữ liệu:

  • Sự nhất quán về dữ liệu rất quan trọng trong ứng dụng web. Kiểm tra tính toàn vẹn của dữ liệu và các lỗi khi bạn tạo/sửa/xóa các forms hoặc thực hiện bất kỳ chức năng nào có liên quan tới CSDL
  • Kiểm tra tất cả các truy vấn CSDL có được thực thi chính xác không? Dữ liệu có được lấy và cập nhật chính xác không? Ngoài ra cần kiểm tra việc tải dữ liệu vào DB, chúng tôi sẽ trình bày vấn đề kiểm thử tải và kiểm thử hiệu năng sau.

Kiểm thử tính khả dụng

Kiểm thử cho chuyển hướng: Chuyển hướng nghĩa là cách thức người dùng lướt web (xem các trang webs), sử dụng các điều khiển khác nhau như các nút bấm, các hộp (textbox, listbox…) hay cách người dùng sử dụng các đường links trong các trang để lướt web.

Kiểm thử tính khả dụng: Trang web phải dễ sử dụng. Cung cấp các hướng dẫn rõ ràng, rành mạch. Kiểm thử xem các hướng dẫn đó có đúng như những gì nó phải đáp ứng ko? Mỗi trang đều cần có menu chính, và menu này phải nhất quán.

Kiểm thử nội dung: Nội dung trang web phải hợp lý và dễ hiểu. Kiểm tra các lỗi chính tả. Các màu tối sẽ gây phiền phức cho người dùng và do đó ko nên được sử dụng. Bạn có thể theo một vài chuẩn nào đó được sử dụng cho việc xây dựng nội dung web. Đây là những chuẩn được chấp nhận phổ biến như tôi đã chú ý ở trên, về màu sắc, fonts, frames… Nội dung cần phải đầy đủ ý nghĩa. Tất cả các đường links được gán phải làm việc tốt. Các tranh ảnh phải được đặt đúng chỗ với đúng kích thước. Có một vài chuẩn cơ bản nên theo khi phát triển ứng dụng web. Nhiệm vụ của bạn là xác minh tất cả khi kiểm thử giao diện.

Các thông tin hỗ trợ người dùng: Như lựa chọn tìm kiếm, sơ đồ trang web, các file hỗ trợ…Sơ đồ trang web cần có trong tất cả các links trong trang web với cây thư mục để hỗ trợ chuyển hướng. Kiểm tra tất cả cá links trong sơ đồ.Tùy chọn “Tìm kiếm trong trang web” sẽ giúp người dùng tìm kiếm các trang nội dung một cách dễ dàng và nhanh chóng. Tất cả các mục cần được phô bày và phải được xác minh


Kiểm tra giao diện

Các giao diện chính:

  • Giao diện web server và server ứng dụng
  • Giao diện server ứng dụng và giao diện server cơ sở dữ liệu

Kiểm tra tất cả các tương tác giữa các servers có được thực thi đúng không? Các lỗi phải được nắm bắt chính xác. Nếu server CSDL hoặc web server trả lại bất kỳ thông điệp lỗi nào cho bất kỳ truy vấn nào từ server ứng dụng, thì server ứng dụng phải bắt được và hiển thị thông điệp cảnh báo đó cho người sử dụng ngay lập tức. Kiểm tra điều gì sẽ xảy ra nếu người dùng ngắt giao dịch đột ngột? Kiểm tra điều gì xảy ra nếu kết nối tới web server bị khởi động lại?


Kiểm thử khả năng tương thích

Kiểm thử khả năng tương thích của trang web là một phần rất quan trọng. Trong đó ta cần thực hiện các việc sau:

  • Kiểm thử sự tương thích với trình duyệt.
  • Kiểm thử sự tương thích với hệ điều hành.
  • Kiểm thử sự tương thích với thiết bị di động.
  • Kiểm thử sự tương thích với tùy chọn các thiết bị ngoại vi (máy in…).

Tương thích với trình duyệt:

  • Một vài ứng dụng phụ thuộc rất nhiều vào trình duyệt. Các trình duyệt khác nhau có các cấu hình khác nhau và trang web của bạn cần tương thích với nó. Trang web của bạn phải được lập trình đáp ứng tương thích với các platform của trình duyệt. Nếu bạn sử dụng Javascript, AJAX để xây dựng các chức năng giao diện người dùng, kiểm thử bảo mật hay xác minh, hãy kiểm tra tải trên trình duyệt cho ứng dụng của mình.
  • Kiểm thử các ứng dụng web trên các trình duyệt khác nhau như IE, Firefox, Netscape, AOL, Safari, Opera với các phiên bản khác nhau.

Tương thích với hệ điều hành:

  • Một vài chức năng trong ứng dụng web của bạn có thể không tương thích với tất cả các hệ điều hành. Tất cả các công nghệ mới được sử dụng trong phát triển web như thiết kế đồ họa, giao diện được gọi như các API khác có thể không có sẵn trong mọi hệ điều hành.
  • Hãy kiểm thử các ứng dụng web của mình trên các hệ điều hành khác nhau như Windows, Unix, MAC, Linux, Solaris…

Trình duyệt trên thiết bị di động:

  • Đây là thời đại công nghệ mới. Các trình duyệt di động sẽ phát triển mạnh trong tương lai. Hãy kiểm thử các trang web của bạn trên các trình duyệt di động. Các vấn đề về tương thích có thể xuất hiện trên các thiết bị di động.

Tùy chọn in:

  • Nếu bạn nhận được tùy chọn “in trang” thì phải đảm bảo tính chính xác của fonts, liên kết trang, đồ họa…Các trang phải được khớp với cỡ giấy.

Kiểm thử hiệu năng

Ứng dụng web phải được duy trì với tải lớn. Kiểm thử hiệu năng bao gồm:

  • Kiểm thử tải
  • Kiểm thử áp lực

Kiểm thử hiệu năng ứng dụng với các tốc độ kết nối mạng khác nhau.

Trong kiểm thử tải phải kiểm tra xem khi có nhiều người dùng cùng truy cập hoặc cùng yêu cầu một trang thì sao? Hệ thống có thể duy trì hoạt động trong giờ bận được không? Trang web phải nắm bắt được nhiều yêu cầu đồng thời của người dùng, dữ liệu đầu vào lớn từ các người dùng, kết nối đồng bộ với DB, tải lớn trên các trang đặc biệt…

Kiểm thử chịu tải: Thông thường stress test có nghĩa là đẩy hệ thống vượt ra ngoài giới hạn của nó. Kiểm thử chịu tải một trang web là làm gián đoạn trang web đó bằng cách tăng lượng tải cao hơn và kiểm tra xem hệ thống phản ứng lại với từng mức tải cụ thể đó như thế nào? Hệ thống phục hồi lại như thế nào? Tải có thể nhận dữ liệu đầu vào từ các phần đăng nhập, đăng ký, seach…

Trong kiểm thử hiệu năng web, các chức năng của trang web trên các hệ điều hành, các nền tảng phần cứng khác nhau phải được kiểm tra để tìm ra các lỗi phần mềm, thất thoát bộ nhớ…


Kiểm thử bảo mật

Một vài test case cho kiểm thử bảo mật web:

  • Kiểm thử bằng cách gõ trực tiếp url vào thanh địa chỉ của trình duyệt mà không qua đăng nhập. Các trang nội bộ phải không được mở.
  • Nếu bạn đã đăng nhập với username và password, và mở các trang nội bộ, hãy thử thay đổi url trực tiếp. Ví dụ, nếu bạn kiểm tra một vài thống kê trang với ID = 123, hãy thay đổi trực tiếp tham số ID của trang tới trang thuộc quyền người dùng đã đăng nhập. Truy cập phải bị từ chối bởi người dùng này bởi không cho phép xem số liệu thống kê của người dùng khác.
  • Thử các giá trị đầu vào không hợp lệ trong các trường nhập như password, username…vào các textboxes. Kiểm tra phản ứng của hệ thống trước các đầu vào không hợp lệ này.
  • Các thư mục web hay các tệp tin không được truy nhập trực tiếp mà không có tùy chọn “download”
  • Kiểm tra CAPTCHA cho các đăng nhập tự động
  • Kiểm tra SSL có được sử dụng cho đo mức bảo mật? Các thông điệp có được hiển thị khi người dùng chuyển từ các trang không bảo mật sang các trang có bảo mật và ngược lại
  • Tất cả các phiên giao dịch, các thông điệp lỗi, các hành vi cố gắng xâm phạm an ninh phải được ghi trong các tệp nhật ký (log) và lưu tại web server.