Tải bản đầy đủ (.doc) (70 trang)

TRIỂN KHAI KIỂM THỬ CÁC ỨNG DỤNG CỦA SELENIUM IDE TRÊN NHIỀU TRÌNH DUYỆT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.62 MB, 70 trang )

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA 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


TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA 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

Mã ngành

: 52480201

NGƯỜI HƯỚNG DẪN: ThS.NGUYỄN NGỌC KHẢI

Hà Nội – Năm 2017


LỜI CAM ĐOAN


Em 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àn
toà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ọi
tà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ố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


LỜ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ủa
trường Đại học Tài Nguyên và Môi trường Hà Nội và quý thầy cô khoa Công
nghệ 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ận
tì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 khoa
Cô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ình
học tập và rèn luyện, để em đủ hiểu biết và kiến thức thực hiện đồ án tốt
nghiệ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ọ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ắn
khô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


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
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 đọc/lấ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.........................................................................................1
PHỤ LỤC.................................................................................................................. 2


DANH MỤC HÌNH ẢNH
LỜI CAM ĐOAN.......................................................................................................i
LỜI CẢM ƠN...........................................................................................................ii
MỤC LỤC................................................................................................................ iii
DANH MỤC HÌNH ẢNH........................................................................................vi
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 đọc/lấ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.........................................................................................1
PHỤ LỤC.................................................................................................................. 2


DANH MỤC CHỮ VIẾT TẮT
Từ viết tắt
IDE

RC

Tên Tiếng Anh

Integrated Development Environment
Remote Control


1

LỜ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ảm
thiểu chi 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ỗi
tiềm tàng bên trong phần mềm mà chưa kịp phát hiện. Tuy nhiên vì phần mề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ểm thử
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ụng cá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 nhanh
chó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 đế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ụ

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ên
nhiề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.


2

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ác
trườ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ủa
website đó.
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 Selenium
IDE.

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ằng
ngô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ử ứng
dụng.
6. Bố cục đồ án
Dự kiến bài cáo cáo của em gồm 4 chương:


3

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ụ
Selenium IDE


4

CHƯƠ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ên
dịch Macro Assembler và phần mềm thông dịch đã được tạo ra và sử dụng
rộ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ác
vùng chứa mã, lệnh, vân…vân… được kết hợp với nhau. Số lượng doanh
nghiệ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ất
hiệ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ác
quá trình nhanh như là lập trình cực hạn được chấp nhận rộng rãi. Trong thập
niê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ơn
nhiều.


5

1.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 đem
lạ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ồm
nhữ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ức
năng.[2]

- Phát triển phần mềm (Development): tạo ra phần mềm thỏa mãn với
bả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ách
hà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 đổi
theo những cách khác nhau. Tuy nhiên, tùy vào ứng dụng, tùy vào nhà sản
xuất mà có thể sử dụng các mô hình khác nhau để chọn quy trình sản xuất
phầ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ả mong
muố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ó.


6

- Failure: sự khác biệt giữa kết quả thực tế và kết quả mong đợi của một
thà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ềm

Phát triển phần mềm và kiểm thử phần mềm có mối quan hệ khăng khít
vớ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ững
pha đầ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ấp
hơn so với nhưng pha sau. Vì vậy, ta không thể chủ quan mà lơ là việc kiểm
thử phần mềm ngay từ những giai đoạn đầu phát triển phần mềm. Điều này
giúp các doanh nghiệp giảm được chi phí cho việc sửa chữa. Không những
giả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ủa
khá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ủa
phầ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


7

mụ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ỏ trong
chươ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êu
chuẩn chất lượng.
- Kiểm thử chấp nhận (Acceptance test): kiểm thử chấp nhận có thể do

khách hàng đảm nhận trước khi bàn giao sản phẩm chính. Nó sẽ đánh giá xem
liệ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ét
xem 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.


8

- Beta test: được thực hiện sau khi kiểm thử alpha thành công. Các mẫu
sản phẩm dùng thử sẽ được đưa ra ngoài thị trường trước khi có bản chính
thứ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ũng
như 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át
sinh 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ửa
ngay 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ằ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ác
phả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á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]


9

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ểm
thử 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ích
giá trị biên, kiểm thử mọi cặp, kiểm thử fuzz, kiểm thử dựa trên mô hình, ma
trậ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ực
hiện công việc để từ đó đưa ra các chiến lược, kế hoạch cụ thể cho việc kiểm
thử.[5]

Kỹ thuật kiểm thử hộp trắng bao gồm: kiểm thử giao diện lập trình ứng
dụ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 box
testing). 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]
1.4.Kiểm thử phần mềm tự động
1.4.1.Ưu, nhược điểm của kiểm thử tự động
Ưu điểm
- Độ tin cậy: nhờ sự ổn định của công cụ kiểm thử tự động so với con
người, nhất là trong trường hợp có quá nhiều testcase cần thực thi, nên độ tin
cậy của kiểm thử tự động cao hơn kiểm thử thủ công.


10

- Khả năng lặp: công cụ kiểm thử tự động có thể chạy lặp lại testcase
vớ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ục
mộ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ới
việ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 được
thờ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 trong
tươ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ị


11

- 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ột
phầ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ự động
hay không, bước kế tiếp cần xác định nên sử dụng công cụ kiểm thử tự động
nào. Công cụ kiểm thử nào hỗ trợ kiểm thử tự động cho công nghệ mà sản
phẩ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ôi
trườ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ết
cá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


12

thi 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ó.


13

CHƯƠ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ác
trì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ên
nề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 cho
Selenium và được chấp thuận.[6]
- Đến năm 2007, tác giả Jason Huggins rời ThoughtWorks và gia nhập
Selenium 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


14


trường hợp kiểm thử. Selenium IDE có tính năng ghi lại, và giữ tài khoản
ngườ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ệt
khá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 song
song trên nhiều máy khác nhau và trên nhiều trình duyệt khác nhau giúp làm
giả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ần
chạy trên nhiều trình duyệt. Selenium-RC sử dụng ngôn ngữ lập trình để tạo
thê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. Selenium
WebDrive 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ê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ối
thúc hay ra deadline cho sự hỗ trợ.
- Selenium hỗ trợ nhiều ngôn ngữ lập trình.


×