ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
==========oOo==========
TRƢƠNG HỒNG NAM
XÂY DỰNG HỆ THỐNG KIỂM THỬ TỰ ĐỘNG
CHO CÁC GIAI ĐOẠN CÀI ĐẶT PHẦN MỀM
LUẬN VĂN THẠC SĨ
HÀ NỘI - 2011
TIEU LUAN MOI download :
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
==========oOo==========
TRƢƠNG HỒNG NAM
XÂY DỰNG HỆ THỐNG KIỂM THỬ TỰ ĐỘNG
CHO CÁC GIAI ĐOẠN CÀI ĐẶT PHẦN MỀM
Ngành: Công nghệ thông tin
Chuyên ngành: Công nghệ phần mềm
Mã số: 604810
LUẬN VĂN THẠC SĨ
NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. TRƢƠNG NINH THUẬN
HÀ NỘI - 2011
TIEU LUAN MOI download :
LỜI CAM ĐOAN
Tôi xin cam đoan rằng, đây là kết quả nghiên cứu của tơi trong đó có sự giúp đỡ
rất lớn của thầy hướng dẫn và các đồng nghiệp ở cơ quan. Các nội dung nghiên cứu và
kết quả trong đề tài này hoàn toàn trung thực.
Trong luận văn, tơi có tham khảo đến một số tài liệu của một số tác giả đã được
liệt kê tại phần “Tài liệu tham khảo” ở cuối luận văn.
Tác giả luận văn
Trương Hồng Nam
TIEU LUAN MOI download :
MỤC LỤC
Chương 1. Mở đầu ............................................................................................................................1
1. Sự cần thiết của đề tài.............................................................................................................. 1
2. Nội dung của luận văn ............................................................................................................. 1
3. Cấu trúc của luận văn .............................................................................................................. 1
Chương 2. Tổng quan về kiểm thử tự động .....................................................................................3
2.1. Khái niệm về kiểm thử tự động............................................................................................ 3
2.2. Lợi ích ................................................................................................................................... 3
2.3. Sự khác nhau giữa kiểm thử và kiểm thử tự động ............................................................... 4
2.3.1. Kiểm thử ....................................................................................................................... 4
2.3.2. Kiểm thử tự động .......................................................................................................... 5
2.4. Các bước thực hiện kiểm thử tự động .................................................................................. 7
2.4.1. Đánh giá mức độ tự động hóa ...................................................................................... 7
2.4.2 Tiến trình tự động hóa ................................................................................................... 8
2.5. Các loại cơng cụ kiểm thử tự động ...................................................................................... 9
Chương 3. Mô tả bài toán và yêu cầu .............................................................................................12
3.1. Giới thiệu hệ thống thông tin SEC ..................................................................................... 12
3.2. Định nghĩa các giai đoạn cài đặt ........................................................................................ 13
3.3. Vấn đề của hệ thống SEC................................................................................................... 13
3.4. Yêu cầu ............................................................................................................................... 14
3.5. Đặc tả yêu cầu .................................................................................................................... 14
3.5.1. Các công cụ cần thiết .................................................................................................. 14
3.5.2. Kịch bản cài đặt và gỡ cài đặt ..................................................................................... 16
3.5.3. Tự động hóa cài đặt và gỡ cài đặt ............................................................................... 17
3.5.4. Log output ................................................................................................................... 19
Chương 4. Thiết kế chương trình ...................................................................................................20
4.1. Chi tiết về chức năng .......................................................................................................... 20
4.2. Phạm vi ............................................................................................................................... 20
4.2.1. Mục tiêu của HTKTTĐ .............................................................................................. 20
4.2.3. Phạm vi tự động hóa ................................................................................................... 21
4.3. Thiết kế chức năng ............................................................................................................. 21
4.3.1 Thiết kế tổng quan ....................................................................................................... 21
4.3.2. Thiết kế chi tiết ........................................................................................................... 26
Chương 5. Cài đặt và đánh giá .......................................................................................................49
5.1. Một số giao diện của hệ thống ........................................................................................... 49
5.1.1. Giao diện quản lý file kiểm thử .................................................................................. 49
5.1.2. Giao diện quản lý test case ......................................................................................... 50
5.1.3. Giao diện quản lý bộ cài đặt ....................................................................................... 51
5.2. Đánh giá năng suất ............................................................................................................. 52
5.2.1. Các bước thực hiện kiểm thử ...................................................................................... 52
5.2.2. Phương pháp đánh giá ................................................................................................ 53
5.2.3. Kết quả ........................................................................................................................ 53
TIEU LUAN MOI download :
5.1.4. Nhận xét ...................................................................................................................... 55
Chương 6. Kết luận .........................................................................................................................57
TÀI LIỆU THAM KHẢO ..............................................................................................................59
TIEU LUAN MOI download :
Bảng các từ viết tắt
#
1
2
3
4
Thuật ngữ
CSV
HTKTTĐ
OS
PC
Ý nghĩa
Comma separated values
Hệ thống kiểm thử tự động
Operating system
Personal computer
TIEU LUAN MOI download :
Chương 1
Mở đầu
1. Sự cần thiết của đề tài
Trong tất cả các mơ hình phát triển phần mềm, các hoạt động: lập trình, kiểm
thử, gỡ lỗi(fix bug) được lặp đi lặp lại nhiều lần truớc khi phần mềm hoàn thiện. Thực
hiện kiểm thử để phát hiện lỗi sau đó gỡ lỗi và thực hiện kiểm thử lại để xác nhận lỗi
đã được khắc phục, đồng thời xác nhận rằng không có lỗi mới được tìm ra. Đơi khi có
những tính năng đặc biệt đòi hỏi phải thực hiện kiểm thử rất nhiều lần.
Nếu một dự án phần mềm với vài nghìn test cases, thì việc thực hiện tất cả test
cases này trong một khoảng thời gian ngắn là rất khó khăn. Và trong trường hợp phải
thực hiện lại nhiều lần, sẽ làm phát sinh rất nhiều chi phí cho việc kiểm thử. Kiểm thử
tự động là một giải pháp cho vấn đề này.
Với mục tiêu nghiên cứu, tìm hiểu về kiểm thử tự động, các ưu nhược điểm của
kiểm thử tự động, phương pháp triển khai kiểm thử tự động cho một sản phẩm trong
thực tế và giá trị mà nó đem lại. Chúng tơi đã chọn đề tài “Xây dựng hệ thống kiểm
thử tự động cho các giai đoạn cài đặt phần mềm”
2. Nội dung của luận văn
Luận văn đi sâu nghiên cứu về kiểm thử tự động, một giải pháp góp phần nâng
cao năng suất, chất lượng hoạt động kiểm thử phần mềm.
Luận văn tổng hợp lý thuyết về kiểm thử tự động, vai trị và lợi ích của nó đối
với hệ thống phần mềm. Các yêu cầu cần thiết để xây dựng một hệ thống kiểm thử
phần mềm cũng như các vấn đề có thể gặp phải.
Luận văn đã mơ tả từng bước q trình phân tích thiết kế và xây dựng một hệ
thống kiểm thử tự động, áp dụng vào kiểm thử một hệ thống trong thực tế, góp phần
giảm chi phí việc kiểm thử một số sản phẩm phần mềm.
3. Cấu trúc của luận văn
Luận văn bao gồm có sáu chương như sau:
Chƣơng 1. Mở đầu
Chương này trình bày lý do và mục đích của đề tài, các đóng góp chính mà đề tài
đem lại cũng như kết cấu của đề tài.
TIEU LUAN MOI download :
2
Chƣơng 2. Tổng quan về kiểm thử tự động
Chương này trình bày khái niệm về kiểm thử tự động, vai trị và lợi ích khi ứng
dụng kiểm thử tự động trong hoạt động kiểm thử phần mềm. Chương này cũng trình
bày các bước để phát triển một cơng cụ kiểm thử tự động cũng như các vấn đề có thể
gặp phải trong q trình phát triển.
Chƣơng 3. Mơ tả bài toán và yêu cầu
Chương này giới thiệu sơ lược với bạn đọc về hệ thống thơng tin có tên là SEC.
Lý do cần thiết phải xây dựng hệ thống kiểm thử tự động để kiểm thử cho hệ thống
SEC. Ngoài ra, cũng sẽ phân tích, đặc tả để làm rõ các yêu cầu mà hệ thống kiểm thử
tự động phải đáp ứng, làm cơ sở cho việc phân tích, thiết kế và phát triển ứng dụng về
sau.
Chƣơng 4. Thiết kế chƣơng trình
Dựa trên các đặc tả yêu cầu đã được làm rõ ở chương 3, trong chương này, chúng
tôi sẽ trình bày từng bước phân tích, thiết kế và phát triển các chức năng của hệ thống.
Chƣơng 5. Cài đặt và đánh giá
Trong chương này, chúng tơi sẽ trình bày kết quả đạt được khi đưa hệ thống kiểm
thử tự động ứng dụng vào hoạt động kiểm thử cho hệ thống SEC.
Chƣơng 6. Kết luận
Trong chương này, chúng tôi sẽ tổng kết lại các kết quả và đóng góp mà việc
thực hiện đề tài đem lại. Ngồi ra, chúng tơi cũng đề xuất các phương hướng nghiên
cứu tiếp theo, nhằm giúp cho đề tài trở nên hoàn thiện hơn.
TIEU LUAN MOI download :
3
Chương 2
Tổng quan về kiểm thử tự động
2.1. Khái niệm về kiểm thử tự động
Kiểm thử tự động là một khái niệm liên quan đến các hoạt động và kỹ thuật tự
động hóa trong tiến trình kiểm thử phần mềm. Kiểm thử tự động sử dụng các công cụ
và giải pháp để nhằm đạt được các mục tiêu về tốc độ, chất lượng, hiệu quả và chi phí
trong tiến trình kiểm thử [10].
2.2. Lợi ích
Dưới đây là một số lợi ích của kiểm thử tự động [4]:
Kiểm thử hồi qui cho một phiên bản mới của chương trình. Điều này là hiển
nhiên, đặc biệt là trong điều kiện các chương trình thường xuyên bị thay đổi. Giả thiết
rằng các test cases đã tồn tại và đã được chạy tự động ở một phiên bản trước đó, thì ở
các phiên bản tiếp theo, chỉ cần lựa chọn các test cases phù hợp và một chút chi phí
cho việc hướng dẫn sử dụng cơng cụ là có thể thực hiện được việc kiểm thử.
Chạy được nhiều ca kiểm thử và thường xuyên hơn. Với việc kiểm thử tự động,
sẽ có nhiều ca kiểm thử được thực hiện trong khoảng thời gian ít hơn, và do đó các ca
kiểm thử cũng được thực hiện thường xuyên hơn. Điều này sẽ làm tăng cường tính tin
cậy của hệ thống [8].
Cho phép hồn thành kiểm thử đối với các test cases mà rất khó hoặc khơng thể
khi thực hiện bằng tay. Ví dụ: việc cố gắng hoàn thành đúng như thực tế một ca kiểm
thử của hệ thống với 200 người dùng cùng trực tuyến (online) có thể khơng thực hiện
được nếu thực hiện kiểm thử bằng tay. Nhưng 200 người dùng này có thể được giả lập
bằng các công cụ kiểm thử tự động.
Khi kiểm thử bằng tay, kết quả mong muốn thường là những nội dung rõ ràng mà
người kiểm thử có thể quan sát. Tuy nhiên, có những thuộc tính rất khó để có thể xác
nhận theo cách bình thường. Ví dụ đối tượng GUI có thể gây ra một sự kiện nào đó,
mà ảnh hưởng của nó khơng được output ngay lập tức. Nhưng nếu sử dụng cơng cụ
kiểm thử thì ta có thể kiểm tra được sự kiện như vậy [11].
Sử dụng tài nguyên (resources) tốt hơn. Tự động hóa giúp nâng cao độ chính sác
và giải tỏa tinh thần cho người thực hiện kiểm thử. Giúp kiểm thử viên có có nhiều
thời gian hơn cho việc lập kế hoạch, thiết kế test case…
TIEU LUAN MOI download :
4
Mặt khác, với kiểm thử tự động thì máy kiểm thử có thể được sử dụng để chạy
kiểm thử vào những lúc rảnh rỗi.
Đảm bảo tính nhất quán của kiểm thử. Kiểm thử tự động sẽ được thực hiện lặp đi
lặp lại một cách chính xác ở tất cả các lần kiểm thử (ít nhất là dữ liệu đầu vào sẽ khơng
bị thay đổi, kết quả đầu ra thì có thể khác nhau do thời gian thực hiện). Điều này tạo ra
sự nhất quán giữa các lần kiểm thử, điều rất khó đạt được nếu thực hiện bằng tay.
Các test cases giống nhau có thể được thực hiện trên các phần cứng, hệ điều hành
hoặc cơ sở dữ liệu khác nhau. Điều này tạo nên sự nhất quán về chất lượng trên các
nền tảng khác nhau của sản phẩm. Điều rất khó đạt được nếu thực hiện kiểm thử bằng
tay (kiểm thử thủ công).
Việc áp dụng chế độ kiểm thử tốt có thể đảm bảo các tiêu chuẩn phù hợp cho
kiểm thử và phát triển. Ví dụ, cơng cụ kiểm thử có thể được sử dụng để kiểm tra cùng
một loại tính năng đã được thực hiện theo cùng một cách ở tất cả các ứng dụng hoặc
chương trình khác nhau.
Tái sử dụng các ca kiểm thử. Có thể thực hiện kiểm thử nhiều lần mà khơng mất
chi phí để quyết định cái gì sẽ được kiểm thử, thiết kế ca kiểm thử, xây dựng các ca
kiểm thử hay đảm bảo tính chính xác của kiểm thử.
Rút ngắn thời gian phát triển sản phẩm. Khi mà các test cases được kiểm thử tự
động, nó có thể được thực hiện lặp đi lặp lại một cách nhanh chóng, vì vậy sẽ rút ngắn
được thời gian kiểm thử. Và qua đó cũng có thể rút ngắn được thời gian phát triển sản
phẩm và đưa sản phẩm ra thị trường (Điều này còn tùy thuộc vào việc khắc phục lỗi,
tính khả dụng của chương trình) [9].
Tăng tính tin cậy. Khi một số lượng lớn các ca kiểm thử tự động được thực hiện
thành cơng, nó sẽ tăng cường mức độ đảm bảo rằng hệ thống sẽ được phát hành mà
khơng có vấn đề gì.
Tóm lại, với kiểm thử tự động, chúng ta có thể thực hiện kiểm thử với chi phí ít
hơn, và chất lượng, năng suất cao hơn.
2.3. Sự khác nhau giữa kiểm thử và kiểm thử tự động
2.3.1. Kiểm thử
Kiểm thử là một kỹ năng. Đối với bất kỳ một hệ thống nào, đều có một số trường
hợp mà nếu thực hiện kiểm thử sẽ phát hiện được hầu hết các lỗi của phần mềm. Vì
vậy, việc lựa chọn test case nào để chạy là một vấn đề quan trọng. Thực tiễn cũng như
kinh nghiệm đã chỉ ra rằng việc lựa chọn ngẫu nhiên các test cases là cách tiếp cận
TIEU LUAN MOI download :
5
không hiệu quả. Nên tiếp cận một cách thận trọng, có hệ thống để có thể tạo ra được
các test cases tốt.
Vậy, thế nào là một test case tốt. Có bốn thuộc tính miêu tả chất lượng của một
test case:
- Khả năng phát hiện lỗi.
- Tính chuẩn (exemplary): một test case chuẩn nên thực hiện kiểm thử nhiều hơn
một tiêu chí, như vậy sẽ làm giảm thiểu tổng số test cases cần thiết.
- Chi phí thực hiện: chi phí bỏ ra để thực hiện test case, điều tra, phân tích
nguyên nhân lỗi.
- Chi phí cập nhật test case: chi phí bỏ ra cho việc cập nhật nội dung test case
mỗi khi phần mềm thay đổi.
Bốn thuộc tính này cần phải cân bằng với nhau. Vì nếu một test case thực hiện
kiểm thử quá nhiều tiêu chí, cũng đồng nghĩa với việc sẽ mất nhiều chi phí cho việc
thực hiện, điều tra, phân tích hay cập nhật test case mỗi khi phần mềm thay đổi [1].
Vì vậy, các kỹ năng kiểm thử không chỉ đơn thuần là làm sao để thiết kế các test
cases có khả năng phát hiện được lỗi cao nhất mà còn là làm sao để thiết kế các test
cases với chi phí thấp nhất [3].
2.3.2. Kiểm thử tự động
Kiểm thử tự động cũng là một kỹ năng nhưng nó khác với kỹ năng kiểm thử.
Việc kiểm thử tự động thì tốn kém hơn kiểm thử bằng tay rất nhiều nếu chỉ thực hiện
một lần. Để đạt được lợi ích, kiểm thử tự động cần phải được lựa chọn và thực thi một
cách cẩn thận.
Cho dù kiểm thử là tự động hoặc bằng tay thì đều ảnh hưởng đến chất lượng của
quá trình kiểm thử. Khi đề cập đến kiểm thử tự động, vấn đề quan tâm không phải là
thực hiện nó như thế nào mà là quá trình tự động hóa kiểm thử sẽ ảnh hưởng như thế
nào tới chi phí và khả năng nâng cấp về sau. Mỗi lần thực hiện tự động hóa sẽ làm
phát sinh rất nhiều chi phí, chi phí cho việc chạy nó chỉ là một phần nhỏ đối với chi
phí để thực hiện bằng tay. Tuy nhiên, kiểm thử tự động thường mất nhiều chi phí cho
việc tạo và bảo trì. Cách tiếp cận tốt để làm giảm chi phí cho việc tự động hóa kiểm
thử là thực thi nó trong một thời gian dài
Hình 2.1 thể hiện 4 thuộc tính chất lượng của một test case trong sơ đồ Keviat.
Trường hợp thực hiện kiểm thử bằng tay được thể hiện bằng đường đậm. Khi được
tiến hành lần đầu, kiểm thử tự động sẽ kém hiệu quả (mất nhiều chi phí để tự động),
TIEU LUAN MOI download :
6
nhưng sau một số lần thực hiện thì nó sẽ hiệu quả hơn việc thực hiện kiểm thử bằng
tay.
Để đạt được tính hiệu quả và đưa ra bộ test case (test suite) phù hợp, cần phải bắt
đầu với các thành phần thô của một bộ test case tốt, sử dụng các kỹ năng kiểm thử để
tạo nên bộ test case thực hiện những thứ quan trọng nhất. Sau đó phải ứng dụng các kỹ
thuật tự động để tự động hóa theo cách mà chúng có thể được tạo và bảo trì với chi phí
hợp lý.
Hiệu quả(effective)
Chí phí cập nhật
(evolvable)
Chi phí
(economic)
Tính chuẩn(exemplary)
Kiểm thử bằng tay
Lần đầu kiểm thử tự động
Kiểm thử tự động (sau nhiều lần)
Hình 2.1. Bốn thuộc tính của test case
Người phát triển và bảo trì cơng cụ kiểm thử tự động gọi là “Test automator”.
Một “Test automator” có thể/khơng phải là Kiểm thử viên, có thể/khơng phải làm một
thành viên của nhóm kiểm thử. Ví dụ, một nhóm kiểm thử bao gồm các Kiểm thử viên
có hiểu biết về nghiệp vụ và khơng có kỹ năng về việc phát triển. Một Người phát triển
(Developer) có thể hỗ trợ nhóm kiểm thử xây dựng và bảo trì các cơng cụ kiểm thử tự
động theo thiết kế kiểm thử bởi nhóm kiểm thử. Người phát triển này là một “Test
automator”.
Chất lượng kiểm thử có thể tốt hoặc kém, điều này phụ thuộc vào kỹ năng kiểm
thử của người kiểm thử.
TIEU LUAN MOI download :
7
Chất lượng tự động cũng có thể tốt hoặc kém. Nó phụ thuộc vào kỹ năng của test
automator, làm sao để có thể tạo và bảo trì tự động kiểm thử một cách dễ dàng, làm
sao để việc tự động kiểm thử đem lại lợi ích, hiệu quả [2, 7].
2.4. Các bước thực hiện kiểm thử tự động
2.4.1. Đánh giá mức độ tự động hóa
Trước khi tiến hành tự động hóa, chúng ta cần phải kiểm tra tiến trình kiểm thử
phần mềm hiện tại và các hoạt động kỹ thuật để xem phần nào (bộ phận nào) có thể
tiến hành kiểm thử tự động. Dưới đây là lược đồ được đề xuất, bao gồm 5 mức cơ bản
để làm cơ sở đánh giá [5]:
- Mức 0: Khơng có cơng cụ kiểm thử. Một tiến trình kiểm thử ở mức độ này hồn
tồn thực hiện bằng tay mà khơng có bất kỳ công cụ kiểm thử nào.
- Mức 1: Khởi tạo. Một tiến trình kiểm thử ở mức độ này cung cấp các kỹ thuật,
giải pháp và các công cụ cho phép tạo, cập nhật và quản lý tất cả các thông tin của
kiểm thử phần mềm, bao gồm yêu cầu, test cases, dữ liệu, kết quả, kịch bản và báo cáo
về các vấn đề. Khơng có cơng cụ và giải pháp nào hỗ trợ kỹ thuật trong việc thiết kế
kiểm thử, sinh test case và thực hiện kiểm thử.
- Mức 2: Lặp lại (repeatable). Một tiến trình kiểm thử ở mức này không chỉ cung
cấp kỹ thuật và công cụ để quản lý các thông tin đa dạng của kiểm thử phần mềm, mà
nó cịn cung cấp các giải pháp cho phép thực hiện kiểm thử phần mềm một cách hệ
thống. Giải pháp này cho phép sử dụng các kỹ thuật để thực hiện kiểm thử và kiểm tra
kết quả kiểm thử. Tuy nhiên, khơng có các giải pháp và công cụ cho phép hỗ trợ thiết
kế kiểm thử và sinh test case. Khơng có các cơng cụ để đo khả năng kiểm thử phần
mềm và hiệu quả của tiến trình kiểm thử phần mềm theo các tiêu chuẩn được xác định
từ trước.
- Mức 3: Tự động. Một tiến trình kiểm thử ở mức độ này không chỉ sử dụng các
công cụ quản lý và thực thi kiểm thử, mà nó cịn bao gồm cả các cơng cụ cho phép
sinh test case và kịch bản kiểm thử. Tuy nhiên, tiến trình kiểm thử khơng có giải pháp
cho việc đo khả năng và hiệu quả của kiểm thử phần mềm.
- Mức 4: Tối ưu. Đây là mức độ tối ưu của tự động hóa kiểm thử phần mềm. Ưu
điểm chính của tiến trình kiểm thử ở mức độ này là giải pháp hệ thống (systematic
solution) cho 3 loại độ đo kiểm thử, bao gồm: khả năng kiểm thử, phân tích mức độ
bao phủ của test case (test coverage), và đánh giá hiệu quả kiểm thử. Lợi ích chính của
mức độ này là giúp các kỹ thuật viên hiểu như thế nào là một tiến trình kiểm thử tốt và
đâu là vấn đề chất lượng của phần mềm.
TIEU LUAN MOI download :
8
Mức 4: Tối ưu
Đo và đánh giá
Mức 3: Tự động
Mức 2: Lặp lại
Sinh kiểm thử
Điều khiển quá
trình kiểm thử
Mức 1: Khởi tạo
Quản lý thông tin
Mức 0: Không sử
dụng công cụ
Thực hiện bằng tay
Hình 2.2. Lược đồ đánh giá mức độ tự động hóa
Lược đồ này có thể được sử dụng để đánh giá trạng thái của tự động kiểm thử
cho một tiến trình kiểm thử đối với một dịng sản phẩm hoặc trong một tổ chức nào đó.
2.4.2 Tiến trình tự động hóa
Để thực hiện tự động hóa kiểm thử, cần phải có một tiến trình hiệu quả để thực
hiện các hoạt động tự động hóa kiểm thử và phát triển giải pháp tự động. Một tiến
trình hiệu quả phải bao gồm các bước sau [6]:
- Bước 1: Lập kế hoạch tự động hóa. Đây là bước khởi tạo. Mục đích chính của
bước này là lập kế hoạch xác định các đối tượng cần phải tự động, mục đích, chiến
lược, u cầu, lịch trình, kinh phí. Trong thực tế, kế hoạch tự động hóa thường được
tạo cho một sản phẩm, hoặc một dòng sản phẩm ngay ở giai đoạn đầu của tiến trình
phát triển phầm mềm.
- Bước 2: Thiết kế kiểm thử tự động. Mục tiêu chính của bước này là tạo ra một
giải pháp tự động hóa chi tiết, phù hợp với yêu cầu và mục tiêu trong kế hoạch đã vạch
ra. Bao gồm 2 nhiệm vụ chính. Thứ nhất là xác định và lựa chọn các công cụ có sẵn
(các sản phẩm thương mại hoặc tự làm) để hỗ trợ tiến trình tự động hóa. Để thực hiện
nhiệm vụ này, người tự động hóa cần phải có thơng tin hướng dẫn và đánh giá về công
cụ được lựa chọn. Thứ hai là thiết kế giải pháp tự động hóa.
- Bước 3: Phát triển cơng cụ kiểm thử tự động. Ở bước này, sẽ thực hiện phát
triển công cụ dựa theo giải pháp tự động hóa đã đưa ra. Điểm mấu chốt ở bước này là
phải chắc chắn rằng công cụ đã được phát triển là đáng tin cậy và dễ sử dụng, có tài
liệu hướng dẫn tốt. Rất nhiều dự án tự động kiểm thử đã thất bại bởi vì chất lượng kém
và tài liệu khơng tốt.
- Bước 4: Triển khai công cụ tự động. Giống như một sản phẩm thương mại,
công cụ tự động và các lợi ích của nó cần phải được giới thiệu và triển khai sử dụng
TIEU LUAN MOI download :
9
cho một sản phẩm nào đó. Ở bước này, việc đào tạo cho người dùng và hỗ trợ họ là
thiết yếu.
- Bước 5: Rà soát lại (review) và đánh giá. Bất cứ khi nào một công cụ mới được
triển khai, thì đều phải tiến hành rà sốt lại để xác định các vấn đề và hạn chế của công
cụ, đánh giá các tính năng mà nó cung cấp. Kết quả của việc rà soát này là bài học cho
các lần triển khai về sau.
Lập kế hoạch tự
động hóa
Thiết kế hệ thống
tự động
Phát triển hệ
thống
Lựa chọn và đánh giá
các công cụ tự động
Giới thiệu và triển
khai hệ thống
Rà soát lại và
đánh giá
Hình 2.3. Tiến trình tự động hóa
2.5. Các loại cơng cụ kiểm thử tự động
#
1
2
3
4
5
6
Loại công cụ
Miêu tả chức năng
Quản lý thông tin kiểm thử Công cụ và các giải pháp hỗ trợ các kỹ thuật kiểm
(Test information
thử và đảm bảo chất lượng, giúp tạo, cập nhật và
management )
bảo trì các thông tin kiểm thử đa dạng, bao gồm test
case, kịch bản, dữ liệu, kết quả kiểm thử và các vấn
đề được phát hiện.
Điều khiển và thực thi
Công cụ và giải pháp hỗ trợ thiết lập và thực hiện
kiểm thử (Test execution
kiểm thử, tập hợp và đánh giá kết quả kiểm thử.
and control)
Sinh kiểm thử (Test
Giải pháp và công cụ tạo ra các chương trình kiểm
generation)
thử một cách tự động.
Phân tích độ phủ test case Cơng cụ và giải pháp thực hiện phân tích mật độ
(Test coverage analysis)
phủ của test dự trên các tiêu chí được lựa chọn.
Đo hiệu năng
Cơng cụ và giải pháp hỗ trợ việc đo và kiểm tra hiệu
(Performance testing and
năng của hệ thống.
measurement)
Giả lập phần mềm
Chương trình được phát triển để giả lập chức năng
TIEU LUAN MOI download :
10
(Software simulators )
7
Kiểm thử hồi qui
(Regression testing)
hoặc hành động của hệ thống bên ngoài hoặc các
thành phần/hệ thống con cần thiết cho việc kiểm
thử.
Công cụ hỗ trợ kiểm thử hồi qui và các hoạt động
“ghi” và “thực hiện lại” (recording and replaying)
Bảng 2.1. Phân loại các công cụ kiểm thử phần mềm tự động [5]
#
1
2
3
4
5
6
Loại công cụ
Công cụ quản lý các
vấn đề
(Problem management
tools)
Công cụ quản lý thông
tin kiểm thử
(Test information
management tools)
Công cụ quản lý bộ test
case
(Test suite management
tools)
Công cụ kiểm thử hộp
trắng
(White-box test tools)
Công cụ thực hiện kiểm
thử
(Test execution tools)
Nhà cung cấp
Rational Inc. Microsoft
Corp. Imbus AG
Công cụ
ClearQust, ClearDDTS
PVCS Tracker
Imbus Fehlerdatenbank
Rautional Inc. Mercury
Interactive
TestManager
TestDirectory
Evalid Rational Inc. SUN
TestSuiter
TestFactory
JavaTest, JavaHarness
McCabe & Associates
IBM
McCabe IQ2
IBM COBOL Unit Kiểm
thử viên
IBM ATC
Coverage Assistant
Source Audit Assistant
Distillation Assistant Unit
Test Assistant
Aprob ATF/TestWright
AutoKiểm thử viên Visual
Test Robot WinRunner
Vision TestPro QARun
SilkTest e-Test
Cyrano Robot
OC Systems Softbridge
AutoKiểm thử viên
Rational Inc. SQA
Mercury Interactive
Sterling Software
Compuware
Seque Software RSW
Software Inc. Cyrano
Gmbh
Cơng cụ phân tích mật
Case Consult Corp. OC
độ phủ của code
Systems
(Code coverage analysis IPL Software Product
tools)
Group ATTOL Testware
SA Compuware NuMega
Software Research
Rational Inc SUN
Analyzer, Analyzer Java
Aprob Cantata/Cantata++
Coverage
TruCoverage TestWorks
Coverage PureCoverage
JavaScope
TCA Panorama
TIEU LUAN MOI download :
11
7
Công cụ kiểm thử hiệu
năng
(Load test and
performance tools)
8
Công cụ kiểm thử hồi
qui
(Regression testing
tools)
Công cụ ghi/chơi lại
(GUI record/replay)
9
ParaSoft
Software Automation Inc.
Rational Inc.
InterNetwork AG
Compuware Mercury
Interactive RSW Software
Inc. SUN
Seque Software
Client/Server Solutions,
Inc.
IBM
Software Research
Mercury Interactive Astra
AutoKiểm thử viên
Rational Suite
PerformanceStudio
sma@rtTest
QA-Load LoadRunner eLoad JavaLoad
SilkPerformer
Benchmark Factory
Regression Testing
Tool(ARTT) Distillation
Assistant
eValid
Xrunner
Astra QuickTest
AutoKiểm thử viên,
AutoKiểm thử viên One
Bảng 2.2. Công cụ kiểm thử tự động và nhà cung cấp
TIEU LUAN MOI download :
12
Chương 3
Mơ tả bài tốn và u cầu
3.1. Giới thiệu hệ thống thông tin SEC
SEC là một ứng dụng bảo mật thông tin, hoạt động trên nền windows, cho phép
thực hiện các chức năng sau:
- Mã hóa dữ liệu.
- Quản lý việc sao chép dữ liệu: copy dữ liệu tới thiết bị ngoại vi: usb, thẻ nhớ,
đĩa CD/DVD…
- Chia sẻ dữ liệu qua mạng.
- Gửi nhận email.
- Quản lý quyền truy cập của người dùng.
SEC bao gồm hai phần:
- SEC Server: quản lý quyền của người dùng, cho phép tạo người dùng và cấp
phát quyền cho người dùng đó.
- SEC Client: quản lý thao tác của người dùng dựa theo quyền mà người dùng
được cấp ở server.
Để có thể sử dụng SEC, người dùng cần phải tiến hành các bước như sau:
Bƣớc 1. Cài đặt SEC server
Người quản trị tiến hành cài đặt SEC server, sau đó tạo người dùng User và cấp
phát quyền cho User.
Bƣớc 2. Tạo bộ cài đặt SEC client
Tại các máy cần phải bảo mật thông tin, cần phải cài đặt SEC client trên các máy
đó. Để thực hiện cài đặt, người quản trị sẽ tạo bộ cài đặt SEC client từ SEC server. Có
hai phương pháp để tạo bộ cài đặt SEC client:
- Tạo trực tiếp từ máy SEC server.
- Tạo bộ cài đặt SEC client thông qua công cụ tạo bộ cài đặt. Khi đó, cần phải
cung cấp thơng tin về SEC server trong quá trình tạo bộ cài đặt.
Bƣớc 3. Cài đặt SEC client
TIEU LUAN MOI download :
13
Sau khi tạo bộ cài đặt SEC client, người dùng phải tiến hành cài đặt SEC client
tại máy cần phải bảo mật thông tin.
Bƣớc 4. Thao tác
Sau khi cài đặt SEC client, thì thơng tin dữ liệu trên máy đã cài đặt sẽ được bảo
mật. Để có thể sử dụng dữ liệu, người dùng cần phải đăng nhập và máy SEC Client
bằng tài khoản người dùng User đã đã được cấp phát quyền ở SEC Server.
Nếu không đăng nhập, người dùng sẽ không thể hoặc bị hạn chế quyền đối với
dữ liệu muốn sử dụng.
Bƣớc 5. Gỡ cài đặt
Trong trường hợp khơng muốn sử dụng SEC client, người dùng có thể gỡ SEC
client khỏi máy. Sau khi gỡ, máy sẽ được khôi phục về trạng thái như lúc chưa cài đặt
và người dùng có thể sử dụng máy bình thường mà không chịu sự chi phối của SEC.
3.2. Định nghĩa các giai đoạn cài đặt
Do nội dung của đề tài là “Xây dựng hệ thống kiểm thử tự động cho các giai
đoạn cài đặt phần mềm” nên cần phải hiểu thế nào là “giai đoạn cài đặt phần mềm”?
Trong luận văn này, các giai đoạn cài đặt phần mềm được hiểu là các bước để cài
đặt SEC Client đã được đề cập trong mục 3.1, bao gồm các bước sau:
- Tạo bộ cài đặt SEC client (tạo bộ cài đặt).
- Cài đặt SEC client (cài đặt).
- Gỡ cài đặt SEC client (gỡ cài đặt).
3.3. Vấn đề của hệ thống SEC
SEC là một sản phẩm bao gồm nhiều phiên bản (version) khác nhau, khi một
phiên bản mới ra đời, cần phải thực hiện kiểm thử cho sản phẩm, bao gồm việc kiểm
thử cho các giai đoạn cài đặt SEC client.
Mỗi phiên bản SEC hỗ trợ nhiều nền tảng Windows khác nhau như: Windows98,
WindowsXP/2000/2003/2008, Windows Vista, Window 7… Trên mỗi một môi trường
Windows mà sản phẩm hỗ trợ, đều cần phải thực hiện kiểm thử cho các giai đoạn cài
đặt SEC client.
Đối với mỗi phiên bản, trong quá trình hoạt động, sẽ phát sinh lỗi. Đội phát triển
sẽ phải tập hợp các lỗi được phát triển, sửa lỗi và phát hành bản Patch (bản sửa lỗi cho
sản phẩm) để sửa lỗi cho sản phẩm. Mỗi một bản Patch sẽ sửa nhiều lỗi khác nhau.
Trước khi gửi bản Patch cho khách hàng, sản phẩm cần phải được kiểm thử các chức
TIEU LUAN MOI download :
14
năng liên quan (degrage function), bao gồm việc kiểm thử cho các giai đoạn cài đặt
SEC client.
Mặt khác, nếu một lỗi xuất hiện trên một phiên bản, thì nó cũng có thể phát sinh
lỗi trên các phiên bản khác. Vì vậy cũng cần phải có bản Patch để vá lỗi cho các phiên
bản đó. Và thực hiện kiểm thử trước khi gửi sản phẩm cho khách hàng.
Như vậy, mỗi khi một phiên bản mới ra đời, hay đưa ra các bản sửa lỗi. Thì đều
cần phải tiến hành kiểm thử cho sản phẩm, bao gồm việc kiểm thử cho các giai đoạn
cài đặt SEC client. Chi phí cho việc thực hiện kiểm thử là rất lớn.
Vì vậy, vấn đề đặt ra là làm sao để có thể tự động hóa q trình kiểm thử, mà cụ
thể là tự động hóa kiểm thử cho các giai đoạn cài đặt, nhằm làm giảm thiểu nhất chi
phí cho việc kiểm thử mà vẫn đảm bảo về chất lượng cho sản phẩm?
3.4. Yêu cầu
Cần phải xây dựng một hệ thống giúp cho Kiểm thử viên thực hiện kiểm thử tự
động các giai đoạn cài đặt phần mềm. Gọi hệ thống này là “Hệ thống kiểm thử tự
động” (HTKTTĐ). Dưới đây là các yêu cầu mà HTKTTĐ phải đáp ứng:
- Công cụ cung cấp file mẫu, cho phép Kiểm thử viên thực hiện thiết lập test case
dựa theo các điều kiện của test case.
- Kiểm thử viên có thể tạo một bộ test case (test suite) bao gồm các test cases cần
thiết để kiểm thử.
- Công cụ cung cấp các thao tác để thực hiện test case dựa theo thông tin của bộ
test case. Công cụ cũng cho phép Kiểm thử viên có thể tạo lịch trình nhiệm vụ
(Windows Scheduled Task) để thực hiện các thao tác trên.
- Các giai đoạn cài đặt (tạo bộ cài đặt/cài đặt/gỡ cài đặt SEC) sẽ thực hiện một
cách tự động. Kết quả của mỗi test case sẽ được xuất ra CSV file, để Kiểm thử viên có
thể kiểm tra được kết quả thực hiện kiểm thử.
3.5. Đặc tả yêu cầu
Trong nội dung này sẽ đặc tả để làm rõ các yêu cầu mà HTKTTĐ phải đáp ứng.
3.5.1. Các cơng cụ cần thiết
3.5.1.1. Mơ hình “Test Controller – Test Agent”
Do trong quá trình cài đặt/gỡ cài đặt hệ thống SEC client, máy cài đặt sẽ phải
khởi động và đăng nhập. Vì vậy cần thiết phải điều khiển việc khởi động, đăng nhập
TIEU LUAN MOI download :
15
máy một cách tự động. Để giải quyết vấn đề này, sẽ sử dụng mơ hình Test Controller
và Test Agent. Hình 3.1 thể hiện mơ hình tương tác giữa Test Controller và Test Agent
Test Controller
Test Agent
File cấu hình điều
khiển
Ứng dụng
File cấu hình
Capture/ Replay
File cấu hình
File
VBScript
Thực thi
Chạy Script
Gọi RPC
File điều khiển test
Control
Script
Control
Script
Pass to Agent
Nhận về biến
File cấu hình
của Agent
Agent (Chế độ người dùng)
• Thực hiện command đồng bộ
• Thực hiện command khơng đồng bộ
• Nhận về script file
Quyền người dùng
Quyền quản trị
Agent (Chế độ dịch vụ)
File command
Capture/replay
Script
Đọc/ghi biến
• Khởi động
, máy, tắt máy
• Tạo người dùng
• Tự động
, đăng nhập
• Chỉnh sửa file cấu hình
File Patch
File
VBScript
Hình 3.1. Mơ hình tương tác giữa test controller và test agent
Test Controller là ứng dụng cho phép điều khiển máy tính từ xa (remote
computer) bằng cách sử dụng RPC (Remote Proceduce Call). Còn Test Agent là ứng
dụng điều khiển máy tính đang được điều khiển từ xa bởi Test Controller.
Mơ hình này bao gồm các file cấu hình, được sử dụng để cho phép Test
Controller tương tác với Test Agent.
Để điều khiển máy, Test Controller sẽ gửi các chỉ thị tới Test Agent được cài đặt
trên máy và sau đó Test Agent sẽ thực hiện các thao tác trên máy. Bên dưới là một số
thao tác:
- Đồng bộ/khơng đồng bộ (Synchronous/asynchoronous) chương trình
- Bật/khởi động máy.
- Tạo tài khoản người dùng (user account).
TIEU LUAN MOI download :
16
- Thiết lập đăng nhập tự động và làm sạch các thiết lập.
- Gửi file sự kiện từ Test Controller tới Test Agent.
Test Agent có hai chế độ là chế độ người dùng (user mode) và chế độ dịch vụ
(service mode). Mỗi một chế độ, Test Agent sẽ thực hiện các thao tác khác nhau tùy
thuộc vào quyền của người dùng đăng nhập.
3.5.1.2. Công cụ “Capture & Replay”
Công cụ “Capture & Replay” là một ứng dụng cho phép hiển thị màn hình và
thực hiện các tương tác với màn hình như: bấm vào một nút trên màn hình, lựa chọn
checkbox…
3.5.2. Kịch bản cài đặt và gỡ cài đặt
3.5.2.1. Thế nào là kịch bản kiểm thử
Kịch bản kiểm thử là một tập các test cases để đảm bảo xử lý của chương trình từ
đầu đến cuối.
Kịch bản cài đặt là một tập các test cases miêu tả xử lý cài đặt. Kịch bản cài đặt
bao gồm nhiều file chứa thông tin kiểm thử của test case khác nhau như SEC product,
User Info, Owner User…
Cũng giống như vậy, kịch bản gỡ cài đặt cũng bao gồm các file thông tin kiểm
thử cần thiết cho xử lý gỡ cài đặt.
3.5.2.2. Tạo kịch bản kiểm thử
Một file kịch bản có phần mở rộng là *.tc bao gồm rất nhiều file thông tin kiểm
thử khác nhau của SEC.
Hình 3.2 mơ tả luồng xử lý tổng quan của kịch bản kiểm thử cho việc cài đặt
SEC.
TIEU LUAN MOI download :
17
Bộ cài đặt
Cài đặt bằng
tay
Màn hình đầu
tiên
Ghi lại các thao
tác
Màn hình tiếp
theo
Mành hình kết
thúc
Xuất các thao
tác đã được ghi
lại
File có định
dạng VBScript
Hình 3.2. Kịch bản cài đặt
Luồng xử lý trên miêu tả các bước chính trong việc tạo kịch bản cài đặt SEC. Với
mỗi test case, Kiểm thử viên thực hiện bằng tay bằng cách chạy bộ cài đặt SEC. Công
cụ Capture & Replay sẽ chụp lại các thao tác của Kiểm thử viên khi thực hiện cài đặt
SEC, từ màn hình đầu tiên đến màn hình cuối cùng. Sau đó, nội dung được xuất tới
file có định dạng VBScript. Kịch bản kiểm thử cuối cùng sẽ bao gồm tất cả các sự kiện
và các thiết lập khác nhau của xử lý cài đặt.
Kịch bản gỡ cài đặt cũng được thực hiện theo cách tương tự.
3.5.2.3. File thông tin kiểm thử
File thông tin kiểm thử được tạo ra dựa trên các màn hình của cài đặt/gỡ cài đặt
của SEC. Các điều kiện đầu vào của test case được ghi lại vào file thơng tin kiểm thử.
3.5.3. Tự động hóa cài đặt và gỡ cài đặt
HTKTTĐ cung cấp chức năng cài đặt/gỡ cài đặt SEC tự động. Nội dung của test
case được phản ánh trong file thông tin kiểm thử. Chức năng này sẽ chạy file VBScript
có chứa thơng tin về file kịch bản, file thông tin cài đặt/gỡ cài đặt SEC khỏi Windows.
Test Controller sẽ gửi các file nói trên tới máy Test Agent, là máy mà sẽ thực hiện cài
đặt/gỡ cài đặt SEC. Kịch bản cài đặt/gỡ cài đặt sẽ được thực hiện tự động trên máy
Test Agent. Để có thể thực hiện cài đặt/gỡ cài đặt thì máy Test Agent phải cài đặt công
cụ Capture & Replay. Sau khi kết thúc cài đặt/gỡ cài đặt, file log và kết quả kiểm thử
được xuất một cách tự động.
TIEU LUAN MOI download :
18
Hình 3.3 và 3.4 miêu tả các bước thực hiện cài đặt và gỡ cài đặt.
Bắt đầu
Test case và bộ
cài đặt
File thông tin kiểm
thử
File kịch bản cài
đặt
Script để thực
hiện tự động
Test Controller
Test Agent
File kịch bản gỡ
cài đặt
Capture &
Replay
Xuất log
Xuất kết quả kiểm
thử
Kết thúc
Hình 3.3. Luồng tự động hóa cài đặt
TIEU LUAN MOI download :
19
Bắt đầu
Test case
File thông tin kiểm
thử
File kịch bản gỡ
cài đặt
Script để thực
hiện tự động
Test Controller
Test Agent
Capture &
Replay
Xuất log
Xuất kết quả kiểm
thử
Kết thúc
Hình 3.4. Luồng tự động hóa gỡ cài đặt
3.5.4. Log output
Trong quá trình xử lý cài đặt/gỡ cài đặt, hệ thống cần phải xác thực dữ liệu đầu
vào để đảm tính đúng đắn của dữ liệu. Tất cả các thao tác sẽ được xuất tới file log.
Trong trường hợp có lỗi, Kiểm thử viên có thể kiểm tra file log để xác định nguyên
nhân lỗi và khắc phục sự cố.
File log hiển thị các thông tin như: ngày giờ, file thông tin kiểm thử, giá trị dữ
liệu được nhập, tên màn hình, kết quả thao tác.
TIEU LUAN MOI download :