TÌM HIỂU VỀ KIỂM THỬ TỰ ĐỘNG VÀ ỨNG DỤNG KIỂM THỬ WEBSITE SỬ DỤNG CÔNG CỤ KIỂM THỬ TỰ ĐỘNG SELENIUM Mục tiêu của đề tài Nắm được lý thuyết kiểm thử phần mềm, kiểm thử tự động phần mềm. Nắm được lý thuyết về công cụ kiểm thử tự động Selenium. Ứng dụng được công cụ Selenim IDE, selenium RC, selenium Core, selenium Grid, Selenium Webdriver vào kiểm thử website.
Trang 1PHẠM THỊ THU HƯỜNG
TÌM HIỂU VỀ KIỂM THỬ TỰ ĐỘNG VÀ ỨNG DỤNG KIỂM THỬ WEBSITE SỬ DỤNG CÔNG CỤ
KIỂM THỬ TỰ ĐỘNG SELENIUM
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
HƯNG YÊN – 2014
Trang 3PHẠM THỊ THU HƯỜNG
TÌM HIỂU VỀ KIỂM THỬ TỰ ĐỘNG VÀ ỨNG DỤNG KIỂM THỬ WEBSITE SỬ DỤNG CÔNG CỤ
HƯNG YÊN - 2014
Trang 4MỤC LỤC
DANH SÁCH HÌNH VẼ 6
DANH SÁCH BẢNG BIỂU 8
DANH SÁCH TỪ VIẾT TẮT 9
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 10
1.1 Lý do chọn đề tài 10
1.2 Mục tiêu của đề tài 11
1.3 Giới hạn và phạm vi của đề tài 11
1.4 Nội dung thực hiện 11
1.5 Phương pháp tiếp cận 12
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 13
2.1 Kiểm thử phần mềm 13
2.2 Kiểm thử tự động 13
2.2.1 Khái niệm kiểm thử tự động 13
2.2.2 Quy trình kiểm thử tự động 15
2.3 Kiểm thử ứng dụng website 23
2.3.1 Khái quát kiểm thử ứng dụng website 23
2.3.2 Các đặc điểm về chất lượng của một ứng dụng web 24
2.3.3 Các kỹ thuật kiểm thử ứng dụng website 25
CHƯƠNG 3: NỘI DUNG THỰC HIỆN 30
3.1 Công cụ kiểm thử Selenium 30
3.2 Selenium IDE 32
3.2.1 Cài đặt selenium IDE 32
Trang 53.2.2 Các thao tác thực hiện kiểm thử tự động với Selenium 34
3.2.3 Phần mở rộng trong Selenium IDE 41
3.3 Selenium Remote Control 41
3.3.1 Các thành phần của Selenium Remote Control 42
3.3.2 Cài đặt Selenium Remote Control 44
3.3.3 Các thao tác với Selenium Remote Control 46
3.4 Selenium Webdriver (Selenium 2.0) 54
3.4.1 Sự khác nhau giữa Selenium Webdriver và Selenium RC 55
3.4.2 Trình điều khiển của Selenium Webdriver 55
3.4.3 Selenium webdriver API lệnh 56
3.4.4 Selenium webdriver API hành động 58
3.5 Selenium Grid 60
3.6 Kiểm thử ứng dụng website MobileStore 66
3.6.1 Các tài liệu chuẩn bị cho quá trình kiểm thử 66
3.6.2 Áp dụng công cụ Selenium IDE 69
3.6.3 Áp dụng công cụ Selenium WebDriver 74
3.6.4 Áp dụng công cụ Selenium Grid 79
3.7 Kết luận về bộ công cụ Selenium 82
3.8 Kết quả thu được sau quá trình test 84
CHƯƠNG 4: KẾT LUẬN 85
4.1 Kết quả đạt được của đề tài 85
4.2 Hạn chế của đề tài 85
4.3 Hướng phát triển của đề tài 85
Trang 6TÀI LIỆU THAM KHẢO 86 PHỤ LỤC 87
Trang 7DANH SÁCH HÌNH V
Hình 2- 1: Quy trình của kiểm thử tự động 16
Hình 2- 2: Bản kế hoạch chính và các bản kế hoạch chi tiết 17
Hình 2- 3: Thời điểm phù hợp để thiết lập các kế hoạch kiểm tra 18
YHình 3- 1: Cơ cấu làm việc của bộ ba Selenium IDE, Selenium RC và Selenium Grid 31
Hình 3- 2: Trang chủ của selelium 32
Hình 3- 3: Pop up cài đặt Selenium 33
Hình 3- 4: Giao diện của selenium ide 34
Hình 3- 5: Thực hiện thu các trường hợp kiểm thử 35
Hình 3- 6: Thực hiện thu các trường hợp kiểm thử_2 36
Hình 3- 7: Sơ đồ kiến trúc của Selenium RC 42
Hình 3- 8: Chạy lệnh Selenium Server 45
Hình 3- 9: Chạy Selenium RC từ Command prompt 46
Hình 3- 10: Chạy kịch bản kiểm thử Selenium IDE trên Selenium RC 47
Hình 3- 11: Tạo project Java 48
Hình 3- 12: Thêm các file jar vào thư viện 49
Hình 3- 13: Test case với ngôn ngữ Java trong selenium RC 50
Hình 3- 14: Export Test Case Selenium IDE sang Test Case Selenium RC .52 Hình 3- 15: Kết quả chạy test case trên Junit 4 54
Hình 3- 16: Mô hình công cụ Selenium Grid 60
Hình 3- 17: Selenium server với vai trò là một hub 61
Hình 3- 18: Phân phối thử nghiệm với selenim grid_1 62
Hình 3- 19: Phân phối thử nghiệm với selenim grid_2 62
Hình 3- 20: Bắt đầu với một nút 63
Hình 3- 21: TestScript chạy trên Selenium Grid 65
Hình 3- 22: Kết quả chạy TestScript trên Selenium Grid 66
Trang 8Hình 3- 23: TestScript_1 kiểm tra đăng nhập của khách hàng với Selenium
IDE 70
Hình 3- 24: TestScript_2 kiểm tra đăng nhập của khách hàng với Selenium IDE 70
Hình 3- 25: TestScript_3 kiểm tra đăng nhập của khách hàng với Selenium IDE 71
Hình 3- 26: TestScript_4 kiểm tra đăng nhập của khách hàng với Selenium IDE 71
Hình 3- 27: Bộ dữ liệu kiểm tra với Selenium IDE 72
Hình 3- 28: Thêm bộ dữ liệu email_invaild.js vào Selenium IDE 72
Hình 3- 29: TestScript_5 kiểm tra đăng nhập của khách hàng với Selenium IDE sử dụng extention.js 73
Hình 3- 30: TestScript_6 kiểm tra đăng nhập của khách hàng với Selenium IDE 73
Hình 3- 31: Kết quả kiểm thử chức năng đăng nhập của khách với Selenium IDE 74
Hình 3- 32: Kết quả kiểm thử chức năng đăng nhập chạy trên công cụ TestNG 75
Hình 3- 33: Kết quả kiểm thử chức năng đăng ký dành cho khách hàng 76
Hình 3- 34: Kết quả kiểm thử chức năng đặt hàng 77
Hình 3- 35: Kết quả kiểm thử chức năng đăng nhập hệ thống 78
Hình 3- 36: Kết quả kiểm thử chức năng thêm sản phẩm 79
Hình 3- 37: Kết quả kiểm thử chạy trên Selenium Grid 81
Hình 3- 38: Kết quả báo cáo kiểm thử chạy trên Selenium Grid 82
Trang 9DANH SÁCH BẢNG BIỂU
Bảng 3- 1: Cú pháp câu lệnh Selenese 39 Bảng 3- 2: Sự khác nhau giữa Selenium RC và WEbDriver 54 Bảng 3- 3: Thiết lập hệ thống, trình duyệt và phiên bản cho các testScript chạytrên Selenium Grid 79 Bảng 3- 4: So sánh Selenium IDE, RC, WebDriver 81
Trang 10DANH SÁCH TỪ VIẾT TẮT
Từ viết tắt Từ đầy đủ Giải thích
IDE Integrated Development
Environment
Môi trường phát triển thích hợp
Là công cụ phát triển các trường hợp thử nghiệm Selenium
RC Remote Control Điều khiển từ xa
Selen Selenium Công cụ kiểm thử tự động
Trang 11CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 Lý do chọn đề tài
Trong giai đoạn phát triển của công nghệ thông tin, ngành công nghệ phầnmềm đang ngày một chiếm vị trí quan trọng trong xu hướng phát triển kinh tế côngnghiệp hóa, hiện đại hóa của đất nước ta Cùng với sự phát triển của công nghệphần mềm, lỗi phần mềm và chất lượng phần mềm luôn là thách thức lớn với bảnthân ngành phần mềm khi thực tế đã chứng minh, kiểm thử phần mềm là giai đoạnchiếm đến hơn 40% thời gian, kinh phí và nguồn nhân lực phát triển dự án phầnmềm Tuy nhiên ở Việt Nam hiện nay, việc kiểm thử phần mềm vẫn chưa thực sựđược nhìn nhận đúng với tầm quan trọng của nó Điều này thể hiện ở tỷ lệ kỹ sưkiểm thử phần mềm ở Việt Nam còn khá thấp, cứ 5 lập trình viên thì mới có 1 kỹ sưkiểm thử (số liệu thống kê năm 2011 của công ty LogiGear), trong khi tỷ lệ nàytheo chuẩn quốc tế là 3:1 Thêm vào đó, mức độ đáp ứng của kỹ sư kiểm thử phầnmềm ở Việt Nam chưa cao Nguyên nhân của việc này đến từ sự thiếu hụt các đơn
vị đào tạo chuyên sâu về kiểm thử và nguyên nhân sâu xa vẫn là vấn đề kiểm thửphần mềm ở Việt Nam vẫn chưa được chuyên nghiệp hóa và đầu tư đúng mức.Ngày nay, tự động hóa đang được nghiên cứu và ứng dụng trong nhiều lĩnhvực trong đó công nghệ phần mềm nói chung và kiểm thử phần mềm nói riêng cũngkhông ngoại lệ Khi mà kiểm thử phần mềm vẫn tiêu tốn một lượng lớn thời gian,kinh phí và nhân lực trong một dự án phần mềm thì song song với kiểm thử truyềnthống thủ công, sự ra đời của các công cụ hỗ trợ kiểm thử tự động như Quick TestProfessional, Nunit, Junit, Load Runner là tất yếu Selenium là một công cụ kiểmthử các ứng dụng web có khá nhiều ưu điểm như có thể kiểm thử trên nhiều trìnhduyệt, hỗ trợ nhiều ngôn ngữ lập trình, giao tiếp được với các công cụ kiểm thửkhác như Junit, TestNG (với Java) hay Nunit (với C#), và ưu điểm đặc biệt củacông cụ này là nó là một bộ mã nguồn mở, do đó các tổ chức sẽ không tốn kinh phímua bản quyền Tuy chưa được ứng dụng nhiều trong các tổ chức ở Việt Nam, song
Trang 12với những ưu điểm trên, Selenium hứa hẹn sẽ ngày càng phát triển và trở lên thôngdụng hơn trong các tổ chức phát triển phần mềm ở nước ta.
Với mong muốn có cái nhìn xác thực, rõ ràng hơn về kiểm thử phần mềm vàtiếp cận được với công cụ kiểm thử tự động Selenium để làm tiền đề cho địnhhướng tương lai khi tốt nghiệp đại học sẽ trở thành một kỹ sư kiểm thử phần mềm,
cá nhân em lựa chọn để tài “Tìm hiểu về kiểm thử tự động và ứng dụng kiểm thửwebsite sử dụng công cụ kiểm thử tự động Selenium” làm đề tài cho đồ án tốtnghiệp đại học của mình Trong khuôn khổ đồ án, do thời gian và kinh nghiệm thực
tế còn hạn chế nên có những phần thực hiện chưa được tốt, em rất mong nhận được
sự góp ý của thầy cô và các bạn
1.2 Mục tiêu của đề tài
- Nắm được lý thuyết kiểm thử phần mềm, kiểm thử tự động phần mềm
- Nắm được lý thuyết về công cụ kiểm thử tự động Selenium
- Ứng dụng được công cụ Selenim IDE, selenium RC, selenium Core,selenium Grid, Selenium Webdriver vào kiểm thử website
1.3 Giới hạn và phạm vi của đề tài
- Tập trung vào lý thuyết kiểm thử, kiểm thử tự động, công cụ Selenium
- Ứng dụng được công cụ Selenim IDE, selenium Core, Selenium Grid,selenium Webdriver vào kiểm thử website
1.4 Nội dung thực hiện
- Trình bày được lý thuyết kiểm thử tự động phần mềm, kiểm thử ứng dụngwebsite
- Trình bày được lý thuyết về công cụ kiểm thử tự động Selenium
- Ứng dụng được bộ công cụ kiểm thử tự động Selenium vào kiểm thửwebsite
Trang 131.5 Phương pháp tiếp cận
- Sử dụng các phương pháp nghiên cứu:
o Phương pháp đọc tài liệu
o Phương pháp phân tích mẫu
o Phương pháp thực nghiệm
Trang 14CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Kiểm thử phần mềm
Kiểm thử phần mềm là khâu mấu chốt để đảm bảo chất lượng phần mềm, làđánh giá cuối cùng về các đặc tả, thiết kế và mã hóa
Kiểm thử phần mềm là quá trình chạy một ứng dụng để phát hiện lỗi và xem
nó có thỏa mãn các yêu cầu đặt ra không Trong quá trình phát triển phần mềm,những người phát triển phần mềm và các kỹ sư kiểm thử cùng làm việc để phát hiệnlỗi và đảm bảo chất lượng sản phẩm Một sản phẩm phần mềm được phân phối phải
có đầy đủ các chức năng yêu cầu và tương thích với phần cứng của khách hàng.Mục tiêu đầu tiên của kiểm thử là ngăn ngừa lỗi, ngăn ngừa lỗi còn tốt hơn làsửa lỗi vì ngăn ngừa được lỗi thì sẽ là tốt hơn và không phải sửa mã, giải quyếtđược vấn đề ngay từ đầu sẽ làm giảm bớt chi phí về thời gian và công sức sửa chữachương trình sau này
2.2 Kiểm thử tự động
2.2.1 Khái niệm kiểm thử tự động
Kiểm thử tự động là quá trình thực hiện một cách tự động các bước trong mộttest case Nó sử dụng một công cụ kiểm thử tự động nào đó để rút ngắn thời giankiểm thử Kiểm thử tự động hỗ trợ các kiểm thử viên rất nhiều tùy vào công cụ vàcác nội dung kiểm thử có thể thực hiện bằng tay hay không Đối với những nhiệm
vụ kiểm tra khó mà thực hiện bằng tay hoặc yêu cầu chi phí về nhân công là quá lớnthì sử dụng công cụ hỗ trợ là điều hết sức cần thiết
Ưu, nhược điểm của kiểm thử tự động:
- Các ưu điểm của kiểm thử tự động
o Kiểm thử chính xác và có thể bao quát thông tin
Trang 15o Theo dõi được chính xác kết quả từng giai đoạn và các báo cáotổng hợp
o Cần ít nhân lực trong quá trình kiểm thử
o Chu kỳ kiểm thử diễn ra trong thời gian ngắn
o Hiệu năng của kiểm thử các lớp vượt xa tầm với của kiểm thửthủ công
- Các nhược điểm của kiểm thử tự động
o Chi phí cao cho việc chuyển giao công nghệ và đào tạo nhânviên
o Tốn chi phí đầu tư lớn cho việc phát triển công cụ kiểm thử tựđộng
o Tốn chi phí và thời gian cho việc tạo các kịch bản kiểm thử vàbảo trì các kịch bản kiểm thử
o Giai đoạn chuẩn bị kiểm thử yêu cầu nhiều nhân lực
o Khu vực kiểm thử tự động có thể không bao quát đầy đủ,không áp dụng được trong việc tìm lỗi mới của phần mềm.Các trường hợp không nên áp dụng kiểm thử tự động
Không phải lúc nào cũng nên áp dụng kiểm thử tự động trong việc kiểmthử phần mềm, vì nhiều khi chi phí và thời gian cho việc kiểm thử tự động cònlớn hơn nhiều so với kiểm thử thủ công Dưới đây là một số trường hợp nên ápdụng phương pháp kiểm thử tự động để đạt được hiệu quả cao về thời gian, chiphí cũng như chất lượng
- Trường hợp không đủ tài nguyên: Là khi số lượng trường hợp kiểm thử
lặp lại quá nhiều trên nhiều môi trường kiểm thử khác nhau, không có đủ nguồnnhân lực để kiểm thử thủ công trong một giới hạn thời gian nào đó
Trang 16- Trường hợp kiểm thử hồi qui: Trong quá trình phát triển phần mềm,
nhóm lập trình thường đưa ra nhiều phiên bản phần mềm liên tiếp để kiểm thử.Thực tế cho thấy việc đưa ra các phiên bản phần mềm có thể là hàng ngày, mỗiphiên bản bao gồm những tính năng mới, hoặc tính năng cũ được sửa lỗi hay nângcấp Việc bổ sung hoặc sửa lỗi mã chương trình cho những tính năng ở phiên bảnmới có thể làm cho những tính năng khác đã kiểm tra tốt chạy sai mặc dù phần mãchương trình của nó không hề chỉnh sửa Để khắc phục điều này, đối với từng phiênbản, kiểm thử viên không chỉ kiểm tra chức năng mới hoặc được sửa, mà phải kiểmtra lại tất cả những tính năng đã kiểm tra tốt trước đó Điều này khó khả thi về mặtthời gian nếu kiểm thử thủ công
- Trường hợp kiểm thử khả năng vận hành phần mềm trong môi trường
đặc biệt: Đây là kiểm thử nhằm đánh giá xem vận hành của phần mềm có thỏa mãn
yêu cầu đặt ra hay không Thông qua đó kiểm thử viên có thể xác định được các yếu
tố về phần cứng, phần mềm ảnh hưởng đến khả năng vận hành của hệ thống Có thểliệt kê một số tình huống kiểm tra tiêu biểu thuộc loại này như sau:
o Đo tốc độ trung bình xử lý một yêu cầu của web server
o Thiết lập 1000 yêu cầu, đồng thời gửi đến web server để kiểmtra tình huống 1000 người dùng truy xuất web cùng lúc
o Xác định số yêu cầu tối đa được xử lý bởi web server hoặc xácđịnh cấu hình máy thấp nhất mà tốc độ xử lý của phần mềmvẫn có thể hoạt động ở mức cho phép
2.2.2 Quy trình kiểm thử tự động
Một công cụ kiểm thử phần mềm tự động yêu cầu phải làm được những côngviệc sau:
- Hiểu các mã assembly được kiểm tra một cách tự động
- Tiến hành các nhiệm vụ đơn giản và lặp đi lặp lại một cách tự động
Trang 17- Tạo ra các kịch bản và chạy các kịch bản trong những lô lệnh theo mộtlịch trình đã vạch ra.
- Kiểm tra giao diện của các đối tượng DOM và các thành phần phầnmềm khác với tập dữ liệu được thiết lập sẵn
- Truy cập vào dữ liệu để xác minh lại các kết quả
- Truy cập vào Regestry để xác minh lại các kết quả
Quá trình thực hiện kiểm thử thông thường được thực hiện bằng tay:
Sau khi lập kế hoạch, kiểm thử viên thiết kế các test case gồm dữ liệu đầu vào,dữ liệu đầu ra mong chờ và kết quả thực hiện (điền sau khi test) Tùy theo yêu cầu
và phương pháp được chọn kiểm thử viên thực thi test bằng tay và ghi lại kết quảtrên giấy cuối cùng đánh giá kết quả đó với kết quả mong chờ đã chuẩn bị trước đó.Với phương pháp kiểm thử bằng tay này chỉ sử dụng cho một số nội dung kiểm thửnhư kiểm thử giao diện, tài liệu hoặc test các class, phương thức đơn giản… còn vớitest về hiệu năng, khả năng chịu tải (stress/volume test), kiểm thử cấu hình… thìphương pháp này khó mà thực hiện được Do vậy cần có công cụ kiểm thử tự động
hỗ trợ thực hiện
Quy trình của kiểm thử tự động:
Quy trình kiểm thử tự động phần mềm cũng giống như quy trình thực hiệnbằng tay chỉ khác ở chỗ kiểm thử tự động có hỗ trợ của công cụ ít hoặc nhiều nhưtạo script (có thể bằng tay hoặc công cụ), công cụ hỗ trợ về ghi lại kết quả và lưu trữkết quả trong máy tính Quy trình này cũng gần tương tự với quy trình phát triểnphần mềm, được thực hiện qua nhiều bước, được tiến hành rất sớm trong quy trìnhphát triển phần mềm và đội kiểm thử tiến hành gần như song song cùng đội pháttriển phần mềm
Trang 18Hình 2- 1: Quy trình của kiểm thử tự động
Lập kế hoạch kiểm tra:
Mục đích: Nhằm chỉ định và mô tả các loại kiểm tra sẽ được triển khai và
thực hiện Kết quả của bước lập kế hoạch là bản tài liệu kế hoạch KTPM, bao gồmnhiều chi tiết từ các loại kiểm tra, chiến lược kiểm tra, cho đến thời gian và phânđịnh lực lượng kiểm tra viên
Bản kế hoạch kiểm tra đầu tiên được phát triển rất sớm trong chu trình pháttriển phần mềm (PTPM), ngay từ khi các yêu cầu đã tương đối đầy đủ, các chứcnăng và luồng dữ liệu chính đã được mô tả Bản kế hoạch này có thể được coi làbản kế hoạch chính (master test plan), trong đó tất cả các kế hoạch chi tiết cho cácmức kiểm tra và loại kiểm tra khác nhau đều được đề cập
Sau khi bản kế hoạch chính được phát triển, các bản kế hoạch chi tiết lần lượtđược thiết kế theo trình tự thời gian phát triển của dự án (Hình 1.1 minh hoạ thờiđiểm phù hợp để thiết lập các kế hoạch kiểm tra, gắn liền với quá trình phát triểncủa dự án Quá trình phát triển các kế hoạch kiểm tra không dừng lại tại một thờiđiểm, mà liên tục được cập nhật chỉnh sửa cho phù hợp đến tận cuối dự án.)
Trang 19Hình 2- 2: Bản kế hoạch chính và các bản kế hoạch chi tiết.
Các bước lập kế hoạch:
Xác định yêu cầu kiểm tra: chỉ định bộ phận, thành phần của phần mềm sẽđược kiểm tra, phạm vi hoặc giới hạn của việc kiểm tra Yêu cầu kiểm tra cũngđược dùng để xác định nhu cầu nhân lực
Khảo sát rủi ro: Các rủi ro có khả năng xảy ra làm chậm hoặc cản trở quátrình cũng như chất lượng kiểm tra Ví dụ: kỹ năng và kinh nghiệm của kiểm traviên quá yếu, không hiểu rõ yêu cầu
Xác định chiến lược kiểm tra: chỉ định phương pháp tiếp cận để thực hiệnviệc kiểm tra trên phần mềm, chỉ định các kỹ thuật và công cụ hỗ trợ kiểm tra, chỉđịnh các phương pháp dùng để đánh giá chất lượng kiểm tra cũng như điều kiện đểxác định thời gian kiểm tra
Xác định nhân lực,vật lực: kỹ năng, kinh nghiệm của kiểm tra viên; phầncứng, phần mềm, công cụ, thiết bị giả lập… cần thiết cho việc kiểm tra
Lập kế hoạch chi tiết: ước lượng thời gian, khối lượng công việc, xác địnhchi tiết các phần công việc, người thực hiện, thời gian tất cả các điểm mốc của quátrình kiểm tra
Tổng hợp và tạo các bản kế hoạch kiểm tra: kế hoạch chung và kế hoạch chitiết
Trang 20Xem xét các kế hoạch kiểm tra: phải có sự tham gia của tất cả những người
có liên quan, kể cả trưởng dự án và có thể cả khách hàng Việc xem xét nhằm bảođảm các kế hoạch là khả thi, cũng như để phát hiện (và sữa chữa sau đó) các sai sóttrong các bản kế hoạch
Thiết kế Test:
Mục đích: Nhằm chỉ định các Test case và các bước kiểm tra chi tiết cho mỗi
phiên bản phần mềm Giai đoạn thiết kế test là hết sức quan trọng, nó bảo đảm tất
cả các tình huống kiểm tra “quét” hết tất cả yêu cầu cần kiểm tra
Hình dưới cho thấy việc thiết kế test không phải chỉ làm một lần, nó sẽ đượcsửa chữa, cập nhật, thêm hoặc bớt xuyên suốt chu kỳ PTPM, vào bất cứ lúc nào có
sự thay đổi yêu cầu, hoặc sau khi phân tích thấy cần được sửa chữa hoặc bổ sung
Hình 2- 3: Thời điểm phù hợp để thiết lập các kế hoạch kiểm tra.
Các bước thiết kế test bao gồm:
Xác định và mô tả Test case: xác định các điều kiện cần thiết lập trước vàtrong lúc kiểm tra Mô tả đối tượng hoặc dữ liệu đầu vào, mô tả các kết quả mongchờ sau khi kiểm tra
Mô tả các bước chi tiết để kiểm tra: các bước này mô tả chi tiết để hoànthành một Test case khi thực hiện kiểm tra Các Test case như đã nói ở trên thường
Trang 21chỉ mô tả đầu vào, đầu ra, còn cách thức tiến hành như thế nào thì không được địnhnghĩa Thao tác này nhằm chi tiết hóa các bước của một Test case, cũng như chỉđịnh các loại dữ liệu nào cần có để thực thi các Test case, chúng bao gồm các loạidữ liệu trực tiếp, gián tiếp, trung gian, hệ thống…
Xem xét và khảo sát độ bao phủ của việc kiểm tra: mô tả các chỉ số và cáchthức xác định việc kiểm tra đã hoàn thành hay chưa? Bao nhiêu phần trăm phầnmềm đã được kiểm tra? Để xác định điều này có hai phương pháp: căn cứ trên yêucầu của phần mềm hoặc căn cứ trên số lượng code đã viết
Xem xét Test case và các bước kiểm tra: Việc xem xét cần có sự tham giacủa tất cả những người có liên quan, kể cả trưởng dự án nhằm bảo đảm các Testcase và dữ liệu yêu cầu là đủ và phản ánh đúng các yêu cầu cần kiểm tra, độ baophủ đạt yêu cầu, cũng như để phát hiện (và sữa chữa) các sai sót
Phát triển Test script
Mục đích: Bước này thường không bắt buộc trong các loại và mức kiểm tra,
chỉ yêu cầu trong những trường hợp đặc thù cần thiết kế, tạo ra các Test script cókhả năng chạy trên máy tính giúp tự động hóa việc thực thi các bước kiểm tra đãđịnh nghĩa ở bước thiết kế test
Các bước phát triển Test script bao gồm:
Tạo Test script: thủ công hoặc dùng công cụ hỗ trợ để phát sinh script mộtcách tự động (tuy nhiên trong hầu hết mọi trường hợp, ta vẫn phải chỉnh sửa ít hoặcnhiều trên các script được sinh tự động) Thông thường, mỗi bước kiểm tra đượcthiết kế trong phần thiết kế test, đòi hỏi ít nhất một Test Script Các Test Script cókhả năng tái sử dụng càng nhiều càng tốt để tối ưu hóa công việc
Kiểm tra Test script: xem có “chạy” tốt không nhằm bảo đảm các Test scripthoạt động đúng yêu cầu, thể hiện đúng ý đồ của các bước kiểm tra
Thành lập các bộ dữ liệu ngoài dành cho các Test script: bộ dữ liệu này sẽđược các Test script sử dụng khi thực hiện kiểm tra tự động Gọi là “ngoài” vìchúng được lưu độc lập với các Test script, tránh trường hợp vì dễ dãi, một số kiểm
Trang 22tra viên “tích hợp” luôn phần dữ liệu vào bên trong code của các script (thuật ngữchuyên môn gọi là “hard-code”) Việc tách riêng dữ liệu cho phép dễ dàng thay đổidữ liệu khi kiểm tra, cũng như giúp việc chỉnh sửa hoặc tái sử dụng các script saunày.
Xem xét và khảo sát độ bao phủ của việc kiểm tra: bảo đảm các Test Scriptđược tạo ra bao phủ toàn bộ các bước kiểm tra theo yêu cầu
Thực hiện kiểm tra:
Mục đích: Thực hiện các bước kiểm tra đã thiết kế (hoặc thi hành các Test
script nếu tiến hành kiểm tra tự động) và ghi nhận kết quả
Việc thực hiện kiểm tra cũng được làm rất nhiều lần trong suốt chu trìnhkiểm tra, cho đến khi kết quả kiểm tra cho thấy đủ điều kiện để dừng hoặc tạm dừngviệc thực hiện
Quá trình thực hiện kiểm tra thường thông qua các bước sau:
Thực hiện các bước kiểm tra: thủ công hoặc thi hành các Test script nếu làquy trình kiểm tra tự động Để thực hiện kiểm tra, thao tác đầu tiên cần làm là xáclập và khởi động môi trường và điều kiện kiểm tra Việc này nhằm bảo đảm tất cảcác bộ phận liên quan (như phần cứng, phần mềm, máy chủ, mạng, dữ liệu…) đãđược cài đặt và sẵn sàng, trước khi chính thức bắt đầu thực hiện kiểm tra
Đánh giá quá trình kiểm tra: giám sát quá trình kiểm tra suôn sẻ đến khi hoànthành hay bị treo và dừng giữa chừng, có cần bổ sung hay sữa chữa gì không để quátrình kiểm tra được tốt hơn:
Nếu quá trình diễn ra trơn tru, kiểm tra viên hoàn thành chu kỳ kiểm tra vàchuyển qua bước “Thẩm định kết quả kiểm tra”
Nếu quá trình bị treo hoặc dừng giữa chừng, kiểm tra viên cần phân tích đểxác định nguyên nhân lỗi, khắc phục lỗi và lập lại quá trình kiểm tra
Thẩm định kết quả kiểm tra: sau khi kết thúc, kết quả kiểm tra cần được xemxét để bảo đảm kết quả nhận được là đáng tin cậy, cũng như nhận biết được những
Trang 23lỗi xảy ra không phải do phần mềm mà do dữ liệu dùng để kiểm tra, môi trườngkiểm tra hoặc các bước kiểm tra (hoặc Test script) gây ra Nếu thực sự lỗi xảy ra doquá trình kiểm tra, cần phải sửa chữa và kiểm tra lại từ đầu.
Đánh giá quá trình kiểm tra:
Mục đích: Đánh giá toàn bộ quá trình kiểm tra, bao gồm xem xét và đánh giá
kết quả kiểm tra, liệt kê lỗi, chỉ định các yêu cầu thay đổi, và tính toán các số liệuliên quan đến quá trình kiểm tra (chẳng hạn số giờ, thời gian kiểm tra, số lượng lỗi,phân loại lỗi…)
Mục đích của việc đánh giá kết quả kiểm tra ở bước này hoàn toàn khác vớibước thẩm định kết quả kiểm tra sau khi hoàn tất một vòng kiểm tra Đánh giá kếtquả kiểm tra ở giai đoạn này mang tính toàn cục và nhằm vào bản thân giá trị củacác kết quả kiểm tra
Việc đánh giá quá trình và kết quả kiểm tra được thực hiện song song với bất
kỳ lần kiểm tra nào và chỉ chấm dứt khi quá trình kiểm tra đã hoàn tất
Đánh giá quá trình kiểm tra thường thông qua các bước sau:
o Phân tích kết quả kiểm tra và đề xuất yêu cầu sửa chữa: Chỉ định vàđánh giá sự khác biệt giữa kết quả mong chờ và kết quả kiểm tra thực
tế, tổng hợp và gửi thông tin yêu cầu sửa chữa đến những người cótrách nhiệm trong dự án, lưu trữ để kiểm tra sau đó
o Đánh giá độ bao phủ: Xác định quá trình kiểm tra có đạt được độ baophủ yêu cầu hay không, tỷ lệ yêu cầu đã được kiểm tra (tính trên cácyêu cầu của PM và số lượng code đã viết)
o Phân tích lỗi: Đưa ra số liệu phục vụ cho việc cải tiến các qui trình pháttriển, giảm sai sót cho các chu kỳ phát triển và kiểm tra sau đó Ví dụ,tính toán tỷ lệ phát sinh lỗi, xu hướng gây ra lỗi, những lỗi “ngoan cố”hoặc thường xuyên tái xuất hiện
Trang 24o Xác định quá trình kiểm tra có đạt yêu cầu hay không: Phân tích đánhgiá để xem các Test case và chiến lược kiểm tra đã thiết kế có bao phủhết những điểm cần kiểm tra hay không? Kiểm tra có đạt yêu cầu dự ánkhông? Từ những kết quả này, kiểm tra viên có thể sẽ phải thay đổichiến lược hoặc cách thức kiểm tra.
o Báo cáo tổng hợp: Tổng hợp kết quả các bước ở trên và phải được gửicho tất cả những người có liên quan
2.3 Kiểm thử ứng dụng website
2.3.1 Khái quát kiểm thử ứng dụng website
Các ứng dụng Web đã được phát triển và trở thành một nền tảng kết nối thôngtin thiết yếu trong nhiều doanh nghiệp Các ứng dụng Web đóng vai trò quyết địnhcủa thương mại điện tử, trao đổi thông tin
Để có thể đạt được điều này, các ứng dụng Web cần phải có hiệu năng cao,đáng tin cậy…Việc đưa ra một ứng dụng Web hoàn hảo cho những người đang và
sẽ sử dụng ứng dụng đã trở thành một thách thức chính trong đảm bảo chất lượng.Kiểm thử là một trong những công việc quan trọng để có thể đánh giá chất lượngcủa một sản phẩm và đương nhiên là các ứng dụng Web cũng sẽ không phải làngoại lệ Các phương pháp kiểm thử thông thường và các kỹ thuật sẽ tập trung vàođánh giá các chức năng yêu cầu của ứng dụng Tuy nhiên, không thể nào tập trungđược vào hết tất cả các chức năng yêu cầu Bởi có rất nhiều chức năng quan trọngcho người sử dụng ứng dụng như đó là: Tính hiệu năng, tính dễ sử dụng, độ tin cậy
và tính bảo mật cần phải được xem xét Những yêu cầu và mong đợi của người sửdụng, những vấn đề về nền tảng cấu hình, mô hình nghiệp vụ, sự phát triển và chiphí cho việc kiểm thử là những vấn đề thường hay gặp phải và thay đổi liên tục đổixuyên suốt chu trình của một ứng dụng Web Vì thế, cần thiết phải phát triển mộtchiến lược hiệu quả cho việc kiểm thử mà có thể bao quát được giới hạn tổng thểrộng lớn của những yêu cầu, chức năng cho một ứng dụng Web qua đó có thể giúpcho việc cài đặt, hoàn thành ứng dụng cũng như tránh được các rủi ro có thể gặp
Trang 252.3.2 Các đặc điểm về chất lượng của một ứng dụng web
Một người sử dụng không chỉ mong đợi chương trình của họ sẽ vận hành mộtcách ổn định, đúng đắn mà họ còn yêu cầu một số chức năng nào đó phải luôn sẵnsàng trên 24 giờ trong 1 ngày và 7 ngày trong một tuần Hơn nữa, người sử dụngcòn mong đợi ở chương trình những ưu điểm sau: tính dễ sử dụng, độ tin cậy, tốc
độ, tương thích với các hệ thống khác nhau và tương thích với các phiên bản trongtương lại Còn với một ứng dụng Web, thì những yêu cầu về chất lượng bao gồm:
- Yêu cầu về chức năng: sự hiện diện của các chức năng đáp ứng yêu cầuđược xác định Các yêu cầu cần có nữa là tính phù hợp, chính xác, khảnăng tương tác, tuân thủ và bảo mật
- Yêu cầu về độ tin cậy: khả năng của một ứng dụng để duy trì sự hiệuquả của nó trong một điều kiện cụ thể và trong một khoảng thời gianxác định
- Yêu cầu về khả năng sử dụng: tính dễ sử dụng và hiệu quả của một ứngdụng Vấn đề này có thể được thẩm định bởi một nhóm người dùng giảđịnh
- Yêu cầu về hiệu quả: tỷ lệ giữa mức độ hiệu quả của một ứng dụng vàcác tài nguyên mà nó sử dụng trong các điều kiện cụ thể
Các yêu cầu về chất lượng đóng một vai trò thiết yếu khi thử nghiệm các ứngdụng Web Mặc dù nhìn chung thì chúng tương tự như những yêu vầu về chất lượngcho các hệ thống phần mềm truyền thống, tuy nhiên chúng có thể có mức độ đòi hỏicao hơn về chiều sâu
Do ý nghĩa quan trọng của các đặc điểm về chất lượng và sự khác biệt ở cách
mà chúng được kiểm thử, nhiều phương pháp để kiểm thử một ứng dụng Web tậptrung vào một vài các đặc điểm Tuy nhiên tất cả các đặc điểm trên đều quan trọngđối vứi một ứng dụng Web Và công việc kiểm thử phải đảm bảo những yêu cầunày được cài đặt thành công
Trang 262.3.3 Các kỹ thuật kiểm thử ứng dụng website.
a) Kiểm thử chức năng
Kiểm thử chức năng là kiểm tra tất cả chức năng của ứng dụng web Kiểm tratất cả các links trong trang web, kết nối cơ sở dữ liệu, định dạng được sử dụng trongcác trang web nhận những thông tin cần thiết từ người dùng, kiểm tra cookie
Kiểm tra tất cả các liên kết (links)
- Kiểm tra các links liên kết ngoài trang
- Kiểm tra tất cả các links nội bộ
- Kiểm tra links tới các vị trí trong cùng trang
- Kiểm tra các linsk sử dụng để gửi mail tới admin hoặc người dùng kháctừ trang web
- Kiểm tra xem có trang trống nào không
Kiểm tra form của tất cả các trang
Form là phần cơ bản của bất kì trang Web nào Form dùng để nhận thông tintừ người dùng và tương tác với admin Những điều cần được kiểm tra trong form là:
- Kiểm tra tất cả các trường hợp bắt buộc
- Kiểm tra các giá trị mặc định của các trường
- Các đầu vào sai cho các trường
- Kiểm tra các form bất kỳ: thêm, sửa, xóa
Kiểm thử cookie:
Cookie là các file nhỏ được lưu trong máy người dùng Đây là cách cơ bản đểduy trì các phiên làm việc, đặc biệt là các phiên đăng nhập Kiểm thử ứng dụngbằng cách chọn “cho phép lưu” hoặc “không cho phép lưu” cookie từ trình duyệtcủa bạn
Trang 27Kiểm tra các cookies có được mã hóa khi ghi vào máy người dùng Nếu đangkiểm thử cookie (ví dụ cookie hết hạn sau khi kết thúc phiên làm việc) thì hãy kiểmtra các phiên đăng nhập và tạng thái của người dùng sau khi phiên làm việc kếtthúc Kiểm tra bảo mật bằng cách xóa các cookies.
Xác minh HTML/CSS
Nếu ta đang tối ưu hóa các trang web cho các công cụ tìm kiếm (Searchengines) thì việc xác minh HTML/CSS là rất quan trọng Việc xác minh chủ yếu làcác lỗi cú pháp HTML
Kiểm thử cơ sở dữ liệu
Sự nhất quán về dữ liệu rất quan trọng trong ứng dụng web Kiểm tra tính toànvẹn của cơ sở dữ liệu và các lỗi khi ta thêm, sửa, xóa có forms hoặc thực hiện bất kìchức năng nào có liên quan đến cơ sở dữ liệu Kiểm tra các câu truy vấn cơ sở dữliệu có thực thi chính xác, dữ liệu lấy và cập nhật có chính xác không
b) Load, Stress và kiểm thử tính liên tục
Kiểm thử khả năng chịu tải, áp lực và kiểm thử liên tục được dựa trên các thủtục tương tự Một số yêu cầu được gửi đến các ứng dụng web nhỏ hơn đồng thờikiểm tra bởi người dùng mô phỏng để đo lường phản ứng lần và thông qua Các yêucầu sử dụng trong các thử nghiệm này được tạo ra bởi một hoặc một vài “máy tải”.Một ứng dụng kiểm soát phân phối với các tập lệnh kiểm tra trên máy tải, nó cũngđồng bộ hóa các hoạt động thử nghiệm và thu thập các kết quả thử nghiệm
Tuy nhiên, kiểm thử khả năng chịu tải, áp lực và kiểm thử tính liên tục có cácmục tiêu kiểm thử khác nhau:
- Một kiểm thử khả năng chịu tải xác minh hay không hệ thống sẽ đápứng đúng thời gian đáp ứng yêu cầu và các yêu cầu thông qua
- Kiểm tra xác minh sự căng thẳng, áp lực hay không hệ thống phản ứngmột cách kiểm soát trong “những tình huống căng thẳng” Tình huống
Trang 28căng thẳng được mô phỏng bằng cách áp dụng điều kiện khắc nghiệt,chẳng hạn như không thực tế quá tải, hoặc rất nhiều biến động nạp.
- Kiểm thử tính liên tục có nghĩa là hệ thống được thực hiện trong mộtkhoảng thời gian dài để khám phá những lỗi tinh vi, khó phát hiện
c) Kiểm thử tính khả dụng
Kiểm thử cho chuyển hướng
Đây là cách thức người dùng xem các trang webs, sử dụng các điều khiển khácnhau như: các nút bấm, các hộp (textbox, listbox ) hay cách người dùng sử dụngcác đường links trong các trang để lướt web
Kiểm thử tính khả dụng
Trang web phải dễ sử dụng Cung cấp các đường dẫn rõ ràng rành mạch Kiểmthử xem các đường dẫn có đúng như những gì trang web đáp ứng không Mỗi trangđều cần có Menu chính và menu này phải nhất quán
Kiểm thử nội dung
Nội dung trang web phải hợp lý và dễ hiểu Kiểm tra lỗi chính tả, nội dung cầnphải đầy đủ và ý nghĩa Tất cả đường links được liên kết cần được làm việc tốt, cáctranh ảnh phải được đặt đúng chỗ, đúng kích thước
d) Kiểm thử khả năng tương thích
Kiểm thử khả năng tương thích của trang web là một phần rất quan trọng.Trong đó ta cần thực hiện các việc sau:
Kiểm thử sự tương thích với các trình duyệt: Hiện nay, có nhiều ứng dụng phụ
thuộc vào trình duyệt Các trình duyệt khác nhau có các cấu hình khác nhau và cáctrang web cần tương thích với nó Trang web phải được lập trình đáp ứng tươngthích với các platform của trình duyệt Nếu trang web có sử dụng Javascript, AJAX
để xây dựng các chức năng giao diện thì người dùng, kiểm thử bảo mật hay xácminh, phải kiểm tra tải trên các trình duyệt cho ứng dụng của mình
Trang 29Kiểm thử ứng dụng web trên các trình duyệt khác nhau như: IE, Firefox,chorme với các phiên bản khác nhau.
Kiểm thử sự tương thích với các hệ điều hành: Một vài chức năng trong ứng
web của bạn có thể không tương thích với tất cả các hệ điều hành Tất cả các côngnghệ mới được sử dụng trong phát triển web như: thiết kế đồ họa, giao diện đượcgọi như các API khác có thể không có sẵn trong mọi hệ điều hành
Kiểm thử sự tương thích với các thiết bị di động: Hiện nay, các trình duyệt
trong di động đang phát triển rất mạnh mẽ Việc kiểm thử trang web trêncác trìnhduyệt di động là điều bắt buộc Các vấn đề về tương thích có thể xất hiện trên cácthiết bị di động
Kiểm thử sự tương thích với tùy chọn các thiết bị ngoại vi (máy in, máy photo ): Nếu nhận được tùy chọn “in trang” thì phải đảm bảo tính chính xác của
fonts chữ, kiên kết trang, đồ họa Các trang phải được khớp với cỡ giấy
e) Kiểm thử bảo mật
Tiêu chí quan trọng nhất cho một ứng dụng Web có lẽ là tính bảo mật Sự cầnthiết phải quản lý truy cập thông tin, để xác minh danh tính người dùng và để mãhóa thông tin bí mật là quan trọng tối thượng Kiểm tra bảo mật là một lĩnh vựcrộng, nó không đại diện cho một kỹ thuật thử nghiệm theo nghĩa đen Nó liên quanđến các vấn đề mang tính chất “bảo mật”:
- Bảo mật: Ai có thể truy cập dữ liệu? Ai có thể sửa đổi và xóa dữ liệu ?
- Quyền hạn: Làm thế nào và ở đâu thì có quyền truy cập quản lý? Tất cảdữ liệu phải được mã hóa? Dữ liệu đã được mật mã như thế nào?
- Thẩm định quyền hạn: Làm thế nào để người dùng hoặc máy chủ xácđịnh chính mình?
- Trách nhiệm: Đăng nhập như thế nào?
- Tính toàn vẹn: Thông tin được bảo vệ như thế nào để khỏi bị thay đổitrong quá trình truyền?
Trang 30CHƯƠNG 3: NỘI DUNG THỰC HIỆN
3.1 Công cụ kiểm thử Selenium
Selenium (thường được viết tắt là SE) là một phần mềm mã nguồn mở, đượcphát triển bởi Jason Huggins, sau đó được tiếp tục phát triển bởi nhómThoughtWorks vào năm 2004
Selenium hỗ trợ kiểm thử trên hầu hết các trình duyệt web phổ biến hiện naynhư Firefox, Internet Explorer, Googlechrome và hỗ trợ trên rất nhiều ngôn ngữ lậptrình phổ biến như C#, Java, Python
Selenium gồm một bộ các công cụ hỗ trợ kiểm tra tự động tính năng của ứngdụng web, bao gồm: Selenium IDE, Selenium Remote Control (RC), Selenium Core
và Selenium Grid Bộ công cụ này hoạt động tốt trên nhiều hệ điều hành và có thểthực thi kiểm tra trực tiếp trên các trình duyệt web khác nhau
Hình 3- 1: Cơ cấu làm việc của bộ ba Selenium IDE, Selenium RC và
Selenium Grid
Trang 31Selenium IDE: Một ứng dụng mở rộng cho Mozilla Firefox phiên bản 2.0 trở
lên Công cụ này cung cấp chức năng "thu và chạy lại" – Record and Playback Nhờ
đó, tester có thể nhanh chóng tạo một bộ kịch bản kiểm tra (test script) bằng cáchtrực tiếp "thu" các thao tác của mình trên đối tượng cần kiểm tra thành một tậpnhững câu lệnh Selenese (ngôn ngữ kịch bản được dùng riêng cho Selenium IDE vàSelenium Core, có dạng bảng HTML) Sau đó chạy lại các câu lệnh này để kiểm tra,
có thể chạy lại trên nhiều trình duyệt: Chrome, Internet Explorer Chức năng nàyrất hữu dụng giúp tiết kiệm thời gian viết kịch bản kiểm tra Selenium IDE còn chophép lưu kịch bản đã thâu dưới nhiều loại ngôn ngữ lập trình khác nhau như Java,C#, Ruby, Perl hay Python
Selenium RC: Công cụ này có thể nhận các test script được thu bởi Selenium
IDE, cho phép chỉnh sửa, cải tiến linh động bằng nhiều ngôn ngữ lập trình khácnhau Sau đó khởi động một trong các trình duyệt web được chỉ định để thực thikiểm tra trực tiếp trên trình duyệt đó Selenium RC còn cung cấp khả năng lưu lạikết quả kiểm tra
Selenium Grid: Thực hiện phương pháp kiểm tra phân bổ, phối hợp nhiều
Selenium RC để có thể thực thi trên nhiều trình duyệt web khác nhau trong cùngmột lúc Cũng cho phép lưu lại kết quả kiểm tra
Selenium Core: Đã được tích hợp trong Selenium IDE Selenium Core là một
công cụ chạy các test script viết bằng Selenese Thế mạnh của công cụ này là có thểchạy test script trên gần như tất cả các trình duyệt, nhưng lại yêu cầu được cài đặttrên máy chủ của website cần kiểm tra Selenium IDE
3.2 Selenium IDE
3.2.1 Cài đặt selenium IDE
Để kiểm tra xem trên trình duyệt Firefox đã được cài selenium IDE Bạn cóthể vào bật trình duyệt này và nhấp vào Tools trên menu Bar Quan sát trên menu cómục selenium IDE không? Nếu chưa có bạn hãy thực hiện những bước sau để cóthể cài cho mình tiện ích này của Firefox
Trang 32Bước 1: Mở trang chủ của Selenium: http://seleniumhq.org/download/.
Hình 3- 2: Trang chủ của selelium
Bước 2: Cài đặt selenium IDE giống như cài đặt một plugin trên trình duyệt
Trang 33Bước 3: Khởi động lại trình duyệt Firefox.
Bước 4: Khởi động selenium IDE.
Vào firefox->công cụ-> Selenium IDE (Ctrl +Alt +S), giao diện của SeleniumIDE xuất hiện Có một danh sách các test case bên trái của bảng với mỗi trường hợpđều được bắt đầu với tên Untitled
Hình 3- 4: Giao diện của selenium ide.
Giải thích một số kí hiệu:
Run: Nhấp vào nút Run để chạy thử nghiệm hiện đang được chọn Khichỉ có một thử nghiệm duy nhất được nạp vào thì nút này và nút Run All có tácdụng tương tự
Run All: Nhấp vào nút Run All để chạy tất cả các test case đang đượcmở
Cho phép dừng thử nghiệm tại một đoạn bất kỳ
Trang 34Sau khi click vào biểu tượng Pause nó sẽ chuyển sang biểu tượngResume Với nút này có thể tiếp tục chạy thử nghiệm tại đoạn đã dừng.
- Nút : Bỏ qua một test case khi nó đã bị tạm dừng
- Nút : Nút thu được sử dụng để thu các test case qua những thao tác bạn tácđộng đến trang web cần kiểm thử
- Textbox Command: Dòng lệnh
- Text box Target: Kết quả mong đợi của dòng lệnh
- Text box Value: Giá trị đầu vào của dòng lệnh
- Base URL: URL của web ứng dụng
3.2.2 Các thao tác thực hiện kiểm thử tự động với Selenium
a) Thực hiện thu một kịch bản với Selenium ID E
Bước 1: Vào Firefox/công cụ/chọn Selenium IDE hoặc nhấn tổ hợp phím
Ctrl+Alt+s
Hình 3- 5: Thực hiện thu các trường hợp kiểm thử
Trang 35Bước 2: Thay đổi mục Based URL thành URL của ứng dụng cần kiểm thử.
Ví dụ ứng dụng web cần kiểm thử có URL là:
http://hoalannghi.com/vn/shopping.html
Nút thu mặc định ở trạng thái "now recording, click to stop recording"
Hình 3- 6: Thực hiện thu các trường hợp kiểm thử_2
Bước 3: Tiến hành các thao tác cần kiểm thử trên links
Ví dụ: Ta thực hiện kiểm thử tự động trường hợp đăng nhập vào trang webthành công với username/password hợp lệ
Trong quá trình thu, Selenium IDE sẽ tự động chèn thêm các lệnh vào testcase dựa trên hành động của người thực hiện Các command được tự động thêmphổ biến:
- Click a link- click or clickAndWait commands
- Nhập các giá trị- type command
- Chọn các giá trị từ một select box - select command
Trang 36- Click vào các checkboxe hoặc các radio button - click command
Bước 4: Click vào nút thu N út thu ở trạng thái "Click to record".
Bước 5: Save as test case
Một số lưu ý: Sau một liên kết thường ghi lại một lệnh nhấp chuột, phải thay
đổi tốc độ chạy của test case để đảm bảo test case tạm dừng cho đến khi trangmới được tải xong Nếu không, test case sẽ tiếp tục chạy trước khi các trang đãđược nạp tất cả các yếu tố của nó Điều này sẽ gây ra test case bị thất bại
b) Thêm các lệnh khẳng định và xác nhận với menu ngữ cảnh
Các trường hợp kiểm kiểm thử các thuộc tính của một trang web sẽ đòi hỏi cáclệnh xác minh (verify) và khẳng định (assert) các yếu tố trên giao diện Phần dướiđây sẽ trình bày cách thêm các lệnh này vào test case của chúng ta
Khi thu một test case với Selenium IDE, vào trình duyệt hiển thị website tamuốn thực hiện kiểm thử, trỏ truột phải vào bất cứ vị trí nào trên trang, ta sẽ thấycác lệnh xác minh và khẳng định như hình dưới Để sử dụng các lệnh này ta chỉ việcchọn lệnh xác minh hoặc khẳng định mong muốn Các lệnh này sẽ tự động hiển thịtrong test case Selenium sẽ dự đoán các lệnh, các thông số cần có trên giao diện để
bổ xung các lệnh xác minh Khi chọn thông báo Show All Avaiable Commands, sẽ
có nhiều lệnh xác minh được gợi ý hơn
c) Các thao tác chỉnh sửa
Chèn lệnh:
Chèn vào bảng: Trong ô test case, click chuột trái tại vị trí muốn chèn lệnh.Chuột phải và chọn Insert command Selenium IDE sẽ thêm một dòng trắng phíatrước dòng được chọn Nhập lệnh vào ô command, kết quả mong muốn vào ô target,giá trị đầu vào vào ô value
Chèn vào mã nguồn: Chọn vị trí trong test case mà bạn muốn chèn lệnh Trong
ô test case, chuột trái vào vị trí muốn chèn lệnh Vào tag HTML, cần tạo 3 dòng
Trang 37chứa lệnh bao gồm tham số đầu tiên (nếu lệnh yêu cầu có tham số), tham số thứ hai(nếu có) Lưu test case trước khi chọn lại table view.
Chèn comment
Các comment có thể được thêm vào cho test case dễ hiểu hơn Nhữngcomment được bỏ qua khi chạy test case Comment có thể được sử dụng để thêmvào các khoảng trống dọc (một hoặc nhiều dòng trắng) vào các test case của chúng
ta, khi chúng ta tạo ra các comment trắng Một lệnh trắng sẽ tạo ra 1 lỗi khi thực thicòn một comment trắng thì không tạo ra lỗi khi thực thi
Chèn vào bảng: Chọn vị trí trong test case muốn comment Click chuột phải
và chọn Insert Comment Sử dụng trường Command để nhập comment
Chèn vào mã nguồn: Chọn vị trí trong test case muốn chèn comment Thêmmột comment có dạng HTML Ví dụ: <! Enter your comment here >
Chỉnh sửa comment hay lệnh
Chỉnh sửa qua giao diện: Chọn dòng cần chỉnh sửa và chỉnh sửa nó bằng cáctrường Command, Target, và Value
Chỉnh sửa qua mã nguồn: Vào mã nguồn, chỉnh sửa trực tiếp vào dòngcomment hay lệnh muốn chỉnh sửa
d) Mở và lưu lại một test case
Chọn tập tin/ open hoặc Save Tuy nhiên Selenium có sự khác biệt giữa cáctest case và test suite Để lưu lại các bước kiểm thử trên Selenium- IDE sau khi sửdụng, bạn có thể lưu lại một test case riêng lẻ, hay lưu nhiều test case dưới dạngmột test suite Nếu các test case của test suite không được lưu Chương trình sẽ nhắcnhở ta lưu chúng trước khi lưu một test suite Khi mở một test case hoặc một testsuite đã có, Selenium-IDE hiển thị các câu lệnh trong ô test case
e) Selenese
Tập lệnh Selenium gọi là selenese Selenese là một tập các lệnh để chạy kịchbản kiểm thử Một chuỗi các lệnh được gọi là một kịch bản kiểm thử
Trang 38Selenium cung cấp một tập đầy đủ các lệnh để kiểm thử các ứng dụng web.Trong selenese có thể kiểm thử tình trạng của các yếu tố giao diện người dùng dựatrên các thẻ HTML, kiểm thử nội dung xác định, kiểm thử các link hỏng, lỗi, cáctrường đầu vào, lựa chọn danh sách.
Một lệnh mô tả thao tác phải làm Lệnh Selenium bao gồm ba yếu tố: Actions,accessors, assertion
Action: là các thao tác chung trên ứng dụng, ví dụ: Click this link, Select thatoption Nếu như thao tác thất bại sẽ có một lỗi, việc thực thi kiểm thử sẽ bị tạmdừng Một vài hành động sử dụng hậu tố AndWait, ví dụ: ClickAndWait Selenium
sử dụng hậu tố này trong trường hợp chờ một trang web được tải
Accessor: Kiểm tra trạng thái của ứng dụng và lưu trữ kết quả vào các biến Vídụ: storeTitle Chúng có thể được sử dụng để sinh tự động các Assertion
Assertion: Giống như những Accessor, nhưng nó xác định trạng thái của ứngdụng thích nghi với kết quả mong đợi
Assertion của Selenium có thể được chia thành 3 dạng: assert, verify, waitFor
Ví dụ: assertText, verifyText, aitForText Khi asserts thất bại, việc kiểm thử sẽdừng lại Khi verifies thất bại, việc kiểm thử vẫn tiếp tục nhưng sẽ hiển thị một lỗi.Lệnh waitFor chờ một vài điều kiện được thực thi, nó sẽ thành công nếu điều kiệnđúng nhưng sẽ thất bại và tạm dừng việc kiểm thử nếu các điều kiện không đúng
f) Cú pháp Script
Các lệnh Selenium rất đơn giản, nó bao gồm lệnh và hai tham số
Các tham số không nhất thiết phải có trong mọi trường hợp, nó phụ thuộcvào câu lệnh, trong một số trường hợp câu lệnh yêu cầu cả hai tham số, một số chỉyêu cầu một tham số, và cũng có những câu lệnh không cần có tham số
Ví dụ:
Trang 39Câu lệnh Tham số thứ nhất Tham số thứ haiassertTitle Đặt mua hoa tươi, quà tặng tại Hoa
Lan Nghi - shop hoa tươi, hoa cưới,quà tặng
Click css=a.view-login > span Wellcome!Type id=username keodang
Type id=password nemdadautay
Bảng 3- 1: Cú pháp câu lệnh Selenese
Phân loại tham số:
Locator: Tham số xác minh các yếu tố trên giao diện người dùng.
Text pattern: Tham số xác minh nội dung mong đợi của ứng dụng web.
Selenium variable: Nhập văn bản cho một trường đầu vào để lựa chọn từ danh
sách lựa chọn
g) Một số lệnh thường sử dụng trong Selenium
Open: Mở một ứng dụng web sử dụng URL.
Click/clickAndWait: Thực thi click và đợi tải một trang web mới.
VerifyTitle/assertTitle: Xác nhận một tiêu đề trang được mong đợi.
VerifyTextPresent: Xác nhận văn bản được mong đợi tại một vị trí nào đó trên
trang
VerifyElementPresent: Xác nhận một yếu tố được mong đợi trên giao diện
người sử dụng, được định nghĩa bởi thẻ HTML
VerifyText: Xác nhận văn bản được mong đợi và và các thẻ HTML tương
ứng
VerifyTable: Xác nhận các nội dung được mong đợi của một bảng.
Trang 40WaitForPageToLoad: Tạm dừng thực thi lệnh cho đến khi trang web mong
đợi được tải thành công, được gọi tự động khi sử dụng lệnh clickAndWait
WaitForElementPresent: Tạm dừng thực thi lệnh cho tới khi một yếu tố
giao diện người dùng xuất hiện trên trang web (được định nghĩa bởi các thẻHTML)
Store: Gán gía trị cho một biến.
StoreEval: Có thể giao tiếp trực tiếp hoặc in giá trị của biến mà không cần đến
“Javascrip {}”
3.2.3 Phần mở rộng trong Selenium IDE
Mở rộng trong Selenium IDE là việc thêm các hành động, khẳng định, định chiến lược Được thực hiện với Javascript bằng cách thêm các phương thức cho đốitượng trong thử nghiệm Khi khởi động, selenium sẽ tự động xem xét, thông quacác phương thức trong thử nghiệm để tìm ra các hành động, khẳng định
vị-Trong Selenium IDE cho phép viết thêm các extention (viết thêm cáccommand) Theo mặc định Selenium tìm kiếm một tập tin gọi là “user-extention.js”
và tải mã javascript được tìm thấy trong tập tin đó Tập tin này cung cấp một vị tríthuận lợi cho việc thêm các tính năng để selenium dễ dàng thực hiện kiểm thử.Thực tế thì Selenium không hỗ trợ tập tin này Người dùng phải tự tạo ra và sửdụng nó nhưng khi export ra các ngôn ngữ khác thì những command này khôngthực hiện được Phần này rất hữu ích với việc kiểm tra hướng dữ liệu với SeleniumIDE
3.3 Selenium Remote Control
Selenium RC ban đầu được phát triển bởi Patrick Lightbody theo hướngkiểm tra các ứng dụng web trên các trình duyệt khác nhau mà không cần càiđặt Selenium Core trên Server Nó được phát triển để tương tác như một giao tiếpgiữa ứng dụng cần kiểm tra và kịch bản bản kiểm thử Selenium Core đư ợc tíchhợp với Selenium RC thay cho việc cài đặt trên máy chủ