MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC HÌNH ẢNH LỜI MỞ ĐẦU 1 1. Lý do chọn đề tài 1 2. Mục tiêu của đề tài 1 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 2 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.2.Quy trình phát triển phần mềm 5 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 6 1.2.1.Mục đích của việc kiểm thử phần mềm 6 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) 8 1.4.Kiểm thử phần mềm tự động 9 1.4.1.Ưu, nhược điểm của kiểm thử tự động 9 1.4.2.Áp dụng kiểm thử tự động: 10 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 17 2.2.4 Tính năng của Selenium IDE 19 2.2.5 Cách xây dựng trường hợp kiểm thử. 23 2.2.6 Các lệnh Selenium IDE cơ bản 26 CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG NHẬP MÔN HỌC ĐĂNG KÝ CHO SINH VIÊN 28 3.1.Phân tích lợi ích của ứng dụng 28 3.2.Thiết kế cơ sở dữ liệu 30 3.3.Xây dựng ứng dụng 31 3.3.1. Đối tượng sử dụng 31 3.3.2. Chức năng của ứng dụng 31 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 38 4.1 Phân tích các trường hợp kiểm thử của chức năng thêm 38 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 38 4.3 Thiết kế Testcase kiểm thử 39 4.4 Kiểm thử tự động chức năng thêm trên ứng dụng 39 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 42 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 45 4.7 Kiểm thử ứng dụng trên nhiều trình duyệt 48 4.7.1 Cách cài đặt Selenium IDE trên nhiều trình duyệt 48 4.7.2 Tiến hành chạy Testcase 49 4.8 Kết luận chương 50 KẾT LUẬN VÀ KIẾN NGHỊ 51 TÀI LIỆU THAM KHẢO PHỤ LỤC
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
TRIỂ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
Trang 2KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄ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
NGƯỜI HƯỚNG DẪN: ThS.NGUYỄN NGỌC KHẢI
Hà Nội – Năm 2017
Trang 3Em tên là Nguyễn Thị Thùy Linh, là sinh viên lớp DH3C2 – TrườngĐại họ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 đồ ántốt nghiệ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 4Trong 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 đườnghọc tậ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 5LỜI CAM ĐOAN
LỜI CẢM ƠN
MỤC LỤC
DANH MỤC HÌNH ẢNH
LỜI MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu của đề tài 1
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 2
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.2.Quy trình phát triển phần mềm 5
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 6
1.2.1.Mục đích của việc kiểm thử phần mềm 6
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) 8
1.4.Kiểm thử phần mềm tự động 9
1.4.1.Ưu, nhược điểm của kiểm thử tự động 9
1.4.2.Áp dụng kiểm thử tự động: 10
Trang 6CHƯƠ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 17
2.2.4 Tính năng của Selenium IDE 19
2.2.5 Cách xây dựng trường hợp kiểm thử 23
2.2.6 Các lệnh Selenium IDE cơ bản 26
CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG NHẬP MÔN HỌC ĐĂNG KÝ CHO SINH VIÊN 28
3.1.Phân tích lợi ích của ứng dụng 28
3.2.Thiết kế cơ sở dữ liệu 30
3.3.Xây dựng ứng dụng 31
3.3.1 Đối tượng sử dụng 31
3.3.2 Chức năng của ứng dụng 31
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 38
4.1 Phân tích các trường hợp kiểm thử của chức năng thêm 38
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 38
4.3 Thiết kế Testcase kiểm thử 39
4.4 Kiểm thử tự động chức năng thêm trên ứng dụng 39
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 42
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 45
Trang 74.7.1 Cách cài đặt Selenium IDE trên nhiều trình duyệt 48
4.7.2 Tiến hành chạy Testcase 49
4.8 Kết luận chương 50
KẾT LUẬN VÀ KIẾN NGHỊ 51 TÀI LIỆU THAM KHẢO
PHỤ LỤC
Trang 8Hình 1.1: Mối quan hệ giữa quy trình phát triển phần mềm và kiểm thử 6
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 18
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 19
Hình 2.7: Thanh công cụ Tool Bar 20
Hình 2.8: Kiểm soát tốc độ 20
Hình 2.9: Chạy tất cả 20
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 21
Hình 2.13: Áp dụng quy tắc Rollup 21
Hình 2.14: Ghi lại 21
Hình 2.15: Test script pane 22
Hình 2.16: Ghi và thêm các lệnh kiểm thử 24
Hình 2.17: Nhập dữ liệu và hiển thị câu lệnh 24
Hình 2.18: Tạo mới test suite 25
Hình 3.1: Thiết kế cơ sở dữ liệu 30
Hình 3.2: Danh sách sinh viên 32
Hình 3.3: Thêm thông tin sinh viên 32
Hình 3.4: Sửa thông tin sinh viên 33
Hình 3.6: Tìm kiếm thông tin sinh viên 35
Hình 3.5: Xóa thông tin sinh viên 35
Hình 3.7: Màn hình khi có kết quả tìm kiếm phù hợp 36
Trang 9Hình 4.1: Thiết kế các case kiểm thử 39
Hình 4,2: Sử dụng câu lệnh javascript để tạo dữ liệu 40
Hình 4.3: Chạy testcase thêm lần 1 40
Hình 4.4: Kết quả chạy testcase thêm lần 1 41
Hình 4.5: Chạy testcase thêm lần 2 41
Hình 4.6: Kết quả chạy testcase thêm lần 2 42
Hình 4.7: Sử dụng câu lệnh while trong tìm kiếm 43
Hình 4.8: Chạy tự động tìm kiếm sử dụng câu lệnh while lần 1 43
Hình 4.9: Kết quả tìm kiếm sử dụng câu lệnh while lần 1 44
Hình 4.10: Chạy tự động tìm kiếm sử dụng câu lệnh while lần 2 44
Hình 4.11: Kết quả tìm kiếm sử dụng câu lệnh while lần 2 44
Hình 4.12: Tại file dạng CVS 45
Hình 4.13: Chọn file CVS đã tạo trong thư mục 46
Hình 4.14: Sử dụng câu lệnh để đọc file CVS 46
Hình 4.15: Chạy tự động tìm kiếm sử dụng file CVS lần 1 47
Hình 4.16: Kết quả tìm kiếm sử dụng file CVS lần 1 47
Hình 4.17: Chạy tự động tìm kiếm sử dụng file CVS lần 2 47
Hình 4.18: Kết quả tìm kiếm sử dụng file CVS lần 2 48
Hình 4.19: Chọn trình duyệt Chromr để chạy kiểm thử 48
Hình 4.20: Câu lệnh cmd khi được thực thi 49
Hình 4.21: Testcase được chạy trên trình duyệt Chrome 50
Trang 10Từ viết tắt Tên Tiếng Anh
IDE Integrated Development Environment
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đảm bả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ảnh hưở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ảmthiểu chi phí sửa chữa cho lỗi đó, có khi là cả hệ thống, phần mềm Những lỗinà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 Trong các công cụ kiểm thử đó không thể không nhắc đếnSelenium IDE được biết đến là một công cụ kiểm thử tự động các ứng dụngweb
Với mong muốn có cái nhìn chính xác, rõ ràng hơn về quy trình kiểmthử 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ụSelenium IDE, đồ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ênnhiều trình duyệt"
2 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
Trang 12Sau đó 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
5 Kết quả đạt được
- Xây dựng được ứng dụng nhập môn học đăng ký cho sinh viên bằngngôn ngữ php chạy trên nền web
- Hiểu được chức năng của công cụ Selenium IDE
- Ứ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:
Trang 13Chươ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ênChương 4: Kiểm thử một số chức năng của ứng dụng bằng công cụSelenium IDE
Trang 14CHƯƠNG 1: TỔNG QUAN VỀ PHẦN MỀM VÀ KIỂM THỬ
PHẦN MỀM
Tóm tắt chương: Chương 1 cho biết về lịch sử phát triển của phần mềm, quy trình phát triển một phần mềm như thế nào Các lỗi của một phần mềm có thể sẽ gặp và mục đích cũng như mức độ của việc kiểm thử Sau đó, chương 1 sẽ trình bày về kiểm thử phần mềm tự động và cách để xây dựng kiểm thử tự động.
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.[1]
- 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.[1]
- 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.[1]
- 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.[1]
- 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.[1]
- 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.[1]
- 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.[2]
- 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.[2]
- Kiểm thử phần mềm (Validation/Testing): kiểm thử phần mềm đểđảm bả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 tả yêu cầu.[2]
- Thay đổi phần mềm (Evolution): đáp ứng nhu cầu thay đổi từ kháchhàng về tất cả các yêu cầu.[2]
Tùy theo mô hình phát triển phần mềm mà quy trình có thể thay đổitheo những cách khác nhau Tuy nhiên, tùy vào ứng dụng, tùy vào nhà sảnxuất mà có thể sử dụng các mô hình khác nhau để chọn quy trình sản xuấtphần mềm phù hợp
1.1.3.Lỗi phần mềm
Lỗi phần mềm là những sai khác của phần mềm giữa kết quả mongmuốn với kết quả thực tế Tùy vào lúc phát hiện ra lỗi mà ta có các định nghĩa
về lỗi:
- 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
1.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ằm
Trang 17mụ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:[3]
- 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
- 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
Trang 18- 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ặcbằng mộ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ĩnh bao gồm các kỹ thuật review:[3]
- Informal reviews (Các cuộc họp không chính thức)
- Walkthroughs (Các cuộc họp mặt)
- Technical reviews (Đánh giá kỹ thuật)
- Inspection (Kiểm tra)
Lợ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ậpcác giá trị đầu vào và tập các giá trị đầu ra tương ứng của nó được kiểm tra và
so sánh với những gì mong đợi.[4]
Trang 19Kiể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.[4]
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ử.[5]
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
ra 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).[5]
Trang 20- Khả năng lặp: công cụ kiểm thử tự động có thể chạy lặp lại testcasevới một bộ dữ liệu có sẵn bằng file excel hoặc csv… có thể lặp lại liên tụcmột thao 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ớiviệc tự tay kiểm thử
- Chi phí thấp: nếu áp dụng kiểm thử đúng cách sẽ giúp tiết kiệm đượcthời gian, tiết kiệm chi phí, cũng như tiết kiệm nguồn nhân lực
Nhược điểm
- Mất chi phí cho các công cụ tự động như bản quyền, bảo trì, tìm hiểu,
…
- Khó mở rộng và khó bảo trì: trong cùng một dự án, để mở rộng phạm
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
1.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ị
Trang 21- 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
Bướ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ực
Trang 22thi 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
Tóm tắt nội dung chương: Chương 2 này xin trình bày về quá trình hình thành công
cụ Selenium, cũng như công cụ Selenium IDE Ngoài ra, còn trình bày về các đặc điểm, ưu nhược điểm của công cụ cũng như các chức năng của công cụ Selenium IDE Các câu lệnh và các sử dụng công cụ Selenium IDE để lưu các trưởng hợp kiểm thử.
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.[6]
- Selenium được phát triển bởi ThoughtWorks từ năm 2004 với tên banđầu là JavaScriptTestRunner.[6]
- Năm 2005, Dan Fabulich và Nelson Sproul đưa ra một số sửa đổi choSelenium và được chấp thuận.[6]
- Đế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.[7]
- 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.[7]
Cấu trúc của Selenium gồm có 4 phần:[8]
- 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ác
Trang 24trườ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.
- 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 Seleniumnên chú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
Trang 25- 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.
- 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:
Trang 26Việ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ử
Hầu như không giới hạn sự thực hiện lặp đi lặp lại trong trường hợpthử nghiệm
- Selenium không có khả năng test GUI (giao diện người dùng đồ họa)
vì không có các hàm hỗ trợ kiểm thử giao diện như bắt cỡ chữ, cỡ tiêu đề,màu sắc,
- 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áctrường hợp kiểm thử Nó cho phép người dùng ghi lại và sau đó có thể chạylại các hà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
Trang 27có 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ửdụ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 1plugin trì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 seleniumkhông thể nhận ra đối tượng
- Hỗ trợ được cung cấp cho Selenium là rất ít
2.2.3 Cài đặt Selenium IDE
Bước 1: Sử dụng FireFox và mở trang của Selenium:
http://selenium.org/download/
Trang 28Trong phần Selenium IDE nhấp vào liên kết hiển thị số phiên bản hiệntạ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
Bướ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
Trang 29Bướ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 nhanhchóng như hình dưới:
Hình 2.5: Cách khởi động nhanh Selenium IDE
2.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
Trang 30Main 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ác thao 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
- 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ợpkiểm thử
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.8: Kiểm soát tốc độ
- Chạy tất cả: Chạy toàn bộ bộ kiểm thử khi một gói thử nghiệm vớinhiều trường hợp thử nghiệm được tải
Hình 2.9: Chạy tất cả
Trang 31- Chạy: Chạy kiểm thử hiện đang được chọn Khi chỉ có một kiểm thử,nút này và nút Chạy tất cả có tác dụng như nhau
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
Trang 32Test script pane: nơi hiển thị tất cả các trường hợp Testcase.
Hì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àđặc trưng cho sự thất bại của kiểm thử, màu đỏ dừng lại tại đâu chứng tỏ ngaytại đó đã gặp lỗi
Trang 33- Bên phía tay phải là nơi ghi lại các hành động của người dùng trêntrình duyệt Gồm hai thẻ:
+ Thẻ Table: thẻ này có một bảng gồm ba cột: Command là các lệnhtròn Selenium, Target là các link hoặc id hoặc button,…Value là giá trịđầu vào Các giá trị ở ba cột có thể được thay đổi, xóa hoặc thêm mới
do người dùng chỉnh sửa
+ Thẻ Source: hiển thị testcase với nguồn gốc trong tập tin sẽ đượclưu trữ Định dạng mặc định là HTML có thể thay đổi bằng ngôn ngữlập trình java, C#, hoặc ngôn ngữ khác như Python…Source cũng chophép chỉnh sửa các test case ở nguyên dạng của nó, bao gồm các thaotác cắt, dán, sao chép
Log pane:
Là phần dưới nằm phía dưới Test script pane Phần này gồm các cửa sổLog/Reference/UI-Element/Rollup: cửa sổ này có chức năng: thông báo lỗi,hiển thị tài liệu cho câu lệnh hiện tại
Base URL: Link trang web mà bạn sẽ hoặc đang kiểm thử.
2.2.5 Cách xây dựng trường hợp kiểm thử.
Để có thể test được phần mềm sử dụng công cụ Selenium IDE, ta cầnxây dựng trường hợp kiểm thử
Các bước xây dựng kiểm thử sử dụng Selenium IDE:
Bước 1: Ghi và thêm các lệnh kiểm thử
- Khởi chạy trình duyệt Firefox và nhập vào trang web muốn kiểm thử
Ở ví dụ này chọn trang web có link: http://newtours.demoaut.com/
- Mở Selenium IDE trên FireFox Lúc này nút ghi được mặc định sẵntrong chế độ Record Nút này có thể tắt đi bằng cách vào Options ->Options và bỏ chọn “Start recording immediately on open”
Trang 34- Nhấp chuột phải vào khoảng trống trong trang web và chọn “Show AllAvailable Commands” -> “asserTitle exact:Welcome: Mercury Tours” nhưhình dưới:
Hình 2.16: Ghi và thêm các lệnh kiểm thử
- Nhập vào username và password
Hình 2.17: Nhập dữ liệu và hiển thị câu lệnh
- Tệp có thể được lưu với đuôi mở rộng htm, shtml, xhtml
Bước 3: Lưu toàn bộ các kiểm thử
Một bộ test suite có thể là một tập hợp của nhiều test case Để tạo được
bộ test suite thì ta làm như sau: