MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC HÌNH ẢNH vi DANH MỤC CHỮ VIẾT TẮT viii LỜI MỞ ĐẦU 1 1. Lý do chọn đề tài 1 2. Mục tiêu của đề tài 2 3. Nội dung của đề tài 2 4. Phương pháp nghiên cứu 2 5. Kết quả đạt được 2 6. Bố cục đồ án 3 CHƯƠNG 1: TỔNG QUAN VỀ PHẦN MỀM VÀ KIỂM THỬ PHẦN MỀM 4 1.1. Tổng quan về phần mềm 4 1.1.1.Lịch sử phát triển 4 1.1.3.Lỗi phần mềm 5 1.1.4.Mối quan hệ giữa quy trình phát triển phần mềm và kiểm thử phần mềm 6 1.2.Kiểm thử phần mềm 7 1.2.1.Mục đích của việc kiểm thử phần mềm 7 1.2.2.Các cấp độ của kiểm thử phần mềm 7 1.2.3.Các loại kiểm thử 7 1.3.Kỹ thuật kiểm thử phần mềm 8 1.3.1. Kiểm thử tĩnh (Static testing) 8 1.3.2.Kiểm thử động (Dynamic testing) 9 1.4.Kiểm thử phần mềm tự động 10 1.4.1.Ưu, nhược điểm của kiểm thử tự động 10 1.4.2.Áp dụng kiểm thử tự động: 11 1.5.Các bước xây dựng kiểm thử tự động 11 CHƯƠNG 2: TỔNG QUAN VỀ CÔNG CỤ KIỂM THỬ SELENIUM IDE 13 2.1 Tổng quan về Selenium 13 2.1.1 Lịch sử hình thành 13 2.1.2 Đặc điểm của Selenium 14 2.1.3 Ưu, nhược điểm của Selenium 15 2.2 Công cụ Selenium IDE 16 2.2.1 Giới thiệu 16 2.2.2 Đặc điểm của Selenium IDE 17 2.2.3 Cài đặt Selenium IDE 18 2.2.4 Tính năng của Selenium IDE 20 2.2.5 Cách xây dựng trường hợp kiểm thử. 24 2.2.6 Các lệnh Selenium IDE cơ bản 27 CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG NHẬP MÔN HỌC ĐĂNG KÝ CHO SINH VIÊN 29 3.1.Thiết kế cơ sở dữ liệu 29 3.2.Xây dựng ứng dụng 30 3.2.1. Đối tượng sử dụng 30 3.2.2. Chức năng của ứng dụng 30 CHƯƠNG 4: KIỂM THỬ MỘT SỐ CHỨC NĂNG CỦA ỨNG DỤNG BẰNG CÔNG CỤ SELENIUM IDE 36 4.1 Phân tích các trường hợp kiểm thử của chức năng thêm 36 4.2 Phân tích các trường hợp kiểm thử của chức năng tìm kiếm 36 4.3 Thiết kế Testcase kiểm thử 36 4.4 Kiểm thử tự động chức năng thêm trên ứng dụng 37 4.5 Kiểm thử tự động chức năng tìm kiếm trên ứng dụng sử dụng vòng lặp While 40 4.6 Kiểm thử tự động chức năng tìm kiếm trên ứng dụng với ứng dụng đọclấy dữ liệu tự động từ dạng file CVS 43 4.7 Kiểm thử ứng dụng trên nhiều trình duyệt 47 4.7.1 Cách cài đặt Selenium IDE trên nhiều trình duyệt 47 4.7.2 Tiến hành chạy Testcase 48 4.8 Kết luận chương 49 KẾT LUẬN VÀ KIẾN NGHỊ 50 TÀI LIỆU THAM KHẢO 51 PHỤ LỤC 52
Trang 1TRIỂN KHAI KIỂM THỬ CÁC ỨNG DỤNG CỦA SELENIUM IDE
TRÊN NHIỀU TRÌNH DUYỆT
Hà Nội – Năm 2017
TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
Trang 2NGUYỄN THỊ THÙY LINH
TRIỂN KHAI KIỂM THỬ CÁC ỨNG DỤNG CỦA SELENIUM IDE
TRÊN NHIỀU TRÌNH DUYỆT
Chuyên ngành : Công nghệ thông tin
Mã sinh viên : DH00300945`
NGƯỜI HƯỚNG DẪN: ThS.NGUYỄN NGỌC KHẢI
Hà Nội – Năm 2017
Trang 3LỜI CAM ĐOAN
Em tên là Nguyễn Thị Thùy Linh, là sinh viên lớp DH3C2 – Trường Đạihọc Tài nguyên và Môi trường Hà Nội
Em xin cam đoan toàn bộ nội dung nghiên cứu trong đồ án này hoàntoàn do em thực hiện, không sao chép hay sử dụng nghiên cứu nào khác Mọitài liệu đều được trích dẫn cụ thể
Em xin chịu hoàn toàn trách nhiệm về kết quả nghiên cứu trong đồ án tốtnghiệp của mình
Hà Nội, ngày 12 tháng 05 năm 2017
Người cam đoan
Nguyễn Thị Thùy Linh
Trang 4LỜI CẢM ƠN
Trong thời gian thực hiện đồ án tốt nghiệp vừa qua với sự giúp đỡ củatrường Đại học Tài Nguyên và Môi trường Hà Nội và quý thầy cô khoa Côngnghệ thông tin đã tạo điều kiện thuận lợi cho em Đặc biệt là sự hướng dẫn tậntình của ThS.Nguyễn Ngọc Khải đã giúp em hoàn thành tốt đồ án này
Em cũng xin bày tỏ lòng biết ơn chân thành tới các thầy cô trong khoaCông nghệ thông tin trường Đại học Tài nguyên và Môi trường Hà Nội đãgiảng dạy và truyền đạt những kiến thức quý báu cho em trong suốt quá trìnhhọc tập và rèn luyện, để em đủ hiểu biết và kiến thức thực hiện đồ án tốtnghiệp
Đặc biệt, lời cảm ơn thiêng liêng nhất con xin gửi đến bố mẹ Cảm ơn bố
mẹ đã luôn yêu thương, tin tưởng ở con để con vững bước trên con đường họctập của mình
Mặc dù đã cố gắng để hoàn thiện đề tài tốt nghiệp, nhưng chắc chắnkhông thể tránh khỏi những thiếu sót Em mong nhận được sự góp ý của thầy
cô và các bạn để đồ án tốt nghiệp của em được hoàn thiện hơn
Em xin chân thành cảm ơn!
Hà Nội, ngày 12 tháng 05 năm 2017
Sinh viên
Nguyễn Thị Thùy Linh
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC HÌNH ẢNH vi
DANH MỤC CHỮ VIẾT TẮT viii
LỜI MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu của đề tài 2
3 Nội dung của đề tài 2
4 Phương pháp nghiên cứu 2
5 Kết quả đạt được 2
6 Bố cục đồ án 3
CHƯƠNG 1: TỔNG QUAN VỀ PHẦN MỀM VÀ KIỂM THỬ PHẦN MỀM 4
1.1 Tổng quan về phần mềm 4
1.1.1.Lịch sử phát triển 4
1.1.3.Lỗi phần mềm 5
1.1.4.Mối quan hệ giữa quy trình phát triển phần mềm và kiểm thử phần mềm 6 1.2.Kiểm thử phần mềm 7
1.2.1.Mục đích của việc kiểm thử phần mềm 7
1.2.2.Các cấp độ của kiểm thử phần mềm 7
1.2.3.Các loại kiểm thử 7
1.3.Kỹ thuật kiểm thử phần mềm 8
1.3.1 Kiểm thử tĩnh (Static testing) 8
1.3.2.Kiểm thử động (Dynamic testing) 9
1.4.Kiểm thử phần mềm tự động 10
1.4.1.Ưu, nhược điểm của kiểm thử tự động 10
1.4.2.Áp dụng kiểm thử tự động: 11
Trang 61.5.Các bước xây dựng kiểm thử tự động 11
CHƯƠNG 2: TỔNG QUAN VỀ CÔNG CỤ KIỂM THỬ SELENIUM IDE 13
2.1 Tổng quan về Selenium 13
2.1.1 Lịch sử hình thành 13
2.1.2 Đặc điểm của Selenium 14
2.1.3 Ưu, nhược điểm của Selenium 15
2.2 Công cụ Selenium IDE 16
2.2.1 Giới thiệu 16
2.2.2 Đặc điểm của Selenium IDE 17
2.2.3 Cài đặt Selenium IDE 18
2.2.4 Tính năng của Selenium IDE 20
2.2.5 Cách xây dựng trường hợp kiểm thử 24
2.2.6 Các lệnh Selenium IDE cơ bản 27
CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG NHẬP MÔN HỌC ĐĂNG KÝ CHO SINH VIÊN 29
3.1.Thiết kế cơ sở dữ liệu 29
3.2.Xây dựng ứng dụng 30
3.2.1 Đối tượng sử dụng 30
3.2.2 Chức năng của ứng dụng 30
CHƯƠNG 4: KIỂM THỬ MỘT SỐ CHỨC NĂNG CỦA ỨNG DỤNG BẰNG CÔNG CỤ SELENIUM IDE 36
4.1 Phân tích các trường hợp kiểm thử của chức năng thêm 36
4.2 Phân tích các trường hợp kiểm thử của chức năng tìm kiếm 36
4.3 Thiết kế Testcase kiểm thử 36
4.4 Kiểm thử tự động chức năng thêm trên ứng dụng 37
4.5 Kiểm thử tự động chức năng tìm kiếm trên ứng dụng sử dụng vòng lặp While 40
4.6 Kiểm thử tự động chức năng tìm kiếm trên ứng dụng với ứng dụng đọc/lấy dữ liệu tự động từ dạng file CVS 43
4.7 Kiểm thử ứng dụng trên nhiều trình duyệt 47
Trang 74.7.1 Cách cài đặt Selenium IDE trên nhiều trình duyệt 47
4.7.2 Tiến hành chạy Testcase 48
4.8 Kết luận chương 49
KẾT LUẬN VÀ KIẾN NGHỊ 50
TÀI LIỆU THAM KHẢO 51
PHỤ LỤC 52
Trang 8DANH MỤC HÌNH ẢNH
Hình 1.1: Mối quan hệ giữa quy trình phát triển phần mềm và kiểm thử phần mềm.6
Hình 2.1: Tải Selenium IDE 18
Hình 2.2: Lưu file Selenium IDE 18
Hình 2.3: Cài đặt Selenium IDE 19
Hình 2.4: Cách khởi động Selenium IDE trên firefox 19
Hình 2.5: Cách khởi động nhanh Selenium IDE 19
Hình 2.6: Tính năng của Selenium IDE 20
Hình 2.7: Thanh công cụ Tool Bar 21
Hình 2.8: Kiểm soát tốc độ 21
Hình 2.9: Chạy tất cả 21
Hình 2.10: Chạy testcase được chọn 21
Hình 2.11: Tạm dừng/ Tiếp tục 21
Hình 2.12: Chạy từng bước 22
Hình 2.13: Áp dụng quy tắc Rollup 22
Hình 2.14: Ghi lại 22
Hình 2.15: Test script pane 23
Hình 2.16: Ghi và thêm các lệnh kiểm thử 25
Hình 2.17: Nhập dữ liệu và hiển thị câu lệnh 25
Hình 2.18: Tạo mới test suite 26
Hình 3.1: Thiết kế cơ sở dữ liệu 29
Hình 3.2: Danh sách sinh viên 30
Hình 3.3: Thêm thông tin sinh viên 31
Hình 3.4: Sửa thông tin sinh viên 32
Hình 3.5: Xóa thông tin sinh viên 33
Hình 3.6: Tìm kiếm thông tin sinh viên 34
Hình 3.7: Màn hình khi có kết quả tìm kiếm phù hợp 34
Hình 3.8: Màn hình khi không có kết quả tìm kiếm phù hợp 34
Trang 9Hình 4.1: Thiết kế các case kiểm thử 36
Hình 4,2: Sử dụng câu lệnh javascript để tạo dữ liệu 37
Hình 4.3: Chạy testcase thêm lần 1 38
Hình 4.4: Kết quả chạy testcase thêm lần 1 38
Hình 4.5: Chạy testcase thêm lần 2 39
Hình 4.6: Kết quả chạy testcase thêm lần 2 40
Hình 4.7: Sử dụng câu lệnh while trong tìm kiếm 41
Hình 4.8: Chạy tự động tìm kiếm sử dụng câu lệnh while lần 1 42
Hình 4.9: Kết quả tìm kiếm sử dụng câu lệnh while lần 1 42
Hình 4.10: Chạy tự động tìm kiếm sử dụng câu lệnh while lần 2 43
Hình 4.11: Kết quả tìm kiếm sử dụng câu lệnh while lần 2 43
Hình 4.12: Tại file dạng CVS 44
Hình 4.13: Chọn file CVS đã tạo trong thư mục 44
Hình 4.14: Sử dụng câu lệnh để đọc file CVS 45
Hình 4.15: Chạy tự động tìm kiếm sử dụng file CVS lần 1 45
Hình 4.16: Kết quả tìm kiếm sử dụng file CVS lần 1 46
Hình 4.17: Chạy tự động tìm kiếm sử dụng file CVS lần 2 46
Hình 4.18: Kết quả tìm kiếm sử dụng file CVS lần 2 46
Hình 4.19: Chọn trình duyệt Chromr để chạy kiểm thử 47
Hình 4.20: Câu lệnh cmd khi được thực thi 48
Hình 4.21: Testcase được chạy trên trình duyệt Chrome 49
Trang 10DANH MỤC CHỮ VIẾT TẮT
Trang 11LỜI MỞ ĐẦU
1 Lý do chọn đề tài
Ngày nay công nghệ thông tin phát triển nhanh chóng, kéo theo đó là hệthống mạng và phần mềm cũng gia tăng Từ đó nảy sinh vấn đề về việc đảmbảo chất lượng phần mềm được đáp ứng tốt, tránh xảy ra lỗi có thể gây ảnhhưởng tới kinh tế, xã hội Việc ngăn chặn lỗi càng sớm, càng làm giảm thiểuchi phí sửa chữa cho lỗi đó, có khi là cả hệ thống, phần mềm Những lỗi này
có thể do chính phần mềm có sẵn mà trước khi bàn giao hoặc cũng có thể do
có người cố tình phá hoại
Do đó, công tác kiểm thử cần được kỹ lưỡng nhằm ngăn chặn các lỗitiềm tàng bên trong phần mềm mà chưa kịp phát hiện Tuy nhiên vì phầnmềm có thể do nhiều người viết hoặc có nhiều module ghép lại nên việc kiểmthử sẽ rất mất thời gian cũng như công sức nếu làm thủ công Vì vậy, sử dụngcác công cụ kiểm thử tự động sẽ giúp ta thực hiện công việc một cách nhanhchóng, giảm nhân lực, thời gian và sai sót Hiện nay có rất nhiều công cụ hỗtrợ đã được viết ra như Csunit, Nunit, Jmeter, HP Loadrunner…Trong cáccông cụ kiểm thử đó không thể không nhắc đến Selenium IDE được biết đến
là một công cụ kiểm thử tự động các ứng dụng web
Với mong muốn có cái nhìn chính xác, rõ ràng hơn về quy trình kiểm thửphần mềm, đảm bảo chất lượng phần mềm và tiếp cận với công cụ SeleniumIDE, đồng thời định hướng cho nghề nghiệp sau khi ra trường nên em đã chọn
đề tài: "Triển khai kiểm thử các ứng dụng của Selenium IDE trên nhiều trìnhduyệt"
Trang 122 Mục tiêu của đề tài
Đề tài được thực hiện nhằm mục đích tìm hiểu về kiểm thử phần mềm,kiểm thử tự động phần mềm, đặc biệt là kiểm thử tự động các ứng dụng web.Sau đó tập trung nghiên cứu đặc điểm, chức năng của công cụ Selenium IDE
Từ đó xây dựng ứng dụng nhập môn học đăng ký cho sinh viên và thực hiện cáctrường hợp kiểm thử cho các chức năng của ứng dụng đó Chạy các kiểm thửtrên trình duyệt FireFox và Chrome Từ kết quả đánh giá được chất lượng củawebsite đó
3 Nội dung của đề tài
Đề tài nghiên cứu về công cụ kiểm thử tự động, từ đó tập trung nghiên cứu
về công cụ kiểm thử tự động Selenium IDE Tìm hiểu, phân tích và xây dựng ứng dụng nhập môn học đăng ký cho sinh viên bằng ngôn ngữ php và đưa ứng dụng chạy trên nền web Từ ứng dụng đó, sử dụng công cụ kiểm thử tự động Selenium IDE để kiểm thử lại ứng dụng để đưa ra kết quả đánh giá về chất lượng của ứng dụng đó.
4 Phương pháp nghiên cứu
- Nghiên cứu xây dựng ứng dụng nhập môn học đăng ký cho sinh viên
- Xây dựng cơ sở dữ liệu
- Xây dựng phần mềm
- Nghiên cứu về các chức năng của công cụ Selenium IDE
- Xây dựng các kịch bản test với công cụ kiểm thử tự động SeleniumIDE
Trang 13- Ứng dụng được công cụ kiểm thử Selenium IDE vào kiểm thử ứngdụng.
6 Bố cục đồ án
Dự kiến bài cáo cáo của em gồm 4 chương:
Chương 1: Tổng quan về phần mềm và kiểm thử phần mềm
Chương 2: Tổng quan về công cụ kiểm thử Selenium IDE
Chương 3: Xây dựng ứng dụng nhập môn học đăng ký cho sinh viên
Chương 4: Kiểm thử một số chức năng của ứng dụng bằng công cụ SeleniumIDE
Trang 14CHƯƠNG 1: TỔNG QUAN VỀ PHẦN MỀM VÀ KIỂM THỬ
PHẦN MỀM 1.1 Tổng quan về phần mềm
1.1.1.Lịch sử phát triển
- Thập niên 1940 : Các chương trình cho máy tính được viết bằng tay
- Thập niên 1950 : Các công cụ đầu tiên xuất hiện như là phần mềm biêndịch Macro Assembler và phần mềm thông dịch đã được tạo ra và sử dụngrộng rãi để nâng cao năng suất và chất lượng Các trình dịch được tối ưu hoálần đầu tiên ra đời
- Thập niên 1960 : Các công cụ của thế hệ thứ hai như các trình dịch tối
ưu hoá và công việc kiểm tra mẫu đã được dùng để nâng cao sản phẩm vàchất lượng Khái niệm công nghệ phần mềm đã được bàn thảo rộng rãi
- Thập niên 1970 : Các công cụ phần mềm, chẳng hạn trong UNIX cácvùng chứa mã, lệnh, vân…vân… được kết hợp với nhau Số lượng doanhnghiệp nhỏ về phần mềm và số lượng máy tính cỡ nhỏ tăng nhanh
- Thập niên 1980 : các máy PC và máy trạm ra đời Cùng lúc có sự xuấthiện của mô hình dự toán khả năng Lượng phần mềm tiêu thụ tăng mạnh
- Thập niên 1990 : Phương pháp lập trình hướng đối tượng ra đời Cácquá trình nhanh như là lập trình cực hạn được chấp nhận rộng rãi Trong thậpniên này, các thiết bị máy tính cầm tay phổ biến rộng rãi
- Hiện nay : Các phần mềm biên dịch và quản lý như là NET, PHP, Java,
… phát triển mạnh, số lượng nhiều và dễ sử dụng cũng như dễ học tập hơnnhiều
Trang 151.1.2.Quy trình phát triển phần mềm
Cũng như mọi ngành sản xuất khác, quy trình là yếu tố quan trọng đemlại sự thành công của sản phẩm Vậy quy trình sản xuất ra phần mềm gồmnhững giai đoạn cơ bản sau:
- Đặc tả yêu cầu (Requirements Speciffication): chỉ ra những yêu cầu từphía khách hàng bao gồm các yêu cầu chức năng và các yêu cầu phi chứcnăng
- Phát triển phần mềm (Development): tạo ra phần mềm thỏa mãn vớibản đặc tả yêu cầu
- Kiểm thử phần mềm (Validation/Testing): kiểm thử phần mềm để đảmbảo phần mềm sản xuất ra đáp ứng những yêu cầu được chỉ ra trong bản đặc
- Error/mistake: là hành động của con người dẫn đến kết quả sai khác
- Bug/Defect/Fault: là một khiếm khuyết trong một thành phần của hệthống mà nó có thể làm cho thành phần hoặc hệ thống này không thực hiệnđúng chức năng yêu cầu của nó
Trang 16- Failure: sự khác biệt giữa kết quả thực tế và kết quả mong đợi của mộtthành phần, hệ thống hoặc service nào đó.
1.1.4.Mối quan hệ giữa quy trình phát triển phần mềm và kiểm thử phần mềm
Hình 1.1: Mối quan hệ giữa quy trình phát triển phần mềm và kiểm thử phần
mềmPhát triển phần mềm và kiểm thử phần mềm có mối quan hệ khăng khítvới nhau Nhìn vào mô hình ta dễ dàng nhận thấy: lỗi được tìm thấy ở nhữngpha đầu tiên của quy trình phát triển phần mềm thì chi phí sửa chữa sẽ thấphơn so với nhưng pha sau Vì vậy, ta không thể chủ quan mà lơ là việc kiểmthử phần mềm ngay từ những giai đoạn đầu phát triển phần mềm Điều nàygiúp các doanh nghiệp giảm được chi phí cho việc sửa chữa Không nhữnggiảm chi phí mà còn làm giảm sai sót cũng kịp tiến độ, tăng độ tin cậy củakhách hàng
Trang 171.2.Kiểm thử phần mềm
1.2.1.Mục đích của việc kiểm thử phần mềm
Mục đích của kiểm thử phần mềm là tìm ra lỗi hay khiếm khuyết củaphần mềm từ đó ngăn chặn lỗi xảy ra Ngoài ra, kiểm thử phần mềm nhằmmục đích là lấy được sự tin tưởng về mức độ chất lượng và cung cấp thông tin
để đưa ra quyết định bàn giao sản phẩm
1.2.2.Các cấp độ của kiểm thử phần mềm
Có 4 cấp độ của kiểm thử phần mềm:
- Kiểm thử đơn vị (Unit test): là việc kiểm thử từng module nhỏ trongchương trình để tìm ra lỗi và khắc phục
- Kiểm thử tích hợp (Integration test): Sau khi chúng ta đã kiểm thử đơn
vị, ta tiến hành tích hợp từng module lại với nhau và kiểm thử trên khối đãtích hợp này
- Kiểm thử hệ thống (System test): là kiểm thử trên toàn bộ ứng dụng.Một khi toàn bộ thành phần đã được tích hợp lại với nhau, toàn bộ ứng dụng,toàn bộ hệ thống sẽ được kiểm thử để đảm bảo rằng đã đáp ứng được tiêuchuẩn chất lượng
- Kiểm thử chấp nhận (Acceptance test): kiểm thử chấp nhận có thể dokhách hàng đảm nhận trước khi bàn giao sản phẩm chính Nó sẽ đánh giá xemliệu ứng dụng có đáp ứng các thông số kỹ thuật và yêu cầu khách hàng đã đưa
ra hay chưa
1.2.3.Các loại kiểm thử
- Kiểm thử chức năng: kiểm thử các chức năng của phần mềm xem xétxem chức năng đã đầy đủ chưa, đã đáp ứng đúng yêu cầu mà theo bản đặc tảyêu cầu đúng chưa
Trang 18- Kiểm thử phi chức năng: đề cập đến các khía cạnh của phần mềm cóthể không liên quan đến một chức năng cụ thể hoặc hành động người dùng,chẳng hạn như hiệu suất phần mềm, khả năng bảo mật, tính khả dụng, tính ổnđịnh,…
- Alpha test: được thực hiện trong nội bộ, môi trường của doanh nghiệp,giữa đội lập trình và đội test
- Beta test: được thực hiện sau khi kiểm thử alpha thành công Các mẫusản phẩm dùng thử sẽ được đưa ra ngoài thị trường trước khi có bản chínhthức nhằm mục đích thu thập các ý kiến đánh giá, góp ý, phản hồi, về lỗi cũngnhư các ý tưởng phát triển sản phẩm tiếp theo của người dùng dành cho nhàphát triển sản phẩm
- Kiểm thử hồi quy (Regression test): kiểm thử này đảm bảo rằng khi có
sự thay đổi phần mềm, các lỗi đã được sửa không là nguyên nhân gây phátsinh ra các lỗi khác
- Kiểm thử lại (Retest): kiểm tra lại các lỗi đã tìm thấy và đã được sửangay tại nơi tìm ra lỗi
1.3.Kỹ thuật kiểm thử phần mềm
Có hai kỹ thuật kiểm thử chính:
1.3.1 Kiểm thử tĩnh (Static testing)
Kiểm thử tĩnh là sản phẩm phần mềm được kiểm tra bằng tay, hoặc bằngmột tập các tool, nhưng không được thực thi Các kỹ thuật của kiểm thử tĩnhbao gồm các kỹ thuật review:
- Informal reviews
- Walkthroughs
- Technical reviews
- Inspection
Trang 19Lợi ích: các kỹ thuật này được tiến hành sớm nên sớm nhận được cácphản hồi về các vấn đề chất lượng, phát hiện các lỗi sớm ở ngay giai đoạnđầu, công suất làm lại (nếu có) giảm đáng kể, làm tăng nhận thức về các vấn
đề chất lượng
1.3.2.Kiểm thử động (Dynamic testing)
Kiểm thử tự động là phần mềm được thực thi bằng cách sử dụng tập cácgiá trị đầu vào và tập các giá trị đầu ra tương ứng của nó được kiểm tra và sosánh với những gì mong đợi
Kiểm thử tự động được chia ra làm hai loại:
- Kiểm thử hộp đen (Black box testing): dùng để kiểm tra chức năng màkhông xem xét mã nguồn cũng như cấu trúc chương trình bên trong Khi kiểmthử sẽ quan tâm nhiều tới bộ dữ liệu kiểm thử đầu vào
Kỹ thuật kiểm thử hộp đen bao gồm: phân lớp tương đương, phân tíchgiá trị biên, kiểm thử mọi cặp, kiểm thử fuzz, kiểm thử dựa trên mô hình, matrận dấu vết, kiểm thử thăm dò, kiểm thử dựa trên đặc tả
- Kiểm thử hộp trắng (White box testing): khác với kiểm thử hộp đen,kiểm thử hộp trắng sẽ xem xét mọi module trong chương trình, các luồng thựchiện công việc để từ đó đưa ra các chiến lược, kế hoạch cụ thể cho việc kiểmthử
Kỹ thuật kiểm thử hộp trắng bao gồm: kiểm thử giao diện lập trình ứngdụng, bao phủ mã lệnh, các phương pháp gán lỗi, các phương pháp kiểm thửhoán chuyển, kiểm thử tính
Ngoài ra hiện nay có loại kiểm thử mới là kiểm thử hộp xám (Grey boxtesting) Kiểm thử hộp xám dựa trên những đặc tính của kiểm thử hộp trắng
và kiểm thử hộp đen Việc thao tác dữ liệu đầu vào và định dạng dữ liệu đầu
Trang 20ra là không rõ ràng Mục tiêu chính của kiểm thử hộp xám là kiểm thử cácứng dụng trên nền web (web base)
- Khả năng lặp: công cụ kiểm thử tự động có thể chạy lặp lại testcase vớimột bộ dữ liệu có sẵn bằng file excel hoặc csv… có thể lặp lại liên tục mộtthao tác mà con người không cần thao tác nhiều
- Khả năng tái sử dụng: với một bộ kiểm thử tự động, chúng ta có thể sửdụng cho nhiều phiên bản ứng dụng khác nhau
- Nhanh: vì sử dụng công cụ nên việc kiểm thử sẽ nhanh hơn so với việc
vi cho kiểm thử tự động là khó hơn nhiều so với kiểm thử thủ công
- Không thể thay thế hoàn toàn kiểm thử thủ công
- Hầu như ít có bản bằng tiếng việt để dễ đọc và học tập theo
Trang 211.4.2.Áp dụng kiểm thử tự động:
Áp dụng kiểm thử tự động khi:
- Những trường hợp kiểm thử cần thực hiện nhiều lần, lặp đi lặp lại,lượng testcase lớn cần thực hiện trong thời gian ngắn
- Kiểm thử cần thực hiện ở nhiều môi trường khác nhau
- Những dự án có tính ổn định, chức năng không thay đổi hiều trongtương lai
- Những trường hợp kiểm thử xác nhận hoạt động cơ bản
- Kiểm tra sự kết hợp của nhiều giá trị đầu vào ở cùng một bước nào đó
- Kiểm tra nhiều màn hình của dữ liệu đầu vào
Kiểm thử tự động được sử dụng trong các giai đoạn kiểm thử:
- Kiểm thử đơn vị
- Kiểm thử tích hợp
Trong các loại kiểm thử:
- Kiểm thử chức năng
- Kiểm thử hồi quy
Trong kỹ thuật kiểm thử:
- Kỹ thuật kiểm thử hộp đen
1.5.Các bước xây dựng kiểm thử tự động
Bước 1: Phân tích khả năng áp dụng kiểm thử tự động.
Hiển nhiên, chúng ta không thể tự động hoá mọi việc trong kiểm thửphần mềm được Có những phần mềm mới hay công nghệ viết ra phần mềm
mà những công cụ kiểm thử tự động hiện tại chưa hỗ trợ hoặc chỉ hỗ trợ mộtphần
Trang 22Bước 2: Lựa chọn công cụ kiểm thử tự động thích hợp.
Sau khi xác định được sản phẩm hiện tại có thể làm kiểm thử tự độnghay không, bước kế tiếp cần xác định nên sử dụng công cụ kiểm thử tự độngnào Công cụ kiểm thử nào hỗ trợ kiểm thử tự động cho công nghệ mà sảnphẩm sử dụng? Ưu nhược điểm của từng công cụ? Ngôn ngữ kịch bản nào màcông cụ kiểm thử sử dụng? Nhân sự hiện tại có quen thuộc với công cụ đóhay không?
Bước 3: Xây dựng môi trường làm việc thích hợp.
Môi trường làm việc bao gồm các khái niệm, chu trình, thủ tục và môitrường mà kịch bản kiểm thử tự động được thiết kế và viết ra Bên cạnh đó,
nó cũng nên bao gồm luôn cấu trúc thư mục, lưu trữ các kịch bản kiểm thửcũng như các mối quan hệ logic giữa các thành phần
Bước 4: Viết kịch bản kiểm thử, thực thi và phân tích kết quả.
Dựa trên các kịch bản kiểm thử đã được tạo ra bằng kiểm thử thủ công,dựa vào ngôn ngữ kịch bản mà công cụ kiểm thử tự động hỗ trợ, chúng ta viếtcác đoạn mã tương tác với sản phẩm phần mềm trên các môi trường và thựcthi nó Sau khi thực thi các đoạn mã, chúng ta cần phân tích các kết quả đạtđược và ghi lại các vấn đề của sản phẩm, nếu có
Trang 23CHƯƠNG 2: TỔNG QUAN VỀ CÔNG CỤ KIỂM THỬ
SELENIUM IDE 2.1 Tổng quan về Selenium
2.1.1 Lịch sử hình thành
- Selenium là một mã nguồn mở và một công cụ kiểm tra phần mềm tựđộng để kiểm tra các ứng dụng web Selenium có khả năng hoạt động trên cáctrình duyệt và hệ điều hành khác nhau Selenium không chỉ là một công cụ
mà còn là một bộ công cụ giúp người kiểm thử tự động hóa các ứng dụng trênnền web hiệu quả hơn
- Selenium được phát triển bởi ThoughtWorks từ năm 2004 với tên banđầu là JavaScriptTestRunner
- Năm 2005, Dan Fabulich và Nelson Sproul đưa ra một số sửa đổi choSelenium và được chấp thuận
- Đến năm 2007, tác giả Jason Huggins rời ThoughtWorks và gia nhậpSelenium team, một phần của Google và phát triển thành Selenium cho ổnđịnh
- Năm 2008 và 2009 Selenium được nâng cấp lên nhiều và có thể chạyđược từ xa trên bất kỳ hệ thống máy nào
Cấu trúc của Selenium gồm có 4 phần:
- Selenium IDE (Integrated Development Environment): là công cụ sửdụng giúp người dùng phát triển các trường hợp kiểm thử Nó là một add-on
hỗ trợ cho FireFox, vì vậy giao diện người dùng dễ sử dụng và phát triển cáctrường hợp kiểm thử Selenium IDE có tính năng ghi lại, và giữ tài khoảnngười dùng khi chúng được thực hiện và có thể chạy lại trên các trình duyệtkhác bằng cách sử dụng Selenium-RC
Trang 24- Selenium Gird: là một công cụ được sử dụng để chạy thử nghiệm songsong trên nhiều máy khác nhau và trên nhiều trình duyệt khác nhau giúp làmgiảm thiểu thời gian thực hiện.
- Selenium-RC (Remote Control): là giải pháp cho các kiểm thử cầnchạy trên nhiều trình duyệt Selenium-RC sử dụng ngôn ngữ lập trình để tạothêm các kiểm thử phức tạp hơn như đọc và viết các tập tin, truy vấn cơ sở dữliệu
- Selenium WebDrive: là sự kế thừa từ Selenium-RC SeleniumWebDrive cho phép ta lập trình các kiểm thử bằng ngôn ngữ lập trình và sau
đó truy xuất kết quả
2.1.2 Đặc điểm của Selenium
- Mã nguồn mở: Phải nói điểm này là điểm mạnh nhất của Selenium khi
so sánh với các test tool khác Vì Selenium là một mã nguồn mở nên chúng
ta có thể sử dụng nó mà không phải lo lắng về phí bản quyền hay thời hạn sửdụng
- Cộng đồng hỗ trợ: Vì là mã nguồn mở nên Selenium có một cộng đồng
hỗ trợ khá mạnh mẽ Bên cạnh đó, Google là nơi phát triển Selenium nênchúng ta hoàn toàn có thể yên tâm về sự hổ trợ miễn phí khi có vấn đề vềSelenium Tuy nhiên, đây cũng là một điểm yếu của Selenium Cơ bản vì làhàng miễn phí, cộng đồng lại đông nên một vấn đề có thể nhiều giải pháp, và
có thể một số giải pháp là không hữu ích Mặc khác, chúng ta không thể hốithúc hay ra deadline cho sự hỗ trợ
- Selenium hỗ trợ nhiều ngôn ngữ lập trình
- Selenium hỗ trợ chạy trên nhiều OS khác nhau với mức độ chỉnh sửascript hầu như là không có Thực sự thì điều này phụ thuộc phần lớn vào khảnăng viết script của chúng ta
Trang 25- Chạy test case ở backround: Khi chúng ta thực thi một test scrpit,chúng ta hoàn toàn có thể làm việc khác trên cùng một máy PC Điều này hỗtrợ giúp chúng ta không cần tốn quá nhiều tài nguyên máy móc khi chạy testscript.
- Không hỗ trợ Win app Selenium thực sự chỉ hỗ trợ chúng ta tương tácvới Browser mà không hỗ trợ chúng ta làm việc với các Win app, kể cả Windialog như Download/Upload – ngoại trừ Browser Alarm Vậy nên, để xử lýcác trường hợp cần tương tác với hệ thống hay một app thứ ba, chúng ta cần
một hay nhiều thư viện khác như AutoIt hay Coded UI.
2.1.3 Ưu, nhược điểm của Selenium
- Ứng dụng còn có tác dụng tăng tốc độ thử nghiệm lên rất nhiều lần
- Những script sau khi được ghi có thể được tái sử dụng nhiều lần
- Selenium hỗ trợ cho nhiều ngôn ngữ lập trình Java, Net và các ngônngữ lập trình tiêu chuẩn khác
- Một trong những công cụ gọn nhẹ và đơn giản nhất trong cài đặt
- Selenium IDE hay Selenium Core đều có thể chạy được trên mọi nềntảng như : Windows, Linux hay MAC
- Khi dùng tool tự động để kiểm tra, nó hỗ trợ những ưu điểm sau:
Việc kiểm tra hồi quy được thực hiện 1 cách thường xuyên
Phản hồi nhanh chóng để phát triển trong quá trình kiểm thử
Trang 26 Hầu như không giới hạn sự thực hiện lặp đi lặp lại trong trườnghợp thử nghiệm.
- Vì là các công cụ để kiểm thử trên các ứng dụng trên nền web nên dễhiểu là Selenium không thể dùng để test các ứng dụng chạy trên nềnWindows hay Linux
- Selenium chỉ có thể hoạt động với một cửa sổ duy nhất
- Selenium tích hợp với các hệ thống phát triển trên nền tảng web, nênkhông thích hợp với các phần mềm ứng dụng khác
2.2 Công cụ Selenium IDE
2.2.1 Giới thiệu
Selenium IDE là một plug-in FireFox dễ sử dụng và phát triển các trườnghợp kiểm thử Nó cho phép người dùng ghi lại và sau đó có thể chạy lại cáchành động của người sử dụng trên trình duyệt FireFox
Tuy nhiên, các tập lệnh được ghi lại có thể được chuyển đổi sang cácngôn ngữ lập trình khác nhau được Selenium hỗ trợ và các tập lệnh này cũng
có thể được thực hiện trên nhiều trình duyệt khác nhau bằng cách chúng ta sử
Trang 27dụng Selenium RC và chỉ định tên của bộ ứng dụng thử nghiệm trên dònglệnh đó.
2.2.2 Đặc điểm của Selenium IDE
Ưu điểm:
- Dễ dàng cài đặt, sử dụng, tiết kiệm thời gian
- Không yêu cầu kinh nghiệm lập trình
- Có thể convert qua các ngôn ngữ lập trình khác như: HTML, Java, C#,Python, Ruby
- Có thể debug, set breakpoint, thêm comment vào script cho dễ đọc
- Không hỗ trợ test report (cần cài đặt thêm để hiển thị report)
- Không cho phép đọc dữ liệu từ file: text (.txt), excel (.xls), csv… (cầncài đặt thêm để đọc dữ liệu từ file csv/ xml)
- Không hỗ trợ database/ mobile testing (việc này là hơi quá với 1 plugintrình duyệt)
- Khó khăn khi xử lí những case/ worflow phức tạp
- Không thể đảm bảo bất kì add-in nào được yêu cầu nếu selenium khôngthể nhận ra đối tượng
- Hỗ trợ được cung cấp cho Selenium là rất ít
Trang 282.2.3 Cài đặt Selenium IDE
Bước 1: Sử dụng FireFox và mở trang của Selenium:
http://selenium.org/download/
Trong phần Selenium IDE nhấp vào liên kết hiển thị số phiên bản hiện tại nhưhình dưới:
Hình 2.1: Tải Selenium IDE
Bước 2: Tiện ích bổ sung của firefox sẽ bật lên với hai tùy chọn “cho phép”
và “không cho phép” Người dùng phải bấm vào cho phép cài đặt
Hình 2.2: Lưu file Selenium IDE
Trang 29Bước 3: Trình cài đặt tiện ích cảnh báo người dùng về các tiện ích không
đáng tin cậy Nhấp vào “cài đặt ngay”
Hình 2.3: Cài đặt Selenium IDE
Bước 4: Sau khi cài đặt xong, khời động lại trình duyệt firefox Để sử dụng
được Selenium IDE, truy cập bằng cách tools >> selenium IDE
Hình 2.4: Cách khởi động Selenium IDE trên firefox
Selenium cũng có thể được truy cập trực tiếp từ thanh trình đơn nhanh chóngnhư hình dưới:
Hình 2.5: Cách khởi động nhanh Selenium IDE
Trang 302.2.4 Tính năng của Selenium IDE
Hình dưới đây mô tả tính năng của Selenium IDE
Hình 2.6: Tính năng của Selenium IDE
Main memu: gồm các chức năng chính là:
- Menu File: có các tùy chọn cho Test Case và Test Suite Sử dụng choviệc thêm một Test Case mới, mở một Test Case, lưu một Test Case, xuất raTest Case bằng ngôn ngữ mà bạn lựa chọn Bạn cũng có thể mở các TestCase gần đây Các tùy chọn này cũng có sẵn cho Test Suite
- Menu Edit: cho phép sao chép, dán, xóa, hoàn tác và lựa chọn tất cả cácthao tác để chỉnh sửa các lệnh trong Test Case của bạn
- Menu Option: cho phép thay đổi các thiết lập Bạn có thể thiết lập giátrị timeout cho một số các câu lệnh, add user-defined user extensions để làm
cơ sở thiết lập cho các câu lệnh Selenium, và xác định định dạng (ngôn ngữ)được sử dụng khi lưu các test case của bạn
Trang 31- Help: là trình đơn trợ giúp chuẩn của FireFox Chỉ có một mục trêntrình đơn này “Tài liệu người dùng” liên quan đến Selenium IDE.
Tool Bar:
Thanh công cụ chứa các nút để kiểm soát việc thực hiện các trường hợp kiểmthử
Hình 2.7: Thanh công cụ Tool Bar
- Kiểm soát tốc độ: cho phép kiểm thử chạy nhanh hoặc chậm
Hình 2.10: Chạy testcase được chọn
- Tạm dừng / Tiếp tục: Cho phép dừng lại và bắt đầu lại của một trườnghợp thử nghiệm đang chạy
Hình 2.11: Tạm dừng/ Tiếp tục
Trang 32- Step: Cho phép step qua một trường hợp thử nghiệm bằng cách chạytừng lệnh một lần Sử dụng để gỡ lỗi các trường hợp thử nghiệm.
Trang 33Hình 2.15: Test script pane
- Phần phía bên tay trái cho phép mở một hoặc nhiều bộ kiểm thử Cácthử nghiệm đã được chạy và số thử nghiệm đã thất bại
Selenium IDE có thành phần mã hóa màu cho mục đích cảnh báo Saukhi thực hiện trường hợp kiểm thử: hộp kiểm thử màu xanh là những trườnghợp kiểm thử thành công tức không thất bại Những hộp kiểm thử màu đỏ là