Khóa luận tốt nghiệp - Kiểm thử ứng dụng trên nền Web bằng công cụ Selenium | Học viện Nông nghiệp Việt Nam

Đề tài "Kiểm thử ứng dụng trên nền web bằng công cụ Selenium" tập trung vào việc tìm hiểu và áp dụng kiến thức lý thuyết về kiểm thử phần mềm, đặc biệt là sử dụng công cụ Selenium. Nghiên cứu này cũng nhấn mạnh tính thời sự và tầm quan trọng của việc kiểm thử phần mềm trong quá trình phát triển sản phẩm.

Trường:

Học viện Nông nghiệp Việt Nam 392 tài liệu

Thông tin:
74 trang 8 tháng trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

Khóa luận tốt nghiệp - Kiểm thử ứng dụng trên nền Web bằng công cụ Selenium | Học viện Nông nghiệp Việt Nam

Đề tài "Kiểm thử ứng dụng trên nền web bằng công cụ Selenium" tập trung vào việc tìm hiểu và áp dụng kiến thức lý thuyết về kiểm thử phần mềm, đặc biệt là sử dụng công cụ Selenium. Nghiên cứu này cũng nhấn mạnh tính thời sự và tầm quan trọng của việc kiểm thử phần mềm trong quá trình phát triển sản phẩm.

66 33 lượt tải Tải xuống
HỌC VIN NÔNG NGHIỆP VIT NAM
KHOA CÔNG NGHỆ THÔNG TIN
KHÓA LUẬN TỐT NGHIỆP
ĐỀ TÀI:
KIỂM THỬ ỨNG DỤNG TRÊN NỀN WEB BẰNG
CÔNG CỤ SELENIUM
Giảng viên hướng dẫn: ThS. HOÀNG THỊ
Sinh viên thực hiện: Khánh Huyền
Lớp: K63HTTT
NỘI - 2022
HỌC VIN NÔNG NGHIỆP VIT NAM
KHOA CÔNG NGHỆ THÔNG TIN
KHÓA LUẬN TỐT NGHIỆP
ĐỀ TÀI:
KIỂM THỬ ỨNG DỤNG TRÊN NỀN WEB
BẰNG CÔNG CỤ SELENIUM
Người thực hiện Khánh Huyền
Khóa 63
Ngành Công Ngh Thông Tin
Chuyên ngành Hệ Thống Thông Tin
Người hướng dẫn ThS. Hoàng Thị
NỘI - 2022
1
LỜI CẢM ƠN
Lời đầu tiên em xin chân thành cảm ơn các thầy, trong khoa Công nghệ
thông tin, trường Học Viện ng Nghiệp Việt Nam đã tạo điều kiện thuận lợi
cho em trong qtrình học tp tại trường ng như trong thời gian thực hiện
Ka lun tốt nghip. Đặc biệt, em muốn gửi lời cảm ơn ti Thc sỹ Hoàng Thị
giảng viên trực tiếp hướng dẫn, ch bảo, gp em khắc phục những khó
khăn, thiếu sót đ th hoàn thành các phần trong khóa lun tốt nghiệp từ lý
thuyết cho tới thực hành sử dng công cụ.
Mặc dù đã cố gắng với tất cả nỗ lực của bản thân đ hn thiện khóa lun,
nhưng do thời gian hạn, năng lực và kinh nghiệm còn hn chế nên khóa luận
không thể tránh khi những thiếu sót. Kính mong nhn được sự đóng góp ý kiến
từ phía thầy cô, bạn để em thể nâng cao kiến thức của bản thân, hoàn thiện
khóa lun được tốt hơn.
Em xin chân thành cảm ơn!
SINH VIÊN THỰC HIỆN
Khánh Huyền
2
MỤC LC
LỜI CẢM ƠN ................................................................................................................................. 2
MỤC LC........................................................................................................................................ 3
PHẦN I: MỞ ĐẦU ......................................................................................................................... 7
1.1 Tên đề i ........................................................................................................... 7
1.2 Đặt vấn đề ......................................................................................................... 7
1.3 Mục đích u cu.......................................................................................... 7
1.2.1 Mc đích ........................................................................................................... 7
1.2.2 Yêu cầu ............................................................................................................. 8
PHẦN II: TÌNH HÌNH NGHIÊN CỨU TRONG NGOÀI NƯỚC .................................. 8
2.1 Tình nh nghiên cu trong nước ......................................................................... 8
2.2 Tình hình nghiên cứu ngoài nước........................................................................ 9
2.3 Đề i tính thời sự, tầm quan trọng của đề i ............................................. 9
PHẦN III: NỘI DUNG PHƯƠNG PHÁP NGHIỆN CỨU ............................................... 9
3.1 Địa điểm thời gian nghiên cứu ......................................................................... 9
a. Nội dung nghn cứu............................................................................................ 9
b. Phương pháp nghiên cứu .................................................................................. 10
PHẦN IV: KẾT QU THẢO LUẬN .................................................................................. 10
CHƯƠNG I: PHN MỀM KIỂM THỬ PHẦN MỀM ................................................... 10
1.1 Phần mềm các khái niệm liên quan ....................................................... 10
1.1.1. Khái niệm: ..................................................................................................... 10
3
1.1.2. Phân loi ........................................................................................................ 10
1.1.3. Lỗi phần mềm: .............................................................................................. 11
1.1.4. Yêu cầu của khách ng: ............................................................................ 12
1.1.5. Đặc tả u cầu phn mềm: .......................................................................... 13
1.1.6. Chất lượng độ tin cậy của phn mềm: ................................................. 14
1.2 Kiểm thử phần mềm:..................................................................................... 14
1.2.1 Khái niệm: ...................................................................................................... 14
1.2.2 Vai trò của kiểm th phần mềm:................................................................. 14
1.2.3 Các cấp độ kiểm th phần mềm: ................................................................ 15
1.2.4 Quy trình kiểm thử phần mềm: .................................................................. 16
1.2.5 Phân loại kiểm thử phần mm: ................................................................... 19
1.2.6 Các mức độ nghiêm trọng của lỗi................................................................ 23
1.2.7 Ca kiểm thử: ................................................................................................... 23
1.2.8 Nguyên tắc quan trọng trong kiểm thử phần mềm: ................................. 24
1.3 Các kỹ thuật trong kiểm thử: ....................................................................... 26
1.3.1 Kỹ thut phân ng tương đương: ............................................................. 26
1.3.2 Kỹ thut phân tích giá trị biên .................................................................... 27
1.3.3 Đoán li ........................................................................................................... 27
1.3.4 Kỹ thut chuyển trạng thái .......................................................................... 28
1.4 Kết luận ........................................................................................................... 28
CHƯƠNG II: KIỂM THỬ ỨNG DỤNG TRÊN NỀN WEB ................................................. 29
2.1 Khái quát: .............................................................................................................. 29
2.2 Nội dung kiểm thử ứng dụng web ...................................................................... 29
4
2.2.1 Kiểm th chức năng: ......................................................................................... 29
2.2.2 Kiểm th tính khả dụng .................................................................................... 30
2.2.3 Kiểm th giao diện............................................................................................. 30
2.2.4 Kiểm thử khả năng tương thích....................................................................... 31
2.2.5 Kiểm th hiệu ng ........................................................................................... 31
2.2.6 Kiểm th bảo mật .............................................................................................. 32
2.3 Các ng cụ kiểm thử: .......................................................................................... 32
2.3.1 Công cụ kiểm thử hiệu năng ............................................................................ 32
2.3.2 Công cụ kiểm thử bo mật ............................................................................... 33
2.3.3 Công cụ kiểm thử chức năng. .......................................................................... 33
2.4 Kết luận .................................................................................................................. 34
CHƯƠNG III: KIỂM TH ỨNG DỤNG TRÊN NỀN WEB BẰNG NG CỤ
SELENIUM ................................................................................................................................... 35
3.1 ng cụ kiểm thử tự đng Selenium:................................................................. 35
3.1.1 Giới thiệu chung về Selenium: ......................................................................... 35
3.1.2 Selenium IDE ...................................................................................................... 36
3.2 Bài toán thực tế ..................................................................................................... 49
3.2.1 Giới thiệu về website.......................................................................................... 49
3.2.2 Kiểm thử các chức năng của website JVNET ............................................... 52
3.3 Kết luận .................................................................................................................. 74
PHẦN V: KẾT LUẬN .................................................................................................................. 75
PHẦN VI: TÀI LIỆU THAM KHẢO ....................................................................................... 76
5
PHẦN I: MỞ ĐẦU
1.1 Tên đề tài
“Kiểm th ứng dụng trên nền web bng ng cụ selenium
1.2 Đặt vấn đề
Ngày nay, vi sự phát triển của các nền tảng thiết bị khác nhau nweb,
di đng, thiết bị Cloud, một sản phẩm phải hoạt động trên nhiều nền tảng khác
nhau hay phải tương thích với các sản phẩm khác một yêu cầu bắt buộc và từ
đó đặt ra nhiều thách thức cho các nhà sản xuất, phát triển phần mềm. Lúc này
vai trò của kiểm th thực sự cần thiết nói giúp xác nhận yêu cầu, giúp đánh giá
sản phẩm, tìm lỗi, ngăn ngừa lỗi…
Nhu cầu của nghề tester rất cao tuy nhn hầu hết các bạn theo học ngành
Công Nghệ Thông Tin đều mong mun m nghề lập trình viên chứ không phải
nghTester. Tại các ng ty phần mềm nước ngoài trung bình cứ 1 lập trình
viên cần phải có tới 4 Tester, tuy nhiên Việt Nam t lệ y lại ngược lại, với 5
lập trình viên thì mới 1 tester. Chính s mất cân đi này đã mở ra một nhu cầu
vô cùng lớn cho nghề Tester trong tương lai.
Bên cạnh đó, xu hướng áp dụng tự động h đang đưc triển khai rộng rãi
nhiều lĩnh vực, trong đó có kiểm th phần mềm. Đặc biệt, khi kiểm thử phần
mềm công đoạn chiếm phần lớn thi gian trong quá trình phát trin dự án phần
mềm thì sự ra đời của các công cụ kiểm thử tự động càng có ý nghĩa hơn bao giờ
hết, giúp tiết kiệm thời gian, công sức và tiền bạc. Selenium một công cụ hỗ
trợ kiểm thtự động dành cho các ứng dụng Web, hoạt động trên hu hết các
trình duyệt phổ biến hiện nay như Firefox, Chrome, Internet Explorer, Safari, v.v.
cũng như hỗ trợ số lượng lớn c ngôn ngữ lập trình Web phbiến. Công c
Selenium hiện được đánh giá một trong những ng cụ tốt nhất cho kiểm th
tự động các ứng dụng Web.
Trong quá trình làm khóa luận, do còn hn chế v kinh nghiệm thực tế, em
rất mong nhận đưc những góp ý chân thành từ thầy và các bạn.
1.3 Mục đích Yêu cầu
1.2.1 Mục đích:
6
- Tìm hiểu thuyết chung v kiểm thử phần mm.
- Hiểu được các công cụ hỗ tr kiểm thử phần mềm đặc biệt Selenium.
- Tìm hiểu sâu về các tính năng Selenium : đưa ra hướng dn cài đặt, sử
dụng hiu quả bộ công cụ
- Áp dụng được kiến thức thuyết vừa tìm hiểu được để ng dụng kiểm
thử cho một ứng dụng cụ thể.
1.2.2 Yêu cầu:
- Nắm vững được sở lý thuyết chung về kiểm thử phần mềm.
- Nắm vững được cách sử dụng phần mm Selenium.
- Áp dụng được các phương pháp về kiểm th phần mềm.
PHẦN II: TÌNH HÌNH NGHIÊN CỨU TRONG NGOÀI NƯỚC
2.1 Tình hình nghiên cứu trong ớc
Theo nghiên cứu của http://bachkhoa-aptech.edu.vn/ thì đến năm 2020,
nhân lực Kỹ kiểm th còn thiếu trong th trường lao động Việt Nam khoảng
10.000 ni. Những ai theo học ngành CNTT đều đa phần nghĩ ngay đến
nghề lập trình vì thế khiến đu ra ca nghề k kiểm thử số lượng thấp hơn
hẳn khiến các nhà tuyển dụng lao đao trong việc tìm kiếm nguồn nhân lực.
Cùng với ngành sản xuất phần mềm, Việt Nam quốc gia nhiều lợi thế
để trở thành quốc gia gia công phần mềm hàng đầu thế giới và đang điểm đầu
lâu dài của các ng ty công nghệ lớn nSamsung, LG, Renesas, Foxconn,
Fujitsu, Canon, Panasonic, HP, CSC, Sony,..Vì vy nhu cầu sử dụng phần mềm
từ cácng ty trong nước cũng như các đối tác nước ngoài đang gia tăng.
Hiện nay, Việt Nam, chưa quy trình kiểm thử chung cho các doanh
nghiệp, c doanh nghiệp tự xây dựng và ban hành quy trình riêng cho mình.
Các kỹ thuật kiểm thử hiện đang được các doanh nghiệp hay ng nhất, đó là:
các kỹ thuật kiểm thdựa trên đc tả, các kỹ thuật kiểm thdựa trên cấu trúc
(kiểm thhộp trắng) cũng dùng nhưng không nhiều và phải do lập trình đảm
nhận. n cạnh đó, hiện nay hcũng chú trọng nhiu đến các loại kiểm thđặc
tính chất lượng phần mm như: kiểm thử cài đặt, kiểm th tương thích, kiểm th
7
bảo mật. Ngoài việc kiểm th th công thì một số kỹ thuật kiểm th phải sử dụng
các công cụ (tool test) để kiểm thdo số lượng các trường hợp kiểm thử lớn.
Kng phi phần mm nào viết ra cũng phợp cho việc kiểm thvà không
phải đơn v nào ng đủ kinh phí đ sử dụng các tool test.. Đó là một trong
nhng khó khăn mà các đơn vị đang gặp phải.
2.2 Tình hình nghiên cứu ngoài ớc
Testing thế gii đã phát triển tlâu, nếu như Việt Nam ti lchỉ 1
Tester thì 5 lập tnh viên nhưng nước ngoài tỉ l này 4:1, như vy với 4
Tester thì mi một lập trình viên. thnói Testing rất nhiều tiềm năng
phát triển.
2.3 Đề i tính thời sự, tầm quan trng của đề tài
Tha mãn nhu cầu của người dùng việc rất quan trọng khi tạo ra sản
phẩm hay đảm bảo chất lượng phần mm một phần không thể thiếu trong q
trình sản xuất phần mềm. Để tạo ra một sản phẩm cht ng lại tiết kiệm kinh
phí, nguồn lực, thời gian không phải là một việc dễ dàng. Vì vy, việc sdụng
công cụ hỗ trợ giúp quản lý chất lượng phần mềm được ưu tiên phát triển trong
ngành công nghệ phần mềm. Với đ tài Kiểm thphần mm ứng dụng" sẽ
giúp ta hiểu rõ hơn việc tìm kiếm, theo dõi, xlý, cập nhật và quản lý lỗi phát
sinh trong quá trình kiểm tra, kiểm thử phần mm đảm bảo chất lượng phần mm
trước khi được triển khai vào thực tế.
PHẦN III: NỘI DUNG PHƯƠNG PHÁP NGHIỆN CỨU
3.1 Địa điểm thời gian nghiên cứu
- Bộ môn Công nghệ phần mềm, khoa Công nghệ thông tin, Học viện Nông
Nghiệp Việt Nam.
- Địa điểm:ng ty TNHH Đầu thương mại dịch vụ Việt Đc.
- Thời gian nghiên cứu: 3 buổi/ tuần trong thời gian từ ngày 20/02/2022 đến
ngày 06/04/2021.
a. Ni dung nghiên cứu
- Tìm hiểu về lý thuyết kiểm thử phần mềm.
- Tìm hiểu cách cài đặt, sử dụng công c kiểm th tự đng.
8
- Tìm hiểu tính năng, ưu điểm của Selenium.
- Ứng dụng kiểm thử trên web cụ th.
b. Phương pháp nghiên cứu
- Tham khảo tài liệu: Tham khảo tài liệu chuyên môn, tài liệu online,…
- Tham khảo ý kiến giáo viên hướng dẫn.
PHẦN IV: KẾT QUẢ THẢO LUN
Chương I: PHẦN MỀM KIỂM THỬ PHẦN MỀM
Phn đầu tiên này đi sâu vào việc tìm hiểu các khái niệm về phần mm
kiểm thử phần mềm, giúp khái quát việc phân loại kiểm thử phần mềm, đưa ra
các quy trình, mức độ trong kiểm thử phần mềm.
1.1 Phần mềm các khái niệm liên quan :
1.1.1. Khái niệm:
Phn mm (Software) thể hiểu một tập hợp các tập tin mối liên hệ
chặt chvới nhau, đảm bảo thực hiện một s nhiệm v, chức năng nào đó trên
thiết bị điện tử. Các tập tin này th bao gồm: các file nguồn viết bằng một
hoặc nhiều ngôn ngữ lập trình, c file dữ liệu (thư viện), các file ớng dn.
Phn mm thực hiện c chức năng của nó bằng cách gửi các chỉ thị trực tiếp
đến phần cứng (Hardware) hoặc cung cấp dliu đphục v các chương trình
hay phần mềm khác.
Viêc thực thi nhiệm v th thể tự động hoặc thực hiện theo các thông
tin, dữ liệu đu vào.
Phi phần cứng thì phần mm mới thực thi được. Thông thường máy
tính, các thiết bị giải trí truyền thông, bộ điều khiển trên máy công cụ ô tô….
1.1.2. Phân loại:
Theo phương thức hoạt động
Phn mm hệ thống dùng để vận hành máy tính nói riêng và các thiết bị
điện tử nói chung. dụ: hđiều hành máy tính Windows, Linux, Unix;
Các trình điều khiển (driver), phần sụn (firmware) BIOS. Hệ điều hành
di dộng iOS, Android, Windows Phone,…
9
Phn mềm ứng dụng phần mm máy tính : Các phần mm văn phòng
(Microsoft Office, OpenOffice), trò chơi điện tử (game), các công cụ &
tiện ích khác (ví dụ như phần mềm quản chi tu nhân, phần mm
quản lý công việc,…).
Phn mm dịch mã (trình dịch) gồm trình biên dịch và trình thông dịch, cụ
thể chúng dịch các u lệnh từ mã nguồn của ngôn ngữ lập trình sang
dạng ngôn ngữ máy sao cho thiết bị thực thithể hiểu được.
Nền tảng ng dụng: như ASP.NET nền tảng ứng dụng web của
Microsoft, cái này hỗ trợ việc tạo ra các ứng dụng web, dịch vweb (web
service).
Theo khả năng hay quyền hạn can thiệp vào nguồn
Phn mm mã nguồn đóng (closed source software): phần mềm mà
nguồn của không được công bố. Để sử dng phần mềm ngun đóng
phải được cấp bản quyền (mua, tặng là tùy).
Phn mềm nguồn m (open source software): phần mm mà
nguồn của được công bố rộng rãi, công khai và cho phép mọi người
tiếp tục phát triển phn mm đó. Thường thì loại phần mềm y miễn phí.
1.1.3. Lỗi phần mềm:
Lỗi phần mm một lỗi hay hỏng hóc trong chương trình hoặc hệ thng máy
tính khiến tạo ra kết qukhông chính xác hoặc không mong muốn hoặc hành
xử theo những cách không lường trước được.
Lỗi phần mm thường xuất hiện các hình thức sau đây:
Sai (Fault): Khi phần mm gạp lỗi sẽ đưa đến những sai sót. Tuy nhiên,
không dễ đphát hiện ra sai sót trong quá trình phát triển phần mềm. Sai
lầm thể xuất hiện ngay đầu quy trình phát triển phần mm khi người
phân tích, thiết kế bỏ sót thông tin dn tới thiếu chức năng mà l ra cần
phải có.
Thất bại (Failure): Thất bại dễ nhận thy nhất khi một lỗi được thực thi.
Chúng thưng xuất hiện dưới 2 dạng: thất bại th chạy được (ví dụ
như nguồn) và thất bại ch liên kết với các lỗi về nhiệm vụ. Ngoài
ra, thể kể đến các thất bại liên quan tới các lỗi do bỏ quên. Chúng ta
10
th hạn chế thất bại ngay tại ớc đầu tiên của quy trình phát triển
phần mm nếu việc khảot được thực hiện tt.
Sự cố (Incident): Sự cố thường đưc liên kết với một thất bại. Tuy
nhn khác với thất bại chỗ sự c luôn hiển th cho ni ng
hoặc kiểm thử viên biết về s tồn tại của nó.
Thừa: 1 số chức năng không có trong bản đặc tả yêu cầu phần mềm nhưng
lại xuất hiện trong phần mm được xây dựng.
Ngoài ra, còn xuất hiện 1 số lỗi phi chức năng như phần mm khó sử dng,
tốc độ không đáp ứng yêu cầu (vấn đề hiệu năng) hay giao diện khó nhìn cũng dễ
khiến cho người sử dụng nghĩ rằng phần mềm đang hoạt động không đúng.
1.1.4. Yêu cầu của khách hàng:
Phn mm được phát trin dựa trên nhu cầu của khách hàng. Chính vì lẽ
đó, các chức năng của phần mm được xây dựng dựa trên việc thu thập, phân
tích, khảo sát nhu cầu ca khách hàng thông qua những yêu cầu cụ thể.
Đối vi phần mềm, yêu cầu thưng được tng hợp tnhiều người, nhiều
tổ chức mức độ chuyên môn mức độ tham gia cũng như ơng tác với phần
mềm khác nhau trong môi trường hoạt động của nó.
th phân loyêu cầu của khách hàng cho sản phẩm phần mềm thành
một số loại như sau:
Phân loại theo sản phm tiến trình:
-Yêu cầu sản phẩm: những đòi hỏi hay ràng buộc mà phần mềm phải thực
hin.
-Yêu cầu tiến trình: những ràng buộc liên quan đến việc phát triển phần mềm
(kĩ thuật sử dụng, mô hình phát triển, v.v.).
d: Khách hàng muốn phát triển một website làm bài thi trực tuyến.
Lúc này, yêu cầu sản phẩm là xây dựng website thi trực tuyến vi các tính
năng như quản câu hi; qun đề thi; cho phép ning thể tham
gia làm bài thi; quản trị viên thể duyệt các câu hỏi bộ đề thi trước khi
đăng lên website. Việc website được phát triển theo mô hình Agile hay mô
11
hình thác nước chính yêu cầu tiến trình của sản phm phần mềm.
Phân loại theo chức ng
- Yêu cầu chức năng: đặc tả các chức năng phần mềm cần phải thực
hin.
- Yêu cầu phi chức năng: c ràng buộc v giải pháp chất lượng (hiệu
năng, việc bảo trì, mức độ an toàn, bảo mật, v.v.)
- Yêu cầu đặc tả các thuc tính nổi bật: đc tả cho các thuộc tính phụ
thuộc vào sự vận hành, đặc biệt kiến trúc hệ thống. Các thuc tính này không
thể xác định được cho từng thành phần đơn l.
Phân loại theo tính kiểm định
- Những yêu cầu mang tính mơ hồ, không th kiểm định
- Những yêu cầu đã ng và th kiểm định đưc.
Phân loại theo phạm vi đc tả
- Yêu cầu hệ thống: đặc tả các cấu hình, cơ sở hạ tầng, phần cứng, phần
mềm, con người, kỹ thuật, v.v. của toàn bộ h thống.
- Yêu cầu phần mềm: đc tả c chức năng, giao diện, v.v. của c cấu
phần phần mềm.
1.1.5. Đặc tả yêu cầu phần mềm:
Tyêu cầu của khách hàng và những yêu cầu bắt buộc khác, đặc tả yêu
cầu phần mềm được viết ra để mô tả một cách chính xác về c yêu cầu cần đáp
ứng của sản phẩm phần mm. Đây cũng chính là tài liệu sở đlập trình viên,
kiểm thviên và các bộ phận khác dựa vào để phát triển phần mềm hn chỉnh,
đúng với yêu cầu đt ra ban đầu. Các khái niệm về lỗi đã i mc 1.1.3 cũng
chính đề cập đến việc phần mm sau khi xây dựng hoạt đng không đúng với
bản đặc tả yêu cầu phần mm. Tài liệu đặc tả yêu cầu phần mm cũng cần cung
cấp đầy đủ các thông tin vchi phí, rủi ro và lịch trình cho quá trình phát triển
sản phẩm. Đặc tả yêu cầu phần mm được viết ra phục v rất nhiều đi tượng từ
người dùng hệ thng, khách hàng đến các nhà phát triển và bảo trì phần mềm.
Do đó, tài liệu đặc tả n được viết bằng ngôn ngữ tự nhiên, sdụng biểu đồ,
bảng biểu để đảm bảo tính dễ hiểu, dễ sử dng cho tt cả các đối tượng trên.
12
1.1.6. Chất lượng độ tin cậy của phần mềm:
Chất lượng của phn mm trước hết sự đáp ứng các yêu cầu đề ra trong
bản đặc tả yêu cầu phần mềm. thkể đến các yếu tố đại diện cho chất lưng
phần mm như: tính đúng đắn, tính hiệu quả, độ tin cậy, tính khả kiểm thử, d
học, dsử dng, dễ bảo trì… Ta thể thấy độ tin cậy chỉ một trong những
yếu tố đánh giá chất lượng phần mềm. Tuy nhiên người kiểm thử lại hay nhầm
lẫn giữa khái niệm chất lượng độ tin cậy của phần mềm. Sau quá tnh kiểm
thử đảm bảo phần mềm thể chạy ổn định, kiểm thviên thưng sẽ cho rằng
phần mmc này đã đạt chất lượng tốt.
1.2 Kiểm th phn mềm:
1.2.1 Khái niệm:
Hiểu theo cách đơn giản hơn, kiểm th phần mm quá tnh m thất bại
hoặc chứng tỏ việc tiến hành của phần mềm là đúng đắn.
1.2.2 Vai trò của kim thử phn mềm:
Kiểm thphần mm chiếm một vtrí quan trọng trong việc nâng cao cht
lượng cũng như đ tin cậy của phần mm trong quá trình phát triển. Hoàn thành
vòng quay “đưa li vào tìm lỗi khử lỗi đi” của quy trình kiểm thphần mm
sẽ thu lại được những cải tiến đáng kể cho chất lưng sản phẩm phần mềm. Việc
biết được sản phẩm phần mềm tốt tới mức nào trước khi đưa vào sử dụng sẽ hạn
chế tối đa những rủi ro gặp phải trong quá trình phát triển phần mềm.
Hình 1.1: Vòng đời của quá trình kiểm th
13
1.2.3 Các cấp độ kiểm th phần mềm:
4 cấp độ kiểm th phần mềm sau:
Kiểm thử đơn vị: Cấp độ này chủ yếu do lập trình viên trực tiếp
thực hiện. Phần mềm khi phát triển sẽ bao gồm nhiều đơn vchức năng (hàm,
phương thức) hợp thành. Mỗi lập trình viên sẽ đảm nhiệm việc phát triển mt
hay nhiều đơn vchức năng. Kiểm thử đơn vchính là việc lập trình viên sau khi
hoàn thành code đơn v chức năng của mình sẽ tiến hành kiểm thchức năng đó
một cách lập nhằm phát hiện ra lỗi và khắc phục trước khi tích hợp với các
đơn v chức năng khác. Kiểm th đơn vị thường được tiến hành theo 2 giai đoạn:
kiểm thử đơn vị tĩnh và kiểm thử đơn vị đng.
Kiểm thử tích hợp: Sau khi kiểm thđơn v được tiến hành bởi
chính lập trình viên viết ra nó, các đơn vchức năng sẽ được ghép lại với nhau
để tạo thành hệ thống đầy đủ th làm việc được. Các đơn vị chức năng hoạt
động tốt khi trạng thái độc lập riêng rẽ, nhưng khi ghép lại sẽ thể xuất hiện
nhng li về giao diện hoặc cho ra kết quả không đúng khi phải sử dụng dữ liệu
từ những đơn vchức năng khác. Đó chính là lý do tại sao phải tiếp tục kiểm th
để phát hiện ra nhng li kể trên. Người ta thường chia bước kế tiếp này thành 2
giai đoạn: kiểm thử tích hợp kiểm th hệ thống. mức kiểm th tích hợp, các
đơn vchức năng được kết hợp lại vi nhau và tiến hành kiểm th chúng theo
phương pháp tăng dần để đảm bảo cm các đơn vị chức năng sẽ làm việc ổn định
trong môi trường thử nghiệm.
Kiểm thử hệ thống: Sau khi tất cả các đơn vchức năng đã được
tích hợp lại với nhau tạo tnh một hthng hoàn chnh, kiểm thhệ thống sẽ
được thực thi để đảm bảo sản phẩm phần mm đáp ứng đầy đủ các yêu cầu trong
bản đặc tả yêu cầu phần mm. Đây công vic tốn nhiều công sức nhất trong
quá trình kiểm thphần mm. Đồng thời cũng sử dng nhiu k thuật kiểm th
khác nhau như: kiểm th giao diện người dùng, kiểm thchức ng, kiểm th
hiệu năng, kiểm thtính dễ dùng, v.v. đhn tất công việc kiểm thử trong cấp
độ này.
Kiểm thử chấp nhận: Khi kiểm thử hthng hoàn tất, sản phm
phần mm được coi nđã sẵn sàng cho việc đưa vào sử dụng thực tế. Lúc này,
phần mm cần được tiến nh cấp độ kiểm th cui ng kiểm thử chấp nhn
14
Phân tích yêu cầu
Lập kế hoạch kiểm th
Thiết kế kịch bản cho quy
trình kiểm th
Thiết lập môi trường kiểm
th
Thực hiện kiểu kiểm th
Đóng chu trình kiểm th
bởi chính khách hàng hay ni sử dụng phần mềm. Tuy phần tương tự như
kiểm thhệ thống nhưng mục đích chính của kiểm thchp nhận quyết định
việc đưa vào sử dụng chính thức sản phẩm phần mm. Người ta dựa trên các số
liệu thống kê thực tế vchất lượng, đ tin cậy của phần mm đquyết định triển
khai cho người dùng cuối. Kiểm thử chấp nhận thường đưc thực hiện dưới hình
thức cho một nhóm người dùng thử sản phẩm phần mm để phát hiện các li và
nhận phản hồi từ người dùng. Trong đó, phiên bản alpha dành cho đội phát triển
phần mềm và phiên bản beta được cung cấp cho người sử dụng thật để đưa ra
đánh g trong môi trưng thực tế. thời điểm hiện tại, kiểm thử chấp nhận
được coi cấp độ quy chuẩn bắt buộc không thể thiếu trong quy trình phát triển
của nhiều sản phẩm phần mm.
1.2.4 Quy trình kiểm th phần mềm:
Các giai đoạn trong quy trình kiểm thử phần mm được biểu diễn tổng
quát bằng sơ đồ sau:
Hình 1-2: Quy trình kiểm th phần mm.
Phân tích yêu cầu
Giai đoạn đầu tiên của quy trình kiểm thphân tích các yêu cầu thông
qua những tài liệu bao gm: tài liệu yêu cầu của khách hàng, prototype của
khách hàng, tài liệu đặc tả yêu cầu của phn mm, tài liệu thiết kế hệ thống…
15
QA Team nhiệm v phân tích và c định những yêu cầu của khách
hàng, trong đó có yêu cầu về kiểm thử chức năng/phi chức năng của phần mềm.
Trong quá trình phân tích, QA Team thđặt ra câu hi để hiểu chính c n
về yêu cầu của sản phẩm, đồng thời hỗ trợ đưa ra giải pháp thích hợp cho khách
ng.
Lập kế hoạch kiểm thử
Dựa vào tài liu nhận được trong giai đoạn đầu, Test Lead hoặc Test
Manager sẽ lên kế hoạch kiểm thphần mm cho QA team đxác định một s
yếu tố:
Phm vi dán: Thời gian thực hiện dán bao lâu? Trong từng khoảng
thời gian sẽ có những công việc gì?
Phương pháp tiếp cận: Dựa vào yêu cầu chất lượng của khách hàng, thời
gian test, kỹ thuật phát triển ng dụng, lĩnh vực của sản phẩm Test Manager sẽ
đưa ra phương pháp tiếp cận sao cho đảm bảo tiến độ và cht ng sản phẩm.
Sau khi kết thúc giai đoạn này, QA team cần nhận được test plan, test schedule,
test estimation.
Thiết lập môi trường kiểm th
Trong giai đoạn này, c Tester sẽ đọc hiểu tất cả các tài liệu, từ đó xác
định nhng việc cầnm, chức năng nào cần test hoặc không. Sau đó, dựa vào kế
hoạch kỹ thuật thiết kế kịch bản kiểm thử, Tester sẽ bắt đầu viết test case. Yêu
cầu của test case: Thể hiện tất cả các trường hợp kiểm ththphát sinh đ
đáp ứng yêu cầu sản phẩm. Ngoài test case, Tester cũng cần chuẩn bị các dữ liệu
cần thiết khác như test data, test script, test design, test automation script.
Thiết lập môi trường kiểm th
Đây một trong những giai đoạn đóng vai trò rất quan trọng trong
Software Testing Life Cycle (vòng đời phát triển phần mềm). Dựa trên yêu cầu
khách ng và đặc tcủa sản phẩm, môi trường kiểm thử sẽ được c định.
Tester cần chuẩn bị smoke test case để kiểm tra môi trường cài đặt đã đáp ứng
u cầu và sẵn sàng cho giai đoạn kiểm thử tiếp theo hay chưa.
Thực hiện kiểu kiểm th
16
Theo test case đã thiết kế môi trường kiểm thử đã hoàn tất cài đặt,
Tester sẽ báo cáo bug lên tool quản lý lỗi và theo dõi đến khi fix bug thành công.
Tiếp đó, Tester thực hiện retest để verify các fix bug regression test trong
trường hợp sự thay đổi. Sau khi hoàn tất giai đoạn này, các chuyên viên kiểm
thử cần được test results (kết quả kiểm thử) defect reports (danh sách các
lỗi tìm được).
Đóng chu trình kiểm th
Để đóng chu tnh kiểm thử, QA Team cần có được những tài liệu đã đưc
tổng hợp và hoàn thiện tnhng giai đoạn trước: tài liệu phân tích đặc tả yêu
cầu, test plan, defect reports, test results… Tiếp đó, QA team sẽ tổng kết, báoo
về quá trình kiểm thử, bao nhiêu bug đã được fix, bug nghiêm trọng hay
không, chức năng nào còn lỗi, chức năng nào đã hoàn thành…
1.2.5 Phân loại kiểm th phần mềm:
1) Kiểm thử thủ ng (Manual Testing)
Kiểm thử th ng thường được thực hiện bằng chính bản thân kiểm thử
viên (tester). Hsẽ tương tác với ứng dụng hoặc phần mm API bằng công cụ
thích hợp. Tđó tester tìm ra điểm không phù hợp hay c lỗi của hthống.
Cách kiểm thtruyền thng này thường tốn m vì nó yêu cầu môi trường kiểm
thử. Cùng vi đó, việc tự thực hiện c thao tác kiểm thử thể dễ xảy ra lỗi do
con người. người kiểm th thể mắc lỗi chính tả hoặc bỏ qua các ớc trong
tập lệnh kiểm thử (test script).
2) Kiểm thử tự đng (Automation Testing)
Ngược lại, kiểm thử tự động được thực hin bởi máy móc, thực thi tập
lệnh kiểm thđã đưc viết trước. Các lệnh kiểm thnày thể khác nhau rất
nhiều về độ phức tạp. Từ việc kiểm tra các đơn vị nhỏ nhất trong nguồn n
method, class đến việc đảm bảo rằng việc thực hiện một chui các hành động
phức tạp trong giao diện người dùng sẽ dẫn đến kết quả giống nhau. Nhiều người
cho rằng phương pháp này mạnh mẽ và đáng tin cậy hơn so với kiểm thth
công. Nhưng chất lượng của c lệnh kiểm thử tự động phụ thuộc việc các tập
lệnh kiểm th được viết ra tốt hay không. Trong kiểm thử đng, người ta chia
17
làm 2 k thuật: kiểm thử hộp trắng (kiểm thử cấu trúc) và kiểm thử hộp đen
(kiểm thử chức năng).
a. Kiểm thử hộp trắng: một phương pháp kiểm thử phần mm trong đó
tester biết vcấu trúc nội bộ / thiết kế. Người kiểm tra chọn đầu vào để
thực hiện các đường dn thông qua mã và xác định đầu ra thích hợp.
Hình 1-3: Hình minh họa kiểm th hộp trắng
Kiểm thử hộp trắ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ực hành, ngoại lệ và những lỗi tnh bày trong hthống để
kiểm tra những hành đng ca phần mềm không được định hướng trước.
Phương pháp kiểm tra hộp trắng áp dng cho các mức đ kiểm tra phần
mềm sau đây: (Tuy nhiên, nó là chủ yếu áp dụng cho các kiểm thử đơn vị )
Unit Testing(Kiểm thử đơn v): Để kiểm tra đường dẫn trong một đơn vị.
Integration Testing(Test tích hợp): Để kiểm tra đường dẫn giữa các đơn v.
System Testing(Test hệ thống): Để kiểm tra các đường dn giữa các h
thống con.
Ưu điểm:
Test có thể bắt đầu ở giai đoạn sớm hơn, không cần phải chờ đợi cho GUI
để có thể test
Test kỹ càng hơn, thể bao phủ hầu hết các đường dẫn
Thích hợp trong việc tìm kiếm lỗi và các vấn đ trong lnh
Cho phép tìm kiếm các lỗi ẩn bên trong
18
Các lập trình viên thể tự kiểm tra
Giúp tối ưu việc mã hoá
Do yêu cầu kiến thức cấu trúc bên trong của phần mềm, nên việc kiểm
soát lỗi tối đa nht.
Nhược điểm:
các bài kiểm tra rất phức tạp, đòi hỏi phải có các ngun lực có tay nghề
cao, với kiến thức sâu rộng về lập trình và thực hiện.
Maintenance test script thể một gánh nặng nếu thể hiện thay đổi quá
thường xuyên.
phương pháp thnghiệm này liên quan chặt chẽ vi ứng dụng đang
được test, nên các công cụ để phục vụ cho mọi loại triển khai / nền tảng
thể không sẵn có.
b. Kiểm thử hộp đen: một phương pháp kiểm thử phần mềm được thực
hiện mà không biết được cấu tạo n trong của phần mm, là cách mà các
tester kiểm tra xem hệ thống nmột chiếc hp đen, không ch nào
nhìn thấy bên trong của cái hp.
Hình 1-4: Hình minh họa kiểm thử Hp đen
Black Box Testing ch yếu được thực hiện trong Function test System
test.
Phương pháp này được đặt tên như vy bi các chương trình phần mm,
trong con mắt của các tester, giống như một hộp đen; bên trong mà người ta
không thể nhìn thấy. Phương pháp này cố gắngm ra các li trong các loại sau:
Chức năng không chính xác hoặc thiếu.
19
Lỗi giao diện.
Lỗi trong cấu trúc dữ liệu hoặc truy cập cơ sở dữ liệu bên ngoài.
Hành vi hoặc hiệu sut li.
Khởi tạo chấm dứt các lỗi.
Ưu điểm:
Các tester được thực hiện từ quan điểm ca người dùng sẽ gp đỡ trong
việc sáng tỏ sự chênh lệch về thông số k thuật.
Các tester theo phương pháp black box không có “mối ràng buộcnào với
code, nhận thức của một tester rất đơn giản: một source code nhiu
lỗi. Sử dụng nguyên tắc, "Hỏi và bạn sẽ nhận" các tester black box m
được nhiều bug ở nơi mà các DEV không tìm thấy.
Tester thể không phải IT chuyên nghiệp, không cần phải biết ngôn ng
lập trình hoặc làm thế nào các phần mm đã được thực hiện.
Các tester thể được thực hiện bởi một quan độc lập từ các developer,
cho phép một cái nhìn khách quan và tránh sự phát triển thiên vị.
Hệ thng thật sự với toàn bộ yêu cầu của được kiểm thử cnh xác.
Thiết kế kịch bản kiểm thử khá nhanh, ngay khi các yêu cầu chức năng
được xác định.
Nhược điểm:
Dữ liệu đu vào yêu cầu một khối lượng mẫu (sample) khá lớn
Nhiều dự án không thông số ràng thì việc thiết kế test case rất khó và
do đó khó viết kịch bản kiểm th do cần xác định tất cả các yếu tố đầu vào,
thiếu cả thời gian cho việc tập hợp này.
20
Khả năng để bản tn kỹ lạc lối trong khi kiểm thử khá cao.
Chỉ một số nhcác đầu vào thể được kiểm tra và nhiều đường dn
chương trình sẽ được đlại chưa được kiểm tra.
Kiểm thử black box được xem n"là bước đi trong mê cung tối đen
không mang đèn pin” bi vì tester không biết phần mm đang test đã được
xây dựng như thế nào. nhiều trường hợp khi một tester viết rất nhiều
trường hợp test đ kiểm tra một số th th chỉ được test bằng một
trường hợp test và/hoặc một vài phần cuối cùng không được test hết.
1.2.6 Các mức độ nghiêm trng của lỗi:
1
Nhẹ
Lỗi chính tả
2
Vừa
Hiểu lm hoặc thừa thông tin
3
K chịu
Tên bị thiếu, cụt ch hoặc h đơn giá trị 0.0
đồng
4
Bực mình
Một vài giao dịch không được x
5
Nghiêm trọng
Mất giao dịch
6
Rất nghiêm trọng
Xử giao dịch sai
7
Cực kỳ nghiêm trọng
Lỗi rất nghiêm trọng thường xuyên xy ra
8
Quá quắt
Hu hoại cơ sở dữ liu
9
Thảm ho
Hệ thống dừng hoạt động
10
Dịch ho
Thảm hoạ chuyển sang mứcy lan
1.2.7 Ca kiểm thử:
Ca kiểm thử mô tả dliệu bao gồm: đầu vào, hành đng hoặc sự kiện
kết quả đầu ra mong đợi (expected results) để xác định liệu 1 ng dụng, hệ thống
phần mềm hoặc một trong các tính năng của nó hoạt đng đúng như mong
muốn hay
không.
Cấu trúc của một ca kiểm th thông thường bao gồm:
- Test case ID: Xác định số lượng trường hợp cần kiểm thử.
21
- Function (Chức năng): Các function thđược chia nh dựa theo chức năng
của hệ thống nhằm giúp ca kiểm thử trở nên rõ ràng hơn.
- Pre-condition: Điều kiện đu vào của ca kiểm thử, dụ như khi thực hiện kiểm
thử form đăng nhập, pre-condition sẽ là form đăng nhập phải được hiển thị ra.
- Test Data: Dữ liệu đầu vào cần chuẩn bị trước khi kiểm th.
- Test Steps: tả chi tiết các bước thực hiện kiểm th.
- Expected Results: Kết quả mong đợi sau khi thực hiện các bước kiểm thử.
- Actual result: Mô tả kết quả thực tế khi thực hiện kiểm thử trên môi trường của
hệ thng. Actual result thường bao gồm các giá trị: pass, fail, untested, N/A.
- Comments: Có th chứa screen shot hoặc thông tin liên quan khi thực hiện ca
kiểm thử.
Một ca kiểm thử được cho hiệu quả khi:
Dựa vào ca kiểm thử thể tìm thấy lỗi.
Tìm được nhiều lỗi k phát hin.
Chỉ ra đưc những điểm ban đầu khi thực hiện kiểm th không
tìm ra vấn đề.
Ca kiểm thử cần những bước thực hiện kiểm thử (Test steps)
đơn giản, minh bạch, dễ hiểu.
Các trường hợp th nghiệm nên có giá trị, tóm tắt ngắn.
Các ca kiểm thử nên có sự liên kết: Mỗi ca kiểm thử cần được
đánh số thứ tự (Test case ID) để đảm bảo ca kiểm thử đã bao phủ
100% bản đặc tả yêu cầu phần mềm.
Ca kiểm thử có thể bảo trì: Nên viết ca kiểm thử sao cho khi
thay đi, chỉnh sửa thì cácn liên quan thể dễ dàng nhận thấy
được sự thay đổi đó.
Ca kiểm th có tính ng dụng cao.
22
1.2.8 Nguyên tắc quan trọng trong kiểm th phần mềm:
1) Kiểm thử chứng minh sự hiện diện của lỗi
Bằng việc kiểm thử, chúng ta th làm giảm lượng bugs khi áp dụng
nhiều phương pháp kiểm thử lên phần mm. Tuy nhn khi được đưa lên môi
trường thật, người dùng cuối hoàn toàn thể thấy nhiều lỗi khác không tìm thấy
trong qtrình kiểm thử. Kiểm thử chứng minh được sản phẩm lỗi nhưng
không thể chứng minh rằng sản phẩm không còn lỗi. Điều này nghĩa là, sẽ
luôn có lỗi không được phát hiện trong phần mềm, ngay cả khi không tìm thấy
lỗi, cũng không đng nghĩa rằng phần mm đúng hn toàn.
2) Kiểm thử toàn bộ là không khả thi
Đúng vy, rất khó để kiểm tra toàn bộ các module cũng như các tính năng,
kết hợp vi đầu vào đầu ra trong sut quá trình kiểm tra. Các sản phm phần
mềm hiện nay cực kỳ đa dạng phức tạp, được phát triển tn nhiều nền tảng,
thêm vào đó, ny càng có nhiều ng nghệ mới, khả năng kết nối dữ liệu lớn
khiến vic kiểm thử toàn bộ gần như không thể. Thay vì cố gắng kiểm thử
toàn bộ, hãy xác định mức đquan trọng và đưu tiên của các module để kiểm
thử những phần cần thiết hoặc gặp nhiều nguy cơ hơn.
3) Kiểm thử càng sớm càng tt
Chi phí cho việc khắc phục, sửa lỗi sẽ tỷ lệ thuận vi thời gian phát hiện ra
lỗi đó. Kng ít phần mm khi chuẩn bị giao cho khách hàng mới phát hiện ra
lỗi xuất hiện ngay từ bản đặc tả yêu cầu phần mm hay bản phân tích thiết kế hệ
thống. Điều này y ra những thiệt hại không nhỏ cho quá tnh phát triển phần
mềm. vy, kiểm thphần mm ngay từ những giai đoạn đầu của quy trình
phát triển là điều hết sức cần thiết.
4) Lỗi thường phân bổ tập trung
Lỗi thường tập trung nhiều nhng chức năng chính của phần mềm. Do
đó, tập trung tìm ra lỗi ở những chức năng này sẽ giúp giảm thiểu thi gian kiểm
thử. Đây một trong những cách bản và hiệu quả nhất trong kiểm thử phần
mềm.
5) Nghịch thuốc trừ sâu
23
Trong trồng trọt, nếu người nông n sử dụng lp lại một liều trừ u, các
loại sâu bệnh sẽ dần dần thích nghi và trở nên “nhnvới loại thuốc trừ sâu đó.
Tương tự với kiểm thử phần mm, khi lặp đi lặp lại một test case, thì xác suất
tìm được lỗi rất thấp. Nguyên nn hệ thng hoàn thiện hơn, li tìm thấy đã
được sửa theo test case cũ. Để xử hiệu ứng thuc trừ sâu” này, test case cần
được thưng xuyên xem lại và chỉnh sửa, thêm nhiều test case mới đm lỗi
mi (regression test).
Thêm vào đó, QA/ Tester ng không nên phụ thuộc quá nhiều vào các k
thuật test sẵn có. Bạn cần liên tục cải tiến các phương pháp có sẵn để làm việc
kiểm thử hiệu quhơn.
6) Kiểm thử phụ thuộc vào ngữ cảnh
Kiểm thphụ thuộc vào ngữ cảnh, nói một cách đơn giản, việc kiểm
thử một trang thương mại điện tử sẽ phải khác cách test một ứng dụng đọc tin
tức. Tất cả các phần mềm đều được phát triển theo cách khác nhau. việc áp
dụng chung một ch giải” sai lầm. Bạn cần sử dụng cách tiếp cận khác nhau,
phương thức, kỹ thuật test khác nhau, loại test phthuc vào loại phần mềm/
ứng dụng/ website.
7) Quan niệm sai lầm về việc “hết li
Việc không tìm thấy lỗi không có nghĩa không tồn tại lỗi trong phần
mềm. Chúng ta chỉ có thể hạn chế tối đa li thgặp phải chứ không thể triệt
tiêu toàn bộ lỗi có thể gặp phi.
1.3 Các kỹ thuật trong kiểm thử:
1.3.1 Kỹ thuật phân vùng tương đương:
Kỹ thuật phân vùng ơng đương đặc điểm :
Chia miền dữ liệu đầu vào của một chương trình thành các vùng
dữ liu tương đương nhau.
Tất cả các giá trị trong một vùng tương đương sẽ cho ra kết quả
đầu ra giống nhau.
Có thể chọn ra một giá trị đại diện trong một vùng tương đương để
24
tiến hành kiểm th.
Hình 1-5: Minh họa kỹ thuật phân vùng tương đương
1.3.2 Kỹ thuật phân tích g trị bn:
Phân tích gtrị biên tập trung vào các giá trị tại biên của miền c định
để y dựng ca kiểm thử. Mục đích là tìm ra lỗi thxảy ra gần c gtr
biên này. Phân tích giá trị biên chính trường hợp đặc biệt của kỹ thuật phân
vùng tương đương. Dựa trên những vùng giá trị tương đương, kiểm thử viên sẽ
c định giá trị biên giữa những vùng này và thiết kế ca kiểm thử phù hợp.
Hình 1-6: Minh họa kỹ thuật phân tích giá trị bn.
Với kỹ thut phân tích giá trị biên, kiểm thử viên cần chú ý tới một số
giá trị sau để sinh ca kiểm thử:
Gtrị nhỏ nhất.
Gtrị gần kề lớn n giá trị nhỏ nht.
Gtrị gần kề nhỏ hơn giá trị nh nhất.
Gtrị bình thường.
Gtrị gần kề nhỏ n giá trị lớn nhất
Gtrị lớn nhất.
Gtrị gần kề lớn hơn giá trị lớn nhất
1.3.3 Đoán lỗi:
25
Một kỹ thuật thiết kế ca kiểm thử khác đoán lỗi. Kiểm thử viên phỏng
đoán lỗi dựa trên trực giác kinh nghiệm của nh, từ đó liệt các trường hợp
thxảy ra lỗi và sinh ca kiểm thử. Kth đưa ra một quy trình cho kỹ
thuật kiểm thđoán li vì nó tính trực giác cao và không thdđn trước.
Trong một số trường hợp, kiểm thviên thể kết hợp vi lập tnh viên để tìm
ra những trường hợp thbị bỏ sót trong quá trình viết đặc tả yêu cầu phần
mềm và lập trình.
1.3.4 Kỹ thuật chuyển trạng thái:
Kỹ thuật này dựa trên việc quan sát, theo dõi q trình chuyn từ trạng
thái này sang trạng thái khác khi một hành động xảy ra trong chương trình
phần mm để phát hiện các lỗi thxảy ra mà các kỹ thuật trên thbỏ sót.
dđiển hình cho kỹ thuật chuyển trạng thái việc kiểm thử chức năng giỏ
hàng trong các trang Web thương mại đin tử. Lỗi thể xuất hiện mỗi khi thêm
sản phẩm vào gihàng, xóa sản phẩm khỏi giỏ hàng hay khi thanh toán các sản
phẩm trong giỏ hàng đó. Công việc của kiểm thviên xem xét các điều kiện
trạng thái, theo i quá tnh chuyển đi giữa các trạng thái, điều kiện nhập đầu
o các sự kiện kích hoạt thay đổi trạng thái.
1.4 Kết luận:
Phn 1 đã trình bày những khái niệm đ i nhìn tổng quát về
nhng vấn đề cơ bản xoay quanh phần mềm kiểm thử phần mềm. Các
vấn đề cụ thể bao gồm:
Các định nghĩa v phn mềm, kiểm th phần mềm.
Vai trò ca kiểm th trong quá trình phát triển dự án phần mềm.
Các cấp độ trong kiểm th phần mềm.
Quy trình, ca, kỹ thuật kiểm thử phần mềm.
Phân loại kiểm th phần mềm.
Liệt các mức độ nghiêm trọng ca li.
Vai trò của kiểm thử tự động trong kiểm thử phần mềm hiện nay.
Trình bày một số nguyên tắc quan trọng trong kiểm thử phần mềm.
26
Chương II: KIỂM THỬ ỨNG DỤNG TRÊN NỀN WEB
Kiểm thứng dụng tn nn Web một lĩnh vực phổ biến trong nnh
kiểm thử phần mm. Phần thứ II sẽ đi tìm hiu khái niệm, các bước kiểm th
ứng dng trên nền Web. Đồng thời, trong phần này cũng sẽ giới thiệu một số
công cụ hỗ trợ kiểm thử ứng dng Web.
2.1 Khái quát:
Các ứng dụng web càng ngày càng trở nên ph biến phát triển mạnh m,
nhằm đáp ứng ti đa những đòi hỏi của người ng khi họ bật trình duyệt web
của mình lên. Gần như nhng phn mm truyền thng làm được thì ng dng
web cũng th làm được. cho đến nay, các ứng dụng web đóng vai trò quyết
định trong thương mại điện tử và trao đổi thông tin.
Một ứng dụng web thường rất nhiều nhóm người sử dụng với nhiều nền
tảng khác nhau (hệ điều hành, trình duyệt…), ni ta cũng rất khó có thể đoán
được số lượng nời sử dụng một ứng dụng web bao nhiêu, rồi thời gian hi
đáp yêu cu của người sử dụng đối với ứng dụng một trong những yếu tố mang
tính quyết định thành bại của ứng dụng…dn đến việc kiểm th ng dụng web sẽ
có những khác biệt nhất định so với kiểm thử phn mm truyền thng. Trong đó,
kiểm thử giao diện người dùng, kiểm thử hiệu ng kiểm thử bảo mật những
loại kiểm thử mà ứng dụng web cần chú trọng.
2.2 Ni dung kiểm thử ứng dụng web:
2.2.1 Kiểm thử chức năng:
Việc kiểm thchức năng yêu cầu tester thực hiện test tất cả các link trong
trang web, định dạng được sử dụng trong các trang web để gửi nhận các thông
tin cần thiết từ người dùng. Ngoài ra còn kết nối sở d liệu, kiểm tra
cookies và xác minh HTML/CSS.
Kiểm tra các liên kết (links) bao gồm kiểm tra liên kết ngoài trang web,
liên kết ni bộ, liên kết tới các vtrí trong cùng trang, liên kết sử dụng đgửi
email tới admin hoặc người dùng khác trong trang…
Kiểm tra form của c trang: form là phần bản của các trang web, nên
cần được kiểm tra một cách kỹ càng, bao gồm các yêu cầu sau:
27
Không nhập vào các trường bắt buộc thì sao?
Gtrị mặc định ca các trường gì?
Nhập đầu vào không đúng validate của các trường thì sao?
Thao tác trên các trường: xem, nhập, lưu, sửa, xóa
Kết nối sở dữ liệu: yêu cầu kiểm tra tính toàn vẹn của dliệu khi tạo,
sửa, xóa form…hoặc bất cứ chức năng nào liên quan tới sở dữ liệu. Khi
truy vấn sở dữ liệu tkết quả trả vcó tương ứng vi kết quả nhìn thấy được
trên giao diện không, dữ liệu có được lấy và cập nhật chính xác không?...
Kiểm thử cookies: cookies các tệp được tạo bởi trang web đã truy cập
để lưu trữ thông tin duyệt web, n các tùy chọn trang web hoặc thông tin đăng
nhập của người dùng. Ngưi dùng thể y chỉnh trên trình duyệt nhằm quản
cookies, thực hiện các thao tác cho phép lưu, hoặc xóa, hoặc chặn…để kiểm tra
các tính năng lưu hoặc không lưu trạng thái đăng nhập, tính ng bảo mật của
ứng dụng web.
Xác minh HTML/CSS: việc xác minh này đặc biệt quan trọng khi
developer thực hiện tối ưu hóa trang web cho các công cm kiếm, chyếu liên
quan tới li pháp HTML. Tester sẽ kiểm tra xem trang web được nhận din
bởi cácng cụ tìm kiếm khác nhau hay không (ví dụ: Google, Yahoo, Bing…)
2.2.2 Kiểm thử tính khả dụng
Tính khả dụng của trang web được định nghĩa trang web dsử dụng,
hướng dẫn sử dụng ràng, nh mạch, mỗi trang đều menu chính và menu
này phải nhất quán. Tester cần lưu ý những điều này.
Ngoài ra, khi kiểm thtính khả dụng, tester còn cần thực hiện kiểm th
các điều khiển chuyển hướng (như button, text box, text link, bread crum…), nội
dung của trang web phải dễ hiểu và thân thiện với người sử dụng. Không li
chính tả, không khó để đọc chữ, hình ảnh được sắp xếp gọn gàng, hợp lý.
2.2.3 Kiểm thử giao diện
Các giao diện chính bao gồm:
Giao diện web server server ứng dụng
28
Giao diện server ứng dụng giao diện server dữ liệu
Kiểm tra tất cả các tương tác giữa c server. Nếu server d liệu hoặc web
server trả lại bất k o li nào cho bất k truy vấn nào từ server ứng dụng thì
ngay lập tức server ứng dụng phải nhận được và cho hiển thcảnh báo tới người
dùng. Kiểm tra các trường hợp giao dịch bị ngắt đột ngột do ngưi dùng, hoặc
kết nối tới server bị gián đoạn, bị khởi động lại…
2.2.4 Kiểm thử khả năng tương thích
Yêu cầu thực hiện các kiểm tra như sau:
Tương thích với trình duyệt (trên máy tính và điện thoại di động): Người
dùng khác nhau thể sử dụng trình duyệt khác nhau tùy theo nhu cầu, thói
quen…của họ. Cần phải kiểm tra ứng dụng web trên ng nhiều trình duyệt càng
tốt (IE, Firefox, Chrome, Safari, Opera…) để kiểm tra sự tương thích. Kiểm tra
trên cả c phiên bản khác nhau của tnh duyệt. Kiểm tra trên cả trình duyệt của
thiết bị điện thoại thông minh. Nếu ng dụng chạy tốt hơn, hoặc ưu tiên ơng
thích hơn với trình duyệt nào đó t cần có thông báo tới người dùng.
Tương thích với hđiều hành: một số chức năng của ứng dụng th
không tương thích vi một s h điều hành, hoặc những u ý khác khi sử
dụng, điều này cần phải được kiểm tra kỹ và thông báo cho người dùng đưc
biết.
Tương thích với các thiết bị ngoại vi (máy in…): khi người dùng lệnh
in trang thì phải đm bảo nh chính c của fonts, cỡ chữ, cỡ giấymà người
dùng đã chọn.
2.2.5 Kiểm thử hiệu năng
Bao gồm các yêu cu:
Kiểm th tải: kiểm thử hiu năng ca ng dụng với các tốc độ kết ni
mạng khác nhau. Kiểm thkhi nhiều ni dùng ng truy cập hoặc cùng
u cầu một trang xem hệ thống thể duy trì hoạt động được không? Hoặc
kiểm thử khi nời dùng tải lên hoặc ti xuống một slượng dữ liu đặc biệt
lớn
29
Kiểm tháp lực: tức việc đẩy hệ thng ra ngoài giới hn của nó, th
làm gián đoạn trang web bằng ch tăng lượng tải cao hơn và kiểm tra xem hệ
thống phản ứng như thế nào và phục hồi như thế nào.
2.2.6 Kiểm thử bảo mật
Một số case cho kiểm thử bảo mật web như sau:
Gõ trực tiếp url o thanh địa chỉ của trình duyệt không qua đăng
nhập. Các trang ni bộ phải không được mở.
Sau khi đăng nhập và m các trang nội bộ, thay đi url trực tiếp bằng ch
đổi tham số ID của trang tới trang thuc quyền người dùng đã đăng nhập
khác. Truy cập phải bị từ chối bởi người dùng này không thxem trang
thống kê ca người dùng khác.
Th các giá trị đầu vào không hợp lệ trong các trường username,
password. Hệ thống phải báo lỗi.
Các t mc web, 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
Tất cả các phiên giao dịch, các thông báo lỗi, các hành vi cố gắng m
phạm an ninh phải ghi trong log và lưu tại web server.
2.3 c ng cụ kiểm thử:
Công việc cần làm đi vi một kiểm thviên kiểm thử ứng dng trên nền
Web nđã nói phần trước rất nhiều. Những ng cụ kiểm thử ra đi để hỗ
trợ cho các kiểm thviên thực hiện công vic một cách nhanh chóng, bớt nhàm
chán và giảm thiểu chi phí kiểm thử. Khóa lun này sẽ giới thiệu một số công c
hỗ trợ kiểm thử ứng dụng trên nền Web, phân loại dựa tn mc đích sử dng.
2.3.1 ng cụ kiểm th hiệu năng
Dưới đây các công cụ kiểm th hiệu năng được sử dng rộng rãi nhất để
đo hiệu suất ứng dụng Web khả năng chịu tải của chúng. Các công cụ kiểm tra
tải này sẽ đưa ra đánh giá về hiệu suất của ứng dụng trong thi gian lưu lượng
truy cập cao điểm.
30
- WebLoad: Cho phép thực hiện kiểm th kh năng chịu tải độ chịu lỗi
của ứng dụng Web bằng cách sử dụng Ajax, Adobe Flex, .NET, OracleForms,
HTML5 và nhiều công nghkhác. Điểm mạnh của WebLoad dsử dụng
vi các tính năng như cho phép ghi/phát lại dựa trên DOM, tương quan t động
ngôn ngữ kịch bản Javascript. Công cnày htrthnghiệm hiệu suất quy
mô lớn vi các kịch bản phức tạp và đưa ra những phân tích rõ ràng.
- Apache JMeter: Đây là một công cụ phát triển trên mã nguồn mở.
Apache Jmeter được coi như một công cụ kiểm thhiệu năng, khả năng ch
hợp vi kế hoạch kiểm thử. Ngoài việc kiểm thử hiệu năng, Apache JMeter n
có thể sử dụng để kiểm tra các chức năng của ứng dụng Web.
2.3.2 ng cụ kiểm th bảo mật
- Burp Suite: Là một công cụ kiểm tra l hổng bảo mật cho ng dụng
Web. nhiều công cụ tích hợp trong đó hai công cchính trong phiên bản
miễn phí Spider and Intruder. Spider được sử dụng để thu thập thông tin các
trang của ứng dụng và Intruder được sử dụng đthực hiện các cuộc tấn ng tự
động tn ứng dng Web. Burp một công cụ bsung hiện nay được gọi
Burp Scanner được dùng trong vic quét các lỗ hng có trong ứng dụng.
- Exploit-Me: một công cụ kiểm tra bảo mật ứng dụng Web th ch
hợp trên trình duyệt Firefox được thiết kế nhgọn, dễ sử dụng. ExploitMe bao
gồm các gói: XSS-Me và SQL Inject-Me. Cross-Site Scripting (XSS) một lỗ
hổng được tìm thấy trong nhiều ứng dụng Web hin nay. Lỗ hổng XSS có thể
gây ra thiệt hại nghiêm trọng cho một ứng dụng Web. XSS-Me là công cụ giúp
phát hin ra các lỗ hổng XSS này. Trong khi đó, SQL Inject-Me được sử dụng để
kiểm tra các lỗ hổng SQL Injection trong ứng dụng Web.
31
2.3.3 ng cụ kiểm th chức ng
- Ranorex: ng cụ kiểm thtự động cho các ứng dụng Web, desktop
di đng. Chỉ với một tài khoản, người dùng thể sử dng Ranorex để kiểm thử
cho 3 loại ứng dụng kể trên. Việc tích hợp này sgiúp t ngắn thi gian khi
kiểm thử ứng dụng được thiết kế chy trên nhiều nền tảng khác nhau. Tuy nhiên,
bản trả phí của Ranorex khá đắt, lên tới 3500$/năm.
- Selenium: một trong nhng ng ckiểm thử t động ứng dụng Web
mạnh mnhất hiện nay. Selenium script thể chạy trên hầu hết các trình duyt
hiện nay như IE, Chrome, Firefox, Safari, Opera và các hệ điu hành phổ biến
như Windows, Mac, Linux. Trong thực tế, người ta thường sử dụng Selenium
dưới dạng Add-on tích hợp trong trình duyệt Firefox, kết hợp cùng với Firebug
để kiểm thử ứng dụng Web một cách hiệu quả nht. Tuy chỉ th ghi lại
(Record) hành đng trên trình duyệt Firefox, nhưng có thể phát lại (Playback)
trên nhiu tnh duyệt phổ biến khác. công cngun mnên Selenium
ưu thế lớn so vi các công cụ kiểm thử tự động khác: cộng đng h trợ
mạnh m không phải trả phí bản quyền. Công c này htrợ khá nhiều nn
ngữ lập trình Web phổ biến hiện nay. Ngoài ra, Selenium được phát triển bởi
Selenium team từ Google nên người dùng hoàn toàn yên tâm về chất lượng độ
tin cậy của Selenium. Công cụ Selenium không bị tính p.
2.4 Kết luận:
Phn II đã trình bày được các vấn đ bản vkiểm thứng dụng trên
nền Web:
- Khái quát về kiểm thử ứng dụng trên nền Web.
- Tìm hiểu các công việc cần làm khi kiểm th một ứng dng Web.
32
- Giới thiệu công cụ Selenium công cụ được em sử dụng để nghiên cứu
sâu hơn v cách cài đặt, sử dng ng cụ h trợ cho vic kiểm thứng dng
Web.
Chương III: KIỂM THỬ ỨNG DỤNG TRÊN NỀN WEB BẰNG
CÔNG CỤ SELENIUM
Phn cui tập trung nghiên cứu vb công cụ hỗ trợ kiểm thSelenium
sử dụng công cụ Selenium IDE đkiểm thử các chức năng của website thực
tế.
3.1 Công cụ kiểm thử tự động Selenium:
3.1.1 Giới thiệu chung về Selenium:
Selenium một phần mm mã nguồn mở - một công cụ kiểm thphần
mềm tự đng để kiểm thử c ng dng trên nền Web. Năm 2004, Selenium
được phát triển bởi ThoughtWorks với cái tên ban đầu JavaScriptTestRunner.
Đến năm 2007, tác giả Jason Huggins rời ThoughtWorks và gia nhập Selenium
Team (thuộc Google), từ đó tiếp tục phát triển Selenium như hiện nay.
Selenium không chỉ một công cụ duy nhất mà một b các công cụ
giúp kiểm thtự đng các ứng dụng trên nền Web hiệu qu hơn, bao gồm 4
phần: Selenium IDE, Selenium RC, Selenium Grid, Selenium WebDriver.
Selenium IDE một công cụ cho phép chúng ta ghi lại một kịch bản tái sử
dụng kịch bản đó. hoạt động như một Add-on của trình duyệt Mozilla Firefox
vi giao diện trực quan, dễ sử dụng ngay cả vi những kiểm thử viên không biết
về code. Với Selenium IDE, chúng ta chỉ thể ghi lại kịch bản (Record) trên
trình duyệt Mozilla Firefox nhưng thể tái sử dụng kịch bản này trên nhiều
trình duyệt khác như Internet Explorer, Google Chrome, v.v.
Selenium RC cho phép các nhà phát triển tự động hóa quá trình kiểm th
bằng cách sử dụng bất k ngôn ngữ lập trình nào, phát huy tối đa thế mạnh của
Selenium trong kiểm thử đơn vị. Để ddàng n cho vic kiểm thử, Selenium
RC cung cấp các API tviện cho mỗi ngôn ngđược hỗ trợ: HTML, Java,
Perl, PHP, Ruby, Python, C#.
Selenium WebDriver phiên bản kế nhiệm của Selenium RC. Cũng
giống như Selenium RC, Selenium WebDriver hỗ trợ viết kịch bản kiểm thử
33
bằng các ngôn ngữ khác nhau như Java, .NET, PHP, Python, Perl, Ruby và kiểm
thử viên thể sử dụng các điều kiện if, else hay các vòng lặp để tăng tính chính
c cho kịch bản kiểm thử. Selenium WebDriver kiến trúc khá đơn giản, điều
khiển trình duyệt trực tiếp từ hệ điều hành.
Selenium Grid một hệ thống hỗ trợ kiểm thử viên thực thi kịch bản
kiểm thử trên nhiều máy, nhiều trình duyệt một cách song song không cần
chỉnh sửa kịch bản kiểm thử. Ban đầu, Selenium Grid chỉ h trợ cho Selenium
RC nhưng sau này đã xuất hiện trên cả Selenium WebDriver. Selenium Grid cho
phép kiểm thviên thực thi ca kiểm thtrên nhiu máy khác nhau với nhiều
trình duyệt khác nhau. Đặc biệt hơn, Selenium Grid n cung cấp khả ng kiểm
thử với chế độ phân tán.
Do thời gian nghiên cứu hạn chế nên Ka luận chtrình bày vmột phn
của bộ công cụ Selenium Selenium IDE. Đây cũng công cđược sử dụng
phổ biến hiện nay trong vic kiểm thcác dự án phát triển ng dụng Web bởi
giao diện trực quan, dsử dụng và khả năng ghi/phát lại các ca kiểm thmột
cách linh động của nó.
3.1.2 Selenium IDE:
a. Gii thiệu:
Selenium IDE là một tiện ích (extension) dùng để hỗ trợ kiểm thử tự động
chạy trên trình duyệt Mozilla Firefox ban đầu được phát triển bởi Shinya
Kasatani nời Nhật Bản. ng cụ này được phát triển bằng Javascript nên
khả năng tương tác với DOM, sử dụng được những cách gọi Javascript.
Selenium IDE cho phép ghi lại những hành động, sự kiện xảy ra trong quá trình
kiểm thử bằng chức năng Record (ghi hành động) và Playback (phát lại).
Một số ưu điểm của Selenium IDE:
Dễ dàng cài đặt và sử dụng.
Kng yêu cầu kinh nghiệm lập trình.
th debug, thiết lập breakpoint( điểm dừng), thêm comment vào kịch
bản kiểm thử.
Bên cạnh đó Selenium IDE cũng tồn tại một số nhược điểm:
34
Chỉ hỗ trợ chạy trên MozillaFirefox(cần cấu hình để chạy được trên
Chromr, Internet Explorer).
Cần cài đặt thêm để đọc dữ liu từ file .csv,.xml.
Kng hỗ tr database, kiểm th di động( mobile testing).
K khăn khi xử lý những quy trình phức tp.
b. Hướng dẫn cài đt Selenium IDE:
Đầu tiên người dùng nên kiểm tra xem trình duyệt Mozilla Firefox đã
được cài đặt Selenium IDE hay chưa bằng cách mở trình duyệt này lên, chọn
menu Tools. Nếu trong danh sách menu con không chứa Selenium IDE t
cần thực hiện những bước sau để tiến hành cài đặt.
Bước 1: Tiến hành truy cậpo địa ch http://docs.seleniumhq.org/.
Sau đó chn menu Download.
Hình 3-1: Truy cập trang Download tiện ích Selenium IDE.
Bước 2: Tìm tới mục Selenium IDE chọn phiên bản mi nhất (latest
released) hoặc những bản cũ hơn tùy theo nhu cầu sử dụng.
đây chọn phiên bản mới nhất Selenium IDE 2.9.1.
Hình 3-2: Tiến hành chn phiên bản Selenium IDE để cài đặt.
35
Bước 3: Tại website mới được mở ra, chn “Add to Firefox” để thêm tiện
ích Selenium IDE vào Firefox.
Hình 3-3: Thêm tiện ích Selenium IDE vào Firefox.
Bước 4: Tiếp tục chọn “Add” để xác nhận thao tác thêm tiện ích Selenium
IDE vào trình duyệt.
Hình 3-4: Xác nhận cài đặt tiện ích Selenium IDE vào trình duyệt.
Bước 5: Khởi động lại trình duyệt đ quá trình cài đặt hoàn tất.
Hình 3-5: Khi động li trình duyệt Firefox để hoàn tất quá trình cài đặt.
Sau khi trình duyệt khởi động lại, tiến hành khởi chạy lần đu để chắc
chắn tiện ích Selenium IDE đã được cài đt thành công bằng cách chọn menu
Tools, tiếp tục chọn Selenium IDE.
36
Hình 3-6: Khi chạy tiện ích Selenium IDE.
Cửa sổ tiện ích Selenium IDE được mở ra như Hình 3-7:
Hình 3-7: Giao diện khởi chạy Selenium IDE.
c. Một số chức năng trong Selenium IDE:
Phn này của khóa lun sẽ giải thích và hướng dẫn cách sử dng một số
chức năng, ký hiệu trong tiện ích Selenium IDE.
37
Hình 3-8: Giải thích một số chức năng, hiệu trong Selenium IDE.
Base URL: Chứa địa chỉ URL của ng dụng Web đang được kiểm thử.
Thanh trưt : Điều chỉnh tốc độ thực thi ca kiểm thử tự đng.
Chạy bộ kiểm thử : Chạy tất cả các ca kiểm thử trong bộ kiểm thử
(testsuite).
Chạy một ca kiểm thử : Chạy ca kiểm thử hiện tại được chn.
Tm dừng : Tm dừng ca kiểm th đang thực thi.
Tiếp tục : Tiếp tục chạy ca kiểm thử vừa tạm dừng.
Bỏ qua : Bỏ qua một bước vị t nó đang dừng.
Ghi (Record) : Ghi lại các thao tác trong ca kiểm thử. Mặc định khi khởi động
Selenium IDE, chức năng ghi thao tác tự đng được kích hoạt.
Textbox Command: Lưu trữ các hành động (action) trong ca kiểm th.
Textbox Target: Đích đến của thao tác.
Textbox Value: Giá trị đầu vào cho thao tác trong ca kiểm th.
Tab Source nơi hiển th kịch bản ca kiểm thdưới dạng HTML. Đây
cũng chính source của file HTML sau khi tiến hành lưu lại ca kiểm thcho
mục đích sử dng lại.
38
Hình 3-9: Kịch bản kiểm thử được Selenium IDE lưu trữ dưới dạng HTML.
Ngoài ra, các thông o cho thao tác va thực hiện, thông báo lỗi được thể
hiện khung ghi Log. Trong Selenium IDE, các ca kiểm thử luôn có điểm bắt
đầu. Điều này tương ứng với cách thiết kế tiền điều kiện (Pre-condition) trong ca
kiểm thử. Điển hình nhất cho điểm bắt đầu ca một ca kiểm thvới Selenium
IDE là việc truy cp một ứng dụng Web để bắt đầu luồng công việc.
d. Thao c bản với Selenium IDE:
Tạo ca kiểm thử bộ kiểm thử mi
Với những trường hợp chỉ cần tạo ca kiểm thđơn lẻ, ta thể sử dụng
thao tác File / New Test Case. Tuy nhiên, dù chỉ kiểm thmột form đơn giản
cũng cần tạo ra khá nhiều ca kiểm thkhác nhau. Lúc này ta cần tạo ra một bộ
kiểm th(Test Suite) chứa các ca kiểm thtrong đó đdng quản lý bằng
cách chọn File / New Test Suite.
39
Hình 3-10: Chức năng tạo mới ca kiểm thử/b kiểm thử nm trong menu File.
Khởi động chức năng ghi (Record)
Mặc đnh khi mtiện ích Selenium IDE thì chức năng ghi đã được kích
hoạt. thddàng nhn ra trạng thái kích hoạt bằng giao diện trực quan của
tiện ích. Để kiểm tra, di chuyển con trỏ chuột vào nút Record , nếu xuất hiện
thông báo Click to Record ơng đương với chức năng ghi ca được kích hoạt.
Lưu ca kiểm thử/b kiểm thử
Sau khi đã hoàn thành các thao tác vi một ca kiểm thử, ta thể lưu
chúng lại bằng cách chọn File / Save Test Case (Ctrl+S). Trường hợp muốn lưu
ca kiểm thử đã tồn tại dưới một tên khác, ta chn File / Save Test Case As…
Hình 3-11: Minh họa thao tác lưu ca kiểm th.
40
Việc lưu lại một bộ kiểm thử cũng tương tự, ta chn File / Save Test
Suite hoặc File / Save Test Suite As… khi muốn lưu ca kiểm thử đã tồn tại
dưới tên khác.
Hình 3-12: Minh họa thao c lưu bộ kiểm th.
Mở ca kiểm th/b kim thử đã lưu
Chọn File / Open và tìm tới thư mc lưu ca kiểm thđể m một ca kiểm
thử đã lưu.
Hình 3-13: Minh họa thao c mở ca kiểm th.
Trường hợp muốn mmột bộ kiểm thử, chn File / Open Test Suite…và
tìm tới tmục lưu b kiểm thử, tiếp tục chọn bộ kiểm thcần thực thi sau đó
chọn Open.
41
Hình 3-14: Minh họa thao thác mở bộ kiểm thử đã u.
Chy các ca kim th
Selenium IDE nhiều y chọn phù hợp cho việc thực thi ca kiểm thử,
tạm dừng, chạy từng ng lệnh đơn lẻ (step), thiết lập điểm ngắt (breakpoint) và
chạy tất cả các ca kiểm thử trong một b kiểm thử. Điều y giúp kiểm thử
viên dễ dàng làm chủ các thao tác trong ca kiểm thử ca mình.
Chạy mt ca kiểm thử: Chọn biểu tượng Play current test case đ chy ca kiểm
thử đang chọn.
Tạm dừng/tiếp tc chạy ca kiểm thử: Chn Pause khi mun tạm dừng ca kiểm
thử đang chạy và Resume để tiếp tục chạy ca kiểm thử đang bị tạm dừng.
Thiết lp điểm dừng (Toggle breakpoint): Selenium IDE hỗ trợ thiết lập các
điểm dừng khi chạy một ca kiểm thử. Cụ th, kiểm thử viên thể xác định điểm
dừng tại một dòng lệnh giữa ca kiểm thử nhằm mục đích kiểm tra tình trạng
của ứng dng Web tại điểm dừng đó. Để thiết lập đim dừng, chọn dòng lệnh mà
tại đó ca kiểm thử sẽ dừng hoạt động, click chuột phải chọn Toggle breakpoint.
42
Hình 3-15: Thiết lập điểm dừng cho ca kiểm th.
Thiết lập điểm bắt đầu (Start Point): Ngược lại với việc thiết lập điểm dừng,
Selenium IDE h trợ thiết lập điểm bắt đu cho ca kiểm thử tại vtbất k
kiểm thử viên mong muốn. Giả sử ca kiểm thử bắt đầu bằng việc truy cập vào
một ứng dụng Web, đăng nhập thực hiện các thao tác với ứng dụng. Tuy nhiên
kiểm thviên chỉ muốn kiểm tra các thao tác sau khi đã đăng nhp thành công.
Lúc này kiểm thử viên hoàn toàn có thể thiết lập đim bắt đầu ngay sau khi h
thống đã duyệt qua thao tác đăng nhập. Chọn dòng lệnh tại vtrí bắt đầu mong
muốn, sau đó click chuột phải, chn Set / Clear Start Point đthiết lập đim bắt
đầu cho ca kiểm thử. Tại dòng lệnh điểm bắt đầu sẽ xuất hiện biểu tượng thông
o thiết lập thành công. Tiếp tục chn Set / Clear Start Point một lần nữa để xóa
thiết lập điểm bắt đầu.
Hình 3-16: Thiết lập điểm bắt đu cho ca kiểm th.
43
Chạy tng dòng lệnh (step): Sau khi thực hiện thao tác tạm dừng (Pause) hoặc
ca kiểm thử đã chạy đến điểm dừng (breakpoint), kiểm thử viên có thể chạy từng
dòng lệnh tiếp theo đ kiểm tra việc chuyển trạng thái của ứng dụng Web.
Selenium IDE cung cấp tính năng này bằng việc chọn biểu tượng. Mỗi lần chn
tương ứng với một dòng lệnh được thực thi.
Chèn dòng lệnh mới: Selenium IDE hỗ trợ việc bổ sung dòng lệnh mới vào bất
kỳ v trí nào trong ca kiểm thử. Điều này giúp kiểm thử viên linh động hơn trong
việc thiết kế ca kiểm thử phù hợp vi yêu cầu. Để làm được điều này, click chut
phải lên một dòng lệnh, Selenium IDE sẽ tự động thêm một dòng lệnh trống mi
lên n trêndòng lệnh vừa chọn. Sau đó bạn thể tiến hành cài đặt c thuc
tính cho lệnh mới như bình thường.
Hình 3-17: Minh họa thao tác chèn dòng lệnh mới.
Chèn nhận xét (comment): Giống như công vic lập trình, comment ràng tại
các dòng lệnh sẽ giúp quản lý và tái sử dụng ca kiểm th hiệu quả hơn. Để thực
hiện, click chuột phải tại dòng lệnh cần comment và chọn Insert New Command,
sau đó gõ nội dung comment vào textbox Command.
e. Các câu lệnh trong Selenium IDE Selenese:
44
Các câu lệnh trong Selenium IDE thường được gọi Selenese. Selenium
IDE cung cấp cho kiểm thviên một tập lệnh phong phú để kiểm thứng dụng
trên nn Web. Trong Selenium IDE, kiểm thviên thkiểm tra các yếu t
giao diện người dùng, nội dung, liên kết bị hng, dữ liệu đầu o. Ngoài ra,
Selenium IDE còn hỗ trợ kiểm tra kích thước cửa sổ, v trí chuột, cảnh o
(alert), cửa sổ popup, xử sự kiện và nhiều tính năng khác cho ứng dụng Web.
Một lnh ca Selenium IDE thường 3 thành phn: Actions, Accessors
Assertions.
Action (hành động): là các thao tác chung ca ng dụng. dn click vào
một liên kết hay chọn và ch liên kết ti xong (ClickAndWait). Nếu Action
không thành công hoặc có lỗi xảy ra, việc thực thi ca kiểm thử sẽ bị dừng lại.
Accessors: Kiểm tra trạng thái của ứng dụng và lưu kết quả vào các biến. Kiểm
thử viên thể kiểm tra và lưu trữ tiêu đtrang Web (storeTitle), các phần tử
được chn (storeElementPresent).
Assertions (xác minh): Assertions gần tương tự như Accessors, tuy nhiên
c định trạng thái ca ứng dụng cho phù hợp vi với kết quả mong đợi. dụ
như đảm bảo tiêu đ trang đúng với thiết kế (verifyTitle) hay xác minh tính
đúng đắn của giá trị tại một textbox (verifyValue).
Assertions được chia làm 3 loại: assert, verify waitFor. Khi một assert
thất bại thì vic kiểm thử sẽ dừng lại. Khi một verify không thành công, việc
kiểm thử vẫn được tiếp tục tiến hành nhưng sxuất hiện thông báo lỗi. Các lệnh
waitFor chđi một sđiều kiện được thực thi (hữu ích với việc kiểm thử ứng
dụng Ajax). WaitFor thành công nếu điều kiện đúng và việc kim thsẽ bị dng
lại nếu điều kiện không được thực thi trong thời gian chờ (thời gian chờ thể
được thiết lập dễ dàng thông qua thuộc tính SetTimeout).
Bảng sau đây cung cấp 1 số lệnh thường dùng trong Selenium IDE:
Tên lnh
Ý nghĩa
Open
Đi
đến
một
trang Web
theo
URL xác
định.
Click
Hoàn thành hành động click chuột.
ClickAnd Wait
Hoàn thành hành đng click chuột đợi
45
tải một trang Web mới.
verifyTitle/ assertTitle
Xác minh tiêu đề trang mong đợi.
verifyTextPresent
Xác minh giá trị một đoạn văn bản vtrí
nào đó trên trang.
verifyElementPresent
Xác minh thành phần giao diện người
dùng được mong đợi, được đnh nghĩa
bởi thẻ HTML tồn tại trên trang.
verifyText
Xác minh văn bản mong đợi các thẻ
HTML tương ứng trên trang.
verifyTable
Xác minh nội dung mong đợi của một
bảng.
waitForPageToLoad
Tm dừng thực thi ca kiểm thử cho tới
khi việc tải trang Web mới được hoàn tất.
Lệnh này được tự động gọi khi sử dụng
lệnh clickAndWait.
waitForElementPresen
t
Tm dừng thực thi ca kiểm thử cho tới
khi
các
yếu
tố
giao
diện
người
dùng
mong đợi trên trang Web xuất hiện
Hình 3-19: Bảng liệt một số lệnh thường dùng trong Selenium IDE.
3.2 Bài toán thực tế:
3.2.1 Giới thiệu về website:
JVNET ng ty Cổ phần Thương mại Phát triển K thuật và Nhân lực
Quốc tế - doanh nghiệp ngoài quốc được thành lập từ tháng 9 m 2005. JVNET
công ty đào tạo và cung ứng nguồn nhân lực hàng đu tại Việt Nam. Ngoài ra,
JVNET còn hỗ trợ, đnh hướng cho thế hệ trẻ học tập và khởi nghip vững ng
để đáp ứng nhu cầu thị trưng trong nước và Quốc tế. Địa chỉ truy cập hiện tại
của JVNEThttps://jvnet.vn/
46
Hình 3-20: Giao diện website JVNET
Website https://jvnet.vn/ các chức năng chính như:
Đăng
- CN: Module 1
- n CN: Đăng
- Actor: Bạn đọc
- Luồng sự kiện chính: Nhập các trường thông tin : họ và tên, đa chỉ, số điện
thoại, email, năm sinh, giới tính, biết JVNET qua, ghi chú đđăng tài khoản
vi JVNET.
- Đầu vào:
+ Ngưi dùng nhập các thông tin như họ tên, địa chỉ, số điện thoại, email,
năm sinh, giới tính, biết JVNET qua, ghi chú
+ Người dùng nhấn nút “Đăng ký”
- Đầu ra:
+ Nếu không nhập thông tin cho các trường bắt buộc như họ và tên, địa chỉ, số
điện thoại, năm sinh thì hệ thống sẽ hiển thị lỗi [1-1]
+ Nếu nhập thông tin không đúng đnh dạng cho các trường như số điện thoại,
email thì hệ thống sẽ hiển thị lỗi [1-2]
47
+ Nếu nhập hp lệ toàn bộ thông tin thì hệ thống sẽ chuyển đến trang với thông
o [1-3]
- Danh sách thông báo:
thông báo
Ni dung
[1-1]
Cột được yêu cu.
[1-2]
Bạn cần nhập đúng đnh dạng cho {tên trường}.
[1-3]
Cảm ơn bạn đã quan tâm đăng vấn vi chúng
tôi.
Tìm kiếm
- CN: Module 2
- n CN: Tìm kiếm
- Actor: Bạn đọc
- Lung sự kiện chính: Nhập các từ khóa để tìm tin tức liên quan các bản tin
tuyển dụng, tin tức.
- Đầu vào:
+ Người dùng nhập từ khóa cần tìm
+ Người dùng nhấn icon “Tìm kiếm
- Đầu ra:
+ Nếu nhập từ khóa không tồn ti trong CSDL thì hệ thống sẽ hiển th lỗi [2-1]
+ Nếu nhập từ khóa tồn tại trong CSDL không kể chữ hoa, chữ thường thì hệ
thống sẽ hiển thị danh sách c tin tuyển dụng, tin tức có chứa từ khóa đó
- Danh sách thông báo:
thông
báo
Ni dung
[2-1]
Sorry, but nothing matched your search terms. Please try again
with some different keywords.
48
Liên hệ
- CN: Module 3
- n CN: Liên hệ
- Actor: Bạn đc
- Luồng sự kiện chính: Người dùng liên hệ với công ty đ hỏi biết thêm thông tin
về tuyển dụng, về công ty,…
- Đầu vào:
+ Người dùng nhập các thông tin như họ và tên, số điện thoại, email
+ Người dùng nhấn nút “Gọi lại cho tôi
- Đầu ra:
+ Nếu không nhập thông tin cho c trường bắt buộc như họ tên, số điện thoại
thì hệ thống sẽ hiển thị lỗi [3-1]
+ Nếu nhập thông tin không đúng định dạng cho các trường như số điện thoại,
email thì hệ thống sẽ hiển thị lỗi [3-2]
+ Nếu nhập hp lệ toàn bộ thông tin thì hệ thống sẽ chuyển đến trang với thông
o [3-3]
- Danh sách thông báo:
thông báo
Ni dung
[3-1]
The field is required.
[3-2]
{The field name} entered is invalid.
[3-3]
Cảm ơn bạn đã quan tâm đăng vấn vi chúng
tôi.
3.2.2 Kiểm thử các chức năng của website JVNET:
Các bước thực hiện:
Bước 1: Viết bảng testcase
49
Bước 2: Sử dng tool Selenium IDE
a. Mở google chrome -> ấn vào biểu tượng đ hiện cửa sổ như hình
3-21
Hình 3-21: Cửa sổ Selenium IDE
b. Ấn Create a new project -> đặt tên cho file “AutotestForJVNET.side
Hình 3-22: Giao diện công cụ Selenium IDE
c. Ấn dấu +” (add new test) -> đặtn testcase MODULE1_001”
50
Ly dụ: MODULE1_001 Kiểm tra Họ n trường bắt buộc
Nhập các thông tin sau:
Điền link website https://jvnet.vn/ vào ô địa chỉ sau:
Nhập Command: open
Nhập Description: open website
Ấn biểu ợng để ghi lại quá trình test
Ấn clickĐăng ngay -> Nhập các trường thông tin nhưnh:
51
Nhấn “Đăng ký” chờ kết quả -> ghi kết quả vào cột “Remark” bảng
Testcase.
TEST CASE LIST
Test Environment Setup Description
1. Server: https://jvnet.vn
2. Web browser: chrome
No
Function Name
Module Code
Description
1
Đăng tài khon
Module 1
2
Tìm kiếm tin tức
Module 2
3
Liên hệ với qun
trị vn
Module 3
2. Test case chức năng đăng tài khoản:
ID
Test
Pre -
Test Case
Expec
Test
Remark
52
Case
Descript
ion
Condit
ion
Procedure
ted
Result
Res
ult
MODULE1
_001
Kiểm tra
Họ và
tên là
trường
bắt buộc
n
nh
"Đăng
ký"
hiển thị
1. Để trống
trường "Họ và
tên"
2. Các thông
tin khác được
nhập hợp lệ
3. Click
button "Đăng
ký"
3.
Hin
thị
Messa
ge
"Cột
được
yêu
cầu."
ới
trường
"H và
tên"
Fail
Ko hiển th
error
message
MODULE1
_002
Kiểm tra
nhp
Địa chỉ
trường
bắt buộc
1. Để trống
textbox Địa
chỉ
2. Nhập hợp
lệ các trường
còn lại
3. Click
button "Đăng
ký"
3.
Hin
thị
Messa
ge
"Cột
được
yêu
cầu."
ới
trường
"Địa
chỉ"
Pass
MODULE1
_003
Kiểm tra
nhập Số
đin
thoại là
trường
1. Để trống
textbox Số
điện thoại
2. Nhập hợp
lệ các trường
3.
Hin
thị
Messa
ge
Pass
53
bắt buộc
còn li
3. Click
button "Đăng
ký"
"Cột
được
yêu
cầu."
ới
trường
"Số
đin
thoại"
MODULE1
_004
Kiểm tra
khoảng
trắng ở
giữa
trong Số
đin
thoại
textbox
1. Nhập Số
điện thoại có
khoảng trắng
ở giữa.
2. Nhập hợp
lệ các trường
còn lại
3. Click
button "Đăng
ký"
3.
Hin
thị
Messa
ge
"Bn
cần
nhp
đúng
định
dạng
cho số
đin
thoại."
dưới
trường
"Số
đin
thoại"
Fail
Không
hiển thị
error
message,
vẫn đăng
ký thành
công
MODULE1
_005
Kiểm tra
tự đặc
biệt
trong Số
đin
thoại
1. Nhập Số
điện thoại bao
gồm các kí tự
đặc biệt (@#$
%^*~/\\,|).
2. Nhập hợp
3.
Hin
thị
Messa
ge
"Bn
Fail
Không
hiển thị
error
message,
không hiện
đăng
54
textbox
lệ các trường
còn lại
3. Click
button "Đăng
ký"
cần
nhp
đúng
định
dạng
cho số
đin
thoại."
dưới
trường
"Số
đin
thoại"
thành công
MODULE1
_006
Kiểm tra
trường
Số điện
thoại
textbox
toàn
số 0
1. Nhập Số
điện thoại
toàn số 0
2. Nhập hợp
lệ các trường
còn lại
3. Click
button "Đăng
ký"
3.
Hin
thị
Messa
ge
"Bn
cần
nhp
đúng
định
dạng
cho số
đin
thoại."
dưới
trường
"Số
đin
thoại"
Fail
Không
hiển thị
error
message,
vẫn đăng
ký thành
công
MODULE1
_007
Kiểm tra
nhp
1. Nhập đúng
định dạng số
3.
Hin
Pass
55
định
dạng 84
điện thoại và
thêm 84 ở đầu
2. Nhập hợp
lệ các trường
còn lại
3. Click
button "Đăng
ký"
thị
Messa
ge
"Cảm
ơn bạn
đã
quan
tâm và
đăng
ký tư
vn
với
chúng
tôi."
MODULE1
_008
Kiểm tra
nhp
định
dạng
+84
1. Nhập đúng
định dạng số
điện thoại và
thêm +84 ở
đầu
2. Nhập hợp
lệ các trường
còn lại
3. Click
button "Đăng
ký"
3.
Hin
thị
Messa
ge
"Cảm
ơn bạn
đã
quan
tâm và
đăng
ký tư
vn
với
chúng
tôi."
Pass
MODULE1
_009
Kiểm tra
số điện
thoại là
kí tự chữ
1. Nhập Số
điện thoại là
các tự chữ
2. Nhập hợp
3.
Hin
thị
Messa
Fail
Không
hiển th
error
message,
56
lệ các trường
còn lại
3. Click
button "Đăng
ký"
ge
"Bn
cần
nhp
đúng
định
dạng
cho số
đin
thoại."
dưới
trường
"Số
đin
thoại"
Không
hiện đăng
kí thành
công
MODULE1
_010
Kiểm tra
Email là
không
bắt buộc
1. Để trống
trường Email
2. Nhập hợp
lệ các trường
còn lại
3. Click
button "Đăng
ký"
3.
Hin
thị
Messa
ge
"Cảm
ơn bạn
đã
quan
tâm và
đăng
ký tư
vn
với
chúng
tôi."
Pass
MODULE1
_011
Kiểm tra
định
dạng
1. Nhập tên
"Email"
tự đặc biệt
3.
Hin
thị
Fail
Không
hiển thị
error
57
"Email"
không
hợp lệ
(@#$
%^*~/\\,|).
2. Nhập hợp
lệ các trường
còn lại
3. Click
button "Đăng
ký"
Messa
ge
"Bn
cần
nhp
đúng
định
dạng
cho
email."
ở dưới
trường
"Email
"
message,
Không
hiện đăng
kí thành
công
MODULE1
_012
1. Nhập định
dạng "Email"
ko@
2. Nhập hợp
lệ các trường
còn lại
3. Click
button "Đăng
ký"
Fail
Không
hiển thị
error
message,
Không
hiện đăng
kí thành
công
MODULE1
_013
1. Nhập
"Email" ko
dấu chấm
trước tên tên
min
2. Nhập hợp
lệ các trường
còn lại
3. Click
button "Đăng
ký"
Fail
Không
hiển thị
error
message,
Không
hiện đăng
kí thành
công
MODULE1
_014
1. Nhập
"Email"
khoảng trắng
ở giữa
2. Nhập hợp
lệ các trường
3.
Hin
thị
Messa
ge
"Bn
Fail
Không
hiển thị
error
message,
Không
hiện đăng
58
còn li
3. Click
button "Đăng
ký"
cần
nhp
đúng
định
dạng
cho
email"
thành
công
MODULE1
_015
Kiểm tra
nhp
"Email"
hợp lệ
1. Nhập địa
chỉ "Email"
hợp lệ:
abc@gmail.co
m
abc.cd@yaho
o.com
abc-
cd@yahoo.co
m
2. Nhập hợp
lệ các trường
còn lại
3. Click
button "Đăng
ký"
3.
Hin
thị
Messa
ge
"Cảm
ơn bạn
đã
quan
tâm và
đăng
ký tư
vn
với
chúng
tôi."
Pass
MODULE1
_016
Kiểm tra
Năm
sinh
bắt buộc
1. Để trống
trường "Năm
sinh"
2. Các thông
tin khác được
nhập hợp lệ
3. Click
button "Đăng
ký"
3.
Hin
thị
Messa
ge
"Cột
được
yêu
cầu."
ới
trường
Pass
Không
hiển thị
error
message,
Không
hiện đăng
kí thành
công
59
"Năm
sinh"
MODULE1
_017
Kiểm tra
Năm
sinh >
m
hiện tại
1. Nhập "Năm
sinh" > năm
hiện tại
2. Các thông
tin khác được
nhập hợp lệ
3. Click
button "Đăng
ký"
3.
Hin
thị
Messa
ge
"Bn
cần
nhp
đúng
m
sinh."
dưới
trường
"Năm
sinh"
Fail
Không
hiển thị
error
message,K
hông hin
đăng kí
thành công
MODULE1
_018
Kiểm tra
Năm
sinh <
1900
1. Nhập "Năm
sinh" < 1900
2. Các thông
tin khác được
nhập hợp lệ
3. Click
button "Đăng
ký"
3.
Hin
thị
Messa
ge
"Bn
cần
nhp
đúng
m
sinh."
dưới
trường
"Năm
sinh"
Fail
Không
hiển thị
error
message,
vẫn hiện
đăng kí
thành công
MODULE1
_019
Kiểm tra
kí tự đặc
1. Nhập "Năm
sinh" là ký tự
3.
Hin
Fail
Không
hiển thị
60
biệt
trong
Năm
sinh
textbox
đặc biệt (@#$
%^*~/\\,|).
2. Các thông
tin khác được
nhập hợp lệ
3. Click
button "Đăng
ký"
thị
Messa
ge
"Bn
cần
nhp
đúng
m
sinh."
dưới
trường
"Năm
sinh"
error
message,
vẫn hiện
đăng kí
thành công
MODULE1
_020
Kiểm tra
Năm
sinh
tự chữ
1. Nhập "Năm
sinh" là ký tự
chữ
2. Các thông
tin khác được
nhập hợp lệ
3. Click
button "Đăng
ký"
3.
Hin
thị
Messa
ge
"Bn
cần
nhp
đúng
m
sinh."
dưới
trường
"Năm
sinh"
Fail
Không
hiển thị
error
message,
vẫn đăng
ký thành
công
MODULE1
_021
Kiểm tra
Giới tính
không
bắt buộc
1. Để trống
trường Giới
tính
2. Nhập hợp
lệ các trường
còn li
3.
Hin
thị
Messa
ge
"Cảm
Pass
61
3. Click
button "Đăng
ký"
ơn bạn
đã
quan
tâm và
đăng
ký tư
vn
với
chúng
tôi."
MODULE1
_022
Kiểm tra
chọn
Giới tính
hợp lệ
1. Chọn
trường Giới
tính "Nam"
2. Nhập hợp
lệ các trường
còn lại
3. Click
button "Đăng
ký"
3.
Hin
thị
Messa
ge
"Cảm
ơn bạn
đã
quan
tâm và
đăng
ký tư
vn
với
chúng
tôi."
Pass
MODULE1
_023
Kiểm tra
Biết
JVNET
qua là
không
bắt buc
1. Để trống
trường Biết
JVNET qua
2. Nhập hợp
lệ các trường
còn lại
3. Click
button "Đăng
3.
Hin
thị
Messa
ge
"Cảm
ơn bạn
đã
Pass
62
ký"
quan
tâm và
đăng
ký tư
vn
với
chúng
tôi."
MODULE1
_024
Kiểm tra
chọn
Biết
JVNET
qua hợp
lệ
1. Chọn
trường Biết
JVNET qua
"Website"
2. Nhập hợp
lệ các trường
còn lại
3. Click
button "Đăng
ký"
3.
Hin
thị
Messa
ge
"Cảm
ơn bạn
đã
quan
tâm và
đăng
ký tư
vn
với
chúng
tôi."
Pass
MODULE1
_025
Kiểm tra
Ghi chú
không
bắt buộc
1. Để trống
trường Ghi
c
2. Nhập hợp
lệ các trường
còn lại
3. Click
button "Đăng
ký"
3.
Hin
thị
Messa
ge
"Cảm
ơn bạn
đã
quan
tâm
Pass
63
đăng
ký tư
vn
với
chúng
tôi."
MODULE1
_026
Kiểm tra
nhp
Ghi chú
hợp lệ
1. Nhập hợp
lệ cho trường
Ghi chú
2. Nhập hợp
lệ các trường
còn lại
3. Click
button "Đăng
ký"
3.
Hin
thị
Messa
ge
"Cảm
ơn bạn
đã
quan
tâm và
đăng
ký tư
vn
với
chúng
tôi."
Pass
3. Test case chức năng tìm kiếm:
ID
Test Case
Descriptio
n
Pre -
Conditio
n
Test
Case
Procedu
re
Expected
Result
Test
Resul
t
Remar
k
MODULE2_0
Kiểm tra
1. Nhập
2. Hin
Pass
01
kết quả
dữ liu
thị
tìm kiếm
không
message
không
trong
"Sorry,
giá trị hiển
CSDL
but
64
thị
2. Click
biểu
tượng
Tìm kiếm
nothing
matched
your
search
terms.
Please try
again
with
some
different
keywords
."
MODULE2_0
02
Kiểm tra
tìm kiếm
phân biệt
chữ hoa,
chữ
thường
1. Nhập
dữ liu
để tìm
kiếm
bằng chữ
hoa có
trong DB
2. Click
biểu
tượng
Tìm kiếm
2. Hiển
thị các tin
tức mun
tìm kiếm
Pass
MODULE2_0
03
1. Nhập
dữ liu
để tìm
kiếm
bằng chữ
thường
trùng vi
chữ hoa
ở trên
2. Click
biểu
2. Hiển
thị kết
quả tìm
kiếm
giống với
kết qủa
khi tìm
kiếm
bằng ch
thường
Pass
65
tượng
Tìm kiếm
4. Test case chức năng Liên H:
ID
Test
Case
Descripti
on
Pre -
Conditi
on
Test Case
Procedure
Expect
ed
Result
Test
Resu
lt
Rema
rk
MODULE3_
001
Kiểm tra
nhập H
tên
trường
bắt buc
n
nh
"Liên
hệ" hiển
thị
1. Để trống
textbox Họ và
tên
2. Nhập hợp lệ
các trường n
li
3. Click button
"GI LẠI
CHO TÔI"
3. Hiển
thị
Messag
e "The
field is
require
d." ở
ới
trường
"Hvà
tên"
Fail
Không
hin
thị
error
messa
ge
MODULE3_
002
Kiểm tra
kí tự đặc
biệt trong
Họ tên
textbox
1. Nhập Họ và
tên bao gồm
các kí tự đặc
biệt (@#$
%^*~/\\,|).
2. Nhập hợp lệ
các trường n
li
3. Click button
"GI LẠI
CHO TÔI"
3. Hiển
thị
Messag
e "The
field
entered
is
invalid.
"
ới
trường
"H
Fail
Không
hin
thị
error
messa
ge,
vn
đăng
ký
tnh
công
66
tên"
MODULE3_
003
Kiểm tra
nhập Số
đin
thoại là
trường
bắt buc
1. Để trống
textbox Số
điện thoại
2. Nhập hợp lệ
các trường n
li
3. Click button
"GI LẠI
CHO TÔI"
3. Hiển
thị
Messag
e "The
field is
require
d." ở
ới
trường
"Số
đin
thoại"
Pass
MODULE3_
004
Kiểm tra
khoảng
trắng ở
giữa
trong Số
đin
thoại
textbox
1. Nhập Số
điện thoại có
khoảng trắng
giữa.
2. Nhập hợp lệ
các trường n
li
3. Click button
"GI LẠI
CHO TÔI"
3. Hiển
thị
Messag
e "The
telepho
ne
number
is
invalid.
"
ới
trường
"Số
đin
thoại"
Fail
Không
hin
thị
error
messa
ge,
vn
đăng
ký
tnh
công
MODULE3_
005
Kiểm tra
kí tự đặc
biệt trong
Số điện
thoại
textbox
1. Nhập Số
điện thoại bao
gồm các kí tự
đặc biệt (@#$
%^*~/\\,|).
2. Nhập hợp lệ
3. Hiển
thị
Messag
e "The
telepho
ne
Pass
67
các trường còn
li
3. Click button
"GI LẠI
CHO TÔI"
number
is
invalid.
"
ới
trường
"Số
đin
thoại"
MODULE3_
006
Kiểm tra
trường
Số điện
thoại
textbox
toàn số
0
1. Nhập Số
điện thoại toàn
là số 0
2. Nhập hợp lệ
các trường n
li
3. Click button
"GI LẠI
CHO TÔI"
3. Hiển
thị
Messag
e "The
telepho
ne
number
is
invalid.
"
ới
trường
"Số
đin
thoại"
Fail
Không
hin
thị
error
messa
ge,
vn
đăng
ký
tnh
công
MODULE3_
007
Kiểm tra
nhp
định
dạng 84
1. Nhập đúng
định dạng số
điện thoại và
thêm 84 đầu
2. Nhập hợp lệ
các trường n
li
3. Click button
"Đăng kí"
3. Hiển
thị
Messag
e "Cảm
ơn bạn
đã quan
tâm
đăng
ký tư
vấn vi
Pass
68
chúng
tôi."
MODULE3_
008
Kiểm tra
nhp
định
dạng +84
1. Nhập đúng
định dạng số
điện thoại và
thêm +84 ở
đầu
2. Nhập hợp lệ
các trường n
li
3. Click button
"GI LẠI
CHO TÔI"
3. Hiển
thị
Messag
e "Cảm
ơn bạn
đã quan
tâm
đăng
ký tư
vấn vi
chúng
tôi."
Pass
MODULE3_
009
Kiểm tra
số điện
thoại là
tự chữ
1. Nhập Số
điện thoại là
các tự chữ
2. Nhập hợp lệ
các trường n
li
3. Click button
"GI LẠI
CHO TÔI"
3. Hiển
thị
Messag
e "The
telepho
ne
number
is
invalid.
"
ới
trường
"Số
đin
thoại"
Pass
MODULE3_
010
Kiểm tra
định
dạng
Email
không
1. Nhập tên
email tự
đặc (@#$
%^*~/\\,|).
2. Nhập hợp lệ
3. Hiển
thị
Messag
e "The
e-mail
Pass
69
hợp lệ
các trường còn
li
3. Click button
"GI LẠI
CHO TÔI"
address
entered
is
invalid.
"
ới
trường
"Email
"
MODULE3_
011
1. Nhập định
dạng email ko
có @
2. Nhập hợp lệ
các trường n
li
3. Click button
"GI LẠI
CHO TÔI"
Pass
MODULE3_
012
1. Nhập email
kodấu
chấm trước tên
tên miền
2. Nhập hợp lệ
các trường n
li
3. Click button
"GI LẠI
CHO TÔI"
Pass
MODULE3_
013
1. Nhập email
thiếu tên miền
(.com, .vn...)
2. Nhập hợp lệ
các trường n
li
3. Click button
"GI LẠI
CHO TÔI"
Pass
MODULE3_
1. Nhập Email
Pass
70
014
khoảng
trắng giữa.
2. Nhập hợp lệ
các trường n
li
3. Click button
"GI LẠI
CHO TÔI"
MODULE3_
015
Kiểm tra
nhp
Email
hợp lệ
1. Nhập địa chỉ
email hợp lệ:
abc@gmail.co
m
abc.cd@yahoo.
com
abc-
cd@yahoo.co
m
2. Nhập hợp lệ
các trường n
li
3. Click button
"GI LẠI
CHO TÔI"
3. Hiển
thị
Messag
e "Cảm
ơn bạn
đã quan
tâm
đăng
ký tư
vấn vi
chúng
tôi."
Pass
3.3 Kết luận:
Phn III y đã thực hành c ni dung sau:
- Giới thiệu tổng quan về công cụ kiểm thử tự động Selenium.
- Tìm hiểu chi tiết v tiện ích Selenium IDE: ch cài đặt, phạm vi ứng
dụng, cách sử dụng cơ bản.
- Ứng dụng các kiến thức đã nghiên cứu về công cụ kiểm th Selenium IDE
để kiểm thchức năng đăng tài khoản, chức năng tìm kiếm, chức năng
liên hệ của Website JVNET.
71
PHẦN V: KẾT LUN
Kiểm thphần mm nói chung và kiểm thứng dụng trên nền Web i
riêng một vấn đhết sức quan trọng đối với các tổ chức phát triển phần mm
hiện nay. Trong qtrình thực hiện khóa lun của mình do thời gian nghiên cứu
kinh nghiệm bản thân còn hạn chế nên một số phần của đồ án nghiên cứu
chưa được sâu.
Sau thời gian thực hiện nghiên cứu đề tài, dưới sự hướng dẫn tận tình của
Thạc s Hoàng Thị Hà, khóa luận ca em đã đạt được những kết quả sau:
Kết qu đạt được
Trình bày đầy đtổng quan vphần mm, lỗi phần mm, đặc tả yêu cầu
phần mm, chất ợng và độ tin cậy của phần mm cũng như các vấn đliên
quan tới kiểm thử phần mềm.
Áp dng kiến thức đã tìm hiểu để kiểm th chức năng đăng i khoản,
chức năng tìm kiếm, chức năng liên hệ của ứng dụng Web JVNET bằng tiện ích
Selenium IDE.
Ka luận một tài liệu tổng hợp các vấn đề trong kiểm thphần mm
i chung, kiểm thử ứng dụng trên nền Web nói riêng và thể xem ntài liệu
hướng dẫn sử dụng Selenium IDE một cách bản nhất bằng tiếng Việt để tham
khảo.
Hạn chế
Trong thời gian qua, em đã cố gắng hết sức để tìm hiểu thực hiện đtài.
Tuy nhiên vi kinh nghiệm và thời gian hạn chế nên không thể tránh khỏi những
thiếu sót trong khóa luận. Em mong thầy thgóp ý và b sung giúp em
được hoàn thiện hơn.
PHẦN VI: TÀI LIỆU THAM KHO
72
[1]
Nguyễn Văn Vỵ - Nguyễn Việt Hà, Giáo trình Kỹ nghệ phần mm, Nhà
xuất bản Giáo dục Việt Nam, 2009.
[2]
Phm Ngọc Hùng - Trương Anh Hoàng - Đặng Văn Hưng, Giáo trình
Kiểm thử phần mm, 2014.
[3] Wikipedia, Bách khoa toàn thư m.
GIẢNG VIÊN HƯỚNG DẪN
( ghi họ n)
SINH VIÊN
( ghi họ tên)
Huyền
Khánh Huyền
Nội, ngày 07 tháng 07 năm 2022
73
| 1/74

Preview text:


HỌC VIỆN NÔNG NGHIỆP VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
KHÓA LUẬN TỐT NGHIỆP ĐỀ TÀI:
KIỂM THỬ ỨNG DỤNG TRÊN NỀN WEB BẰNG
CÔNG CỤ SELENIUM
Giảng viên hướng dẫn: ThS. HOÀNG THỊ
Sinh
viên thực hiện:
Khánh Huyền Lớp: K63HTTT
NỘI - 2022
HỌC VIỆN NÔNG NGHIỆP VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
KHÓA LUẬN TỐT NGHIỆP ĐỀ TÀI:
KIỂM THỬ ỨNG DỤNG TRÊN NỀN WEB
BẰNG CÔNG CỤ SELENIUM
Người thực hiện
Khánh Huyền Khóa 63 Ngành
Công Nghệ Thông Tin Chuyên ngành
Hệ Thống Thông Tin
Người hướng dẫn
ThS. Hoàng Thị
NỘI - 2022 1
LỜI CẢM ƠN
Lời đầu tiên em xin chân thành cảm ơn các thầy, cô trong khoa Công nghệ
thông tin, trường Học Viện Nông Nghiệp Việt Nam đã tạo điều kiện thuận lợi
cho em trong quá trình học tập tại trường cũng như trong thời gian thực hiện
Khóa luận tốt nghiệp. Đặc biệt, em muốn gửi lời cảm ơn tới Thạc sỹ Hoàng Thị
Hà– giảng viên trực tiếp hướng dẫn, chỉ bảo, giúp em khắc phục những khó
khăn, thiếu sót để có thể hoàn thành các phần trong khóa luận tốt nghiệp từ lý
thuyết cho tới thực hành sử dụng công cụ.
Mặc dù đã cố gắng với tất cả nỗ lực của bản thân để hoàn thiện khóa luận,
nhưng do thời gian có hạn, năng lực và kinh nghiệm còn hạn chế nên khóa luận
không thể tránh khỏi những thiếu sót. Kính mong nhận được sự đóng góp ý kiến
từ phía thầy cô, bạn bè để em có thể nâng cao kiến thức của bản thân, hoàn thiện
khóa luận được tốt hơn.
Em xin chân thành cảm ơn!
SINH VIÊN THỰC HIỆN
Khánh Huyền 2 MỤC LỤC
LỜI CẢM ƠN ................................................................................................................................. 2
MỤC LỤC........................................................................................................................................ 3
PHẦN I: MỞ ĐẦU ......................................................................................................................... 7 1.1
Tên đề tài ........................................................................................................... 7 1.2
Đặt vấn đề ......................................................................................................... 7 1.3
Mục đích Yêu cầu.......................................................................................... 7
1.2.1 Mục đích ........................................................................................................... 7
1.2.2 Yêu cầu ............................................................................................................. 8
PHẦN II: TÌNH HÌNH NGHIÊN CỨU TRONG NGOÀI NƯỚC .................................. 8
2.1 Tình hình nghiên cứu trong nước ......................................................................... 8
2.2 Tình hình nghiên cứu ngoài nước........................................................................ 9
2.3 Đề tài tính thời sự, tầm quan trọng của đề tài ............................................. 9
PHẦN III: NỘI DUNG PHƯƠNG PHÁP NGHIỆN CỨU ............................................... 9
3.1 Địa điểm thời gian nghiên cứu ......................................................................... 9 a.
Nội dung nghiên cứu............................................................................................ 9 b.
Phương pháp nghiên cứu .................................................................................. 10
PHẦN IV: KẾT QUẢ THẢO LUẬN .................................................................................. 10
CHƯƠNG I: PHẦN MỀM KIỂM THỬ PHẦN MỀM ................................................... 10 1.1
Phần mềm các khái niệm liên quan ....................................................... 10 1.1.1.
Khái niệm: ..................................................................................................... 10 3 1.1.2.
Phân loại ........................................................................................................ 10 1.1.3.
Lỗi phần mềm: .............................................................................................. 11 1.1.4.
Yêu cầu của khách hàng: ............................................................................ 12 1.1.5.
Đặc tả yêu cầu phần mềm: .......................................................................... 13 1.1.6.
Chất lượng độ tin cậy của phần mềm: ................................................. 14 1.2
Kiểm thử phần mềm:..................................................................................... 14 1.2.1
Khái niệm: ...................................................................................................... 14 1.2.2
Vai trò của kiểm thử phần mềm:................................................................. 14 1.2.3
Các cấp độ kiểm thử phần mềm: ................................................................ 15 1.2.4
Quy trình kiểm thử phần mềm: .................................................................. 16 1.2.5
Phân loại kiểm thử phần mềm: ................................................................... 19 1.2.6
Các mức độ nghiêm trọng của lỗi................................................................ 23 1.2.7
Ca kiểm thử: ................................................................................................... 23 1.2.8
Nguyên tắc quan trọng trong kiểm thử phần mềm: ................................. 24 1.3
Các kỹ thuật trong kiểm thử: ....................................................................... 26 1.3.1
Kỹ thuật phân vùng tương đương: ............................................................. 26 1.3.2
Kỹ thuật phân tích giá trị biên .................................................................... 27 1.3.3
Đoán lỗi ........................................................................................................... 27 1.3.4
Kỹ thuật chuyển trạng thái .......................................................................... 28 1.4
Kết luận ........................................................................................................... 28
CHƯƠNG II: KIỂM THỬ ỨNG DỤNG TRÊN NỀN WEB ................................................. 29
2.1 Khái quát: .............................................................................................................. 29
2.2 Nội dung kiểm thử ứng dụng web ...................................................................... 29 4
2.2.1 Kiểm thử chức năng: ......................................................................................... 29
2.2.2 Kiểm thử tính khả dụng .................................................................................... 30
2.2.3 Kiểm thử giao diện............................................................................................. 30
2.2.4 Kiểm thử khả năng tương thích....................................................................... 31
2.2.5 Kiểm thử hiệu năng ........................................................................................... 31
2.2.6 Kiểm thử bảo mật .............................................................................................. 32
2.3 Các công cụ kiểm thử: .......................................................................................... 32
2.3.1 Công cụ kiểm thử hiệu năng ............................................................................ 32
2.3.2 Công cụ kiểm thử bảo mật ............................................................................... 33
2.3.3 Công cụ kiểm thử chức năng. .......................................................................... 33
2.4 Kết luận .................................................................................................................. 34
CHƯƠNG III: KIỂM THỬ ỨNG DỤNG TRÊN NỀN WEB BẰNG CÔNG CỤ
SELENIUM ................................................................................................................................... 35
3.1 Công cụ kiểm thử tự động Selenium:................................................................. 35
3.1.1 Giới thiệu chung về Selenium: ......................................................................... 35
3.1.2 Selenium IDE ...................................................................................................... 36
3.2 Bài toán thực tế ..................................................................................................... 49
3.2.1 Giới thiệu về website.......................................................................................... 49
3.2.2 Kiểm thử các chức năng của website JVNET ............................................... 52
3.3 Kết luận .................................................................................................................. 74
PHẦN V: KẾT LUẬN .................................................................................................................. 75
PHẦN VI: TÀI LIỆU THAM KHẢO ....................................................................................... 76 5
PHẦN I: MỞ ĐẦU
1.1 Tên đề tài
“Kiểm thử ứng dụng trên nền web bằng công cụ selenium”
1.2 Đặt vấn đề
Ngày nay, với sự phát triển của các nền tảng thiết bị khác nhau như web,
di động, thiết bị Cloud, một sản phẩm phải hoạt động trên nhiều nền tảng khác
nhau hay phải tương thích với các sản phẩm khác là một yêu cầu bắt buộc và từ
đó đặt ra nhiều thách thức cho các nhà sản xuất, phát triển phần mềm. Lúc này
vai trò của kiểm thử là thực sự cần thiết nói giúp xác nhận yêu cầu, giúp đánh giá
sản phẩm, tìm lỗi, ngăn ngừa lỗi…
Nhu cầu của nghề tester rất cao tuy nhiên hầu hết các bạn theo học ngành
Công Nghệ Thông Tin đều mong muốn làm nghề lập trình viên chứ không phải
là nghề Tester. Tại các công ty phần mềm nước ngoài trung bình cứ 1 lập trình
viên cần phải có tới 4 Tester, tuy nhiên ở Việt Nam tỷ lệ này lại ngược lại, với 5
lập trình viên thì mới có 1 tester. Chính sự mất cân đối này đã mở ra một nhu cầu
vô cùng lớn cho nghề Tester trong tương lai.
Bên cạnh đó, xu hướng áp dụng tự động hoá đang được triển khai rộng rãi
ở nhiều lĩnh vực, trong đó có kiểm thử phần mềm. Đặc biệt, khi kiểm thử phần
mềm là công đoạn chiếm phần lớn thời gian trong quá trình phát triển dự án phần
mềm thì sự ra đời của các công cụ kiểm thử tự động càng có ý nghĩa hơn bao giờ
hết, giúp tiết kiệm thời gian, công sức và tiền bạc. Selenium là một công cụ hỗ
trợ kiểm thử tự động dành cho các ứng dụng Web, hoạt động trên hầu hết các
trình duyệt phổ biến hiện nay như Firefox, Chrome, Internet Explorer, Safari, v.v.
cũng như hỗ trợ số lượng lớn các ngôn ngữ lập trình Web phổ biến. Công cụ
Selenium hiện được đánh giá là một trong những công cụ tốt nhất cho kiểm thử
tự động các ứng dụng Web.
Trong quá trình làm khóa luận, do còn hạn chế về kinh nghiệm thực tế, em
rất mong nhận được những góp ý chân thành từ thầy cô và các bạn.
1.3 Mục đích Yêu cầu
1.2.1 Mục đích: 6
- Tìm hiểu lý thuyết chung về kiểm thử phần mềm.
- Hiểu được các công cụ hỗ trợ kiểm thử phần mềm đặc biệt là Selenium.
- Tìm hiểu sâu về các tính năng Selenium : đưa ra hướng dẫn cài đặt, sử
dụng hiệu quả bộ công cụ
- Áp dụng được kiến thức lý thuyết vừa tìm hiểu được để ứng dụng kiểm
thử cho một ứng dụng cụ thể.
1.2.2 Yêu cầu:
- Nắm vững được cơ sở lý thuyết chung về kiểm thử phần mềm.
- Nắm vững được cách sử dụng phần mềm Selenium.
- Áp dụng được các phương pháp về kiểm thử phần mềm.
PHẦN II: TÌNH HÌNH NGHIÊN CỨU TRONG NGOÀI NƯỚC
2.1 Tình hình nghiên cứu trong nước
Theo nghiên cứu của http://bachkhoa-aptech.edu.vn/ thì đến năm 2020,
nhân lực Kỹ sư kiểm thử còn thiếu trong thị trường lao động Việt Nam khoảng
10.000 người. Những ai theo học ngành CNTT đều đa phần là nghĩ ngay đến
nghề lập trình vì thế khiến đầu ra của nghề kỹ sư kiểm thử có số lượng thấp hơn
hẳn khiến các nhà tuyển dụng lao đao trong việc tìm kiếm nguồn nhân lực.
Cùng với ngành sản xuất phần mềm, Việt Nam là quốc gia có nhiều lợi thế
để trở thành quốc gia gia công phần mềm hàng đầu thế giới và đang là điểm đầu
tư lâu dài của các công ty công nghệ lớn như Samsung, LG, Renesas, Foxconn,
Fujitsu, Canon, Panasonic, HP, CSC, Sony,..Vì vậy nhu cầu sử dụng phần mềm
từ các công ty trong nước cũng như các đối tác nước ngoài đang gia tăng.
Hiện nay, ở Việt Nam, chưa có quy trình kiểm thử chung cho các doanh
nghiệp, các doanh nghiệp tự xây dựng và ban hành quy trình riêng cho mình.
Các kỹ thuật kiểm thử hiện đang được các doanh nghiệp hay dùng nhất, đó là:
các kỹ thuật kiểm thử dựa trên đặc tả, các kỹ thuật kiểm thử dựa trên cấu trúc
(kiểm thử hộp trắng) cũng có dùng nhưng không nhiều và phải do lập trình đảm
nhận. Bên cạnh đó, hiện nay họ cũng chú trọng nhiều đến các loại kiểm thử đặc
tính chất lượng phần mềm như: kiểm thử cài đặt, kiểm thử tương thích, kiểm thử 7
bảo mật. Ngoài việc kiểm thử thủ công thì một số kỹ thuật kiểm thử phải sử dụng
các công cụ (tool test) để kiểm thử do số lượng các trường hợp kiểm thử lớn.
Không phải phần mềm nào viết ra cũng phù hợp cho việc kiểm thử và không
phải đơn vị nào cũng đủ kinh phí để sử dụng các tool test.. Đó là một trong
những khó khăn mà các đơn vị đang gặp phải.
2.2 Tình hình nghiên cứu ngoài nước
Testing ở thế giới đã phát triển từ lâu, nếu như ở Việt Nam ti lệ chỉ có 1
Tester thì có 5 lập trình viên nhưng ở nước ngoài tỉ lệ này là 4:1, như vậy với 4
Tester thì mới có một lập trình viên. Có thể nói Testing có rất nhiều tiềm năng phát triển.
2.3 Đề tài tính thời sự, tầm quan trọng của đề tài
Thỏa mãn nhu cầu của người dùng là việc rất quan trọng khi tạo ra sản
phẩm hay đảm bảo chất lượng phần mềm là một phần không thể thiếu trong quá
trình sản xuất phần mềm. Để tạo ra một sản phẩm chất lượng lại tiết kiệm kinh
phí, nguồn lực, thời gian không phải là một việc dễ dàng. Vì vậy, việc sử dụng
công cụ hỗ trợ giúp quản lý chất lượng phần mềm được ưu tiên phát triển trong
ngành công nghệ phần mềm. Với đề tài “ Kiểm thử phần mềm và ứng dụng" sẽ
giúp ta hiểu rõ hơn việc tìm kiếm, theo dõi, xử lý, cập nhật và quản lý lỗi phát
sinh trong quá trình kiểm tra, kiểm thử phần mềm đảm bảo chất lượng phần mềm
trước khi được triển khai vào thực tế.
PHẦN III: NỘI DUNG PHƯƠNG PHÁP NGHIỆN CỨU
3.1 Địa điểm thời gian nghiên cứu
- Bộ môn Công nghệ phần mềm, khoa Công nghệ thông tin, Học viện Nông Nghiệp Việt Nam.
- Địa điểm: Công ty TNHH Đầu tư và thương mại dịch vụ Việt Đức.
- Thời gian nghiên cứu: 3 buổi/ tuần trong thời gian từ ngày 20/02/2022 đến ngày 06/04/2021.
a. Nội dung nghiên cứu
- Tìm hiểu về lý thuyết kiểm thử phần mềm.
- Tìm hiểu cách cài đặt, sử dụng công cụ kiểm thử tự động. 8
- Tìm hiểu tính năng, ưu điểm của Selenium.
- Ứng dụng kiểm thử trên web cụ thể.
b. Phương pháp nghiên cứu
- Tham khảo tài liệu: Tham khảo tài liệu chuyên môn, tài liệu online,…
- Tham khảo ý kiến giáo viên hướng dẫn.
PHẦN IV: KẾT QUẢ THẢO LUẬN
Chương I: PHẦN MỀM KIỂM THỬ PHẦN MỀM
Phần đầu tiên này đi sâu vào việc tìm hiểu các khái niệm về phần mềm và
kiểm thử phần mềm, giúp khái quát việc phân loại kiểm thử phần mềm, đưa ra
các quy trình, mức độ trong kiểm thử phần mềm.
1.1 Phần mềm các khái niệm liên quan :
1.1.1. Khái
niệm:
Phần mềm (Software) có thể hiểu là một tập hợp các tập tin có mối liên hệ
chặt chẽ với nhau, đảm bảo thực hiện một số nhiệm vụ, chức năng nào đó trên
thiết bị điện tử. Các tập tin này có thể bao gồm: các file nguồn viết bằng một
hoặc nhiều ngôn ngữ lập trình, các file dữ liệu (thư viện), các file hướng dẫn.
Phần mềm thực hiện các chức năng của nó bằng cách gửi các chỉ thị trực tiếp
đến phần cứng (Hardware) hoặc cung cấp dữ liệu để phục vụ các chương trình hay phần mềm khác.
Viêc thực thi nhiệm vụ có thể thể là tự động hoặc thực hiện theo các thông tin, dữ liệu đầu vào.
Phải có phần cứng thì phần mềm mới thực thi được. Thông thường là máy
tính, các thiết bị giải trí truyền thông, bộ điều khiển trên máy công cụ – ô tô….
1.1.2. Phân loại:
Theo phương thức hoạt động
• Phần mềm hệ thống dùng để vận hành máy tính nói riêng và các thiết bị
điện tử nói chung. Ví dụ: hệ điều hành máy tính Windows, Linux, Unix;
Các trình điều khiển (driver), phần sụn (firmware) và BIOS. Hệ điều hành
di dộng iOS, Android, Windows Phone,… 9
• Phần mềm ứng dụng – phần mềm máy tính : Các phần mềm văn phòng
(Microsoft Office, OpenOffice), trò chơi điện tử (game), các công cụ &
tiện ích khác (ví dụ như phần mềm quản lý chi tiêu cá nhân, phần mềm quản lý công việc,…).
• Phần mềm dịch mã (trình dịch) gồm trình biên dịch và trình thông dịch, cụ
thể là chúng dịch các câu lệnh từ mã nguồn của ngôn ngữ lập trình sang
dạng ngôn ngữ máy sao cho thiết bị thực thi có thể hiểu được.
• Nền tảng ứng dụng: như ASP.NET – nền tảng ứng dụng web của
Microsoft, cái này hỗ trợ việc tạo ra các ứng dụng web, dịch vụ web (web service).
Theo khả năng hay quyền hạn can thiệp vào nguồn
• Phần mềm mã nguồn đóng (closed source software): Là phần mềm mà mã
nguồn của nó không được công bố. Để sử dụng phần mềm nguồn đóng
phải được cấp bản quyền (mua, tặng là tùy).
• Phần mềm mã nguồn mở (open source software): Là phần mềm mà mã
nguồn của nó được công bố rộng rãi, công khai và cho phép mọi người
tiếp tục phát triển phần mềm đó. Thường thì loại phần mềm này miễn phí.
1.1.3. Lỗi phần mềm:
Lỗi phần mềm là một lỗi hay hỏng hóc trong chương trình hoặc hệ thống máy
tính khiến nó tạo ra kết quả không chính xác hoặc không mong muốn hoặc hành
xử theo những cách không lường trước được.
Lỗi phần mềm thường xuất hiện ở các hình thức sau đây:
• Sai (Fault): Khi phần mềm gạp lỗi sẽ đưa đến những sai sót. Tuy nhiên,
không dễ để phát hiện ra sai sót trong quá trình phát triển phần mềm. Sai
lầm có thể xuất hiện ngay ở đầu quy trình phát triển phần mềm khi người
phân tích, thiết kế bỏ sót thông tin dẫn tới thiếu chức năng mà lẽ ra cần phải có.
• Thất bại (Failure): Thất bại dễ nhận thấy nhất khi một lỗi được thực thi.
• Chúng thường xuất hiện dưới 2 dạng: thất bại có thể chạy được (ví dụ
• như mã nguồn) và thất bại chỉ liên kết với các lỗi về nhiệm vụ. Ngoài
• ra, có thể kể đến các thất bại liên quan tới các lỗi do bỏ quên. Chúng ta 10
• có thể hạn chế thất bại ngay tại bước đầu tiên của quy trình phát triển
• phần mềm nếu việc khảo sát được thực hiện tốt.
• Sự cố (Incident): Sự cố thường được liên kết với một thất bại. Tuy
• nhiên nó khác với thất bại ở chỗ sự cố luôn hiển thị cho người dùng
• hoặc kiểm thử viên biết về sự tồn tại của nó.
• Thừa: 1 số chức năng không có trong bản đặc tả yêu cầu phần mềm nhưng
lại xuất hiện trong phần mềm được xây dựng.
Ngoài ra, còn xuất hiện 1 số lỗi phi chức năng như phần mềm khó sử dụng,
tốc độ không đáp ứng yêu cầu (vấn đề hiệu năng) hay giao diện khó nhìn cũng dễ
khiến cho người sử dụng nghĩ rằng phần mềm đang hoạt động không đúng.
1.1.4. Yêu cầu của khách hàng:
Phần mềm được phát triển dựa trên nhu cầu của khách hàng. Chính vì lẽ
đó, các chức năng của phần mềm được xây dựng dựa trên việc thu thập, phân
tích, khảo sát nhu cầu của khách hàng thông qua những yêu cầu cụ thể.
Đối với phần mềm, yêu cầu thường được tổng hợp từ nhiều người, nhiều
tổ chức có mức độ chuyên môn và mức độ tham gia cũng như tương tác với phần
mềm khác nhau trong môi trường hoạt động của nó.
Có thể phân loạ yêu cầu của khách hàng cho sản phẩm phần mềm thành một số loại như sau:
• Phân loại theo sản phẩm và tiến trình:
-Yêu cầu sản phẩm: là những đòi hỏi hay ràng buộc mà phần mềm phải thực hiện.
-Yêu cầu tiến trình: là những ràng buộc liên quan đến việc phát triển phần mềm
(kĩ thuật sử dụng, mô hình phát triển, v.v.).
dụ: Khách hàng muốn phát triển một website làm bài thi trực tuyến.
Lúc này, yêu cầu sản phẩm là xây dựng website thi trực tuyến với các tính
năng như quản lý câu hỏi; quản lý đề thi; cho phép người dùng có thể tham
gia làm bài thi; quản trị viên có thể duyệt các câu hỏi và bộ đề thi trước khi
đăng lên website. Việc website được phát triển theo mô hình Agile hay mô 11
hình thác nước chính là yêu cầu tiến trình của sản phẩm phần mềm.
• Phân loại theo chức năng
- Yêu cầu chức năng: đặc tả các chức năng mà phần mềm cần phải thực hiện.
- Yêu cầu phi chức năng: là các ràng buộc về giải pháp và chất lượng (hiệu
năng, việc bảo trì, mức độ an toàn, bảo mật, v.v.)
- Yêu cầu đặc tả các thuộc tính nổi bật: là đặc tả cho các thuộc tính phụ
thuộc vào sự vận hành, đặc biệt là kiến trúc hệ thống. Các thuộc tính này không
thể xác định được cho từng thành phần đơn lẻ.
• Phân loại theo tính kiểm định
- Những yêu cầu mang tính mơ hồ, không thể kiểm định
- Những yêu cầu đã rõ ràng và có thể kiểm định được.
• Phân loại theo phạm vi đặc tả
- Yêu cầu hệ thống: đặc tả các cấu hình, cơ sở hạ tầng, phần cứng, phần
mềm, con người, kỹ thuật, v.v. của toàn bộ hệ thống.
- Yêu cầu phần mềm: đặc tả các chức năng, giao diện, v.v. của các cấu phần phần mềm.
1.1.5. Đặc tả yêu cầu phần mềm:
Từ yêu cầu của khách hàng và những yêu cầu bắt buộc khác, đặc tả yêu
cầu phần mềm được viết ra để mô tả một cách chính xác về các yêu cầu cần đáp
ứng của sản phẩm phần mềm. Đây cũng chính là tài liệu cơ sở để lập trình viên,
kiểm thử viên và các bộ phận khác dựa vào để phát triển phần mềm hoàn chỉnh,
đúng với yêu cầu đặt ra ban đầu. Các khái niệm về lỗi đã nói ở mục 1.1.3 cũng
chính là đề cập đến việc phần mềm sau khi xây dựng hoạt động không đúng với
bản đặc tả yêu cầu phần mềm. Tài liệu đặc tả yêu cầu phần mềm cũng cần cung
cấp đầy đủ các thông tin về chi phí, rủi ro và lịch trình cho quá trình phát triển
sản phẩm. Đặc tả yêu cầu phần mềm được viết ra phục vụ rất nhiều đối tượng từ
người dùng hệ thống, khách hàng đến các nhà phát triển và bảo trì phần mềm.
Do đó, tài liệu đặc tả nên được viết bằng ngôn ngữ tự nhiên, sử dụng biểu đồ,
bảng biểu để đảm bảo tính dễ hiểu, dễ sử dụng cho tất cả các đối tượng trên. 12
1.1.6. Chất lượng độ tin cậy của phần mềm:
Chất lượng của phần mềm trước hết là sự đáp ứng các yêu cầu đề ra trong
bản đặc tả yêu cầu phần mềm. Có thể kể đến các yếu tố đại diện cho chất lượng
phần mềm như: tính đúng đắn, tính hiệu quả, độ tin cậy, tính khả kiểm thử, dễ
học, dễ sử dụng, dễ bảo trì… Ta có thể thấy độ tin cậy chỉ là một trong những
yếu tố đánh giá chất lượng phần mềm. Tuy nhiên người kiểm thử lại hay nhầm
lẫn giữa khái niệm chất lượng và độ tin cậy của phần mềm. Sau quá trình kiểm
thử đảm bảo phần mềm có thể chạy ổn định, kiểm thử viên thường sẽ cho rằng
phần mềm lúc này đã đạt chất lượng tốt.
1.2 Kiểm thử phần mềm:
1.2.1 Khái
niệm:
Hiểu theo cách đơn giản hơn, kiểm thử phần mềm là quá trình tìm thất bại
hoặc chứng tỏ việc tiến hành của phần mềm là đúng đắn.
1.2.2 Vai trò của kiểm thử phần mềm:
Kiểm thử phần mềm chiếm một vị trí quan trọng trong việc nâng cao chất
lượng cũng như độ tin cậy của phần mềm trong quá trình phát triển. Hoàn thành
vòng quay “đưa lỗi vào – tìm lỗi – khử lỗi đi” của quy trình kiểm thử phần mềm
sẽ thu lại được những cải tiến đáng kể cho chất lượng sản phẩm phần mềm. Việc
biết được sản phẩm phần mềm tốt tới mức nào trước khi đưa vào sử dụng sẽ hạn
chế tối đa những rủi ro gặp phải trong quá trình phát triển phần mềm.
Hình 1.1: Vòng đời của quá trình kiểm thử 13
1.2.3 Các cấp độ kiểm thử phần mềm:
Có 4 cấp độ kiểm thử phần mềm sau:
Kiểm thử đơn vị: Cấp độ này chủ yếu do lập trình viên trực tiếp
thực hiện. Phần mềm khi phát triển sẽ bao gồm nhiều đơn vị chức năng (hàm,
phương thức) hợp thành. Mỗi lập trình viên sẽ đảm nhiệm việc phát triển một
hay nhiều đơn vị chức năng. Kiểm thử đơn vị chính là việc lập trình viên sau khi
hoàn thành code đơn vị chức năng của mình sẽ tiến hành kiểm thử chức năng đó
một cách cô lập nhằm phát hiện ra lỗi và khắc phục trước khi tích hợp với các
đơn vị chức năng khác. Kiểm thử đơn vị thường được tiến hành theo 2 giai đoạn:
kiểm thử đơn vị tĩnh và kiểm thử đơn vị động.
Kiểm thử tích hợp: Sau khi kiểm thử đơn vị được tiến hành bởi
chính lập trình viên viết ra nó, các đơn vị chức năng sẽ được ghép lại với nhau
để tạo thành hệ thống đầy đủ và có thể làm việc được. Các đơn vị chức năng hoạt
động tốt khi ở trạng thái độc lập riêng rẽ, nhưng khi ghép lại sẽ có thể xuất hiện
những lỗi về giao diện hoặc cho ra kết quả không đúng khi phải sử dụng dữ liệu
từ những đơn vị chức năng khác. Đó chính là lý do tại sao phải tiếp tục kiểm thử
để phát hiện ra những lỗi kể trên. Người ta thường chia bước kế tiếp này thành 2
giai đoạn: kiểm thử tích hợp và kiểm thử hệ thống. Ở mức kiểm thử tích hợp, các
đơn vị chức năng được kết hợp lại với nhau và tiến hành kiểm thử chúng theo
phương pháp tăng dần để đảm bảo cụm các đơn vị chức năng sẽ làm việc ổn định
trong môi trường thử nghiệm.
Kiểm thử hệ thống: Sau khi tất cả các đơn vị chức năng đã được
tích hợp lại với nhau tạo thành một hệ thống hoàn chỉnh, kiểm thử hệ thống sẽ
được thực thi để đảm bảo sản phẩm phần mềm đáp ứng đầy đủ các yêu cầu trong
bản đặc tả yêu cầu phần mềm. Đây là công việc tốn nhiều công sức nhất trong
quá trình kiểm thử phần mềm. Đồng thời cũng sử dụng nhiều kỹ thuật kiểm thử
khác nhau như: kiểm thử giao diện người dùng, kiểm thử chức năng, kiểm thử
hiệu năng, kiểm thử tính dễ dùng, v.v. để hoàn tất công việc kiểm thử trong cấp độ này.
Kiểm thử chấp nhận: Khi kiểm thử hệ thống hoàn tất, sản phẩm
phần mềm được coi như đã sẵn sàng cho việc đưa vào sử dụng thực tế. Lúc này,
phần mềm cần được tiến hành cấp độ kiểm thử cuối cùng – kiểm thử chấp nhận 14
bởi chính khách hàng hay người sử dụng phần mềm. Tuy có phần tương tự như
kiểm thử hệ thống nhưng mục đích chính của kiểm thử chấp nhận là quyết định
việc đưa vào sử dụng chính thức sản phẩm phần mềm. Người ta dựa trên các số
liệu thống kê thực tế về chất lượng, độ tin cậy của phần mềm để quyết định triển
khai cho người dùng cuối. Kiểm thử chấp nhận thường được thực hiện dưới hình
thức cho một nhóm người dùng thử sản phẩm phần mềm để phát hiện các lỗi và
nhận phản hồi từ người dùng. Trong đó, phiên bản alpha dành cho đội phát triển
phần mềm và phiên bản beta được cung cấp cho người sử dụng thật để đưa ra
đánh giá trong môi trường thực tế. Ở thời điểm hiện tại, kiểm thử chấp nhận
được coi là cấp độ quy chuẩn bắt buộc không thể thiếu trong quy trình phát triển
của nhiều sản phẩm phần mềm.
1.2.4 Quy trình kiểm thử phần mềm:
Các giai đoạn trong quy trình kiểm thử phần mềm được biểu diễn tổng quát bằng sơ đồ sau: Phân tích yêu cầu
Lập kế hoạch kiểm thử
Thiết kế kịch bản cho quy trình kiểm thử
Thiết lập môi trường kiểm thử
Thực hiện kiểu kiểm thử
Đóng chu trình kiểm thử
Hình 1-2: Quy trình kiểm thử phần mềm. • Phân tích yêu cầu
Giai đoạn đầu tiên của quy trình kiểm thử là phân tích các yêu cầu thông
qua những tài liệu bao gồm: tài liệu yêu cầu của khách hàng, prototype của
khách hàng, tài liệu đặc tả yêu cầu của phần mềm, tài liệu thiết kế hệ thống… 15
QA Team có nhiệm vụ phân tích và xác định những yêu cầu của khách
hàng, trong đó có yêu cầu về kiểm thử chức năng/phi chức năng của phần mềm.
Trong quá trình phân tích, QA Team có thể đặt ra câu hỏi để hiểu chính xác hơn
về yêu cầu của sản phẩm, đồng thời hỗ trợ đưa ra giải pháp thích hợp cho khách hàng.
• Lập kế hoạch kiểm thử
Dựa vào tài liệu nhận được trong giai đoạn đầu, Test Lead hoặc Test
Manager sẽ lên kế hoạch kiểm thử phần mềm cho QA team để xác định một số yếu tố:
Phạm vi dự án: Thời gian thực hiện dự án bao lâu? Trong từng khoảng
thời gian sẽ có những công việc gì?
Phương pháp tiếp cận: Dựa vào yêu cầu chất lượng của khách hàng, thời
gian test, kỹ thuật phát triển ứng dụng, lĩnh vực của sản phẩm… Test Manager sẽ
đưa ra phương pháp tiếp cận sao cho đảm bảo tiến độ và chất lượng sản phẩm.
Sau khi kết thúc giai đoạn này, QA team cần nhận được test plan, test schedule, test estimation.
• Thiết lập môi trường kiểm thử
Trong giai đoạn này, các Tester sẽ đọc hiểu tất cả các tài liệu, từ đó xác
định những việc cần làm, chức năng nào cần test hoặc không. Sau đó, dựa vào kế
hoạch và kỹ thuật thiết kế kịch bản kiểm thử, Tester sẽ bắt đầu viết test case. Yêu
cầu của test case: Thể hiện tất cả các trường hợp kiểm thử có thể phát sinh để
đáp ứng yêu cầu sản phẩm. Ngoài test case, Tester cũng cần chuẩn bị các dữ liệu
cần thiết khác như test data, test script, test design, test automation script.
• Thiết lập môi trường kiểm thử
Đây là một trong những giai đoạn đóng vai trò rất quan trọng trong
Software Testing Life Cycle (vòng đời phát triển phần mềm). Dựa trên yêu cầu
khách hàng và đặc thù của sản phẩm, môi trường kiểm thử sẽ được xác định.
Tester cần chuẩn bị smoke test case để kiểm tra môi trường cài đặt đã đáp ứng
yêu cầu và sẵn sàng cho giai đoạn kiểm thử tiếp theo hay chưa.
• Thực hiện kiểu kiểm thử 16
Theo test case đã thiết kế và môi trường kiểm thử đã hoàn tất cài đặt,
Tester sẽ báo cáo bug lên tool quản lý lỗi và theo dõi đến khi fix bug thành công.
Tiếp đó, Tester thực hiện retest để verify các fix bug và regression test trong
trường hợp có sự thay đổi. Sau khi hoàn tất giai đoạn này, các chuyên viên kiểm
thử cần có được test results (kết quả kiểm thử) và defect reports (danh sách các lỗi tìm được).
• Đóng chu trình kiểm thử
Để đóng chu trình kiểm thử, QA Team cần có được những tài liệu đã được
tổng hợp và hoàn thiện từ những giai đoạn trước: tài liệu phân tích đặc tả yêu
cầu, test plan, defect reports, test results… Tiếp đó, QA team sẽ tổng kết, báo cáo
về quá trình kiểm thử, có bao nhiêu bug đã được fix, bug có nghiêm trọng hay
không, chức năng nào còn lỗi, chức năng nào đã hoàn thành…
1.2.5 Phân loại kiểm thử phần mềm:
1) Kiểm thử thủ công (Manual Testing)
Kiểm thử thủ công thường được thực hiện bằng chính bản thân kiểm thử
viên (tester). Họ sẽ tương tác với ứng dụng hoặc phần mềm và API bằng công cụ
thích hợp. Từ đó tester tìm ra điểm không phù hợp hay các lỗi của hệ thống.
Cách kiểm thử truyền thống này thường tốn kém vì nó yêu cầu môi trường kiểm
thử. Cùng với đó, việc tự thực hiện các thao tác kiểm thử có thể dễ xảy ra lỗi do
con người. Vì người kiểm thử có thể mắc lỗi chính tả hoặc bỏ qua các bước trong
tập lệnh kiểm thử (test script).
2) Kiểm thử tự động (Automation Testing)
Ngược lại, kiểm thử tự động được thực hiện bởi máy móc, thực thi tập
lệnh kiểm thử đã được viết trước. Các lệnh kiểm thử này có thể khác nhau rất
nhiều về độ phức tạp. Từ việc kiểm tra các đơn vị nhỏ nhất trong mã nguồn như
method, class đến việc đảm bảo rằng việc thực hiện một chuỗi các hành động
phức tạp trong giao diện người dùng sẽ dẫn đến kết quả giống nhau. Nhiều người
cho rằng phương pháp này mạnh mẽ và đáng tin cậy hơn so với kiểm thử thủ
công. Nhưng chất lượng của các lệnh kiểm thử tự động phụ thuộc việc các tập
lệnh kiểm thử được viết ra có tốt hay không. Trong kiểm thử động, người ta chia 17
làm 2 kỹ thuật: kiểm thử hộp trắng (kiểm thử cấu trúc) và kiểm thử hộp đen (kiểm thử chức năng).
a. Kiểm thử hộp trắng: là một phương pháp kiểm thử phần mềm trong đó
tester biết về cấu trúc nội bộ / thiết kế. Người kiểm tra chọn đầu vào để
thực hiện các đường dẫn thông qua mã và xác định đầu ra thích hợp.
Hình 1-3: Hình minh họa kiểm thử hộp trắng
Kiểm thử hộp trắ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ực hành, ngoại lệ và những lỗi trình bày trong hệ thống để
kiểm tra những hành động của phần mềm không được định hướng trước.
Phương pháp kiểm tra hộp trắng áp dụng cho các mức độ kiểm tra phần
mềm sau đây: (Tuy nhiên, nó là chủ yếu áp dụng cho các kiểm thử đơn vị )
• Unit Testing(Kiểm thử đơn vị): Để kiểm tra đường dẫn trong một đơn vị.
• Integration Testing(Test tích hợp): Để kiểm tra đường dẫn giữa các đơn vị.
• System Testing(Test hệ thống): Để kiểm tra các đường dẫn giữa các hệ thống con.
Ưu điểm:
• Test có thể bắt đầu ở giai đoạn sớm hơn, không cần phải chờ đợi cho GUI để có thể test
• Test kỹ càng hơn, có thể bao phủ hầu hết các đường dẫn
• Thích hợp trong việc tìm kiếm lỗi và các vấn đề trong mã lệnh
• Cho phép tìm kiếm các lỗi ẩn bên trong 18
• Các lập trình viên có thể tự kiểm tra
• Giúp tối ưu việc mã hoá
• Do yêu cầu kiến thức cấu trúc bên trong của phần mềm, nên việc kiểm soát lỗi tối đa nhất.
Nhược điểm:
• Vì các bài kiểm tra rất phức tạp, đòi hỏi phải có các nguồn lực có tay nghề
cao, với kiến thức sâu rộng về lập trình và thực hiện.
• Maintenance test script có thể là một gánh nặng nếu thể hiện thay đổi quá thường xuyên.
• Vì phương pháp thử nghiệm này liên quan chặt chẽ với ứng dụng đang
được test, nên các công cụ để phục vụ cho mọi loại triển khai / nền tảng có thể không sẵn có.
b. Kiểm thử hộp đen: là một phương pháp kiểm thử phần mềm được thực
hiện mà không biết được cấu tạo bên trong của phần mềm, là cách mà các
tester kiểm tra xem hệ thống như một chiếc hộp đen, không có cách nào
nhìn thấy bên trong của cái hộp.
Hình 1-4: Hình minh họa kiểm thử Hộp đen
Black Box Testing chủ yếu là được thực hiện trong Function test và System test.
Phương pháp này được đặt tên như vậy bởi vì các chương trình phần mềm,
trong con mắt của các tester, giống như một hộp đen; bên trong mà người ta
không thể nhìn thấy. Phương pháp này cố gắng tìm ra các lỗi trong các loại sau:
• Chức năng không chính xác hoặc thiếu. 19 • Lỗi giao diện.
• Lỗi trong cấu trúc dữ liệu hoặc truy cập cơ sở dữ liệu bên ngoài.
• Hành vi hoặc hiệu suất lỗi.
• Khởi tạo và chấm dứt các lỗi.
Ưu điểm:
• Các tester được thực hiện từ quan điểm của người dùng và sẽ giúp đỡ trong
việc sáng tỏ sự chênh lệch về thông số kỹ thuật.
• Các tester theo phương pháp black box không có “mối ràng buộc” nào với
code, và nhận thức của một tester rất đơn giản: một source code có nhiều
lỗi. Sử dụng nguyên tắc, "Hỏi và bạn sẽ nhận" các tester black box tìm
được nhiều bug ở nơi mà các DEV không tìm thấy.
• Tester có thể không phải IT chuyên nghiệp, không cần phải biết ngôn ngữ
lập trình hoặc làm thế nào các phần mềm đã được thực hiện.
• Các tester có thể được thực hiện bởi một cơ quan độc lập từ các developer,
cho phép một cái nhìn khách quan và tránh sự phát triển thiên vị.
• Hệ thống thật sự với toàn bộ yêu cầu của nó được kiểm thử chính xác.
• Thiết kế kịch bản kiểm thử khá nhanh, ngay khi mà các yêu cầu chức năng được xác định.
Nhược điểm:
• Dữ liệu đầu vào yêu cầu một khối lượng mẫu (sample) khá lớn
• Nhiều dự án không có thông số rõ ràng thì việc thiết kế test case rất khó và
do đó khó viết kịch bản kiểm thử do cần xác định tất cả các yếu tố đầu vào,
và thiếu cả thời gian cho việc tập hợp này. 20
• Khả năng để bản thân kỹ sư lạc lối trong khi kiểm thử là khá cao.
• Chỉ có một số nhỏ các đầu vào có thể được kiểm tra và nhiều đường dẫn
chương trình sẽ được để lại chưa được kiểm tra.
• Kiểm thử black box được xem như "là bước đi trong mê cung tối đen mà
không mang đèn pin” bởi vì tester không biết phần mềm đang test đã được
xây dựng như thế nào. Có nhiều trường hợp khi một tester viết rất nhiều
trường hợp test để kiểm tra một số thứ có thể chỉ được test bằng một
trường hợp test và/hoặc một vài phần cuối cùng không được test hết.
1.2.6 Các mức độ nghiêm trọng của lỗi: 1 Nhẹ Lỗi chính tả 2 Vừa
Hiểu lầm hoặc thừa thông tin
Tên bị thiếu, cụt chữ hoặc hoá đơn có giá trị 0.0 3 Khó chịu đồng 4 Bực mình
Một vài giao dịch không được xử lý 5 Nghiêm trọng Mất giao dịch 6 Rất nghiêm trọng Xử lý giao dịch sai 7 Cực kỳ nghiêm trọng
Lỗi rất nghiêm trọng thường xuyên xảy ra 8 Quá quắt
Huỷ hoại cơ sở dữ liệu 9 Thảm hoạ
Hệ thống dừng hoạt động 10 Dịch hoạ
Thảm hoạ chuyển sang mức lây lan
1.2.7 Ca kiểm thử:
Ca kiểm thử mô tả dữ liệu bao gồm: đầu vào, hành động hoặc sự kiện và
kết quả đầu ra mong đợi (expected results) để xác định liệu 1 ứng dụng, hệ thống
phần mềm hoặc một trong các tính năng của nó có hoạt động đúng như mong muốn hay không.
Cấu trúc của một ca kiểm thử thông thường bao gồm:
- Test case ID: Xác định số lượng trường hợp cần kiểm thử. 21
- Function (Chức năng): Các function có thể được chia nhỏ dựa theo chức năng
của hệ thống nhằm giúp ca kiểm thử trở nên rõ ràng hơn.
- Pre-condition: Điều kiện đầu vào của ca kiểm thử, ví dụ như khi thực hiện kiểm
thử form đăng nhập, pre-condition sẽ là form đăng nhập phải được hiển thị ra.
- Test Data: Dữ liệu đầu vào cần chuẩn bị trước khi kiểm thử.
- Test Steps: Mô tả chi tiết các bước thực hiện kiểm thử.
- Expected Results: Kết quả mong đợi sau khi thực hiện các bước kiểm thử.
- Actual result: Mô tả kết quả thực tế khi thực hiện kiểm thử trên môi trường của
hệ thống. Actual result thường bao gồm các giá trị: pass, fail, untested, N/A.
- Comments: Có thể chứa screen shot hoặc thông tin liên quan khi thực hiện ca kiểm thử.
Một ca kiểm thử được cho hiệu quả khi:
• Dựa vào ca kiểm thử có thể tìm thấy lỗi.
• Tìm được nhiều lỗi khó phát hiện.
• Chỉ ra được những điểm ban đầu mà khi thực hiện kiểm thử không tìm ra vấn đề.
• Ca kiểm thử cần có những bước thực hiện kiểm thử (Test steps)
đơn giản, minh bạch, dễ hiểu.
• Các trường hợp thử nghiệm nên có giá trị, tóm tắt và ngắn.
• Các ca kiểm thử nên có sự liên kết: Mỗi ca kiểm thử cần được
đánh số thứ tự (Test case ID) để đảm bảo ca kiểm thử đã bao phủ
100% bản đặc tả yêu cầu phần mềm.
• Ca kiểm thử có thể bảo trì: Nên viết ca kiểm thử sao cho khi có
thay đổi, chỉnh sửa thì các bên liên quan có thể dễ dàng nhận thấy
được sự thay đổi đó.
• Ca kiểm thử có tính ứng dụng cao. 22
1.2.8 Nguyên tắc quan trọng trong kiểm thử phần mềm:
1) Kiểm thử chứng minh sự hiện diện của lỗi
Bằng việc kiểm thử, chúng ta có thể làm giảm lượng bugs khi áp dụng
nhiều phương pháp kiểm thử lên phần mềm. Tuy nhiên khi được đưa lên môi
trường thật, người dùng cuối hoàn toàn có thể thấy nhiều lỗi khác không tìm thấy
trong quá trình kiểm thử. Kiểm thử chứng minh được sản phẩm có lỗi nhưng
không thể chứng minh rằng sản phẩm không còn lỗi. Điều này có nghĩa là, sẽ
luôn có lỗi không được phát hiện trong phần mềm, ngay cả khi không tìm thấy
lỗi, cũng không đồng nghĩa rằng phần mềm đúng hoàn toàn.
2) Kiểm thử toàn bộ là không khả thi
Đúng vậy, rất khó để kiểm tra toàn bộ các module cũng như các tính năng,
kết hợp với đầu vào và đầu ra trong suốt quá trình kiểm tra. Các sản phẩm phần
mềm hiện nay cực kỳ đa dạng và phức tạp, được phát triển trên nhiều nền tảng,
thêm vào đó, ngày càng có nhiều công nghệ mới, khả năng kết nối dữ liệu lớn…
khiến việc kiểm thử toàn bộ gần như là không thể. Thay vì cố gắng kiểm thử
toàn bộ, hãy xác định mức độ quan trọng và độ ưu tiên của các module để kiểm
thử những phần cần thiết hoặc gặp nhiều nguy cơ hơn.
3) Kiểm thử càng sớm càng tốt
Chi phí cho việc khắc phục, sửa lỗi sẽ tỷ lệ thuận với thời gian phát hiện ra
lỗi đó. Không ít phần mềm khi chuẩn bị giao cho khách hàng mới phát hiện ra
lỗi xuất hiện ngay từ bản đặc tả yêu cầu phần mềm hay bản phân tích thiết kế hệ
thống. Điều này gây ra những thiệt hại không nhỏ cho quá trình phát triển phần
mềm. Vì vậy, kiểm thử phần mềm ngay từ những giai đoạn đầu của quy trình
phát triển là điều hết sức cần thiết.
4) Lỗi thường phân bổ tập trung
Lỗi thường tập trung nhiều ở những chức năng chính của phần mềm. Do
đó, tập trung tìm ra lỗi ở những chức năng này sẽ giúp giảm thiểu thời gian kiểm
thử. Đây là một trong những cách cơ bản và hiệu quả nhất trong kiểm thử phần mềm.
5) Nghịch lý thuốc trừ sâu 23
Trong trồng trọt, nếu người nông dân sử dụng lặp lại một liều trừ sâu, các
loại sâu bệnh sẽ dần dần thích nghi và trở nên “nhờn” với loại thuốc trừ sâu đó.
Tương tự với kiểm thử phần mềm, khi lặp đi lặp lại một test case, thì xác suất
tìm được lỗi là rất thấp. Nguyên nhân là hệ thống hoàn thiện hơn, lỗi tìm thấy đã
được sửa theo test case cũ. Để xử lý hiệu ứng “thuốc trừ sâu” này, test case cần
được thường xuyên xem lại và chỉnh sửa, thêm nhiều test case mới để tìm lỗi mới (regression test).
Thêm vào đó, QA/ Tester cũng không nên phụ thuộc quá nhiều vào các kỹ
thuật test sẵn có. Bạn cần liên tục cải tiến các phương pháp có sẵn để làm việc
kiểm thử hiệu quả hơn.
6) Kiểm thử phụ thuộc vào ngữ cảnh
Kiểm thử phụ thuộc vào ngữ cảnh, nói một cách đơn giản, là việc kiểm
thử một trang thương mại điện tử sẽ phải khác cách test một ứng dụng đọc tin
tức. Tất cả các phần mềm đều được phát triển theo cách khác nhau. Và việc áp
dụng chung một “cách giải” là sai lầm. Bạn cần sử dụng cách tiếp cận khác nhau,
phương thức, kỹ thuật test khác nhau, loại test phụ thuộc vào loại phần mềm/ ứng dụng/ website.
7) Quan niệm sai lầm về việc “hết lỗi”
Việc không tìm thấy lỗi không có nghĩa là không tồn tại lỗi trong phần
mềm. Chúng ta chỉ có thể hạn chế tối đa lỗi có thể gặp phải chứ không thể triệt
tiêu toàn bộ lỗi có thể gặp phải.
1.3 Các kỹ thuật trong kiểm thử:
1.3.1 Kỹ
thuật phân vùng tương đương:
Kỹ thuật phân vùng tương đương có đặc điểm là:
• Chia miền dữ liệu đầu vào của một chương trình thành các vùng
dữ liệu tương đương nhau.
• Tất cả các giá trị trong một vùng tương đương sẽ cho ra kết quả đầu ra giống nhau.
• Có thể chọn ra một giá trị đại diện trong một vùng tương đương để 24 tiến hành kiểm thử.
Hình 1-5: Minh họa kỹ thuật phân vùng tương đương
1.3.2 Kỹ thuật phân tích giá trị biên:
Phân tích giá trị biên tập trung vào các giá trị tại biên của miền xác định
để xây dựng ca kiểm thử. Mục đích là tìm ra lỗi có thể xảy ra ở gần các giá trị
biên này. Phân tích giá trị biên chính là trường hợp đặc biệt của kỹ thuật phân
vùng tương đương. Dựa trên những vùng giá trị tương đương, kiểm thử viên sẽ
xác định giá trị biên giữa những vùng này và thiết kế ca kiểm thử phù hợp.
Hình 1-6: Minh họa kỹ thuật phân tích giá trị biên.
Với kỹ thuật phân tích giá trị biên, kiểm thử viên cần chú ý tới một số
giá trị sau để sinh ca kiểm thử: • Giá trị nhỏ nhất.
• Giá trị gần kề lớn hơn giá trị nhỏ nhất.
• Giá trị gần kề nhỏ hơn giá trị nhỏ nhất.
• Giá trị bình thường.
• Giá trị gần kề nhỏ hơn giá trị lớn nhất • Giá trị lớn nhất.
• Giá trị gần kề lớn hơn giá trị lớn nhất
1.3.3 Đoán lỗi: 25
Một kỹ thuật thiết kế ca kiểm thử khác là đoán lỗi. Kiểm thử viên phỏng
đoán lỗi dựa trên trực giác và kinh nghiệm của mình, từ đó liệt kê các trường hợp
có thể xảy ra lỗi và sinh ca kiểm thử. Khó có thể đưa ra một quy trình cho kỹ
thuật kiểm thử đoán lỗi vì nó có tính trực giác cao và không thể dự đoán trước.
Trong một số trường hợp, kiểm thử viên có thể kết hợp với lập trình viên để tìm
ra những trường hợp có thể bị bỏ sót trong quá trình viết đặc tả yêu cầu phần mềm và lập trình.
1.3.4 Kỹ thuật chuyển trạng thái:
Kỹ thuật này dựa trên việc quan sát, theo dõi quá trình chuyển từ trạng
thái này sang trạng thái khác khi có một hành động xảy ra trong chương trình
phần mềm để phát hiện các lỗi có thể xảy ra mà các kỹ thuật trên có thể bỏ sót.
Ví dụ điển hình cho kỹ thuật chuyển trạng thái là việc kiểm thử chức năng giỏ
hàng trong các trang Web thương mại điện tử. Lỗi có thể xuất hiện mỗi khi thêm
sản phẩm vào giỏ hàng, xóa sản phẩm khỏi giỏ hàng hay khi thanh toán các sản
phẩm trong giỏ hàng đó. Công việc của kiểm thử viên là xem xét các điều kiện
trạng thái, theo dõi quá trình chuyển đổi giữa các trạng thái, điều kiện nhập đầu
vào và các sự kiện kích hoạt thay đổi trạng thái.
1.4 Kết luận:
Phần 1 đã trình bày những khái niệm để có cái nhìn tổng quát về
những vấn đề cơ bản xoay quanh phần mềm và kiểm thử phần mềm. Các
vấn đề cụ thể bao gồm:
• Các định nghĩa về phần mềm, kiểm thử phần mềm.
• Vai trò của kiểm thử trong quá trình phát triển dự án phần mềm.
• Các cấp độ trong kiểm thử phần mềm.
• Quy trình, ca, kỹ thuật kiểm thử phần mềm.
• Phân loại kiểm thử phần mềm.
• Liệt kê các mức độ nghiêm trọng của lỗi.
• Vai trò của kiểm thử tự động trong kiểm thử phần mềm hiện nay.
• Trình bày một số nguyên tắc quan trọng trong kiểm thử phần mềm. 26
Chương II: KIỂM THỬ ỨNG DỤNG TRÊN NỀN WEB
Kiểm thử ứng dụng trên nền Web là một lĩnh vực phổ biến trong ngành
kiểm thử phần mềm. Phần thứ II sẽ đi tìm hiểu khái niệm, các bước kiểm thử
ứng dụng trên nền Web. Đồng thời, trong phần này cũng sẽ giới thiệu một số
công cụ hỗ trợ kiểm thử ứng dụng Web.
2.1 Khái quát:
Các ứng dụng web càng ngày càng trở nên phổ biến và phát triển mạnh mẽ,
nhằm đáp ứng tối đa những đòi hỏi của người dùng khi họ bật trình duyệt web
của mình lên. Gần như những gì phần mềm truyền thống làm được thì ứng dụng
web cũng có thể làm được. Và cho đến nay, các ứng dụng web đóng vai trò quyết
định trong thương mại điện tử và trao đổi thông tin.
Một ứng dụng web thường có rất nhiều nhóm người sử dụng với nhiều nền
tảng khác nhau (hệ điều hành, trình duyệt…), người ta cũng rất khó có thể đoán
được số lượng người sử dụng một ứng dụng web là bao nhiêu, rồi thời gian hồi
đáp yêu cầu của người sử dụng đối với ứng dụng là một trong những yếu tố mang
tính quyết định thành bại của ứng dụng…dẫn đến việc kiểm thử ứng dụng web sẽ
có những khác biệt nhất định so với kiểm thử phần mềm truyền thống. Trong đó,
kiểm thử giao diện người dùng, kiểm thử hiệu năng và kiểm thử bảo mật là những
loại kiểm thử mà ứng dụng web cần chú trọng.
2.2 Nội dung kiểm thử ứng dụng web:
2.2.1 Kiểm thử chức năng:
Việc kiểm thử chức năng yêu cầu tester thực hiện test tất cả các link trong
trang web, định dạng được sử dụng trong các trang web để gửi và nhận các thông
tin cần thiết từ người dùng. Ngoài ra còn có kết nối cơ sở dữ liệu, kiểm tra
cookies và xác minh HTML/CSS.
Kiểm tra các liên kết (links) bao gồm kiểm tra liên kết ngoài trang web,
liên kết nội bộ, liên kết tới các vị trí trong cùng trang, liên kết sử dụng để gửi
email tới admin hoặc người dùng khác trong trang…
Kiểm tra form của các trang: form là phần cơ bản của các trang web, nên
cần được kiểm tra một cách kỹ càng, bao gồm các yêu cầu sau: 27
• Không nhập gì vào các trường bắt buộc thì sao?
• Giá trị mặc định của các trường là gì?
• Nhập đầu vào không đúng validate của các trường thì sao?
• Thao tác trên các trường: xem, nhập, lưu, sửa, xóa…
Kết nối cơ sở dữ liệu: yêu cầu kiểm tra tính toàn vẹn của dữ liệu khi tạo,
sửa, xóa form…hoặc bất cứ chức năng nào có liên quan tới cơ sở dữ liệu. Khi
truy vấn cơ sở dữ liệu thì kết quả trả về có tương ứng với kết quả nhìn thấy được
trên giao diện không, dữ liệu có được lấy và cập nhật chính xác không?...
Kiểm thử cookies: cookies là các tệp được tạo bởi trang web đã truy cập
để lưu trữ thông tin duyệt web, như các tùy chọn trang web hoặc thông tin đăng
nhập của người dùng. Người dùng có thể tùy chỉnh trên trình duyệt nhằm quản lý
cookies, thực hiện các thao tác cho phép lưu, hoặc xóa, hoặc chặn…để kiểm tra
các tính năng lưu hoặc không lưu trạng thái đăng nhập, tính năng bảo mật của ứng dụng web.
Xác minh HTML/CSS: việc xác minh này đặc biệt quan trọng khi
developer thực hiện tối ưu hóa trang web cho các công cụ tìm kiếm, chủ yếu liên
quan tới lỗi cú pháp HTML. Tester sẽ kiểm tra xem trang web có được nhận diện
bởi các công cụ tìm kiếm khác nhau hay không (ví dụ: Google, Yahoo, Bing…)
2.2.2 Kiểm thử tính khả dụng
Tính khả dụng của trang web được định nghĩa là trang web dễ sử dụng, có
hướng dẫn sử dụng rõ ràng, rành mạch, mỗi trang đều có menu chính và menu
này phải nhất quán. Tester cần lưu ý những điều này.
Ngoài ra, khi kiểm thử tính khả dụng, tester còn cần thực hiện kiểm thử
các điều khiển chuyển hướng (như button, text box, text link, bread crum…), nội
dung của trang web phải dễ hiểu và thân thiện với người sử dụng. Không có lỗi
chính tả, không khó để đọc chữ, hình ảnh được sắp xếp gọn gàng, hợp lý.
2.2.3 Kiểm thử giao diện
Các giao diện chính bao gồm:
Giao diện web server và server ứng dụng 28
Giao diện server ứng dụng và giao diện server dữ liệu
Kiểm tra tất cả các tương tác giữa các server. Nếu server dữ liệu hoặc web
server trả lại bất kỳ báo lỗi nào cho bất kỳ truy vấn nào từ server ứng dụng thì
ngay lập tức server ứng dụng phải nhận được và cho hiển thị cảnh báo tới người
dùng. Kiểm tra các trường hợp giao dịch bị ngắt đột ngột do người dùng, hoặc
kết nối tới server bị gián đoạn, bị khởi động lại…
2.2.4 Kiểm thử khả năng tương thích
Yêu cầu thực hiện các kiểm tra như sau:
Tương thích với trình duyệt (trên máy tính và điện thoại di động): Người
dùng khác nhau có thể sử dụng trình duyệt khác nhau tùy theo nhu cầu, thói
quen…của họ. Cần phải kiểm tra ứng dụng web trên càng nhiều trình duyệt càng
tốt (IE, Firefox, Chrome, Safari, Opera…) để kiểm tra sự tương thích. Kiểm tra
trên cả các phiên bản khác nhau của trình duyệt. Kiểm tra trên cả trình duyệt của
thiết bị điện thoại thông minh. Nếu ứng dụng chạy tốt hơn, hoặc có ưu tiên tương
thích hơn với trình duyệt nào đó thì cần có thông báo tới người dùng.
Tương thích với hệ điều hành: một số chức năng của ứng dụng có thể
không tương thích với một số hệ điều hành, hoặc có những lưu ý khác khi sử
dụng, điều này cần phải được kiểm tra kỹ và thông báo cho người dùng được biết.
Tương thích với các thiết bị ngoại vi (máy in…): khi người dùng có lệnh
in trang thì phải đảm bảo tính chính xác của fonts, cỡ chữ, cỡ giấy…mà người dùng đã chọn.
2.2.5 Kiểm thử hiệu năng Bao gồm các yêu cầu:
Kiểm thử tải: kiểm thử hiệu năng của ứng dụng với các tốc độ kết nối
mạng khác nhau. Kiểm thử khi có nhiều người dùng cùng truy cập hoặc cùng
yêu cầu một trang xem hệ thống có thể duy trì hoạt động được không? Hoặc
kiểm thử khi người dùng tải lên hoặc tải xuống một số lượng dữ liệu đặc biệt lớn… 29
Kiểm thử áp lực: tức là việc đẩy hệ thống ra ngoài giới hạn của nó, thử
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 như thế nào và phục hồi như thế nào.
2.2.6 Kiểm thử bảo mật
Một số case cho kiểm thử bảo mật web như sau:
• 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ở.
• Sau khi đăng nhập và mở các trang nội bộ, thay đổi url trực tiếp bằng cách
đổi tham số ID của trang tới trang thuộc quyền người dùng đã đăng nhập
khác. Truy cập phải bị từ chối bởi người dùng này không thể xem trang
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 username,
password. Hệ thống phải báo lỗi.
• Các thư mục web, 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
• Tất cả các phiên giao dịch, các thông báo lỗi, các hành vi cố gắng xâm
phạm an ninh phải ghi trong log và lưu tại web server.
2.3 Các công cụ kiểm thử:
Công việc cần làm đối với một kiểm thử viên kiểm thử ứng dụng trên nền
Web như đã nói ở phần trước là rất nhiều. Những công cụ kiểm thử ra đời để hỗ
trợ cho các kiểm thử viên thực hiện công việc một cách nhanh chóng, bớt nhàm
chán và giảm thiểu chi phí kiểm thử. Khóa luận này sẽ giới thiệu một số công cụ
hỗ trợ kiểm thử ứng dụng trên nền Web, phân loại dựa trên mục đích sử dụng.
2.3.1 Công cụ kiểm thử hiệu năng
Dưới đây là các công cụ kiểm thử hiệu năng được sử dụng rộng rãi nhất để
đo hiệu suất ứng dụng Web và khả năng chịu tải của chúng. Các công cụ kiểm tra
tải này sẽ đưa ra đánh giá về hiệu suất của ứng dụng trong thời gian có lưu lượng truy cập cao điểm. 30
- WebLoad: Cho phép thực hiện kiểm thử khả năng chịu tải và độ chịu lỗi
của ứng dụng Web bằng cách sử dụng Ajax, Adobe Flex, .NET, OracleForms,
HTML5 và nhiều công nghệ khác. Điểm mạnh của WebLoad là là dễ sử dụng
với các tính năng như cho phép ghi/phát lại dựa trên DOM, tương quan tự động
và ngôn ngữ kịch bản Javascript. Công cụ này hỗ trợ thử nghiệm hiệu suất quy
mô lớn với các kịch bản phức tạp và đưa ra những phân tích rõ ràng.
- Apache JMeter: Đây là một công cụ phát triển trên mã nguồn mở.
Apache Jmeter được coi như một công cụ kiểm thử hiệu năng, có khả năng tích
hợp với kế hoạch kiểm thử. Ngoài việc kiểm thử hiệu năng, Apache JMeter còn
có thể sử dụng để kiểm tra các chức năng của ứng dụng Web.
2.3.2 Công cụ kiểm thử bảo mật
- Burp Suite: Là một công cụ kiểm tra lỗ hổng bảo mật cho ứng dụng
Web. Nó có nhiều công cụ tích hợp trong đó hai công cụ chính trong phiên bản
miễn phí là Spider and Intruder. Spider được sử dụng để thu thập thông tin các
trang của ứng dụng và Intruder được sử dụng để thực hiện các cuộc tấn công tự
động trên ứng dụng Web. Burp có một công cụ bổ sung hiện nay được gọi là
Burp Scanner được dùng trong việc quét các lỗ hổng có trong ứng dụng.
- Exploit-Me: Là một công cụ kiểm tra bảo mật ứng dụng Web có thể tích
hợp trên trình duyệt Firefox được thiết kế nhỏ gọn, dễ sử dụng. ExploitMe bao
gồm các gói: XSS-Me và SQL Inject-Me. Cross-Site Scripting (XSS) là một lỗ
hổng được tìm thấy trong nhiều ứng dụng Web hiện nay. Lỗ hổng XSS có thể
gây ra thiệt hại nghiêm trọng cho một ứng dụng Web. XSS-Me là công cụ giúp
phát hiện ra các lỗ hổng XSS này. Trong khi đó, SQL Inject-Me được sử dụng để
kiểm tra các lỗ hổng SQL Injection trong ứng dụng Web. 31
2.3.3 Công cụ kiểm thử chức năng
- Ranorex: Công cụ kiểm thử tự động cho các ứng dụng Web, desktop và
di động. Chỉ với một tài khoản, người dùng có thể sử dụng Ranorex để kiểm thử
cho 3 loại ứng dụng kể trên. Việc tích hợp này sẽ giúp rút ngắn thời gian khi
kiểm thử ứng dụng được thiết kế chạy trên nhiều nền tảng khác nhau. Tuy nhiên,
bản trả phí của Ranorex khá đắt, lên tới 3500$/năm.
- Selenium: Là một trong những công cụ kiểm thử tự động ứng dụng Web
mạnh mẽ nhất hiện nay. Selenium script có thể chạy trên hầu hết các trình duyệt
hiện nay như IE, Chrome, Firefox, Safari, Opera và các hệ điều hành phổ biến
như Windows, Mac, Linux. Trong thực tế, người ta thường sử dụng Selenium
dưới dạng Add-on tích hợp trong trình duyệt Firefox, kết hợp cùng với Firebug
để kiểm thử ứng dụng Web một cách hiệu quả nhất. Tuy chỉ có thể ghi lại
(Record) hành động trên trình duyệt Firefox, nhưng có thể phát lại (Playback)
trên nhiều trình duyệt phổ biến khác. Vì là công cụ mã nguồn mở nên Selenium
có ưu thế lớn so với các công cụ kiểm thử tự động khác: có cộng đồng hỗ trợ
mạnh mẽ và không phải trả phí bản quyền. Công cụ này hỗ trợ khá nhiều ngôn
ngữ lập trình Web phổ biến hiện nay. Ngoài ra, Selenium được phát triển bởi
Selenium team từ Google nên người dùng hoàn toàn yên tâm về chất lượng và độ
tin cậy của Selenium. Công cụ Selenium không bị tính phí.
2.4 Kết luận:
Phần II đã trình bày được các vấn đề cơ bản về kiểm thử ứng dụng trên nền Web:
- Khái quát về kiểm thử ứng dụng trên nền Web.
- Tìm hiểu các công việc cần làm khi kiểm thử một ứng dụng Web. 32
- Giới thiệu công cụ Selenium là công cụ được em sử dụng để nghiên cứu
sâu hơn về cách cài đặt, sử dụng công cụ hỗ trợ cho việc kiểm thử ứng dụng Web.
Chương III: KIỂM THỬ ỨNG DỤNG TRÊN NỀN WEB BẰNG
CÔNG CỤ SELENIUM
Phần cuối tập trung nghiên cứu về bộ công cụ hỗ trợ kiểm thử Selenium
và sử dụng công cụ Selenium IDE để kiểm thử các chức năng của website thực tế.
3.1 Công cụ kiểm thử tự động Selenium:
3.1.1 Giới thiệu chung về Selenium:
Selenium là một phần mềm mã nguồn mở - một công cụ kiểm thử phần
mềm tự động để kiểm thử các ứng dụng trên nền Web. Năm 2004, Selenium
được phát triển bởi ThoughtWorks với cái tên ban đầu JavaScriptTestRunner.
Đến năm 2007, tác giả Jason Huggins rời ThoughtWorks và gia nhập Selenium
Team (thuộc Google), từ đó tiếp tục phát triển Selenium như hiện nay.
Selenium không chỉ là một công cụ duy nhất mà là một bộ các công cụ
giúp kiểm thử tự động các ứng dụng trên nền Web hiệu quả hơn, bao gồm 4
phần: Selenium IDE, Selenium RC, Selenium Grid, Selenium WebDriver.
Selenium IDE là một công cụ cho phép chúng ta ghi lại một kịch bản và tái sử
dụng kịch bản đó. Nó hoạt động như một Add-on của trình duyệt Mozilla Firefox
với giao diện trực quan, dễ sử dụng ngay cả với những kiểm thử viên không biết
về code. Với Selenium IDE, chúng ta chỉ có thể ghi lại kịch bản (Record) trên
trình duyệt Mozilla Firefox nhưng có thể tái sử dụng kịch bản này trên nhiều
trình duyệt khác như Internet Explorer, Google Chrome, v.v.
Selenium RC cho phép các nhà phát triển tự động hóa quá trình kiểm thử
bằng cách sử dụng bất kỳ ngôn ngữ lập trình nào, phát huy tối đa thế mạnh của
Selenium trong kiểm thử đơn vị. Để dễ dàng hơn cho việc kiểm thử, Selenium
RC cung cấp các API và thư viện cho mỗi ngôn ngữ được hỗ trợ: HTML, Java, Perl, PHP, Ruby, Python, C#.
Selenium WebDriver là phiên bản kế nhiệm của Selenium RC. Cũng
giống như Selenium RC, Selenium WebDriver hỗ trợ viết kịch bản kiểm thử 33
bằng các ngôn ngữ khác nhau như Java, .NET, PHP, Python, Perl, Ruby và kiểm
thử viên có thể sử dụng các điều kiện if, else hay các vòng lặp để tăng tính chính
xác cho kịch bản kiểm thử. Selenium WebDriver có kiến trúc khá đơn giản, điều
khiển trình duyệt trực tiếp từ hệ điều hành.
Selenium Grid là một hệ thống hỗ trợ kiểm thử viên thực thi kịch bản
kiểm thử trên nhiều máy, nhiều trình duyệt một cách song song mà không cần
chỉnh sửa kịch bản kiểm thử. Ban đầu, Selenium Grid chỉ hỗ trợ cho Selenium
RC nhưng sau này đã xuất hiện trên cả Selenium WebDriver. Selenium Grid cho
phép kiểm thử viên thực thi ca kiểm thử trên nhiều máy khác nhau với nhiều
trình duyệt khác nhau. Đặc biệt hơn, Selenium Grid còn cung cấp khả năng kiểm
thử với chế độ phân tán.
Do thời gian nghiên cứu hạn chế nên Khóa luận chỉ trình bày về một phần
của bộ công cụ Selenium là Selenium IDE. Đây cũng là công cụ được sử dụng
phổ biến hiện nay trong việc kiểm thử các dự án phát triển ứng dụng Web bởi
giao diện trực quan, dễ sử dụng và khả năng ghi/phát lại các ca kiểm thử một cách linh động của nó.
3.1.2 Selenium IDE:
a. Giới thiệu:
Selenium IDE là một tiện ích (extension) dùng để hỗ trợ kiểm thử tự động
chạy trên trình duyệt Mozilla Firefox ban đầu được phát triển bởi Shinya
Kasatani người Nhật Bản. Công cụ này được phát triển bằng Javascript nên có
khả năng tương tác với DOM, sử dụng được những cách gọi Javascript.
Selenium IDE cho phép ghi lại những hành động, sự kiện xảy ra trong quá trình
kiểm thử bằng chức năng Record (ghi hành động) và Playback (phát lại).
Một số ưu điểm của Selenium IDE:
• Dễ dàng cài đặt và sử dụng.
• Không yêu cầu kinh nghiệm lập trình.
• Có thể debug, thiết lập breakpoint( điểm dừng), thêm comment vào kịch bản kiểm thử.
Bên cạnh đó Selenium IDE cũng tồn tại một số nhược điểm: 34
• Chỉ hỗ trợ chạy trên MozillaFirefox(cần cấu hình để chạy được trên Chromr, Internet Explorer).
• Cần cài đặt thêm để đọc dữ liệu từ file .csv,.xml.
• Không hỗ trợ database, kiểm thử di động( mobile testing).
• Khó khăn khi xử lý những quy trình phức tạp.
b. Hướng dẫn cài đặt Selenium IDE:
Đầu tiên người dùng nên kiểm tra xem trình duyệt Mozilla Firefox đã
được cài đặt Selenium IDE hay chưa bằng cách mở trình duyệt này lên, chọn
menu Tools. Nếu trong danh sách menu con không chứa Selenium IDE thì
cần thực hiện những bước sau để tiến hành cài đặt.
Bước 1: Tiến hành truy cập vào địa chỉ http://docs.seleniumhq.org/.
Sau đó chọn menu Download.
Hình 3-1: Truy cập trang Download tiện ích Selenium IDE.
Bước 2: Tìm tới mục Selenium IDE và chọn phiên bản mới nhất (latest
released) hoặc những bản cũ hơn tùy theo nhu cầu sử dụng.
Ở đây chọn phiên bản mới nhất Selenium IDE 2.9.1.
Hình 3-2: Tiến hành chọn phiên bản Selenium IDE để cài đặt. 35
Bước 3: Tại website mới được mở ra, chọn “Add to Firefox” để thêm tiện
ích Selenium IDE vào Firefox.
Hình 3-3: Thêm tiện ích Selenium IDE vào Firefox.
Bước 4: Tiếp tục chọn “Add” để xác nhận thao tác thêm tiện ích Selenium IDE vào trình duyệt.
Hình 3-4: Xác nhận cài đặt tiện ích Selenium IDE vào trình duyệt.
Bước 5: Khởi động lại trình duyệt để quá trình cài đặt hoàn tất.
Hình 3-5: Khởi động lại trình duyệt Firefox để hoàn tất quá trình cài đặt.
Sau khi trình duyệt khởi động lại, tiến hành khởi chạy lần đầu để chắc
chắn tiện ích Selenium IDE đã được cài đặt thành công bằng cách chọn menu
Tools, tiếp tục chọn Selenium IDE. 36
Hình 3-6: Khởi chạy tiện ích Selenium IDE.
Cửa sổ tiện ích Selenium IDE được mở ra như Hình 3-7:
Hình 3-7: Giao diện khởi chạy Selenium IDE.
c. Một số chức năng trong Selenium IDE:
Phần này của khóa luận sẽ giải thích và hướng dẫn cách sử dụng một số
chức năng, ký hiệu trong tiện ích Selenium IDE. 37
Hình 3-8: Giải thích một số chức năng, hiệu trong Selenium IDE.
• Base URL: Chứa địa chỉ URL của ứng dụng Web đang được kiểm thử.
• Thanh trượt : Điều chỉnh tốc độ thực thi ca kiểm thử tự động.
• Chạy bộ kiểm thử : Chạy tất cả các ca kiểm thử có trong bộ kiểm thử (testsuite).
• Chạy một ca kiểm thử : Chạy ca kiểm thử hiện tại được chọn.
• Tạm dừng : Tạm dừng ca kiểm thử đang thực thi.
• Tiếp tục : Tiếp tục chạy ca kiểm thử vừa tạm dừng.
• Bỏ qua : Bỏ qua một bước ở vị trí nó đang dừng.
• Ghi (Record) : Ghi lại các thao tác trong ca kiểm thử. Mặc định khi khởi động
Selenium IDE, chức năng ghi thao tác tự động được kích hoạt.
• Textbox Command: Lưu trữ các hành động (action) trong ca kiểm thử.
• Textbox Target: Đích đến của thao tác.
• Textbox Value: Giá trị đầu vào cho thao tác trong ca kiểm thử.
Tab Source là nơi hiển thị kịch bản ca kiểm thử dưới dạng HTML. Đây
cũng chính là source của file HTML sau khi tiến hành lưu lại ca kiểm thử cho
mục đích sử dụng lại. 38
Hình 3-9: Kịch bản kiểm thử được Selenium IDE lưu trữ dưới dạng HTML.
Ngoài ra, các thông báo cho thao tác vừa thực hiện, thông báo lỗi được thể
hiện ở khung ghi Log. Trong Selenium IDE, các ca kiểm thử luôn có điểm bắt
đầu. Điều này tương ứng với cách thiết kế tiền điều kiện (Pre-condition) trong ca
kiểm thử. Điển hình nhất cho điểm bắt đầu của một ca kiểm thử với Selenium
IDE là việc truy cập một ứng dụng Web để bắt đầu luồng công việc.
d. Thao tác bản với Selenium IDE:
Tạo ca kiểm thử bộ kiểm thử mới
Với những trường hợp chỉ cần tạo ca kiểm thử đơn lẻ, ta có thể sử dụng
thao tác File / New Test Case. Tuy nhiên, dù chỉ kiểm thử một form đơn giản
cũng cần tạo ra khá nhiều ca kiểm thử khác nhau. Lúc này ta cần tạo ra một bộ
kiểm thử (Test Suite) chứa các ca kiểm thử trong đó để dễ dàng quản lý bằng
cách chọn File / New Test Suite. 39
Hình 3-10: Chức năng tạo mới ca kiểm thử/bộ kiểm thử nằm trong menu File.
Khởi động chức năng ghi (Record)
Mặc định khi mở tiện ích Selenium IDE thì chức năng ghi đã được kích
hoạt. Có thể dễ dàng nhận ra trạng thái kích hoạt bằng giao diện trực quan của
tiện ích. Để kiểm tra, di chuyển con trỏ chuột vào nút Record , nếu xuất hiện
thông báo Click to Record tương đương với chức năng ghi chưa được kích hoạt.
Lưu ca kiểm thử/bộ kiểm thử
Sau khi đã hoàn thành các thao tác với một ca kiểm thử, ta có thể lưu
chúng lại bằng cách chọn File / Save Test Case (Ctrl+S). Trường hợp muốn lưu
ca kiểm thử đã tồn tại dưới một tên khác, ta chọn File / Save Test Case As…
Hình 3-11: Minh họa thao tác lưu ca kiểm thử. 40
Việc lưu lại một bộ kiểm thử cũng tương tự, ta chọn File / Save Test
Suite hoặc File / Save Test Suite As… khi muốn lưu ca kiểm thử đã tồn tại dưới tên khác.
Hình 3-12: Minh họa thao tác lưu bộ kiểm thử.
Mở ca kiểm thử/bộ kiểm thử đã lưu
Chọn File / Open và tìm tới thư mục lưu ca kiểm thử để mở một ca kiểm thử đã lưu.
Hình 3-13: Minh họa thao tác mở ca kiểm thử.
Trường hợp muốn mở một bộ kiểm thử, chọn File / Open Test Suite…và
tìm tới thư mục lưu bộ kiểm thử, tiếp tục chọn bộ kiểm thử cần thực thi sau đó chọn Open. 41
Hình 3-14: Minh họa thao thác mở bộ kiểm thử đã lưu.
Chạy các ca kiểm thử
Selenium IDE có nhiều tùy chọn phù hợp cho việc thực thi ca kiểm thử,
tạm dừng, chạy từng dòng lệnh đơn lẻ (step), thiết lập điểm ngắt (breakpoint) và
chạy tất cả các ca kiểm thử có trong một bộ kiểm thử. Điều này giúp kiểm thử
viên dễ dàng làm chủ các thao tác trong ca kiểm thử của mình.
Chạy một ca kiểm thử: Chọn biểu tượng Play current test case để chạy ca kiểm thử đang chọn.
Tạm dừng/tiếp tục chạy ca kiểm thử: Chọn Pause khi muốn tạm dừng ca kiểm
thử đang chạy và Resume để tiếp tục chạy ca kiểm thử đang bị tạm dừng.
Thiết lập điểm dừng (Toggle breakpoint): Selenium IDE hỗ trợ thiết lập các
điểm dừng khi chạy một ca kiểm thử. Cụ thể, kiểm thử viên có thể xác định điểm
dừng tại một dòng lệnh ở giữa ca kiểm thử nhằm mục đích kiểm tra tình trạng
của ứng dụng Web tại điểm dừng đó. Để thiết lập điểm dừng, chọn dòng lệnh mà
tại đó ca kiểm thử sẽ dừng hoạt động, click chuột phải chọn Toggle breakpoint. 42
Hình 3-15: Thiết lập điểm dừng cho ca kiểm thử.
Thiết lập điểm bắt đầu (Start Point): Ngược lại với việc thiết lập điểm dừng,
Selenium IDE hỗ trợ thiết lập điểm bắt đầu cho ca kiểm thử tại vị trí bất kỳ mà
kiểm thử viên mong muốn. Giả sử ca kiểm thử bắt đầu bằng việc truy cập vào
một ứng dụng Web, đăng nhập và thực hiện các thao tác với ứng dụng. Tuy nhiên
kiểm thử viên chỉ muốn kiểm tra các thao tác sau khi đã đăng nhập thành công.
Lúc này kiểm thử viên hoàn toàn có thể thiết lập điểm bắt đầu ngay sau khi hệ
thống đã duyệt qua thao tác đăng nhập. Chọn dòng lệnh tại vị trí bắt đầu mong
muốn, sau đó click chuột phải, chọn Set / Clear Start Point để thiết lập điểm bắt
đầu cho ca kiểm thử. Tại dòng lệnh điểm bắt đầu sẽ xuất hiện biểu tượng thông
báo thiết lập thành công. Tiếp tục chọn Set / Clear Start Point một lần nữa để xóa
thiết lập điểm bắt đầu.
Hình 3-16: Thiết lập điểm bắt đầu cho ca kiểm thử. 43
Chạy từng dòng lệnh (step): Sau khi thực hiện thao tác tạm dừng (Pause) hoặc
ca kiểm thử đã chạy đến điểm dừng (breakpoint), kiểm thử viên có thể chạy từng
dòng lệnh tiếp theo để kiểm tra việc chuyển trạng thái của ứng dụng Web.
Selenium IDE cung cấp tính năng này bằng việc chọn biểu tượng. Mỗi lần chọn
tương ứng với một dòng lệnh được thực thi.
Chèn dòng lệnh mới: Selenium IDE hỗ trợ việc bổ sung dòng lệnh mới vào bất
kỳ vị trí nào trong ca kiểm thử. Điều này giúp kiểm thử viên linh động hơn trong
việc thiết kế ca kiểm thử phù hợp với yêu cầu. Để làm được điều này, click chuột
phải lên một dòng lệnh, Selenium IDE sẽ tự động thêm một dòng lệnh trống mới
lên bên trêndòng lệnh vừa chọn. Sau đó bạn có thể tiến hành cài đặt các thuộc
tính cho lệnh mới như bình thường.
Hình 3-17: Minh họa thao tác chèn dòng lệnh mới.
Chèn nhận xét (comment): Giống như công việc lập trình, comment rõ ràng tại
các dòng lệnh sẽ giúp quản lý và tái sử dụng ca kiểm thử hiệu quả hơn. Để thực
hiện, click chuột phải tại dòng lệnh cần comment và chọn Insert New Command,
sau đó gõ nội dung comment vào textbox Command.
e. Các câu lệnh trong Selenium IDE Selenese: 44
Các câu lệnh trong Selenium IDE thường được gọi là Selenese. Selenium
IDE cung cấp cho kiểm thử viên một tập lệnh phong phú để kiểm thử ứng dụng
trên nền Web. Trong Selenium IDE, kiểm thử viên có thể kiểm tra các yếu tố
giao diện người dùng, nội dung, liên kết bị hỏng, dữ liệu đầu vào. Ngoài ra,
Selenium IDE còn hỗ trợ kiểm tra kích thước cửa sổ, vị trí chuột, cảnh báo
(alert), cửa sổ popup, xử lý sự kiện và nhiều tính năng khác cho ứng dụng Web.
Một lệnh của Selenium IDE thường có 3 thành phần: Actions, Accessors và Assertions.
• Action (hành động): là các thao tác chung của ứng dụng. Ví dụ như click vào
một liên kết hay chọn và chờ liên kết tải xong (ClickAndWait). Nếu Action
không thành công hoặc có lỗi xảy ra, việc thực thi ca kiểm thử sẽ bị dừng lại.
• Accessors: Kiểm tra trạng thái của ứng dụng và lưu kết quả vào các biến. Kiểm
thử viên có thể kiểm tra và lưu trữ tiêu đề trang Web (storeTitle), các phần tử
được chọn (storeElementPresent).
• Assertions (xác minh): Assertions gần tương tự như Accessors, tuy nhiên nó
xác định trạng thái của ứng dụng cho phù hợp với với kết quả mong đợi. Ví dụ
như đảm bảo tiêu đề trang là đúng với thiết kế (verifyTitle) hay xác minh tính
đúng đắn của giá trị tại một textbox (verifyValue).
Assertions được chia làm 3 loại: assert, verify và waitFor. Khi một assert
thất bại thì việc kiểm thử sẽ dừng lại. Khi một verify không thành công, việc
kiểm thử vẫn được tiếp tục tiến hành nhưng sẽ xuất hiện thông báo lỗi. Các lệnh
waitFor chờ đợi một số điều kiện được thực thi (hữu ích với việc kiểm thử ứng
dụng Ajax). WaitFor thành công nếu điều kiện đúng và việc kiểm thử sẽ bị dừng
lại nếu điều kiện không được thực thi trong thời gian chờ (thời gian chờ có thể
được thiết lập dễ dàng thông qua thuộc tính SetTimeout).
Bảng sau đây cung cấp 1 số lệnh thường dùng trong Selenium IDE: ST Tên lệnh Ý nghĩa T 1
Đi đến một trang Web theo URL xác Open định. 2 Click
Hoàn thành hành động click chuột. 3 ClickAnd Wait
Hoàn thành hành động click chuột và đợi 45 tải một trang Web mới. 4 verifyTitle/ assertTitle
Xác minh tiêu đề trang mong đợi. 5
Xác minh giá trị một đoạn văn bản ở vị trí verifyTextPresent nào đó trên trang. 6
Xác minh thành phần giao diện người verifyElementPresent
dùng được mong đợi, được định nghĩa
bởi thẻ HTML là tồn tại trên trang. 7
Xác minh văn bản mong đợi và các thẻ verifyText
HTML tương ứng trên trang. 8
Xác minh nội dung mong đợi của một verifyTable bảng. 9
Tạm dừng thực thi ca kiểm thử cho tới
khi việc tải trang Web mới được hoàn tất. waitForPageToLoad
Lệnh này được tự động gọi khi sử dụng lệnh clickAndWait. 10
Tạm dừng thực thi ca kiểm thử cho tới waitForElementPresen
khi các yếu tố giao diện người dùng t
mong đợi trên trang Web xuất hiện
Hình 3-19: Bảng liệt một số lệnh thường dùng trong Selenium IDE.
3.2 Bài toán thực tế:
3.2.1 Giới thiệu về website:
JVNET là Công ty Cổ phần Thương mại Phát triển Kỹ thuật và Nhân lực
Quốc tế - doanh nghiệp ngoài quốc được thành lập từ tháng 9 năm 2005. JVNET
là công ty đào tạo và cung ứng nguồn nhân lực hàng đầu tại Việt Nam. Ngoài ra,
JVNET còn hỗ trợ, định hướng cho thế hệ trẻ học tập và khởi nghiệp vững vàng
để đáp ứng nhu cầu thị trường trong nước và Quốc tế. Địa chỉ truy cập hiện tại
của JVNET là https://jvnet.vn/ 46
Hình 3-20: Giao diện website JVNET
Website https://jvnet.vn/ có các chức năng chính như: • Đăng ký - Mã CN: Module 1 - Tên CN: Đăng ký - Actor: Bạn đọc
- Luồng sự kiện chính: Nhập các trường thông tin : họ và tên, địa chỉ, số điện
thoại, email, năm sinh, giới tính, biết JVNET qua, ghi chú để đăng ký tài khoản với JVNET. - Đầu vào:
+ Người dùng nhập các thông tin như họ và tên, địa chỉ, số điện thoại, email,
năm sinh, giới tính, biết JVNET qua, ghi chú
+ Người dùng nhấn nút “Đăng ký” - Đầu ra:
+ Nếu không nhập thông tin cho các trường bắt buộc như họ và tên, địa chỉ, số
điện thoại, năm sinh thì hệ thống sẽ hiển thị lỗi [1-1]
+ Nếu nhập thông tin không đúng định dạng cho các trường như số điện thoại,
email thì hệ thống sẽ hiển thị lỗi [1-2] 47
+ Nếu nhập hợp lệ toàn bộ thông tin thì hệ thống sẽ chuyển đến trang với thông báo [1-3] - Danh sách thông báo:
thông báo Nội dung [1-1] Cột được yêu cầu. [1-2]
Bạn cần nhập đúng định dạng cho {tên trường}.
Cảm ơn bạn đã quan tâm và đăng ký tư vấn với chúng [1-3] tôi. • Tìm kiếm - Mã CN: Module 2 - Tên CN: Tìm kiếm - Actor: Bạn đọc
- Luồng sự kiện chính: Nhập các từ khóa để tìm tin tức liên quan các bản tin tuyển dụng, tin tức. - Đầu vào:
+ Người dùng nhập từ khóa cần tìm
+ Người dùng nhấn icon “Tìm kiếm” - Đầu ra:
+ Nếu nhập từ khóa không tồn tại trong CSDL thì hệ thống sẽ hiển thị lỗi [2-1]
+ Nếu nhập từ khóa tồn tại trong CSDL không kể chữ hoa, chữ thường thì hệ
thống sẽ hiển thị danh sách các tin tuyển dụng, tin tức có chứa từ khóa đó - Danh sách thông báo:
thông Nội dung báo
Sorry, but nothing matched your search terms. Please try again [2-1] with some different keywords. 48 • Liên hệ - Mã CN: Module 3 - Tên CN: Liên hệ - Actor: Bạn đọc
- Luồng sự kiện chính: Người dùng liên hệ với công ty để hỏi biết thêm thông tin
về tuyển dụng, về công ty,… - Đầu vào:
+ Người dùng nhập các thông tin như họ và tên, số điện thoại, email
+ Người dùng nhấn nút “Gọi lại cho tôi” - Đầu ra:
+ Nếu không nhập thông tin cho các trường bắt buộc như họ và tên, số điện thoại
thì hệ thống sẽ hiển thị lỗi [3-1]
+ Nếu nhập thông tin không đúng định dạng cho các trường như số điện thoại,
email thì hệ thống sẽ hiển thị lỗi [3-2]
+ Nếu nhập hợp lệ toàn bộ thông tin thì hệ thống sẽ chuyển đến trang với thông báo [3-3] - Danh sách thông báo:
thông báo Nội dung [3-1] The field is required. [3-2]
{The field name} entered is invalid.
Cảm ơn bạn đã quan tâm và đăng ký tư vấn với chúng [3-3] tôi.
3.2.2 Kiểm thử các chức năng của website JVNET: ❖ Các bước thực hiện:
Bước 1: Viết bảng testcase 49
Bước 2: Sử dụng tool Selenium IDE
a. Mở google chrome -> ấn vào biểu tượng
để hiện cửa sổ như hình 3-21
Hình 3-21: Cửa sổ Selenium IDE
b. Ấn Create a new project -> đặt tên cho file “AutotestForJVNET.side”
Hình 3-22: Giao diện công cụ Selenium IDE
c. Ấn dấu “+” (add new test) -> đặt tên testcase “MODULE1_001” 50
Lấy ví dụ: MODULE1_001 là Kiểm tra Họ và tên là trường bắt buộc Nhập các thông tin sau:
• Điền link website https://jvnet.vn/ vào ô địa chỉ sau: • Nhập Command: open
• Nhập Description: open website • Ấn biểu tượng
để ghi lại quá trình test
• Ấn click “Đăng ký ngay” -> Nhập các trường thông tin như hình: 51
• Nhấn “Đăng ký” và chờ kết quả -> ghi kết quả vào cột “Remark” ở bảng Testcase.
TEST CASE LIST
Test Environment Setup Description 1. Server: https://jvnet.vn 2. Web browser: chrome
No Function Name
Module Code Description 1
Đăng ký tài khoản Module 1 2 Tìm kiếm tin tức Module 2 Liên hệ với quản 3 trị Module 3 viên
2. Test case chức năng đăng ký tài khoản: ID Test Pre - Test Case Expec Test Remark 52 Case Condit ted Res Descript Procedure ion Result ult ion Màn 3. hình Hiển "Đăng 1. Để trống thị ký" trường "Họ và Messa Kiểm tra hiển thị tên" ge Họ và 2. Các thông "Cột Ko hiển thị MODULE1 tên là tin khác được được Fail error _001 trường nhập hợp lệ yêu message bắt buộc 3. Click cầu." ở button "Đăng dưới ký" trường "Họ và tên" 3. Hiển 1. Để trống thị textbox Địa Messa Kiểm tra chỉ ge nhập 2. Nhập hợp "Cột MODULE1 Địa chỉ lệ các trường được Pass _002 là còn lại yêu trường cầu." bắt 3. Click ở buộc button "Đăng dưới ký" trường "Địa chỉ" MODULE1 Kiểm tra 1. Để trống 3. Pass _003 nhập Số textbox Số Hiển điện điện thoại thị thoại là 2. Nhập hợp Messa trường lệ các trường ge 53 "Cột được yêu còn lại cầu." ở 3. Click bắt buộc dưới button "Đăng trường ký" "Số điện thoại" 3. Hiển thị Messa ge 1. Nhập Số "Bạn Kiểm tra điện thoại có cần khoảng khoảng Không trắng nhập hiển thị trắng ở ở giữa. đúng error MODULE1 giữa 2. Nhập hợp định Fail message, _004 trong Số lệ các trường dạng vẫn đăng điện còn lại thoại cho số ký thành 3. Click điện công textbox button "Đăng thoại." ký" ở dưới trường "Số điện thoại" MODULE1 Kiểm tra 1. Nhập Số 3. Fail Không _005 kí tự đặc điện thoại bao Hiển hiển thị biệt gồm các kí tự thị error trong Số đặc biệt (@#$ Messa message, điện %^*~/\\,|). ge không hiện thoại 2. Nhập hợp "Bạn đăng kí 54 cần nhập đúng định lệ các trường dạng còn lại cho số textbox 3. Click điện thành công button "Đăng thoại." ký" ở dưới trường "Số điện thoại" 3. Hiển thị Messa ge 1. Nhập Số "Bạn Kiểm tra điện thoại cần Không trường toàn là số 0 nhập hiển thị Số điện 2. Nhập hợp đúng error MODULE1 thoại lệ các trường định Fail message, _006 textbox còn lại dạng vẫn đăng toàn là 3. Click cho số ký thành số 0 button "Đăng điện công ký" thoại." ở dưới trường "Số điện thoại" MODULE1 Kiểm tra 1. Nhập đúng 3. Pass _007 nhập định dạng số Hiển 55 thị Messa ge điện thoại và "Cảm thêm 84 ở đầu ơn bạn 2. Nhập hợp đã định lệ các trường quan dạng 84 còn lại tâm và 3. Click đăng button "Đăng ký tư ký" vấn với chúng tôi." 3. Hiển thị 1. Nhập đúng Messa định dạng số ge điện thoại và "Cảm Kiểm tra thêm +84 ở ơn nhập đầu bạn MODULE1 đã định 2. Nhập hợp Pass _008 dạng quan lệ các trường tâm và +84 còn lại đăng 3. Click ký tư button "Đăng vấn ký" với chúng tôi." MODULE1 Kiểm tra 1. Nhập Số 3. Fail Không _009 số điện điện thoại là Hiển hiển thị thoại là các kí tự chữ thị error kí tự chữ 2. Nhập hợp Messa message, 56 ge "Bạn cần nhập đúng lệ các trường định Không còn lại dạng hiện đăng 3. Click cho số kí thành button "Đăng điện công ký" thoại." ở dưới trường "Số điện thoại" 3. Hiển thị Messa 1. Để trống ge trường Email "Cảm Kiểm tra 2. Nhập hợp ơn bạn MODULE1 Email là lệ các trường đã Pass _010 không còn lại quan bắt buộc 3. Click tâm và button "Đăng đăng ký" ký tư vấn với chúng tôi." MODULE1 Kiểm tra 1. Nhập tên 3. Fail Không _011 định "Email" là ký Hiển hiển thị dạng tự đặc biệt thị error 57 "Email" (@#$ không %^*~/\\,|). message, hợp lệ 2. Nhập hợp Không lệ các trường hiện đăng còn lại kí thành 3. Click công button "Đăng ký" Messa 1. Nhập định ge Không dạng "Email" "Bạn hiển thị ko có @ cần error 2. Nhập hợp nhập MODULE1 message, lệ các trường đúng Fail _012 Không còn lại định hiện đăng 3. Click dạng kí thành button "Đăng cho công ký" email." 1. Nhập ở dưới "Email" ko có trường Không dấu chấm "Email hiển thị trước tên tên " error miền MODULE1 message, 2. Nhập hợp Fail _013 Không lệ các trường hiện đăng còn lại kí thành 3. Click công button "Đăng ký" MODULE1 1. Nhập 3. Fail Không _014 "Email" có Hiển hiển thị khoảng trắng thị error ở giữa Messa message, 2. Nhập hợp ge Không lệ các trường "Bạn hiện đăng 58 cần nhập còn lại đúng 3. Click kí thành định button "Đăng công dạng ký" cho email" 1. Nhập địa 3. chỉ "Email" Hiển hợp lệ: thị abc@gmail.co Messa ge m abc.cd@yaho "Cảm Kiểm tra o.com ơn bạn MODULE1 nhập abc- đã Pass _015 "Email" cd@yahoo.co quan hợp lệ m tâm và 2. Nhập hợp đăng lệ các trường ký tư còn lại vấn 3. Click với button "Đăng chúng ký" tôi." MODULE1 Kiểm tra 1. Để trống 3. Pass Không _016 Năm trường "Năm Hiển hiển thị sinh là sinh" thị error bắt buộc 2. Các thông Messa message, tin khác được ge Không nhập hợp lệ "Cột hiện đăng 3. Click được kí thành button "Đăng yêu công ký" cầu." ở dưới trường 59 "Năm sinh" 3. Hiển thị 1. Nhập "Năm Messa sinh" > năm ge Không Kiểm tra hiện tại "Bạn hiển thị Năm 2. Các thông cần error MODULE1 sinh > tin khác được nhập Fail message,K _017 năm nhập hợp lệ đúng hông hiện hiện tại 3. Click năm đăng kí button "Đăng sinh." thành công ký" ở dưới trường "Năm sinh" 3. Hiển thị Messa 1. Nhập "Năm ge Không sinh" < 1900 "Bạn hiển thị Kiểm tra 2. Các thông cần error MODULE1 Năm tin khác được nhập Fail message, _018 sinh < nhập hợp lệ đúng vẫn hiện 1900 3. Click năm đăng kí button "Đăng sinh." thành công ký" ở dưới trường "Năm sinh" MODULE1 Kiểm tra 1. Nhập "Năm 3. Không Fail _019 kí tự đặc sinh" là ký tự Hiển hiển thị 60 thị Messa đặc ge biệt (@#$ "Bạn %^*~/\\,|). biệt cần error 2. Các thông trong nhập message, Năm tin khác được đúng vẫn hiện nhập hợp lệ sinh năm đăng kí 3. Click textbox sinh." thành công button "Đăng ở dưới ký" trường "Năm sinh" 3. Hiển thị 1. Nhập "Năm Messa sinh" là ký tự ge Không chữ "Bạn hiển thị Kiểm tra 2. Các thông cần error MODULE1 Năm tin khác được nhập Fail message, _020 sinh là nhập hợp lệ đúng vẫn đăng kí tự chữ 3. Click năm ký thành button "Đăng sinh." công ký" ở dưới trường "Năm sinh" MODULE1 Kiểm tra 1. Để trống 3. Pass _021 Giới tính trường Giới Hiển là không tính thị bắt buộc 2. Nhập hợp Messa lệ các trường ge còn lại "Cảm 61 ơn bạn đã quan tâm và 3. Click đăng button "Đăng ký tư ký" vấn với chúng tôi." 3. Hiển thị Messa 1. Chọn ge trường Giới "Cảm tính là "Nam" Kiểm tra ơn bạn 2. Nhập hợp MODULE1 chọn đã lệ các trường Pass _022 Giới tính còn lại quan hợp lệ tâm và 3. Click đăng button "Đăng ký tư ký" vấn với chúng tôi." MODULE1 Kiểm tra 1. Để trống 3. Pass _023 Biết trường Biết Hiển JVNET JVNET qua thị qua là 2. Nhập hợp Messa không lệ các trường ge bắt buộc còn lại "Cảm 3. Click ơn bạn button "Đăng đã 62 quan tâm và đăng ký tư ký" vấn với chúng tôi." 3. Hiển thị 1. Chọn Messa trường Biết ge Kiểm tra JVNET qua là "Cảm chọn "Website" ơn bạn MODULE1 Biết 2. Nhập hợp đã Pass _024 JVNET lệ các trường quan qua hợp còn lại tâm và lệ 3. Click đăng button "Đăng ký tư ký" vấn với chúng tôi." MODULE1 Kiểm tra 1. Để trống 3. Pass _025 Ghi chú trường Ghi Hiển là không chú thị bắt buộc 2. Nhập hợp Messa lệ các trường ge còn lại "Cảm 3. Click ơn bạn button "Đăng đã ký" quan tâm và 63 đăng ký tư vấn với chúng tôi." 3. Hiển thị Messa 1. Nhập hợp ge lệ cho trường "Cảm Ghi chú Kiểm tra ơn bạn 2. Nhập hợp MODULE1 nhập đã lệ các trường Pass _026 Ghi chú còn lại quan hợp lệ tâm và 3. Click đăng button "Đăng ký tư ký" vấn với chúng tôi."
3. Test case chức năng tìm kiếm: Test
Test Case Pre - Test Case Expected Remar ID
Descriptio Conditio Resul Procedu Result k n n t re MODULE2_0 Kiểm tra 1. Nhập 2. Hiển Pass 01 kết quả dữ liệu thị tìm kiếm không có message không có trong "Sorry, giá trị hiển CSDL but 64 thị 2. Click nothing biểu matched tượng your Tìm kiếm search terms. Please try again with some different keywords ." Kiểm tra 1. Nhập 2. Hiển tìm kiếm dữ liệu thị các tin phân biệt để tìm tức muốn chữ hoa, kiếm tìm kiếm chữ bằng chữ MODULE2_0 thường hoa có Pass 02 trong DB 2. Click biểu tượng Tìm kiếm MODULE2_0 1. Nhập 2. Hiển Pass 03 dữ liệu thị kết để tìm quả tìm kiếm kiếm bằng chữ giống với thường kết qủa trùng với khi tìm chữ hoa kiếm ở trên bằng chữ 2. Click thường biểu 65 tượng Tìm kiếm
4. Test case chức năng Liên Hệ: Test Pre - Expect Test Case Test Case Rema ID Conditi ed Resu Descripti Procedure rk on Result lt on Màn 3. Hiển hình 1. Để trống thị "Liên textbox Họ và Messag Không Kiểm tra hệ" hiển tên e "The hiển nhập Họ thị 2. Nhập hợp lệ field is MODULE3_ thị và tên là
các trường còn require Fail 001 error trường lại d." ở bắt messa buộc 3. Click button dưới ge "GỌI LẠI trường CHO TÔI" "Họ và tên" MODULE3_ Kiểm tra 1. Nhập Họ và 3. Hiển Fail Không 002 kí tự đặc tên bao gồm thị hiển biệt trong các kí tự đặc Messag thị Họ và tên biệt (@#$ e "The error textbox %^*~/\\,|). field messa 2. Nhập hợp lệ entered ge, các trường còn is vẫn lại invalid. đăng 3. Click button " ở ký "GỌI LẠI dưới thành CHO TÔI" trường công "Họ và 66 tên" 3. Hiển thị 1. Để trống Messag textbox Số Kiểm tra điện thoại e "The nhập Số field is 2. Nhập hợp lệ MODULE3_ điện require các trường còn Pass 003 thoại là d." ở lại trường dưới bắt 3. Click button buộc trường "GỌI LẠI "Số CHO TÔI" điện thoại" 3. Hiển thị Messag Không 1. Nhập Số e "The hiển Kiểm tra điện thoại có telepho thị khoảng khoảng trắng ở ne error trắng ở giữa. number messa MODULE3_ giữa 2. Nhập hợp lệ is Fail ge, 004 trong Số các trường còn vẫn điện lại invalid. " ở đăng thoại 3. Click button dưới ký textbox "GỌI LẠI trường thành CHO TÔI" "Số công điện thoại" MODULE3_ Kiểm tra 1. Nhập Số 3. Hiển Pass 005 kí tự đặc điện thoại bao thị biệt trong gồm các kí tự Messag Số điện đặc biệt (@#$ e "The thoại %^*~/\\,|). telepho textbox 2. Nhập hợp lệ ne 67 number is các trường còn invalid. lại " ở 3. Click button dưới "GỌI LẠI trường CHO TÔI" "Số điện thoại" 3. Hiển thị Messag Không 1. Nhập Số e "The hiển Kiểm tra điện thoại toàn telepho thị trường là số 0 ne error Số điện 2. Nhập hợp lệ number messa MODULE3_ thoại các trường còn is Fail ge, 006 textbox lại invalid. vẫn toàn là số 3. Click button " ở đăng 0 "GỌI LẠI dưới ký CHO TÔI" trường thành "Số công điện thoại" MODULE3_ Kiểm tra 1. Nhập đúng 3. Hiển Pass 007 nhập định dạng số thị định điện thoại và Messag dạng 84 thêm 84 ở đầu e "Cảm
2. Nhập hợp lệ ơn bạn các trường còn đã quan lại tâm và 3. Click button đăng "Đăng kí" ký tư vấn với 68 chúng tôi." 3. Hiển 1. Nhập đúng thị định dạng số Messag điện thoại và e "Cảm thêm +84 ở Kiểm tra ơn bạn đầu MODULE3_ nhập đã quan 2. Nhập hợp lệ Pass 008 định tâm và dạng các trường còn +84 đăng lại ký tư 3. Click button vấn với "GỌI LẠI chúng CHO TÔI" tôi." 3. Hiển thị Messag 1. Nhập Số e "The điện thoại là telepho các kí tự chữ ne Kiểm tra 2. Nhập hợp lệ number MODULE3_ số điện các trường còn is Pass 009 thoại là lại invalid. kí tự chữ 3. Click button " ở "GỌI LẠI dưới CHO TÔI" trường "Số điện thoại" MODULE3_ Kiểm tra 1. Nhập tên 3. Hiển Pass 010 định email là ký tự thị dạng đặc (@#$ Messag Email %^*~/\\,|). e "The không 2. Nhập hợp lệ e-mail 69 các trường còn lại 3. Click button "GỌI LẠI CHO TÔI" 1. Nhập định dạng email ko có @ 2. Nhập hợp lệ MODULE3_ các trường còn Pass 011 lại 3. Click button "GỌI LẠI address CHO TÔI" entered 1. Nhập email is ko có dấu invalid. chấm trước tên hợp lệ " ở tên miền dưới MODULE3_
2. Nhập hợp lệ trường Pass 012 các trường còn "Email lại " 3. Click button "GỌI LẠI CHO TÔI" 1. Nhập email thiếu tên miền (.com, .vn...) 2. Nhập hợp lệ MODULE3_ các trường còn Pass 013 lại 3. Click button "GỌI LẠI CHO TÔI" MODULE3_ 1. Nhập Email Pass 70 có khoảng trắng ở giữa. 2. Nhập hợp lệ các trường còn 014 lại 3. Click button "GỌI LẠI CHO TÔI" 1. Nhập địa chỉ email hợp lệ: 3. Hiển abc@gmail.co thị m Messag abc.cd@yahoo. e "Cảm com Kiểm tra ơn bạn abc- MODULE3_ nhập đã quan cd@yahoo.co Pass 015 Email tâm và hợp lệ m đăng 2. Nhập hợp lệ ký tư
các trường còn vấn với lại chúng 3. Click button tôi." "GỌI LẠI CHO TÔI"
3.3 Kết luận:
Phần III này đã thực hành các nội dung sau:
- Giới thiệu tổng quan về công cụ kiểm thử tự động Selenium.
- Tìm hiểu chi tiết về tiện ích Selenium IDE: cách cài đặt, phạm vi ứng
dụng, cách sử dụng cơ bản.
- Ứng dụng các kiến thức đã nghiên cứu về công cụ kiểm thử Selenium IDE
để kiểm thử chức năng đăng ký tài khoản, chức năng tìm kiếm, chức năng
liên hệ của Website JVNET. 71
PHẦN V: KẾT LUẬN
Kiểm thử phần mềm nói chung và kiểm thử ứng dụng trên nền Web nói
riêng là một vấn đề hết sức quan trọng đối với các tổ chức phát triển phần mềm
hiện nay. Trong quá trình thực hiện khóa luận của mình do thời gian nghiên cứu
và kinh nghiệm bản thân còn hạn chế nên một số phần của đồ án nghiên cứu chưa được sâu.
Sau thời gian thực hiện nghiên cứu đề tài, dưới sự hướng dẫn tận tình của
Thạc sỹ Hoàng Thị Hà, khóa luận của em đã đạt được những kết quả sau: ❖
Kết quả đạt được
• Trình bày đầy đủ tổng quan về phần mềm, lỗi phần mềm, đặc tả yêu cầu
phần mềm, chất lượng và độ tin cậy của phần mềm cũng như các vấn đề liên
quan tới kiểm thử phần mềm.
• Áp dụng kiến thức đã tìm hiểu để kiểm thử chức năng đăng ký tài khoản,
chức năng tìm kiếm, chức năng liên hệ của ứng dụng Web JVNET bằng tiện ích Selenium IDE.
• Khóa luận là một tài liệu tổng hợp các vấn đề trong kiểm thử phần mềm
nói chung, kiểm thử ứng dụng trên nền Web nói riêng và có thể xem như tài liệu
hướng dẫn sử dụng Selenium IDE một cách cơ bản nhất bằng tiếng Việt để tham khảo. ❖ Hạn chế
Trong thời gian qua, em đã cố gắng hết sức để tìm hiểu thực hiện đề tài.
Tuy nhiên với kinh nghiệm và thời gian hạn chế nên không thể tránh khỏi những
thiếu sót trong khóa luận. Em mong thầy cô có thể góp ý và bổ sung giúp em được hoàn thiện hơn.
PHẦN VI: TÀI LIỆU THAM KHẢO 72
Nguyễn Văn Vỵ - Nguyễn Việt Hà, Giáo trình Kỹ nghệ phần mềm, Nhà
[1] xuất bản Giáo dục Việt Nam, 2009.
Phạm Ngọc Hùng - Trương Anh Hoàng - Đặng Văn Hưng, Giáo trình
[2] Kiểm thử phần mềm, 2014.
[3] Wikipedia, Bách khoa toàn thư mở.
GIẢNG VIÊN HƯỚNG DẪN SINH VIÊN
( ghi họ tên)
( ghi họ tên) Huyền Vũ Khánh Huyền
Nội, ngày 07 tháng 07 năm 2022 73