Xin giúp đỡ viết test case cho chức năng tìm kiếm

Tất cả các câu hỏi liên quan đến test case
Post Reply
tramlang
Fresher Tester
Posts: 10
Joined: Tue 04 Jan, 2011 10:51 pm
Contact:

Xin giúp đỡ viết test case cho chức năng tìm kiếm

Post by tramlang »

Giả sử mình có 1 trang web tìm kiếm người dùng với nhiều filter như username, birth year,... là những textbox.
Kết quả tìm kiếm hiển thị trong một datagrid.

Mình phải viết test case cho từng control với valid và invalid input. Hiện tại do công việc gấp gáp chỉ cần viết test case đơn giản giống như một test description.

Mình viết như sau:

Testcase 1: Verify all matched item are shown in the grid successful when inputted username is valid

Testcase 2: Verify no item is shown in grid when inputted invalid username.

Mấy anh chị giúp em chỉnh sửa sao cho câu em viết nó đúng và có ý nghĩa với. Em biết là cái test case cần phải viết các step ra nữa, nhưng do lead yêu cầu chỉ cần viết mục đích cần test. Chỉ khi nào là bug thì hãy viết step ra.



tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Xin giúp đỡ viết test case cho chức năng tìm kiếm

Post by tvn »

Bạn ghi 2 dòng đó giống check list hơn là test case.

Mình có một số góp ý sau, viết bằng Tiếng Việt nhé

Mình viết theo cấu trúc: Điều kiện nhập và test => kết quả mong đợi

//Kiểm tra giao diện
1. Hiển thị khởi tạo màn hình => Các item trên màn hình nằm đúng vị trí và giá trị default so với thiết kế. (test layout màn hình)

//Kiểm tra câu lệnh SQL xem có query đúng với mong muốn của người dùng không
2. DB không có data, nhập thông tin gì cũng được vào username, birthyear,... => Hiển thị thông báo "No data found" (cái này tùy dự án)
3. DB có data, nhập thông tin username, birthyear,... không khớp với data trong DB => Hiển thị thông báo "No data found" (cái này tùy dự án)
4. DB có data, nhập thông tin username đúng, các điều kiện khác mặc định hoặc all => Hiển thị số record có username = giá trị đã nhập
5. DB có data, nhập thông tin birthyear đúng, các điều kiện khác mặc định hoặc all => Hiển thị số record có birthyear = giá trị đã nhập
... tương tự cho các điều kiện nhập khác (ở đây đang test search theo từng điều kiện riêng lẻ)
6. DB có data, nhập thông tin username và birthyear đúng, các điều kiện khác mặc định hoặc all => Hiển thị số record có username và birthyear = giá trị đã nhập
... tương tự cho các kết hợp điều kiện nhập khác (ở đây đang test search theo từng cặp điều kiện search)

//Kiểm tra hiển thị datagrid và phân trang, ví dụ datagrid chỉ hiển thị tối đa 20 records, nếu hơn 20 records thì hiển thị scroll dọc
7. Search không có data (0 record) => datagrid chỉ hiển thị header và không hiển thị scroll dọc
8. Search có 1 record => datagrid hiển thị header và 1 dòng record, các cột tương ứng với các field trong DB và không hiển thị scroll dọc
9. Search có 20 records => datagrid hiển thị header và 20 dòng và không hiển thị scroll dọc
10. Search có 21 records => datagrid hiển thị header và 20 dòng (record 1 đến 20) và hiển thị scroll dọc
11. Datagrid có 30 records, kéo scroll xuống dưới cùng => hiển thị từ record thứ 20 đến 30.

//Kiểm tra hiển thị datagrid và phân trang, ví dụ datagrid chỉ hiển thị tối đa 20 records, nếu hơn 20 records thì hiển thị phân trang
7. Search không có data (0 record) => datagrid chỉ hiển thị header, button Prev và Next disable
8. Search có 1 record => datagrid hiển thị header và 1 dòng record, các cột tương ứng với các field trong DB, button Prev và Next disable
9. Search có 20 records => datagrid hiển thị header và 20 dòng, button Prev và Next disable
10. Search có 21 records => datagrid hiển thị header và 20 dòng (record 1 đến 20), button Prev disable và button Next enable
11. Datagrid có 30 records, Click button Next => hiển thị từ record thứ 20 đến 30, button Prev chuyển sang enable và button Next disable
12. Datagrid có 50 records, Click button Next => hiển thị từ record thứ 20 đến 30, button Prev và button Next chuyển sang enable
13. Datagrid có 50 records, Đang ở trang 2, Click button Prev => hiển thị từ record thứ 1 đến 20, button Prev chuyển sang disable và button Next enable.

//Kiểm tra data nhiều hơn độ rộng của cột: mỗi cột là 1 test case
14. Data nhiều hơn độ rộng của cột => hiển thị "abcdef..." tương ứng với độ rộng của cột.

Mình chỉ nghĩ được vậy thôi, nhờ các bạn góp ý giúp bạn tramlang nữa nhé



hoccachhoc
Fresher Tester
Posts: 41
Joined: Tue 04 Jul, 2017 1:50 pm
Contact:

Re: Xin giúp đỡ viết test case cho chức năng tìm kiếm

Post by hoccachhoc »

tvn wrote:Bạn ghi 2 dòng đó giống check list hơn là test case.

Mình có một số góp ý sau, viết bằng Tiếng Việt nhé

Mình viết theo cấu trúc: Điều kiện nhập và test => kết quả mong đợi
Có một cách tìm kiếm mà khác với cách trên nữa đó là tìm kiếm bất kỳ theo từ khóa trong Datagrid. Ví dụ như sau: Ở bảng dưới thì khi gõ số 777 vào ô search thì tất cả hàng có chứa số 777 đều hiển thị lên trên còn hàng nào mà không có thì biến mất.

Image

Vậy phải viết các ca kiểm thử trong trường hợp này như thế nào?


Người đi tìm miền đất hứa!

tvn
Admin
Posts: 4900
Joined: Tue 10 Aug, 2010 10:11 am
Location: HCM
Contact:

Re: Xin giúp đỡ viết test case cho chức năng tìm kiếm

Post by tvn »

Trường hợp này thì có rất nhiều tổ hợp các cột với nhau. Nhưng cơ bản, thì mình có thể thử cách này.
Theo các bước sau:
  • 1. Áp dụng kỹ thuật phân vùng tương đương và phân tích giá trị biên để xác định các giá trị cần test cho mỗi cột (theo bảng kết quả). Dựa vào output
    2. Kết hợp các giá trị xác định được từ bước 1
Ví dụ:
Bước 1:
  • Tên tổ chức:
    • không có 777
      có 1 đoạn 777 ở đầu chuỗi
      có 1 đoạn 777 ở giữa chuỗi
      có 1 đoạn 777 ở cuối chuỗi
      có 1 đoạn 777 (chỉ là 777)
      có 2 đoạn 777 (trước và giữa)
      có 2 đoạn 777 (trước và sau)
      có 2 đoạn 777 (giữa và sau)
      nếu thích thì thêm 3, 4 đoạn
    Địa chỉ:
    • không có 777
      có 1 đoạn 777 ở đầu chuỗi
      có 1 đoạn 777 ở giữa chuỗi
      có 1 đoạn 777 ở cuối chuỗi
      có 1 đoạn 777 (chỉ là 777)
      có 2 đoạn 777 (trước và giữa)
      có 2 đoạn 777 (trước và sau)
      có 2 đoạn 777 (giữa và sau)
      nếu thích thì thêm 3, 4 đoạn
    ...v.v
Bước 2:
  • TC1: Search 777 khi
    • Tên tổ chức => không có 777
      Địa chỉ => không có 777
      ...
    TC2: Search 777 khi
    • Tên tổ chức => không có 777
      Địa chỉ => có 1 đoạn 777 ở đầu chuỗi
      ...
Có thể nói là có rất nhiều case để kiểm thử. Và câu hỏi đặt ra là có cần phải test hết những case như trên hay không? Có cách nào giảm bớt số case nhưng vẫn bảo đảm chất lượng tốt hay không?



Post Reply