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 - Pdf 25

ĐẠ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Ĩ


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
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


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

Bảng các từ viết tắt

#
Thuật ngữ
Ý nghĩa
1
CSV
Comma separated values
2
HTKTTĐ
Hệ thống kiểm thử tự động
3
OS
Operating system
4
PC
Personal computer 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.

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. Ngoà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.
3Chươ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

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
5khô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

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),
6như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ý.

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ử.
Kiểm thử bằng tay
Lần đầu kiểm thử tự động
Kiểm thử tự động (sau nhiều lần)
Hiệu quả(effective)
Tính chuẩn(exemplary)
Chi phí
(economic)

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.
8Sinh kiểm thử
Điều khiển quá
trình kiểm thử
Quản lý thông tin
Thực hiện bằng tay
Đo và đánh giá
Mức 0: Không sử
dụng công cụ
Mức 1: Khởi tạo
Mức 2: Lặp lại
Mức 3: Tự động
Mức 4: Tối ưu
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

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
#
Loại công cụ
Miêu tả chức năng
1
Quản lý thông tin kiểm thử
(Test information
management )
Công cụ và các giải pháp hỗ trợ các kỹ thuật kiểm
thử và đảm bảo chất lượng, giúp tạo, cập nhật và
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.
2
Điều khiển và thực thi
kiểm thử (Test execution
and control)
Công cụ và giải pháp hỗ trợ thiết lập và thực hiện

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]

#
Loại công cụ
Nhà cung cấp
Công cụ
1
Công cụ quản lý các
vấn đề
(Problem management
tools)
Rational Inc. Microsoft
Corp. Imbus AG
ClearQust, ClearDDTS
PVCS Tracker
Imbus Fehlerdatenbank
2
Công cụ quản lý thông
tin kiểm thử
(Test information
management tools)
Rautional Inc. Mercury
Interactive
TestManager
TestDirectory
3
Công cụ quản lý bộ test
case

Seque Software RSW
Software Inc. Cyrano
Gmbh
Aprob ATF/TestWright
AutoKiểm thử viên Visual
Test Robot WinRunner
Vision TestPro QARun
SilkTest e-Test
Cyrano Robot
6
Công cụ phân tích mật
độ phủ của code
(Code coverage analysis
tools)
Case Consult Corp. OC
Systems
IPL Software Product
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
11


Tool(ARTT) Distillation
Assistant
9
Công cụ ghi/chơi lại
(GUI record/replay)
Software Research
Mercury Interactive Astra
AutoKiểm thử viên
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

12Chương 3
Mô tả bài toán và yê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:

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
14nă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


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status