Phân tích bài toán

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu và xây dựng công cụ kiểm thử ứng dụng web (Trang 47 - 52)

Để giải bài toán với yêu cầu là thực hiện một công cụ kiểm thử tự động ứng dụng Web có khả năng tự sinh ca kiểm thử và thực thi nhằm quan sát xem ứng dụng có kiểm tra chính xác tính hợp lệ của dữ liệu đầu vào hay không cần phải giải quyết một số vấn đề sau:

 Xác định form và các input trong form cần kiểm thử trên ứng dụng Web, làm sao để điều khiển và thực thi tự động những thành phần này.

 Tính hợp lệ của dữ liệu đầu vào là gì?

 Xây dựng các thuật toán ra sao để có thể sinh ra các ca kiểm thử để thỏa mãn hoặc không thỏa mãn tính hợp lệ.

 Lưu lại và quan sát kết quả sau khi thực hiện các ca kiểm thử một cách hợp lý.

Điều khiển và thực thi các thành phần cần kiểm thử trên ứng dụng Web

 Địa chỉ URL chứa form cần kiểm thử.

 Id của form và các input trong nó cần kiểm thử.

Một ứng dụng Web cũng giống như Website, là tập hợp của rất nhiều các trang Web lại với nhau, các trang Web này được truy cập thông qua địa chỉ URL. Form là một thành phần nằm trên trang Web nên để có thể kiểm thử form đòi hỏi phải biết được địa chỉ URL dẫn tới trang Web chứa form đó. Các thành phần trên trang Web, trong đó có form và các input trong nó được định danh duy nhất bởi thuộc tính id, nên để kiểm tra tính hợp lệ của input cần xác định được id của input đó. Như đã biết, người dùng giao tiếp với các ứng dụng Web thông qua các sự kiện, khi dữ liệu được nhập vào các input có trên form cần kích hoạt sự kiện submit của form thì các dữ liệu trong input mới được gửi về phía server để xử lý. Như vậy cần phải biết được một trong hai thông tin đó là tên form cần kiểm thử hoặc tên nút thực hiện việc submit của form thì mới có thể yêu cầu thực thi chức năng.

Ngoài ra, sau khi thực thi form, cần phải nhận thông báo từ ứng dụng Web để biết được ứng dụng phản ứng thế nào với dữ liệu nhận được từ input. Thông thường, ứng dụng Web phản hồi lại người dùng sau khi nhận yêu cầu bằng bốn cách chính:

 Phản hồi bằng hộp thông báo. Ví dụ: sau khi đăng nhập thì ứng dụng cho người dùng biết được đã đăng nhập thành công.

Hình 3.2. Minh họa hộp thông báo đăng nhập thành công

 Phản hồi bằng dòng thông báo hiện ngay trên trang Web.

Hình 3.3. Minh họa dòng thông báo từ ứng dụng Web đến người dùng

 Phản hồi bằng cách chuyển tiếp đến một trang khác. Ví dụ: khi đăng nhập thành công, ứng dụng sẽ chuyển tiếp người dùng từ trang đăng nhập đến trang quản lý.

 Phản hồi bằng một sự thay đổi của một hoặc nhiều thành phần ngay trên trang Web. Ví dụ: Thay đổi màu sắc chữ, kích cỡ ảnh, ..

Trong công cụ kiểm thử tự động của luận văn, sau khi thực thi mỗi ca kiểm thử, công cụ sẽ nhận phản hồi dạng dòng thông báo và lưu lại làm kết quả.

Tính hợp lệ của dữ liệu đầu vào trong ứng dụng Web

Để kiểm tra tính hợp lệ của dữ liệu đầu vào một input thì trước hết phải biết được các tiền điều kiện để thỏa mãn nó sau đó mới có thể tính toán được các dữ liệu đưa vào. Các tiền điều kiện ở đây có thể là yêu cầu về kiểu dữ liệu, định dạng loại dữ liệu đó hoặc so sánh với một giá trị nào đó. Bảng 3.1 cho biết một số điều kiện phổ biến có thể có của một input trong ứng dụng Web.

Bảng 3.1. Một số điều kiện đầu vào với input trong ứng dụng Web STT Tên điều kiện Giải thích STT Tên điều kiện Giải thích

1 Không nhập rỗng Người dùng bắt buộc phải nhập dữ liệu vào input, không cho phép để trống.

2 Chỉ nhập số Người dùng bắt buộc phải nhập dữ liệu dạng số (có thể là số nguyên, số thực), không cho phép nhập ký tự không phải dạng số (chữ cái, ký tự đặc biệt).

3 Chỉ nhập ký tự Người dùng bắt buộc phải nhập dữ liệu gồm các ký tự chữ cái trong bảng chữ cái, không cho phép nhập dữ liệu chứa ký tự ngoài chữ cái (dạng số, ký tự đặc biệt). 4 Định dạng Email Dữ liệu nhập vào phải đúng định dạng email chuẩn. Ví

dụ: abc@def.gh

5 Định dạng ngày tháng năm

Dữ liệu nhập vào phải đúng định dạng ngày tháng năm theo một chuẩn nào đó. Ví dụ định dạng chuẩn ngày tháng năm của Việt Nam: 31/01/2014.

6 Độ dài tối thiểu, tối đa của dữ liệu nhập vào

Chuỗi dữ liệu được nhập phải có độ dài tối thiểu và tối đa trong phạm vi cho phép.

7 Định dạng URL Dữ liệu được nhập phải đúng định dạng URL chuẩn. Ví dụ: http://abc.com hoặc abc.com.

8 Định dạng Zip Code

Dữ liệu được nhập phải đúng định dạng mã Zip Code của khu vực, quốc gia.

9 Định dạng số điện thoại

Dữ liệu được nhập phải đúng định dạng số điện thoại theo chuẩn quốc gia mà input cần bắt.

lớn nhất với dữ liệu dạng số

phép. Ví dụ với input nhập tuổi thì cần giới hạn từ 1 – 120.

11 Định dạng tài khoản ngân hàng, thẻ tín dụng.

Dữ liệu nhập vào phải thỏa mãn định dạng của thẻ tín dụng hoặc tài khoản ngân hàng.

12 Định dạng biển số xe, chứng minh thư

Dữ liệu nhập vào phải thỏa mãn định dạng của biển số xe, chứng minh thư nhân dân.

13 Tồn tại hoặc không tồn tại trong cơ sở dữ liệu

Dữ liệu nhập vào được so sánh với dữ liệu hiện có trong cơ sở dữ liệu để trả về đã có hoặc chưa có trong đó. Ví dụ: kiểm tra tên đăng nhập đã hoặc chưa được sử dụng.

14 Không chứa các ký tự hoặc chuỗi ký tự vi phạm

Không cho phép nhập các ký tự hoặc chuỗi ký tự vi phạm với nội quy của ứng dụng. Ví dụ: các ký tự đặc biệt nhằm thực hiện các hành vi phá hoại ứng dụng (SQL Injection), các từ ngữ mang nội dung thô tục, xúc phạm.

Ngoài những điều kiện đầu vào phổ biến được nêu trong bảng 3.1 thì tùy theo yêu cầu của ứng dụng mà có thể có những điều kiện đầu vào khác nhau.

Xây dựng thuật toán sinh ca kiểm thử

Sau khi đã xác định được input cần những điều kiện nào thì bằng việc cài đặt các thuật toán áp dụng các kỹ thuật kiểm thử phù hợp sẽ xác định được cần sử dụng những dữ liệu mẫu nào để phục vụ cho ca kiểm thử và quan sát với những dữ liệu mẫu đó thì những điều kiện của input sẽ phản ứng ra sao. Những dữ liệu mẫu sẽ được thiết kế làm hai loại, loại thứ nhất thỏa mãn điều kiện đầu vào của input, loại thứ hai không thỏa mãn điều kiện đầu vào của input. Kết thúc các ca kiểm thử, qua việc quan sát dữ liệu đầu vào mẫu và kết quả sẽ biết được chức năng của ứng dụng có kiểm tra tính hợp lệ đầu vào chính xác hay không. Nếu những dữ liệu đầu vào mẫu không hợp lệ mà ứng dụng không đưa ra cảnh báo hoặc từ chối thì chứng tỏ khả năng kiểm tra tính hợp lệ đầu vào của ứng dụng hoạt động chưa hiệu quả và ngược lại.

Để sinh các dữ liệu mẫu, công cụ sử dụng hai cách, cách thứ nhất là dùng thuật toán và cách thứ hai là dùng dữ liệu thu thập từ kinh nghiệm của các kiểm thử viên. Cách thứ nhất có thể minh họa với input có điều kiện “Độ dài tối thiểu của dữ liệu nhập vào là 6 và tối đa là 12”, thuật toán được công cụ lựa chọn là áp dụng kỹ thuật kiểm thử giá trị biên mạnh [1, tr.111]. Kiểm thử giá trị biên mạnh là mở rộng của kiểm thử giá trị biên bằng việc bổ sung các giá trị cận biên bên ngoài miền xác định. Các dữ

liệu mẫu được sinh ra như trong hình 3.4. Ngoài năm giá trị biên được sinh từ kỹ thuật kiểm thử giá trị biên là 6, 7, 9, 11, 12 còn có thêm hai giá trị max+ và min- là 13 và 5.

Hình 3.4. Các dữ liệu mẫu sinh ra từ kỹ thuật kiểm thử giá trị biên mạnh.

Tuy nhiên, đối với một số input đặc biệt, không thể sinh ca kiểm thử bằng thuật toán mà chỉ có thể dựa vào kinh nghiệm của những kiểm thử viên đã từng thiết kế ca kiểm thử cho input đó. Như đã biết, kiểm thử phần mềm là một nghệ thuật, đôi khi không chỉ sử dụng thuật toán để xác định ca kiểm thử mà còn phải dựa vào kinh nghiệm của người thực hiện. Ví dụ với input yêu cầu dữ liệu đầu vào có định dạng là ngày tháng Việt Nam, bảng 3.2 minh họa một số trường hợp có thể có của định dạng dữ liệu đầu vào dựa theo kinh nghiệm của tác giả khi thực hiện kiểm thử bằng cách thủ công là nhập từng giá trị bằng tay, do kinh nghiệm của tác giả còn hạn chế nên không khẳng định các trường hợp là hoàn toàn đầy đủ. Trong thực tế làm việc của tác giả, nếu thử cả tám trường hợp và nhận được kết quả hợp lệ như trong bảng 3.2 thì input hoạt động tốt và chưa có ghi nhận phản ánh lỗi từ người dùng khi họ nhập sai định dạng dữ liệu mà chương trình không đưa ra thông báo sai phạm.

Bảng 3.2. Một số dữ liệu đầu vào mẫu cho input ngày tháng Việt Nam STT Định dạng STT Định dạng (#: ký tự số) Ví dụ Hợp lệ 1 ##/##/#### 11/11/1988 Có 2 ##/##/#### 31/11/1988 Không 3 ##/##/#### 11/13/1988 Không 4 ##/##/#### 29/02/2012 Có 5 ##/##/#### 29/02/2013 Không 6 ##/## 11/11 Không 7 ##/#### 11/1988 Không 8 {ký tự khác số}#/##/#### a1/11/1988 Không 7 9 11 5 13 6 12

Nếu sử dụng thuật toán tự động sinh ra các dữ liệu mẫu cho input ngày tháng Việt Nam thì số lượng ca kiểm thử sẽ rất nhiều gây lãng phí và tốn thời gian thực hiện. Xem xét một ví dụ sau, với định dạng ##/##/####, nếu nhập “a1/11/1988” chương trình sẽ báo lỗi và có thể khẳng định chương trình không cho phép nhập ký tự đặc biệt khác số vào ngày tháng, việc kiểm tra các trường hợp khác như “11/1a/1988” hay “1a/11/1988” là không cần thiết. Do việc tự động sinh các ca kiểm thử trong công cụ không chỉ dựa vào thuật toán mà còn phải dựa vào việc thu thập kinh nghiệm của các kiểm thử viên để có được những ca kiểm thử tốt nhất.

Lƣu lại và quan sát kết quả sau khi thực hiện các ca kiểm thử

Sau khi các ca kiểm thử được thực hiện tự động thì việc lưu lại các kết quả là rất quan trọng, công cụ kiểm thử tự động có thể lưu các kết quả này dưới dạng một file text hoặc excel. Kết quả cần được trình bày một cách hợp lý sao cho kiểm thử viên dễ quan sát và đánh giá. Trong công cụ kiểm thử tự động của luận văn này, kết quả sẽ được lưu vào một file text để đảm bảo kiểm thử viên có thể mở file mà không cần cài đặt công cụ đọc file excel. Kết quả sẽ bao gồm các thông tin như tên các input được kiểm thử, dữ liệu mẫu và thông báo của ứng dụng sau khi tiếp nhận dữ liệu từ các input.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu và xây dựng công cụ kiểm thử ứng dụng web (Trang 47 - 52)

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

(66 trang)