1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Phương pháp sinh bộ kiểm thử tự động cho kiểm thử giao diện ứng dụng web 001

76 22 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 76
Dung lượng 894,98 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ngày nay các ứng dụng Web được phát triển khá đa dạng từ trang Web hẹn hò đến các trang thương mại điện tử1, ngân hàng trực tuyến2, đặt vé các hãng hàngkhông3 … Kiểm thử dựa trên đặc điể

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS LÊ THANH HÀ

Hà Nội - 2013

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của tôi dưới sự giúp đỡ rấtlớn của Giảng viên hướng dẫn là Tiến sĩ Lê Thanh Hà, Tiến sĩ Phạm Ngọc Hùng.Những nội dung nghiên cứu và kết quả trong đề tài này hoàn toàn trung thực

Các trích dẫn từ nguồn tài liệu bên ngoài đều được liệt kê rõ ràng ở phầncuối của luận văn

Hà Nội, tháng 12 năm 2013

Học viên

Hà Khánh Toàn

Trang 4

LỜI CẢM ƠN

Để có thể hoàn thành đề tài luận văn thạc sĩ một cách hoàn chỉnh, bên cạnh sự

nỗ lực cố gắng của bản thân còn có sự hướng dẫn nhiệt tình của quý Thầy Cô, cũngnhư sự động viên ủng hộ của gia đình và bạn bè trong suốt thời gian học tập,nghiên cứu và thực hiện luận văn thạc sĩ

Xin chân thành bày tỏ lòng biết ơn sâu sắc đến Tiến sĩ Lê Thanh Hà, Tiến sĩPhạm Ngọc Hùng, những người đã dành rất nhiều thời gian và tâm huyết hướngdẫn tôi nghiên cứu và hoàn thành luận văn thạc sĩ Xin gửi lời tri ân nhất đối vớinhững điều mà các Thầy đã dành cho tôi

Xin chân thành bày tỏ lòng biết ơn đến toàn thể quý Thầy Cô trong khoa CôngNghệ Thông Tin Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội đã tậntình truyền đạt những kiến thức quý báu cũng như tạo mọi điều kiện thuận lợi nhấtcho tôi trong suốt quá trình học tập, nghiên cứu và cho đến khi thực hiện đề tài luậnvăn

Cuối cùng, tôi xin chân thành bày tỏ lòng cảm ơn đến Ban lãnh đạo Hệ thốngĐào tạo Lập trình viên Quốc tế Aprotrain-Aptech đã tạo điều kiện cho tôi rất nhiềutrong suốt quá trình làm việc, học tập và thực hiện đề tài luận văn thạc sĩ của mình.Mặc dù tôi đã rất cố gắng hoàn thiện luận văn bằng tất cả sự nhiệt tình vànăng lực của mình Tuy nhiên do trình độ, kinh nghiệm và khả năng chuyên môn cóhạn, chắc chắn luận văn còn nhiều thiếu sót Rất mong nhận được những góp ý củaquý Thầy Cô và các bạn

Hà Nội, tháng 12 năm 2013

Học viên

Hà Khánh Toàn

Trang 5

MỤC LỤC

TRANG PHỤ BÌA

LỜI CAM ĐOAN

LỜI CẢM ƠN

MỤC LỤC

DANH MỤC CÁC TỪ VIẾT TẮT

DANH MỤC CÁC BẢNG

DANH MỤC CÁC HÌNH VẼ

CHƯƠNG 1 GIỚI THIỆU 1

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 3

2.1 Khái niệm Web Application 3

2.2 Các kỹ thuật kiểm thử 3

2.2.1 Kiểm thử hộp đen 3

2.2.3 Kiểm thử hộp xám 6

2.2.4 Kiểm thử dựa trên mô hình 7

2.2.5 Kiểm thử sử dụng máy hữu hạn trạng thái 9

2.3 Các mức kiểm thử 11

2.3.1 Kiểm thử đơn vị 12

2.3.2 Kiểm thử tích hợp 12

2.3.3 Kiểm thử hệ thống 13

2.3.4 Kiểm thử chấp nhận 13

2.4 BỘ CÔNG CỤ SELENIUM – WEBDRIVER TRONG VIỆC KIỂM THỬ GIAO DIỆN ỨNG DỤNG WEB 13

2.4.1 Tổng quan về Selenium 14

2.4.2 Selenium-RC (Remote Control) 14

2.4.3 Selenium 2 (Selenium – Webdriver) 15

2.4.4 Một số Selenium-Webdriver API 15

CHƯƠNG 3 PHƯƠNG PHÁP SINH BỘ KIỂM THỬ TỰ ĐỘNG CHO KIỂM THỬ GIAO DIỆN ỨNG DỤNG WEB 18

Trang 6

3.1 Mục tiêu của phương pháp nghiên cứu 18

3.2 Tổng quan 18

3.3 Tạo các ca kiểm thử cho ứng dụng Web 19

3.3.1 Xây dựng mô hình máy hữu hạn trạng thái 19

3.3.2 Xây dựng mô hình đồ thị cho máy hữu hạn trạng thái 27

3.3.3 Thực hiện việc tạo ra các ca kiểm thử 30

3.3.4 Thuật toán sinh ca kiểm thử 30

CHƯƠNG 4 THỰC NGHIỆM 32

4.1 Phương pháp thực hiện 32

4.2 Xây dựng công cụ kiểm thử tự động 32

4.2.1 Mô tả công cụ kiểm thử 33

4.2.2 Xây dựng ứng dụng Web 34

4.2.3 Xây dựng máy hữu hạn trạng thái cho ứng dụng Web 38

4.3 Kết quả thử nghiệm chương trình 41

4.4 Thảo luận 44

CHƯƠNG 5 KẾT LUẬN 45

PHỤ LỤC 47

TÀI LIỆU THAM KHẢO 54

Trang 7

DANH MỤC CÁC TỪ VIẾT TẮTViết tắt

Trang 8

DANH MỤC CÁC BẢNG

Số hiệubảng2.13.1

3.2

3.33.43.54.14.24.34.44.54.64.7

4.8

4.94.104.11

4.12

Trang 9

4.144.15

Trang 11

CHƯƠNG 1 GIỚI THIỆU

Ngày nay, sự phát triển của Internet đã thúc đẩy nhu cầu cộng tác làm việcqua mạng và sử dụng các dịch vụ trực tuyến dần trở thành một nhu cầu thiết yếutrong cuộc sống của chúng ta Xu hướng này đòi hỏi các ứng dụng không chỉ lànhững hệ thống đơn lẻ trên một máy và chịu sự phụ thuộc vào một nền tảng cố địnhnào nữa, mà chúng phải là những hệ thống linh hoạt giúp người dùng làm việc

“mọi lúc, mọi nơi” Do đó, việc phát triển các ứng dụng Web đang là xu hướng tấtyếu của ngành công nghiệp phần mềm Các ứng dụng Web đang được ứng dụngrộng rãi trong thực tế Càng ngày các doanh nghiệp nói chung và mọi người nóiriêng càng phụ thuộc vào các ứng dụng Web và làm thế nào để các ứng dụng Webđáp ứng được các nhu cầu này Do đó, nhu cầu đảm bảo an toàn chất lượng các sảnphẩm phần mềm ứng dụng Web ngày càng trở nên cấp thiết Việc đảm bảo chấtlượng phần mềm hiện nay đang là một bài toán khó và nó tiêu tốn hơn 50% côngsức và chi phí của các doanh nghiệp phần mềm

Kiểm thử đang được quan tâm như là phương pháp chủ yếu để đảm bảochất lượng của sản phẩm phần mềm ứng dụng Web nói riêng và sản phẩm phầnmềm nói chung Trong thực tế, các công ty gặp nhiều khó khăn, tốn thời gian và chiphí cao cho việc kiểm thử các ứng dụng Web Mặc dù họ có thể thuê những ngườikiểm thử có kỹ năng kiểm thử giỏi, song những sai sót hoặc thiếu sót trong kiểmthử ứng dụng Web là không thể tránh khỏi do các phương pháp kiểm thử ứng dụngWeb thường được thực hiện thủ công Do đó, các phương pháp kiểm thử hiện tạikhông đảm bảo phát hiện ra tất cả các lỗi Ngoài ra, việc kiểm thử thủ công của mộtứng dụng Web có thể tẻ nhạt và tốn thời gian (đôi khi do tương tác người dùng quálớn), đặc biệt là khi thực hiện các bài kiểm thử qui hồi trong ứng dụng Kết quả làcác ứng dụng Web hiện nay tiềm ẩn rất nhiều lỗi sau khi triển khai cho khách hàng

Trong kiểm thử các ứng dụng Web, kiểm thử tương tác giao diện người dùng làmột vấn đề khó và thường được thực hiện thủ công Trong thực tế, chúng ta có mộtthiết kế giao diện người dùng mô tả việc thay đổi trạng thái của màn hình ứng với cáctương tác của người dùng Các thay đổi trạng thái này có thể xảy ra trong một trangWeb hoặc từ trang Web này sang trang Web khác Làm thế nào để đảm bảo rằng việccài đặt tuân thủ đúng theo thiết kế này chính là mục đích chính của kiểm thử tương tácgiao diện người dùng cho các ứng dụng Web Các kỹ thuật kiểm thử tự động đã đượcbiết đến như là các giải pháp tiềm năng để giải quyết vấn đề trên Những kỹ thuật này

có thể phát hiện ra tất cả các lỗi có thể trong ứng dụng bằng cách tạo ra và thực hiện tựđộng các ca kiểm thử Kết quả là, chúng ta có thể tiết kiệm thời gian và chi phí trongkiểm thử Tự động kiểm thử là quá trình thực

Trang 12

hiện tự động bởi một chương trình máy tính để tránh các lỗi không được phát hiệnkhi kiểm thử thủ công Để đảm bảo tính chính xác, các công cụ kiểm thử tự độngthường được xây dựng dựa trên các phương pháp kiểm thử như kiểm thử hộp đen,kiểm thử hộp trắng, … Tuy nhiên, các công cụ kiểm thử tự động là rất đắt và nhiềucông ty không thể mua chúng

Luận văn này tập trung nghiên cứu các phương pháp kiểm thử dựa trên môhình nhằm đảm bảo việc cài đặt đúng theo thiết kế ban đầu Đầu tiên sử dụng môhình máy hữu hạn trạng thái cho giao diện ứng dụng Web, sau đó tạo ra các bộkiểm thử từ máy hữu hạn trạng thái, từ đó xây dựng một đồ thị có hướng để biểudiễn các trường hợp kiểm thử Dựa trên đồ thị có hướng, theo các nhánh chúng ta

có thể tạo ra các trường hợp kiểm thử cho sản phẩm Mục đích của luận văn này là

đề xuất một phương pháp cho phép để xây dựng một phương pháp kiểm thử tựđộng cho giao diện các ứng dụng Web Một công cụ kiểm thử tự động hỗ trợ cũng

sẽ được phát triển nhằm minh chứng cho tính hiệu quả của phương pháp này

Các phần tiếp theo của luận văn được tổ chức như sau Chương 2 trình bày

về cơ sở lý thuyết của đề tài Chương này đề cập đến các khái niệm cơ bản củakiểm thử phần mềm, tìm hiểu về kiểm thử dựa trên mô hình, máy hữu hạn trạngthái Tiếp theo, chương 3 đề cập đến cách làm thế nào để sinh được các bộ kiểmthử từ máy hữu hạn trạng thái Sau đó, chương 4 xây dựng chương trình thựcnghiệm dùng công cụ Selenium và Webdriver Nghiên cứu các trường hợp sinh cakiểm thử bằng chương trình thực nghiệm này Cuối cùng, chương 5 tóm tắt các kếtquả đã đạt được, kết luận, những hạn chế và hướng nghiên cứu phát triển trongtương lai

Trang 13

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 Khái niệm Web Application

Các ứng dụng Web là các ứng dụng được giao tiếp với các máy khách thôngqua các giao thức Web như HTTP, WSDL hoặc SOAP Với sự phổ biến của WorldWide Web thì việc các ứng dụng Web được phát triển ngày càng nhiều Trình duyệtWeb cung cấp cho các nhà phát triển các cơ hội để khai thác năng lực vốn có củatrình duyệt để giảm bớt gánh nặng phụ thuộc vào các hệ điều hành khác nhau hoặccác nền tảng phần cứng có sẵn cho người dùng

Ngày nay các ứng dụng Web được phát triển khá đa dạng từ trang Web hẹn

hò đến các trang thương mại điện tử1, ngân hàng trực tuyến2, đặt vé các hãng hàngkhông3 …

Kiểm thử dựa trên đặc điểm kỹ thuật nhằm mục đích để kiểm tra các chứcnăng của phần mềm theo các yêu cầu ứng dụng Mức độ kiểm thử thường đòi hỏi

ca kiểm thử kỹ lưỡng được cung cấp bởi các kiểm thử viên, những người mà sau

đó có thể xác minh một cách đơn giản rằng đối với một giá trị đầu vào hoặc đầu ra

1 http://www.alibaba.com

2 https://www.vietcombank.com.vn/ibanking/

3 http://www.vietnamairlines.com/wps/portal/vn/site/book_your_trip/

Trang 14

(hoặc cách xử lý) có thể giống hoặc không so với giá trị kỳ vọng được định vị trongmột ca kiểm thử nhất định Các ca kiểm thử được xây dựng quanh các thông số kỹthuật và các yêu cầu đề xuất, tức là những tất cả những gì ứng dụng đó phải làm

Nó được sử dụng để mô tả mở rộng phần mềm bao gồm các thông số kỹ thuật, cácyêu cầu và thiết kế được bắt nguồn trong ca kiểm thử Các kiểm thử này có thể làchức năng hoặc phi chức năng

Hình 2.1 mô tả mô hình của kiểm thử hộp đen với các loại đầu vào nhưngẫu nhiên tạo ra đầu vào trong phạm vi cho phép, trường hợp ranh giới trongphạm vi qui định đầu vào, kiểm tra đầu vào là số không, kiểm tra đầu vào là các giátrị rỗng, đầu vào là các giá trị không hợp lệ hoặc ra khỏi phạm vi dự kiến,

Đầu vào

Hình 2.1 Kiểm thử hộp đen.

Kiểm thử dựa trên đặc điểm kỹ thuật có thể là cần thiết để đảm bảo chứcnăng chính xác, nhưng nó không đủ để bảo vệ chống lại các tình huống phức tạphoặc có độ rủi ro cao Một lợi thế của kỹ thuật kiểm thử hộp đen là không yêu cầunhất thiết phải có kiến thức lập trình Các kiểm thử viên tiến hành kiểm thử ở cáckhu vực và các chức năng khác nhau của phần mềm mà không liên quan đến cáclập trình viên Mặt khác, kiểm thử hộp đen được cho là “đi bộ trong một mê cungtối tăm mà không có đèn pin” Bởi vì họ không kiểm thử mã nguồn và đã có nhiềutình huống các kiểm thử viên chỉ kiểm thử được tính năng trong một vài trườnghợp chứ không kiểm thử được toàn bộ hoạt động của chương trình

Phương pháp kiểm thử này có thể được áp dụng cho tất cả các cấp kiểm thửphần mềm: đơn vị, tích hợp, hệ thống và chấp nhận Nó không thể thực hiện đượctất cả các kiểm thử các cấp độ cao hơn nhưng nó có thể tạo ưu thế tốt khi kiểm thửtừng đơn vị

2.2.2 Kiểm thử hộp trắng

Kiểm thử hộp trắng hay còn được gọi là kiểm thử cấu trúc, quá trình thiết kếcác ca kiểm thử là quá trình xây dựng các phương pháp kiểm thử có thể phát hiệnlỗi, sai sót, khiếm khuyết của phần mềm để xây dựng một phần mềm đạt tiêuchuẩn Kỹ thuật kiểm thử hộp trắng hay kiểm thử hướng lôgic cho phép bạn khảosát cấu trúc bên trong của chương trình Kỹ thuật này xuất phát từ dữ liệu kiểm thửbằng sự kiểm thử tính lôgic của chương trình Kiểm thử viên sẽ truy cập vào cấutrúc dữ liệu và giải thuật bên trong chương trình (và cả mã lệnh thực hiện chúng)

Trang 15

Mục đích của bất cứ phương pháp kiểm thử nào cũng là để đảm bảo rằngtình trạng tốt của một hệ thống trên bề mặt của những sự tấn công độc hại hoặc làtránh những sự thất bại của phần mềm thông thường Kiểm thử hộp trắng là sựthực hiện dựa trên hiểu biết về những phần tử của một hệ thống Kiểm thử hộptrắng bao gồm phân tích dòng dữ liệu, điều khiển dòng, dòng thông tin, mã thựchành, ngoại lệ và những lỗi trình bày trong hệ thống để kiểm tra những hành độngcủa phần mềm không được định hướng trước Kiểm thử hộp trắng có thể thực hiện

để xác định tính hợp lệ cho dù việc triển khai thực hiện sau mã nhằm thiết kế, xácnhận tính hợp lệ để triển khai thực hiện chức năng bảo mật và giảm rủi ro việc bịtấn công ở những chỗ mở có thể khai thác được

Kiểm thử hộp trắng yêu cầu truy cập vào mã nguồn mặc dù kiểm thử hộptrắng có thể thực hiện tại bất cứ thời điểm nào trong vòng đời của phần mềm saukhi mã lệnh được phát triển Đó là một hành động tốt để thực hiện kiểm thử hộptrắng trong suốt giai đoạn kiểm thử đơn vị

Hình 2.2 hiển thị một kiểm thử hộp trắng đơn giản Trong hình 2.2, ở Ví dụ

1 chỉ có một đường thi hành nhưng rất dài: dài 1000*1000*1000 = 1 tỷ lệnh gọi

hàm doSomethingWith(i,j,k) khác nhau Ví dụ 2 gồm 32 câu lệnh if else độc lập

nhưng có 2^32 = 4 tỷ đường thi hành khác nhau Như vậy mục tiêu của kiểm thử

là đảm bảo mọi đường thi hành của đơn vị phần mềm cần kiểm thử đều chạy đúng.Tuy nhiên trong thực tế, công sức và thời gian để đạt được mục tiêu trên đây là rấtlớn, ngay cả trên những đơn vị phần mềm nhỏ

Hình 2.2 Một ví dụ về kiểm thử hộp trắng.

Trang 16

Trong hình 2.3 hiển thị sơ đồ luồng điều khiển của một đoạn mã lệnh Tạibước đầu tiên, điểm khởi đầu sẽ đi đến khối lệnh xử lý là điểm (1) Sau đó, luồngđiều khiển sẽ đến điểm quyết định (2) Ở vị trí (2), luồng điều khiển có hai hướng

Nó có thể thực hiện đến điểm (3) để tạo ra một nhánh mới là 1  2  3 hoặc điểm

(4) để tạo ra một nhánh khác là 1  2  4 Cả hai nhánh có đều đến điểm (5) và trở về điểm kết thúc

Trong hình 2.3, chúng ta có năm nút quyết định nhị phân trong đồ thị nên có

độ phức tạp C = 1 + 1 = 2 Hai đường độc lập tuyến tính trong đồ thị luồng điềukhiển Kiểm thử viên có thể tạo ra hai ca kiểm thử cho đoạn mã trên là:

dạng dữ liệu đầu ra là không rõ ràng, giống như một chiếc “hộp xám”, bởi vì đầu vào và đầu ra rõ ràng là ở bên ngoài “hộp đen” mà chúng ta vẫn gọi về hệ thống

được kiểm tra Sự khác biệt này đặc biệt quan trọng khi quản lý kiểm thử tích hợp

Trang 17

giữa hai mô-đun mã lệnh được viết bởi hai chuyên viên thiết kế khác nhau, trong

đó chỉ giao diện là được đưa ra để kiểm thử Kiểm thử hộp xám có thể cũng baogồm cả thiết kế đối chiếu để quyết định, ví dụ giá trị biên hay thông báo lỗi

2.2.4 Kiểm thử dựa trên mô hình

2.2.4.1 Khái niệm kiểm thử dựa trên mô hình

Kiểm thử dựa trên mô hình [4] là tự động tạo ra các thủ tục kiểm thử phầnmềm sử dụng các mô hình yêu cầu hệ thống và hành vi Mặc dù loại kiểm thử nàyđòi hỏi nhiều nỗ lực đáng kể trong việc xây dựng các mô hình trước, nhưng nócung cấp lợi thế đáng kể so với cách phương pháp kiểm thử phần mềm truyềnthống Các mẫu thiết kế hay mô hình là mô tả đơn giản của hệ thống dựa trên yêucầu hệ thống và chức năng xác định, giúp chúng ta có thể hiểu và dự đoán đượchành vi của hệ thống

2.2.4.2 Các bước thực hiện

Quá trình kiểm thử dựa trên mô hình được bắt đầu bằng việc xác định yêucầu của hệ thống từ đó xây dựng mô hình dựa vào các yêu cầu và chức năng của hệthống [12] Việc xây dựng mô hình còn phải dựa trên các yếu tố dữ liệu đầu vào vàđầu ra Mô hình này được sử dụng để sinh ra các ca kiểm thử Chúng ta có thể biếtkết quả đầu ra mong đợi từ mô hình hoặc từ quy định chuẩn Khi chạy kịch bản vàkết quả thu được sẽ được so sánh với kết quả mong đợi Từ đó, quyết định hànhđộng tiếp theo như sửa đổi mô hình hoặc dừng kiểm thử, …

Các bước để thực hiện kiểm thử dựa trên mô hình như được trình bày ở hình 2.4 bao gồm các bước sau:

 Xây dựng mô hình dựa trên các yêu cầu và chức năng của hệ thống

 Tạo đầu ra dự kiến từ mô tả bài toán

 Chạy kịch bản kiểm thử

 So sánh kết quả đầu ra thực tế với kết quả đầu ra dự kiến

 Quyết định hành động tiếp theo (Sửa đổi mô hình, tạo thêm ca kiểm thử, dừng kiểm thử, đánh giá chất lượng của phần mềm)

Trang 18

Hình 2.4 Các bước thực hiện kiểm thử mô hình

2.2.4.3 Những thuận lợi và khó khăn của kiểm thử dựa trên mô hình

Trong phát triển phần mềm các kiểm thử viên thường thực hiện công việccủa mình bằng phương pháp truyền thống nên thường thiếu thời gian để thực hiệnkiểm thử, hoặc giá thành sản phẩm khi hoàn thành thường cao….[4] Và kiểm thửdựa trên mô hình sẽ khắc phục được một số nhược điểm đó:

 Do quá trình sinh ca kiểm thử là tự động vì vậy mà rút ngắn thời gian làm phần mềm, và chất lượng phần mềm tốt hơn

 Đặc biệt tuy chi phí lớn cho việc xây dựng mô hình nhưng điều này sẽ được khấu trừ do chi phí bảo dưỡng thấp hơn nhiều khi hệ thống được hoạt động

 Quá trình sinh ra các ca kiểm thử được thực hiện một cách tự động nên sinh ra nhiều ca kiểm thử và phát hiện nhiều lỗi

 Người kiểm thử phần mềm cần thường xuyên trao đổi với người pháttriển phần mềm trong khi xây dựng mô hình hệ thống vì vậy mà tăng khảnăng giao tiếp trao đổi giữa người phát triển phần mềm, và người kiểm thử

Trang 19

 Người kiểm thử sẽ không bị nhàm chán khi phải thực hiện lặp lại nhiềulần một công việc, điều đó làm cho người kiểm thử hài lòng với công việccủa mình.

 Sớm phát hiện lỗi và sự không rõ ràng trong đặc điểm kỹ thuật và thiết

kế vì vậy sẽ tăng thời gian giải quyết vấn đề trong kiểm thử

 Tự động tạo và kiểm tra các ca kiểm thử trùng nhau hoặc không hữu hiệu

 Khi một yêu cầu của hệ thống thay đổi việc thay đổi các ca kiểm thử làrất phức tạp nhưng nó được giải quyết khi mà kiểm thử dựa trên mô hình.Việc thay đổi các ca kiểm thử chỉ việc thay đổi mô hình của hệ thống

 Trong kiểm thử dựa trên mô hình công việc quan trọng nhất là xây dựng

mô hình Người kiểm thử phải đầu tư đáng kể cả về thời gian, trí tuệ và tiềnbạc cho việc xây dựng mô hình hệ thống

 Giống như các phương pháp kiểm thử khác, việc kiểm thử dựa trên môhình chỉ phát hiện được lỗi của hệ thống mà không thể phát hiện được hệthống còn lỗi hay không

2.2.5 Kiểm thử sử dụng máy hữu hạn trạng thái

Trong kiểm thử phần mềm có nhiều kiểu mô hình được sử dụng như: môhình máy hữu hạn trạng thái [2], ngôn ngữ mô hình hóa thống nhất - UML, vănphạm, Trong nghiên cứu này trình bày về mô hình máy hữu hạn trạng thái

Mô hình máy hữu hạn trạng thái cũng được gọi là ôtômat hữu hạn trạng tháihoặc chỉ đơn giản là một máy trạng thái Nó được sử dụng rộng rãi trong các môhình tính toán với nhiều ứng dụng Một máy hữu hạn trạng thái bao gồm ba thànhphần chính là các trạng thái, các quá trình chuyển đổi, và các hành động Các thànhphần này có thể phân thành hai loại chính là Máy hữu hạn trạng thái chấp nhận -Acceptor Finite State Machine (AFSM) và Bộ chuyển đổi hữu hạn trạng thái -Finite State Transducer (FST) Trong thực tế máy hữu hạn trạng thái đóng một vai

Trang 20

trò quan trọng trong nhiều lĩnh vực nhƣ công nghệ điện tử, ngôn ngữ học, lôgic vàđặc biệt là khoa học máy tính Trong khoa học máy tính, máy hữu hạn trạng thái

Trang 21

được sử dụng rộng rãi trong các mô hình hóa các hoạt động phần mềm, thiết kế hệthống phần cứng, dịch thuật,… Do đó luận văn áp dụng mô hình này để xây dựngchương trình kiểm thử tự động cho giao diện ứng dụng Web [3].

Máy hữu hạn trạng thái được định nghĩa theo mô hình như sau:

M=(Σ,Q,δ,S,F)Trong đó:

 Σ: tập tất cả các sự kiện: tất cả các sự kiện có thể xảy ra trong chương trình,

 Q: tập trạng thái: các trạng thái khi chương trình thực hiện,

 δ: trạng thái chuyển đổi: được định nghĩa giữa các cặp trạng thái hoặc

sự kiện đến các trạng thái tiếp theo,

 S: là trạng thái khởi tạo được khởi tạo khi chương trình bắt đầu thực hiện và

 F: là tập kết thúc là tập con của Q

Trong bảng 2.1 hiển thị các trạng thái chuyển đổi[5], dòng đầu tiên là cáctrạng thái cuối, cột đầu tiên là các trạng thái đầu, còn lại là các trạng thái chuyểnđổi Bảng này được chuyển đổi thành đồ thị có hướng được biểu diễn trong hình2.1

Bảng 2.1 Bảng chuyển trạng thái.

ResultStudent.aspxs_ResultStudentStudentNameKhoahoc

Student+

KhoaHocF_mainerror

Trang 22

Sau đó bảng này sẽ được chuyển sang đồ thị chuyển trạng thái trong hình 2.5 Hình 2.5 hiển thị mô hình đồ thị máy FSM cũng được gọi là đồ thị có hướng.

Trang 23

Hình 2.5 Mô hình đồ thị của máy FSM

Từ mô hình đồ thị của máy hữu hạn trạng thái (Hình 2.5) Chúng ta có thể thấytất cả các đường đi từ đồ thị có hướng Ví dụ một số đường trong đồ thị này là:

1 S_ResultStudent  submit  errorSt

2 S_ResultStudent  select_khoahoc  KhoaHoc 

t_stdNameText  StudentName + KhoaHoc  Submit 

ResultStudent.aspx

3 S_ResultStudent  select_khoahoc  submit  errorSt

4 S_ResultStudent  t_stdNameText  StudentName  Submit

 errorSt

5 S_ResultStudent  t_stdNameText  StudentName 

select_KhoaHoc  StudentName + KhoaHoc  Submit 

ResultStudent.aspx

2.3 Các mức kiểm thử

Kiểm thử thường xuyên được nhóm lại theo vị trí chúng được thêm vàotrong quá trình phát triển phần mềm, hoặc do mức độ đặc hiệu của kiểm thử Cáccấp chính trong quá trình phát triển theo quy định của hướng dẫn SWEBOK là

Trang 24

kiểm thử đơn vị [7], kiểm thử tích hợp [11], và kiểm thử hệ thống [8] đƣợc phânbiệt bởi các mục tiêu kiểm thử mà không ám chỉ một mô hình quy trình cụ thể Cácmức độ kiểm thử khác đƣợc phân loại theo mục tiêu kiểm thử.

Trang 25

2.3.1 Kiểm thử đơn vị

Kiểm thử đơn vị hay còn được gọi là kiểm thử thành phần, đề cập đến việckiểm thử chức năng từng phần của mã, thường ở mức độ chức năng Trong mộtmôi trường hướng về đối tượng thì điều này thường là cấp độ lớp, và các kiểm thửđơn vị tối thiểu bao gồm hàm dựng và hàm hủy Nhiều loại kiểm thử được viết bởicác nhà phát triển như họ làm việc trong mã (kiểu hộp trắng) để đảm bảo rằng từnghàm riêng biệt hoạt động đúng như kỳ vọng Một hàm có thể có nhiều kiểm thử từ

đó giúp nắm bắt được các trường hợp góc hoặc các nhánh trong mã lệnh Kiểm thửđơn vị một mình không thể đảm bảo hết được từng chức năng của từng bộ phậntrong phần phềm nhưng nó được sử dụng để đảm bảo rằng các khối kiến trúc củaphần mềm hoạt động độc lập với nhau

Kiểm thử đơn vị là một quá trình phát triển phần mềm có liên quan đến ứngdụng đồng bộ của một loạt các chiến lược phòng ngừa phát hiện lỗi và để giảmthiểu rủi ro, thời gian và chi phí Nó được thực hiện bởi kỹ sư hay nhà phát triểntrong suốt giai đoạn xây dựng của vòng đời phát triển phần mềm Không chỉ tậptrung vào việc đảm bảo chất lượng truyền thống mà phải gia tăng nó lên vì thếkiểm thử đơn vị có mục đích loại bỏ những lỗi cấu trúc trước khi mã hóa rồi mớithúc đẩy việc quản lý chất lượng Chiến lược này nhằm nâng cao chất lượng cũngnhư hiệu quả của phần mềm trong tiến trình quản lý và phát triển chung

Tùy thuộc vào kỳ vọng của tổ chức phát triển phần mềm, kiểm thử đơn vị cóthể bao gồm phân tích mã tĩnh, phân tích luồng dữ liệu, phân tích dữ liệu, đánh giá

mã cân bằng, phân tích mã bao phủ và các thực hành xác nhận phần mềm khác

2.3.2 Kiểm thử tích hợp

Kiểm thử tích hợp là một hình thức kiểm thử phần mềm nhằm tìm cách xácminh các giao diện giữa các thành phần xung đột của một thiết kế Các thành phầnnày có thể tích hợp theo cách lặp đi lặp lại hoặc tất cả cùng nhau Thông thườngcách thức này được coi là một thực hành tốt hơn vì nó cho phép các vấn đề về giaodiện được định vị một cách nhanh chóng và cố định hơn

Kiểm thử tích hợp làm lộ ra các khiếm khuyết trong các giao diện và tươngtác giữa các thành phần tích hợp Các nhóm thành phần đã được kiểm thử lớn dầntừng bước tương ứng với các thuộc tính của cấu trúc thiết kế đã được tích hợp vàkiểm thử cho đến khi phần mềm hoạt động như một hệ thống

Trang 26

2.3.3 Kiểm thử hệ thống

Kiểm thử hệ thống giúp xác minh rằng một hệ thống được tích hợp có đápứng đầy đủ các yêu cầu hay không Ngoài ra, kiểm thử phần mềm phải đảm bảorằng các chương trình hoạt động như kỳ vọng, không còn bị phá hủy hay lỗi phầnnào đó trong môi trường hoạt động của nó hoặc không gặp sự cố khi hoạt động vớitiến trình khác (điều này bao gồm bộ nhớ chia sẻ không bị hỏng, nguồn tài nguyênkhông bị dư thừa hay chiếm dụng quá mức và không bị đẩy ra khi hoạt động songsong các tiến trình)

2.3.4 Kiểm thử chấp nhận

Kiểm thử chấp nhận thường là nghĩa vụ của khách hàng hoặc người sửdụng của hệ thống, các chủ sở hữu khác có thể cũng có liên quan Mục tiêu củaKiểm thử chấp nhận là để xác nhận sự tin tưởng trong hệ thống, các đặc điểm chứcnăng hoặc không có chức năng của hệ thống Tìm kiếm lỗi không phải là trọng tâmchính của kiểm thử chấp nhận Kiểm thử chấp nhận có thể đánh giá sự sẵn sàng của

hệ thống để triển khai và sử dụng, mặc dù nó không nhất thiết phải là mức cuốicùng của kiểm thử Ví dụ, một kiểm thử tích hợp có hệ thống trong một phạm vilớn có thể được thực hiện sau khi kiểm thử chấp nhận thực hiện cho một hệ thống

Hợp đồng và quy định chấp nhận thử nghiệm: Kiểm tra nghiệm thu hợp

đồng được thực hiện với các tiêu chí chấp nhận một hợp đồng nâng cấp - phát triểnphần mềm Chuẩn mực chấp nhận phải được xác định để thực hiện một thỏa thuậnhợp đồng Điều lệ kiểm thử chấp nhận được thực hiện trong bất kỳ quy định nàophải căn cứ vào như các quy định của chính phủ, pháp luật hoặc các quy định antoàn

Kiểm thử Alpha và Beta: Các nhà phát triển của thị trường phần mềm

thường muốn nhận được thông tin phản hồi từ khách hàng tiềm năng hoặc kháchhàng trong thị trường của họ trước khi sản phẩm phần mềm được đóng gói thươngmại Thử nghiệm alpha được thực hiện tại địa điểm tổ chức đang phát triển Giaiđoạn thử nghiệm, hoặc trường thử nghiệm, được thực hiện bởi khách hàng hoặckhách hàng tiềm năng tại các địa điểm riêng của họ

2.4 BỘ CÔNG CỤ SELENIUM – WEBDRIVER TRONG VIỆC KIỂM

THỬ GIAO DIỆN ỨNG DỤNG WEB

Selenium là một tập hợp mạnh mẽ các công cụ hỗ trợ phát triển nhanh chóngcủa các thử nghiệm tự động hóa cho các ứng dụng Web [6] Selenium cung cấp mộttập phong phú các thử nghiệm chức năng đặc biệt hướng đến các nhu cầu của các

Trang 27

thử nghiệm trong một ứng dụng Web Các hoạt động này là rất linh hoạt, cho phépnhiều tùy chọn cho vị trí các thành phần giao diện và so sánh kết quả thử nghiệm dựkiến sẽ chống lại hành vi ứng dụng thực tế.

2.4.1 Tổng quan về Selenium

Selenium ra đời năm 2004 bởi Jason Huggin Ông đã phát triển một thư việnJavascript điều khiển tương tác với các trang, cho phép chạy lại kiểm thử đối vớinhiều trang Cuối cùng thư viện này đã trở thành Selenium – Core nền tảng của cácchức năng Selenium Remote Control (RC) và Selenium IDE Selenium RC là sựđột phá vì không có sản phẩm nào cho phép bạn kiểm soát một trình duyệt từ mộtngôn ngữ lập trình

Năm 2006, Stimon Stewart là một kỹ sư tại Google bắt đầu làm việc vớimột dự án có tên là Webdriver Ông ấy muốn có một công cụ kiểm tra trực tiếp vớitrình duyệt bằng cách sử dụng phương pháp tự nhiên cho trình duyệt và hệ điềuhành do đó tránh được hạn chế của Javascript Sandbox

Năm 2008 đánh dấu sự kết hợp của Selenium và Webdriver Selenium cócộng đồng lớn và hỗ trợ thương mại nhưng Web Driver là một công cụ của tươnglai Việc kết hợp hai công cụ này cung cấp tập hợp các tính năng chung cho nhiềungười sử dụng và lợi ích trong tự động hóa kiểm thử

2.4.2 Selenium-RC (Remote Control)

Selenium-RC cho phép các nhà phát triển tự động hóa kiểm thử sử dụng mộtngôn ngữ lập trình, nó cho tính linh hoạt tối đa và mở rộng trong việc phát triểnlôgic thử nghiệm Ví dụ, nếu trình ứng dụng trả về một tập kết quả của việc kiểmtra, và nếu chương trình thử nghiệm tự động cần chạy thử nghiệm trên mỗi phần tửtrong tập hợp kết quả, hỗ trợ lặp đi lặp lại Các ngôn ngữ lập trình có thể được sửdụng để chuyển đổi thông qua việc tập hợp kết quả, kêu gọi Selenium lệnh chạy thửnghiệm trên mỗi mục

Selenium-RC cung cấp một API (Application Programming Interface) vàthư viện cho mỗi ngôn ngữ được hỗ trợ: HTML, Java, C #, Perl, PHP, Python, vàRuby Khả năng sử dụng Selenium-RC với một ngôn ngữ lập trình bậc cao để pháttriển các trường hợp thử nghiệm cũng cho phép thử nghiệm tự động được tích hợpvới một dự án xây dựng môi trường tự động

Trang 28

2.4.3 Selenium 2 (Selenium – Webdriver)

Selenium 2 là hướng tương lai của dự án nó bổ sung mới nhất của công cụSelenium Công cụ này cung cấp những tính năng tuyệt vời, bao gồm API địnhhướng gắn kết hơn và giải quyết các vấn đề tồn tại của các phiên bản trước Nó hỗtrợ các API Webdriver, cùng với công nghệ Selenium 1 API WebDriver cho sự linhhoạt tối đa trong việc kiểm thử Ngoài ra, Selenium 2 vẫn chạy Selenium RC 1 củagiao diện để tương thích ngược

2.4.4 Một số Selenium-Webdriver API

2.4.4.1 Một thể hiện của browser driver

Một browser driver (ví dụ như FirefoxDriver) là một đối tượng, đối tượngnày được coi như đại diện một trình duyệt trong chương trình

WebDriver ffdriver = new FirefoxDriver();

Từ đây, đối tượng ffdriver sẽ có những phương thức từ đó điểu khiển trìnhduyệt ở đây là Firefox Sau khi thực hiện lệnh này, trình duyệt sẽ được khởi động

2.4.4.2 Truy cập một trang Web

Điều đầu tiên chúng ta muốn làm với một Webdriver đó là truy cập vào mộttrang Web, thông thường điều này sẽ được thực hiện qua phương thức:

driver.get("http://www.google.com");

Khi đó trình duyệt sẽ được tự động truy cập vào địa chỉ đã truyền vào

2.4.4.3 Định vị các thành phần trên giao diện Web

Tất cả các thành phần trên giao diện Web đều có thể định vị bằng nhiều cách

mà Selenium hỗ trợ Mỗi một thành phần sẽ được ánh xạ qua một thể hiện củaWebElement

Webdriver sử dụng một phương thức findElement mà tham số của phươngthức này là định nghĩa vị trí của element trên trang Web Có rất nhiều cách để địnhnghĩa vị trí của một element trên Website trong đó có một số cách phổ biến sau:

Theo ID:

// <div id="coolestWidgetEvah"> </div>

WebElement element = driver.findElement(By.id("id_value"));

Theo Class Name:

// <div class="cheese"><span>Cheddar</span></div>

Trang 29

// <input name="cheese" type="text"/>

WebElement cheese = driver.findElement(By.name("cheese"));

Theo Link Text

/ <a href="http://www.google.com/search?q=cheese">cheese</a>>

WebElement cheese = driver.findElement(By.linkText("cheese"));

2.4.4.4 Điền các giá trị vào trang Web qua Selenium-Webdriver

Sau khi định vị được các thành phần trên một Website và ánh xạ chúng vớicác WebElement, chúng ta có thể thay đổi giá trị hoặc thực hiện các thao tác chuộtcũng như các thao tác gõ chữ lên WebElement đó thông qua các phương thức

// Find the text input element by its name

WebElement element = driver.findElement(By.name("q"));

/ Enter something to search for

element.sendKeys("Cheese!");

/ Now submit the form

element.submit();

2.4.4.5 Di chuyển giữa các cửa sổ và frame

Một số ứng dụng Web có thể chứa nhiều cửa sổ hoặc frame, Webdriver cungcấp phương thức giúp di chuyển giữa các cửa sổ thông qua tên:

driver.switchTo().window("windowName");

driver.switchTo().frame("frameName");

2.4.4.6 Điều hướng trình duyệt

Sau khi trình duyệt truy cập một trang Web và thực hiện một số sự kiện chuyển sang những trang mới, khi đó chúng ta có thể sử dụng phương thức

Trang 30

Webdriver còn cho phép thay đổi cả cookie khi truy cập các trang Web

/ set the cookie This one's valid for the entire domain

Cookie cookie = new Cookie("key", "value");

Trang 31

CHƯƠNG 3 PHƯƠNG PHÁP SINH BỘ KIỂM THỬ TỰ ĐỘNG CHO KIỂM THỬ GIAO DIỆN ỨNG DỤNG WEB

Ngoài việc phát triển các ứng dụng Web, các công ty chú ý để đảm bảo chấtlượng của sản phẩm Kiểm thử ứng dụng Web được coi là đảm bảo chất lượng sảnphẩm Tuy nhiên các phương pháp kiểm thử tự động mới chỉ được áp dụng đểkiểm thử các mô-đun chương trình Làm thế nào để kiểm thử tự động cho các giaodiện người dùng vẫn đang là bài toán mở và chưa có giải pháp thỏa đáng Đề tàinày tập trung nghiên cứu pha đầu trong quá trình kiểm thử tự động nhằm sinh tựđộng các ca kiểm thử cho kiểm thử tự động giao diện ứng dụng Web Để thực hiệnđiều này bài toán xây dựng công cụ kiểm thử tự động từ máy hữu hạn trạng thái và

tự động tạo ra các ca kiểm thử từ mô hình máy hữu hạn trạng thái

3.1 Mục tiêu của phương pháp nghiên cứu

Mục đích của phương pháp nghiên cứu này là để tạo ra các đường kiểm thử

tự động cho quá trình kiểm thử giao diện một ứng dụng Web, bằng phương pháptiếp cận dựa trên mô hình Điều này được thực hiện bằng cách từ bản thiết kế củamột ứng dụng Web tạo ra một máy hữu hạn trạng thái cho mỗi trang của ứng dụng.Sau đó một thuật toán được phát triển và sử dụng để đi qua các đỉnh và các cạnhcủa mô hình, đảm bảo rằng mỗi trạng thái và chuyển đổi được bao phủ Cuối cùngmỗi đường kiểm thử được ánh xạ tới các chuỗi lệnh sử dụng Selenium, Webdriver

và chạy tự động

3.2 Tổng quan

Giả sử chúng ta có một bản thiết kế một ứng dụng Web gồm có năm trangđược mô tả như sau:

1 Trang đăng nhập: login.aspx,

2 Trang hiển thị thông tin của học viên: studentInformation.aspx,

3 Trang hiển thị kết quả học tập của học viên: resultStudent.aspx,

4 Trang nhập kết quả học tập của học viên: addMark.aspx,

5 Và cuối cùng là trang đăng xuất: logout.aspx

Trang Login.aspx: đây là trang đăng nhập cho Website Người dùng đượcyêu cầu nhập tên đăng nhập và mật khẩu để vào các trang Web khác của ứng dụng.Nếu người dùng có quyền quản trị hoặc quyền giáo vụ sẽ được vào trang nhậpthông tin học viên hoặc trang nhập kết quả học tập của học viên Nếu người dùng

Trang 32

có quyền học viên thì sẽ được vào trang hiển thị thông tin học viên đó hoặc đượcvào trang hiển thị kết quả học tập của học viên Nút “Reset” sẽ xóa trắng cáctrường trong khi đó nút “Đăng nhập” sẽ vào trang tiếp theo tùy thuộc theo vai tròcủa tài khoản đó

Trang hiển thị thông tin của học viên: trang này bao gồm có một ô nhập(TextBox) cho phép người dùng nhập tên của học viên và có một nút tìm kiếm chophép người dùng có thể tìm kiếm theo tên học viên được nhập vào ô nhập Khingười dùng nhấp vào nút tìm kiếm một danh sách học viên theo tiêu chí tìm sẽđược hiển thị Trên danh sách học viên có các liên kết cho phép người dùng nhấpvào thì sẽ chuyển người dùng sang trang kết quả học tập của học viên đó Nếukhông có thông tin của học viên nào đúng theo tiêu chí tìm kiếm một thông báo sẽđược hiển thị

Trang hiển thị kết quả học tập của học viên: trang này cũng có một ô nhậpcho phép người dùng tìm kiếm tên của học viên muốn hiển thị kết quả học tập.Trang này cũng có một danh sách thả xuống cho phép người dùng chọn khóa học

để tìm kiếm Sau đó người dùng nhấp vào nút tìm kiếm để tìm kiếm kết quả học tậptheo tiêu chí tìm

Trang nhập kết quả học tập của học viên: cho phép người dùng nhập điểmthi của các môn học cho từng học viên Trên trang này có ba danh sách thả xuốngcho phép người dùng chọn học viên, chọn lớp học, chọn môn thi, có một ô nhậpcho phép người dùng nhập điểm của học viên và một điều khiển ngày tháng chophép người dùng chọn ngày thi

3.3 Tạo các ca kiểm thử cho ứng dụng Web

Các bước để tạo ra các ca kiểm thử cho ứng dụng Web trên được thực hiệnnhư sau:

3.3.1 Xây dựng mô hình máy hữu hạn trạng thái

Để tạo ra máy hữu hạn trạng thái của ứng dụng Web trên chúng ta sẽ xâydựng từng máy hữu hạn trạng thái cho từng trang riêng biệt Để thực hiện điều nàyvới mỗi trang Web chúng ta sẽ tạo một bảng trạng thái, các trạng thái mà trang Web

có thể vào mà chỉ sử dụng các trạng thái chuyển đổi hợp lệ (tức là các thao tác củangười dùng) Sau đó bảng này được sử dụng như là một hướng dẫn để tạo ra cácmáy hữu hạn tương ứng

Đầu tiên chúng ta xác định các trạng thái, các thao tác có thể xảy ra trongtrang login.aspx Các trạng thái trong trang này bao gồm:

Trang 33

 S_index: trạng thái ban đầu,

 Error: trạng thái khi trang bị lỗi,

 F_main: trạng thái khi đăng nhập thành công,

 Ursname: trạng thái tồn tại có tên đăng nhập,

 Passwd: trạng thái tồn tại có mật khẩu,

 Usr+pass: trạng thái có cả tên đăng nhập và mật khẩu

Các thao tác trong trang này gồm:

 t_username: tên đăng nhập được nhập vào biểu mẫu,

 t_password: mật khẩu được nhập vào biểu mẫu,

 t_reset: xóa trắng các trường trên biểu mẫu,

 t_submit: gửi dữ liệu để xác thực

Từ đó chúng ta xây dựng được bảng 3.1 [5] Bảng 3.1 hiển thị trạng tháichuyển đổi, trong bảng 3.1 dòng đầu tiên là trạng thái kết thúc, cột đầu tiên là trạngthái bắt đầu còn lại là trạng thái chuyển đổi Các giá trị bên trong bảng là các thaotác thực hiện của người dùng từ một trạng thái này được chuyển sang trạng tháikhác

Bảng 3.1 Bảng chuyển trạng thái trang login.aspx

 s_StudentInfor: trạng thái ban đầu,

 studentName: trạng thái tồn tại khi có tên học viên được nhập,

 f_main: trạng thái khi hiển thị thông tin học viên thành công,

 error: trạng thái khi trang bị lỗi

Trang 34

21Các thao tác trong trang đƣợc biểu diễn trong bảng 3.2 gồm:

 t_studentName: tên học viên đƣợc nhập vào biểu mẫu,

 t_submit: trạng thái gửi dữ liệu để xác thực

Bảng 3.2 Bảng chuyển trạng thái trang studentInformation.aspx

 s_ ResultStudent: trạng thái ban đầu,

 studentName: trạng thái tồn tại khi có tên học viên đƣợc nhập,

 Khoahoc: trạng thái tồn tại khi chọn đƣợc khóa học của học viên,

 Student+KhoaHoc: trạng thái tồn tại khi cả tên học viên đƣợc nhập và khóa học của học viên đó đƣợc chọn,

 f_main: trạng thái khi hiển thị thông tin học viên thành công,

 error: trạng thái khi trang bị lỗi

 t_ StdName: tên học viên đƣợc nhập vào biểu mẫu,

 select_khoahoc: chọn khóa học trong biểu mẫu,

 del_StdName: xóa tên học viên đƣợc nhập vào biểu mẫu,

 del_khoahoc: bỏ chọn tên học viên,

 t_submit: trạng thái gửi dữ liệu để xác thực

Trang 35

Bảng 3.3 Bảng chuyển trạng thái trang resultStudent.aspx

 S_addMark: trạng thái ban đầu,

 class: trạng thái tồn tại khi có tên lớp học đƣợc chọn,

 studentName: trạng thái tồn tại khi tên học viên đƣợc nhập,

 subject: trạng thái tồn tại khi tên môn học đƣợc chọn,

 mark: trạng thái tồn tại khi điểm môn học đƣợc nhập,

 ExamDate: trạng thái khi ngày thi đƣợc chọn,

 Class+StudentName: trạng thái tồn tại khi tên lớp đƣợc chọn và tên học viên đƣợc chọn,

 Class+ subject: trạng thái tồn tại khi tên lớp học đƣợc chọn và tên môn học đƣợc chọn,

 Class+ mark: trạng thái tồn tại khi tên lớp học đƣợc chọn và điểmđƣợc nhập,

 Class+ ExamDate: trạng thái tồn tại khi tên lớp học đƣợc chọn vàngày thi đƣợc chọn,

Trang 36

 Class+ studentName+ subject: trạng thái tồn tại khi tên lớp học đƣợc chọn, tên học viên đƣợc chọn và môn học đƣợc chọn,

 Class+ studentName+ mark: trạng thái tồn tại khi tên lớp học đƣợc chọn, tên học viên đƣợc chọn và điểm môn học đƣợc nhập,

Trang 37

 Class+ studentName+ ExamDate: trạng thái tồn tại khi tên lớp học

được chọn, tên học viên được chọn và ngày thi được chọn,

 studentName+ subject+ mark: trạng thái tồn tại khi tên học viên được chọn, tên môn học được chọn và điểm môn học được nhập,

 studentName+ subject+ ExamDate: trạng thái tồn tại khi tên họcviên được chọn, tên môn học được chọn và ngày thi của môn học đóđược chọn,

 Subject +mark + ExamDate: trạng thái tồn tại khi tên môn họcđược chọn, điểm môn học được nhập và ngày thi của môn học đóđược chọn,

 Class+studentName+ subject+ mark+ExamDate: trạng thái tồn tạikhi tên lớp học được chọn, tên học viên được chọn, tên môn họcđược chọn, điểm thi được nhập và ngày thi của môn đó được chọn,

 F_main: trạng thái khi điểm nhập của học viên thành công,

 error: trạng thái khi nhập điểm bị lỗi

Các thao tác trong trang được biểu diễn trong bảng 3.4 gồm:

 select_class: chọn lớp học trong biểu mẫu,

 select_Name: chọn tên học viên trong biểu mẫu,

 select_subject: chọn tên môn học trong biểu mẫu,

 t_mark: nhập điểm môn học vào biểu mẫu,

 select_date: chọn ngày thi của môn học,

 t_home: đường liên kết đến trang chủ,

 t_submit: trạng thái gửi dữ liệu đến máy chủ,

 del_class: bỏ chọn lớp học trọng biểu mẫu,

 del_name: bỏ chọn tên học viên trong biểu mẫu,

 del_subject: bỏ chọn tên môn học trong biểu mẫu,

 del_date: bỏ chọn ngày tháng trong biểu mẫu

Trang 38

Bảng 3.4 Bảng chuyển trạng thái trang addMark.aspx

Ngày đăng: 11/11/2020, 22:21

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w