thiết kế và xây dựng quy trình kiểm thử tự động - Pdf 22


1
MỤC LỤC
MỞ ĐẦU…………… 2
CHƯƠNG 1. TỔNG QUAN VỀ KIỂM THỬ VÀ KIỂM THỬ TỰ ĐỘNG 5
1.1 Chất lượng phần mềm và kiểm thử phần mềm 5
1.1.1 Vòng đời phát triển phần mềm và kiểm thử 5
1.1.2 Kiểm thử phần mềm và chất lượng phần mềm 8
1.1.3 Các giai đoạn kiểm thử và điểm xác định 9
1.1.4 Các kỹ thuật kiểm thử phần mềm 10
1.2 Kiểm thử tự động 10
1.2.1 Khái niệm về kiểm thử tự động: 10
1.2.2 Mục tiêu 10
CHƯƠNG 2. MỘT SỐ QUY TRÌNH KIỂM THỬ TỰ ĐỘNG 13
2.1 Quy trình kiểm thử phần mềm 13
2.2 Khái quát về quy trình kiểm thử tự động 20
2.3 Các bước cơ bản của quá trình KTTĐ: 22
CHƯƠNG 3. CÔNG CỤ KIỂM THỬ TỰ ĐỘNG 24
3.1 Tổng quan về công cụ kiểm thử tự động 24
3.1.1 Công cụ kiểm thử tự động mã trình 24
3.1.2 Công cụ kiểm thử tự động dữ liệu 24
3.1.3 Công cụ kiểm thử tự động cài đặt 25
3.2 Giới thiệu và đánh giá một số công cụ KTTĐ 25
3.2.1 QuickTest Pro 26
3.2.2 Load Runner 30
KẾT LUẬN ……………………………. 32
TÀI LIỆU THAM KHẢO 33 2
MỞ ĐẦU

mềm nhỏ, chẳng hạn như Việt Nam. Việc áp dụng các kỹ thuật kiểm thử còn mang
tính cục bộ ở các công ty phần mềm và quá trình kiểm thử hầu như được thực hiện
một cách thủ công gây ra hạn chế trong việc phát hiện lỗi, cũng như thời gian hoàn
thành dự án; Kiểm thử tự động đang trở thành xu thế của ngành công nghiệp phần

3
mềm, do vậy việc nghiên cứu lý thuyết, quy trình cũng như tìm hiểu, đánh giá các
công cụ kiểm thử tự động đang là một đòi hỏi bức thiết. Trong phạm vi đề tài của
mình, tôi mong muốn đưa ra cái nhìn tổng quan về kiểm thử tự động, quy trình thực
hiện và việc lựa chọn sử dụng công cụ kiểm thử tự động phù hợp.
3. Mục đích nghiên cứu
Nghiên cứu về kiểm thử, đặc biệt là vấn đề kiểm thử tự động (KTTĐ) nhằm
tìm hiểu những lý thuyết cơ bản về KTTĐ, quy trình KTTĐ và nghiên cứu đánh giá
một số công cụ KTTĐ đang được sử dụng hiện nay.
Trau dồi kiến thức về kiểm thử, đặc biệt là xu hướng kiểm thử phần mềm
hiên nay nhằm phục vụ cho việc giảng dạy học phần “Nhập môn Công nghệ phần
mềm”
4. Đối tượng nghiên cứu
 Lý thuyết kiểm thử và đánh giá chất lượng phần mềm, vai trò, nhiệm vụ của
giai đoạn kiểm thử trong một số quy trình phần mềm
 Kiểm thử tự động và quy trình kiểm thử tự động
 Một số công cụ kiểm thử tự động.
5. Phạm vi nghiên cứu
 Lý thuyết cơ bản về quy trình phần mềm, kiểm thử và vai trò của kiểm thử
trong quy trình phần mềm
 Kiểm thử tự động, quy trình kiểm thử tự động.
 Nghiên cứu, thực nghiệm và đánh giá một số công cụ kiểm thử tự động.
6. Phương pháp nghiên cứu
Trong quá trình thực hiện đề tài tôi đã sử dụng những phương pháp nghiên
cứu sau:

1.1.1.2 Phương pháp Agile
Đặc điểm của mô hình Agile:
 Cá nhân và các tương tác quan trọng hơn quy trình và công cụ.
 Tập trung làm cho phần mềm chạy được thay vì viết tài liệu.
 Cộng tác trực tiếp với khách hàng thay vì dựa trên hợp đồng.
 Phản ứng với các thay đổi thay vì tuân theo một kế hoạch định sẵn.
 Dự án thực hiện với mô hình Agile thường có rất nhiều test unit được thực
hiện bởi các người phát triển (developer).
Các dự án có đặc điểm sau đây có thể phù hợp với Agile:
 Mức độ rủi ro thấp.
 Thành viên nhóm có kinh nghiệm.
 Yêu cầu thay đổi thường xuyên.
 Kích thước nhóm nhỏ. Các thành viên làm việc cùng một địa điểm.
 Văn hóa công ty ưa thích sự “không trật tự” (thrive on chaos).

6

Hình 2. Mô hình Alige
1.1.1.3 Sản phẩm phần mềm và vấn đề lỗi phần mềm
Quá trình sản xuất 1 phần mềm dù sử dụng quy trình nào thì cũng bao gồm nhiều
giai đoạn chứ không đơn giãn chỉ là viết code chương trình, vì vậy, việc mắc lỗi
không chỉ xảy ra trong khi lập trình mà còn xảy ra cao hơn trong các công đoạn
khác của qui trình phát triển một sản phẩm phần mềm. Việc kiểm thử cũng vì thế
phải được tiến hành trong tất cả các phần tạo nên một sản phẩm phần mềm.

7

Hình 3. Sản phẩm phần mềm
Khi phần mềm thực thi không đúng với đặc tả thì ta nói phần mềm xuất hiện
lỗi. Lỗi phần mềm được chia thành các dạng :

“không nói lên được”. Một điều cũng hiển nhiên là nhiều lỗi xuất hiện trên bề mặt
lập trình nhưng thực ra lại do lỗi của đặc tả hoặc thiết kế. Một nguyên nhân khác tạo
ra lỗi là do bản thân các công cụ phát triển phần mềm cũng có lỗi như công cụ trực
quan, thư viện lớp, bộ biên dịch,…
Khi phần mềm có lỗi chi phí để sửa lỗi phụ thuộc vào thời điểm phát hiện
lỗi, lỗi phát hiện càng muộn thì chi phí càng cao.
1.1.2 Kiểm thử phần mềm và chất lượng phần mềm
1.1.2.1 Kiểm thử phần mềm
Kiểm thử phần mềm thường đồng nghĩa với việc tìm ra lỗi chưa được phát
hiện. Tuy nhiên, có nhiều bối cảnh kiểm thử không bộc lộ ra lỗi. Kiểm thử phần
mềm là quá trình thực thi một hệ thống phần mềm để xác định xem phần mềm đó
có đúng với đặc tả không và thực hiện trong môi trường như mong đợi hay không.
Mục đích của kiểm thử phần mềm là tìm ra lỗi chưa được phát hiện, tìm một
cách sớm nhất và đảm bảo rằng lỗi đã được sửa, mà kiểm thử phần mềm không làm
công việc chẩn đoán nguyên nhân gây ra lỗi đã được phát hiện và sửa lỗi.
Mục tiêu của kiểm thử phần mềm là thiết kế tài liệu kiểm thử một cách có hệ
thống và thực hiện nó sao cho có hiệu quả, nhưng tiết kiệm được thời gian, công
sức và chi phí.
1.1.2.2 Chất lượng phần mềm
Chất lượng phần mềm là một khái niệm đa chiều, không dễ định nghĩa đơn
giản theo cách chung cho các sản phẩm là: “Sản phẩm được phát triển phù hợp với
đặc tả của nó.” [8]. Có một số vấn đề khó trong hệ thống phần mềm, đó là:

9
 Đặc tả phải định hướng theo những đòi hỏi về chất lượng của khách
hàng(như tính hiệu quả, độ tin cậy, tính dễ hiểu, tính bảo mật,…) và những
yêu cầu của chính tổ chức phát triển phần mềm vốn không có trong đặc t(như
các yêu cầu về khả năng bảo trì, tính sử dụng lại, )
 Một số yêu cầu về chất lượng cũng rất khó chỉ ra một cách rõ ràng.
 Những đặc tả phần mềm thuờng không đầy đủ và hay mâu thuẫn.

Technical
Tester
Tester
User
Định
nghĩa
Kiểm thử một
đơn vị code
trong một thời
gian
Lặp đi lặp lại
một hệ thống
hoàn chỉnh.
kiểm tra các
đơn vị code
Là mức độ kiểm
thử toàn bộ chức
năng hệ thống.
Kiểm tra như sản
phẩm được đưa ra
Đánh giá phần mềm
có đáp ứng được các
yêu cầu của người
dùng đã đề ra hay
không? Có thể triển

10
 Giai đoạn phát triển: là một khối thời gian trong vòng đời của việc phát
triển phần mềm với một số các hoạt động phải làm trong khối thời gian này.
 Mốc phát triển: Đánh dấu một sự kiện trong tiến trình phát triển phần mềm,

Ít lỗi
Tìm lỗi
Tìm lỗi/QC
QC
Mục
đích
Xác nhận giá
trị các modun
độc lập
Tìm lỗi và biết
về sản phẩm,
xác nhận giá
trị các yêu cầu
tích hợp
Tìm lỗi, xác
nhận giá tri hệ
thống, luồng dữ
liệu…
Xác nhận các yêu
cầu của người sử
dụng.

11
được một phạm vi và độ bao phủ các trường hợp kiểm thử tốt hơn, giảm chi phí và
thời gian kiểm thử trong suốt vòng đời phần mềm. Qua đó, nâng cao chất lượng,
tăng độ tin cậy, tăng tốc độ làm việc và hiệu quả của quá trình kiểm thử, đạt được
các tiêu chí kiểm thử, giải phóng cho các kỹ sư kiểm thử phần mềm thoát khỏi việc
thực hiện kiểm thử cách tẻ nhạt và lặp lại nhàm chán.
Để đạt được những mục tiêu đó, quy trình KTTĐ đặt ra nhiều yêu cầu thiết
yếu. Việc phải thành lập một đội ngũ kỹ sư chuyên dụng cho KTTĐ với một kế

kiểm tra tiêu biểu thuộc loại này như sau:
+ Đo tốc độ trung bình xử lý một yêu cầu của Web server
+ Thiết lập 1000 yêu cầu, đồng thời gửi đến web server, kiểm tra tình
huống 1000 người dùng truy xuất web cùng lúc.
+ Xác định số yêu cầu tối đa được xử lý bởi web server hoặc xác định
cấu hình máy thấp nhất mà tốc độ xử lý của PM vẫn có thể hoạt động ở
mức cho phép
+ Xác định cấu hình máy thấp nhất mà PM vẫn có thể hoạt động tốt
Việc kiểm tra thủ công cho những tình huống trên là cực khó, thậm chí "vô
phương".
Ngoài ra, một số trường hợp sử dụng KTTĐ nhằm mục đích kiểm tra, phát
hiện những lỗi của PM trong những trường hợp đoán trước. Điều này cũng có nghĩa
là nó thường được thực hiện sau khi đã thiết kế xong các ca kiểm thử (test case).
Tuy nhiên, như đã nói, không phải mọi trường hợp kiểm tra đều có thể hoặc cần
thiết phải tự động hóa, trong tất cả test case thì tester phải đánh giá và chọn ra
những test case nào phù hợp hoặc cần thiết để áp dụng KTTĐ dựa trên những tiêu
chí đã đề cập bên trên. 13
CHƯƠNG 2. MỘT SỐ QUY TRÌNH KIỂM THỬ TỰ ĐỘNG
Ngày nay, các chuyên gia phần mềm đang phải đối mặt với những thách thức
về việc xây dựng các hệ thống với ít nhân lực, tài nguyên trong một khoảng thời
gian ngày càng bị thu hẹp. Các công ty không chỉ muốn kiểm thử phần mềm một
cách đầy đủ, mà còn đòi hỏi việc kiểm thử phải đưa lại kết quả chính xác.
2.1 Quy trình kiểm thử phần mềm
Mục đích của kiểm thử phần mềm là đánh giá chất lượng của công việc được
thực hiện ở từng bước của qui trình phát triển phần mềm. Người quản lí kiểm thử
phải lập kế hoạch kiểm thử lúc bắt đầu của dự án đồng thời với lúc người quản lí dự
án lập kế hoạch cho các hoạt động dự án. Bản kế hoạch kiểm thử nên bao gồm các


Hình 5. Quy trình kiểm thử phần mềm
Sau khi thẩm tra rằng sản phẩm phần mềm làm việc đúng, người kiểm thử có
thể tiến hành "kiểm thử hệ thống" để chắc cả phần cứng và phần mềm đều làm việc
như đã lập kế hoạch. Trong kiểm thử này, người kiểm thử sẽ cho chạy "kiểm thử an
ninh" để thẩm tra bảo vệ hệ thống chạy đúng để ngăn cản việc thâm nhập không
đúng hay thay đổi dữ liệu. Họ tiến hành "kiểm thử chịu căng thẳng" để kiểm tra
xem nó giải quyết tốt đến đâu với nhưng yêu cầu tài nguyên bất thường (như, chất
lượng, tần xuất, hay khối lượng) và "kiểm thử hiệu năng" để kiểm tra hiệu năng khi
chạy của phần mềm, đặc biệt phần mềm thời gian thực. Họ có thể tiến hành "kiểm
thử phục hồi" để kiểm tra khả năng của hệ thống phục hồi từ hỏng hóc.
Nếu mọi kiểm thử trong "kiểm thử hệ thống" đều qua được, người kiểm thử
có thể làm việc cùng khách hàng để chuẩn bị cho "kiểm thử chấp nhận" nơi họ đảm
bảo phần mềm làm việc đúng với người dùng được dự định trong môi trường làm
việc của họ. Hai kiểm thử chính trong thời gian này: “kiểm thử Alpha” là thời kì
kiểm thử mà sản phẩm phần mềm sẵn sàng được dùng trong "môi trường kiểm thử"
của khách hàng nhưng có thể có một số lỗi nhỏ. Nó là cơ hội cuối cùng để được trắc
nghiệm từ khách hàng rằng phần mềm làm việc như được dự định. “Kiểm thử Beta"
là thời kì kiểm thử trong đó sản phẩm phần mềm là đầy đủ không có lỗi và dùng
được trong môi trường "sản xuất". Mục đích của kiểm thử Beta là kiểm thử khả

15
năng của công ti hỗ trợ cho sản phẩm. Kiểm thử Beta phục vụ như bằng chứng rằng
sản phẩm phần mềm là sẵn sàng cho việc gửi đi cho mọi khách hàng.
Mục đích của kiểm thử là thiết kế một chuỗi các trường hợp kiểm thử mà có
khả năng phát hiện lỗi cao. Để cho việc kiểm thử đạt được kết quả tốt cần có sự
chuẩn bị về kế hoạch kiểm thử, thiết kế các trường hợp kiểm thử và các dữ liệu
kiểm thử cho các trường hợp. Đây chính là đầu vào cho giai đoạn kiểm thử; kết quả
của giai đoạn kiểm thử là “báo cáo kiểm thử” mô tả tất cả các trường hợp kiểm thử
đã chạy, dữ liệu đầu vào, đầu ra mong đợi, đầu ra thực tế và mục đích của kiểm

 Xử lý do luờng kiểm thử bằng cách thu thập dữ liệu.
 Ðánh giá sản phẩm phần mềm để xác nhận sản phẩm có thể sẵn sàng phát
hành được chưa?
Mô hình chung của qui trình kiểm thử phần mềm được thể hiện trong hình 6.

Hình 7. Quy trình kiểm thử phần mềm
Các pha được cụ thể hóa theo bảng sau: 17
Các bước
Đầu vào
Mô tả
Công việc
Kết quả
Người thực hiện
Lập kế
hoạch kiểm
tra
- Kế hoạch dự
án
- Tài liệu SRD,
SRS, HLD.
- Các tài liệu
mô tả nghiệp vụ
- Nhóm dự án sẽ cung cấp các tài
liệu có liên quan cho nhóm PQA
- Nhóm PQA nghiên cứu các yêu
cầu, thời gian và nội dung các yêu
cầu nhận được để quyết định các

nghiệp vụ.
- Cán bộ kiểm tra có trách nhiệm
hỗ trợ với bên kỹ thuật để chuẩn bị
môi trường thực tế hay giả lập cho
dự án trước khi tiến hành kiểm tra.
- Xây dựng các công cụ tạo dữ
liệu, kiểm tra cơ sở dữ liệu.
- Tạo dữ liệu kiểm tra hệ thống
cho chương trình
- Xây dựng môi trường phần cứng
- Xây dựng môi trường phần mềm
- Môi trường
kiểm tra đã sẵn
sàng.
- Cán bộ PQA.
- Trưởng nhóm
PQA.
Thiết kế
kiểm tra
- Tài liệu
SRD,SRS,
HDL.
- Prototype (nếu
có)
- Đưa ra các tình huống kiểm tra
- Việc lập tình huống kiểm tra do
cán bộ kiểm tra đảm nhiệm, quá
trình lập tình huống sẽ được
trưởng nhóm kiểm tra thường
xuyên xem xét, sửa đổi, cập nhật

trong quá trình thực hiện kiểm tra
Trưởng nhóm kiểm tra thường
xuyên xem xét (nếu cần).
- Tạo dữ liệu mô phỏng
- Thực hiện tình huống kiểm tra.
- Ghi nhận lỗi.

- Báo cáo kết
quả kiểm tra
- Tình huống
cập nhật (nếu
có).
- Cán bộ kiểm tra
- Trưởng nhóm
PQA.
- Quản trị dự án
Theo dõi xử
lý lỗi
- Báo cáo kết
quả kiểm tra
- Tình huống
kiểm tra
- Phân tích, tổng hợp các lỗi mới
nhất để gửi tới nhóm phát triển
triển tiến hành sửa đổi cũng như
cập nhật
- Công việc này do Trưởng nhóm
kiểm tra đảm nhiệm kết hợp với
bên phát triển PM.


- Tình huống
kiểm tra
- Báo cáo ghi
nhận lỗi và xử
lý lỗi
- Nhóm kiểm tra thống kê số lượng
lỗi, các loại lỗi gặp phải, và làm
báo cáo kết quả kiểm tra hệ thống
phần mềm.
- Nhóm PQA có trách nhiệm
chuyển kết quả kiểm tra và các yêu
cầu phát sinh cho Quản trị dự án
để giảm rủi ro phát sinh.
- Chuẩn bị thủ tục phát hành sản
phẩm.
- Thống kê lỗi, lỗi phát sinh
- Báo cáo kết quả kiểm tra hệ
thống phần mềm
- Báo cáo kết
quả kiểm tra hệ
thống phần mềm
- Cán bộ PQA
- Trưởng nhóm
PQA
- Quản trị dự án
Thông báo
phát hành

kiểm thử nhiều dữ liệu trên 1 hoạt động; kiểm thử phần mềm ở nhiều môi trường khác
nhau; kiểm thử chịu tải…
Quá trình thực hiện kiểm thử thường được thực hiện theo quy trình sau: Hình 8. Quy trình kiểm thử tự động
Hình trên cho thấy:
 Kiểm thử tự động (KTTĐ) giống như là phát triển một dự án.
 Mối tương quan giữa Kiểm thử tự động với toàn bộ chu trình Kiểm thử phần
mềm.
Kiến trúc của quy trình kiểm thưr tự động được trình bày trong hình 9, Quá
trình KTTĐ sẽ tác động đến hệ thống cần kiểm thử (SUT- System Under Test) bằng
cách lấy dữ liệu từ tập dữ liệu kiểm thử. Sau khi thực hiện việc kiểm thử, kết quả kiểm
thử sẽ được lưu trữ trong kho kết quả.

21

Hình 9. Mô hình kiến trúc của quy trình KTTĐ
Việc kiểm thử thủ công sẽ rất khó để thực hiện hết các ca kiểm thử, đặc biệt với
xu thế hiện nay khi việc thực hiện phần mềm thường làm trong giai đoạn ngắn. Quy
trình KTTĐ tiếp cận theo hướng cấu trúc, mô tả quá trình xử lý để thực hiện các ca
kiểm thử. Theo nghiên cứu của Elfriede Dustin [5] KTTĐ được thực hiện qua 6 giai
đoạn chính như hình 10

22

Hình 10. Các giai đoạn chính của quy trình KTTĐ
2.3 Các bước cơ bản của quá trình KTTĐ:
 Xây dựng yêu cầu: Thu thập các đặc tả yêu cầu hoặc xây dựng Test Case,
lựa chọn những phần cần KTTĐ


24
CHƯƠNG 3. CÔNG CỤ KIỂM THỬ TỰ ĐỘNG
3.1 Tổng quan về công cụ kiểm thử tự động
Các công cụ KTTĐ được thiết kế đặc biệt gắn với một số môi trường kiểm thử
cụ thể. Chẳng hạn như: công cụ cho ứng dụng Windows, công cụ cho ứng dụng web,
v…v… Nó đóng vai trò điều khiển quy trình kiểm thử tự động, có thể trợ giúp tự động
hoá các tác vụ như cài đặt sản phẩm, tạo ra bộ dữ liệu kiểm thử, tương tác giao diện đồ
họa, phát hiện các vấn đề về đăng nhập, v…v…, mà không nhất thiết phải tự động
trông mô hình end-to-end.
Hiện nay, có rất nhiều công cụ kiểm thử tự động đã có sẵn trên thị trường. Một
số dành cho ứng dụng web, một số dụng cho ứng dụng window, một số để kiểm thử cơ
sở dữ liệu… Việc lựa chọn và sử dụng đúng đắn các công cụ kiểm thử tự động đem lại
lợi ích vô cùng lớn cho các công ty phát triển phần mềm. Các công cụ kiểm thử tự
động được chia theo các nhóm sau:
3.1.1 Công cụ kiểm thử tự động mã trình
 Bộ phân tích tĩnh: Các hệ thống phân tích chương trình này hỗ trợ cho "việc
chứng minh" các lý lẽ tĩnh - những mệnh đề yếu kém về cấu trúc và định dạng của
chương trình.
 Bộ kiểm toán mã: Những bộ lọc chuyên dụng này được dùng để kiểm tra chất
lượng của phần mềm để đảm bảo rằng nó đáp ứng các chuẩn mã hoá tối thiểu.
 Bộ xử lý khai báo: Những hệ thống tiền xử lý/hậu xử lý này được sử dụng để
cho biết liệu những phát biểu do người lập trình nêu, được gọi là các khẳng định, về
hành vi của chương trình có thực sự được đáp ứng trong việc thực hiện chương trình
thực hay không.
3.1.2 Công cụ kiểm thử tự động dữ liệu
 Bộ sinh tệp kiểm thử: Những bộ xử lý này sinh ra, và điền các giá trị đã xác
định, vào các tệp đọc vào điển hình cho chương trình đang được kiểm thử.
 Bộ sinh dữ liệu kiểm thử: Những hệ thống phân tích tự động này hỗ trợ cho
người dùng trong việc chọn dữ liệu kiểm thử làm cho chương trình hành xử theo một

và do đó cải tiến độ tin cậy của các hệ thống dựa trên máy tính.
3.2 Giới thiệu và đánh giá một số công cụ KTTĐ
Trong lĩnh vực KTTĐ hiện có khá nhiều Test Tool thương mại nổi tiếng, phổ
biến như QuickTest Professional, WinRunner, Rational Robot, SilkTest, JTest, Trong

Trích đoạn Công cụ kiểm thử tự động cài đặt
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