Đồ án môn học
Kiểm thử phần mềm
LỜI NÓI ĐẦU
Nhờ có sự phát triển vượt bậc của công nghệ thông tin cũng như công nghệ phần
mềm đã dẫn đến việc phát triển phần mềm ngày càng được hỗ trợ bởi rất nhiều công
cụ tiên tiến, giúp hạn chế những khó khăn và nâng cao hiệu quả trong việc xây dựng
phần mềm. Tuy vậy, vì độ phức tập của phần mềm và những giới hạn về trời gian, chi
phí cho nên cũng không chắc chắn đảm bảo được rằng các sản phẩm phần mềm đang
được ứng dụng là không có lỗi cho dù các hoạt động đảm bảo chất lượng phần mềm
nói chung và kiểm thử nói riêng ngày càng chặt chẽ và khoa học. Lỗi phần mềm luôn
tồn tại tiềm ẩn bên trong mọi sản phẩm phần mềm và có thể gây ra những thiệt hại
không lường trước được bất cứ lúc nào.
Một sản phẩm phần mềm không đơn giản là các giai đoạn mã chương tình, mà nó
còn bao gồm nhiều thành phần với nhiều các vai trò khác nhau. Do đó, việc xảy ra các
lỗi phần mềm không chỉ ở công đoạn lập trình, mà còn xảy ra ở tất cả các công đoạn
khác nhau của quy trình phát triển phần mềm, với xác suất cao thấp khác nhau. Kiểm
thử là một công đoạn đóng vai trò tối qaun trọng, quyết định đến việc đánh giá chất
lượng của một sản phẩm phần mềm. Mục đích của kiểm thử là đảm bảo rằng tất cả các
thành phần của phần mềm ăn khớp, vận hành như mong đợi và phù hợp các tiêu chẩn
thiết kế.
Kiểm thử phần mềm là một trong những hoạt động quan trọng trong tiến trình
phát triển phần mềm. Nó góp một phần rất lớn trong việc đánh giá chất lượng của một
phần mềm và quy trình bắt buộc trong các dự án phát triển phần mềm trên thế giới
cũng như trong nước.
Để củng cố kiến thức đã học và ứng dụng trong một số công việc cụ thể nên
nhóm chúng em đã được giao tìm hiểu về công cụ kiểm thử Loadrunner Nhóm chúng
em xin chân thành cảm ơn Giảng viên (ThS) Phạm Thị Phương Anh đã tận tình chỉ
dạy và hướng dẫn chúng em hoàn thiện đồ án này.
Nhóm 03 – LT04A Trang i
Đồ án môn học
Kiểm thử phần mềm
26.Ghi lại một Vuser script 14
27.Xem một Vuser script 16
Nhóm 03 – LT04A Trang ii
Đồ án môn học
Kiểm thử phần mềm
28.Chạy lại scriptt của chúng ta 18
29.Thiết lập thời gian chạy( Run time settings) 18
30.Chạy một Vuser 22
31.Xem thông tin về vuser đã chạy 23
32.Kiểm tra script của chúng ta chạy lại thành công 23
33.Tìm kiếm hay lọc các kết quả 24
34.Giải quyết các vấn đề thường gặp phải 26
35.Chuẩn bị HP Tours để tái hiện lại lỗi 26
36.Làm việc với giá trị server duy nhất 27
37.Chuẩn bị một Vuser Script cho Load Testing 29
38.Đo lường các quy trình nghiệp vụ 29
39.Mô phỏng nhiều người dùng 32
40.Xác minh nội dung của trang web 35
41.Đưa ra thông tin lỗi 37
42.Kiểm tra đã test thành công chưa 38
43.Tạo một Scenario Load Test 39
44.Giới thiệu về LoadRunner Controller 39
45.Chạy load test scenario 39
46.Nhìn tổng quát Controller Run 41
47.Chỉnh sửa chi tiết script 42
48.Tạo một load test 43
49.Mô phỏng các ứng xử từ người dùng 45
50.Chạy Load Test 52
51.Tổng quát về Controller Run 52
52.Chạy load test scenario 53
Hình 3.10.Giao diện ghi lại Vuser script 14
Hình 3.11.Giao diện trang Web Tours 15
Hình 3.12.Giao diện Solution Explorer 17
Hình 3.13.Giao diện Step Navigator 18
Hình 3.14.Giao diện Vuser Editor 18
Hình 3.15.Giao diện thiết lập Run-Time Settings 19
Hình 3.16.Giao diện thiết lập Run-Time Settings(tiếp theo) 20
Hình 3.17.Giao diện thiết lập Run-Time Settings(tiếp theo) 20
Hình 3.18.Giao diện thiết lập Run-Time Settings(tiếp theo) 21
Hình 3.19.Giao diện thiết lập Run-Time Settings(tiếp theo) 21
Hình 3.20.Giao diện chạy Vuser 22
Hình 3.21.Giao diện Replay Summary 23
Hình 3.22.Giao diện Test Results 24
Hình 3.23.Giao diện hộp thoại Find 25
Hình 3.24.Giao diện hộp thoại Filters 26
Hình 3.25.Giao diện Design Studio 28
Hình 3.26.Giao diện Design Studio( tiếp theo) 28
Hình 3.27.Giao diện Start Transaction 30
Hình 3.28.Giao diện End Transaction 31
Hình 3.29.Giao diện Step Navigator ( tiếp theo ) 31
Hình 3.30.Giao diện Submit Data Step Properties 32
Hình 3.31.Giao diện Select or Create Parameter 33
Nhóm 03 – LT04A Trang v
Đồ án môn học
Kiểm thử phần mềm
Hình 3.32.Giao diện Submit Data Step Properties( tiếp theo ) 33
Hình 3.33.Giao diện Parameter Properties 34
Hình 3.34.Giao diện Parameter Properties (tiếp theo ) 35
Hình 3.35.Giao diện Snapshot 36
Hình 3.36.Giao diện Step Navigator (tiếp theo ) 37
Hình 3.64. Giao diện Scenario Status 59
Hình 3.65. Giao diện Trancactions 60
Hình 3.66. Giao diện Scenario Status(tiếp theo ) 61
Hình 3.67.Giao diện Vusers (tiếp theo ) 61
Nhóm 03 – LT04A Trang vii
Đồ án môn học
Kiểm thử phần mềm
CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM
1. Định nghĩa
Kiểm thử phần mềm có nhiều cách định nghĩa khác nhau. Tuy nhiên, chúng cùng
bao trùm hai nội dung cơ bản là phát hiện lỗi và đánh giá chất lượng của phần mềm.
Định nghĩa sau đây của Myers là đơn giản và có tính thực tế: “Kiểm thử là tiến trình
thực thi chương trình với mục đích tìm thấy lỗi”. Theo định nghĩa của Myers, kiểm thử
mà không phát hiện được lỗi được coi là không thành công.
Mục đích của kiểm thử là phát hiện lỗi vì trong thực tế phần mềm hầu như không
bao giờ không chứa lỗi.
2. Kỹ thuật kiểm thử phần mềm
Có thể chia các kỹ thuật kiểm thử thành hai loại: kỹ thật kiểm thử chức năng
(Functional Testing) hay còn gọi là kỹ thật kiểm thử hộp đen (Black-box-Testing) và
kỹ thật kiểm thử cấu trúc (Structutural Testing) hay còn gọi là kỹ thuật kiểm thử hộp
trắng (White-box-Testing).
3. Kỹ thuật kiểm thử chức năng
Trong kỹ thuật kiểm thử chức năng, dữ liệu kiểm thử được xuất phát từ đặc tả
phần mềm bao gồm: đặc tả các yêu cầu (đối với kiểm thử hệ thống), đặc tả thiết kế
(đối với kiểm thử tích hợp) và đặc tả chi tiết mô-đun (đối với kiểm thử đơn vị). Trong
kỹ thuật này, kiểm thử viên xem phần mềm như là một hộp đen. Kiểm thử viên hoàn
toàn không quan tâm cấu trúc và hành vi bên trong của phần mềm. Kiểm thử viên chỉ
cần quan tâm đến việc tìm các hiện tượng mà phần mềm không hành xử theo đúng đặc
tả của nó.
Kiểm thử viên chỉ biết những gì phần mềm dự kiến thực hiện và những gì dự kiến
6. Các giai đoạn kiểm thử
7. Kiểm thử đơn vị (Unit Testing)
Phần lớn các phương pháp thiết kế phần mềm đều dẫn đến chia phần mềm thành
những mô- đun hay chương trình nhỏ có các dữ liệu vào và kết quả riêng. Chúng ta gọi
các mô-đun hay chương trình đó là các đơn vị (unit) phần mềm. Trên các đơn vị này
chúng ta sẽ tiến hành kiểm thử đơn vị.
Một khi đơn vị phần mềm đã được mã hoá, nghĩa là lập trình và hồ sơ kiểm thử
đơn vị tương ứng đã được hoàn thành thì kiểm thử đơn vị có thể được tiến hành.
Kiểm thử đơn vị chủ yếu là thực hiện các trường hợp kiểm thử (test case) đã được
mô tả trong hồ sơ kiểm thử đơn vị và điền các thông tin cần thiết vào các phiếu báo
cáo kiểm thử. Nếu một lỗi hay sự không tương thích được phát hiện, cần phải chỉnh
sửa lại đơn vị phần mềm. Sau đó, kiểm thử đơn vị được thực hiện lại. Kiểm thử đơn vị
sẽ kết thúc khi mà tất cả các trường hợp kiểm thử được mô tả trong hồ sơ kiểm thử
đơn vị đã được thực hiện thành công và kết quả được lưu lại trong hồ sơ.
8. Kiểm thử tích hợp (Integration Testing)
Kiểm thử tích hợp được tiến hành một khi kiểm thử đơn vị các thành phần cần
thiết cho kiểm thử tích hợp kết thúc và hồ sơ kiểm thử tích hợp đã được chuẩn bị sẵn
Nhóm 03 – LT04A Trang 2
Đồ án môn học
Kiểm thử phần mềm
sàng. Trong giai đoạn kiểm thử tích hợp, ý tưởng là các thành phần đã được kiểm thử
đơn vị sẽ được tích hợp lại dần dần cho đến khi có được toàn bộ phần mềm. Phần mềm
càng phức tạp thì đòi hỏi giai đoạn kiểm thử tích hợp phải trải qua các giai đoạn trung
gian, là các giai đoạn mà các nhóm các thành phần sẽ được kiểm thử.
Mục tiêu của giai đoạn kiểm thử tích hợp là kiểm tra sự giao tiếp và trao đổi dữ
liệu giữa các thành phần phần mềm. Trong giai đoạn tích hợp, có thể có khả năng phải
sử dụng các thành phần không được phát triển trong dự án phần mềm, mà là những
thành phần được cung cấp sẵn bởi các thư viện hay thậm chí là các thành phần được
cung cấp bởi hệ điều hành.
9. Kiểm thử hợp thức hóa (Validation Testing)
Do kiểm thử là chạy thử chương trình với tập dữ liệu giả nên không thể khẳng
định tính đúng của chương trình do bản chất quy nạp không hoàn toàn của nó.
Trong nhiều trường hợp, việc kiểm thử thường được thực hiện từ những giai đoạn
đầu của quá trình cài đặt sản phẩm.
Một chương trình được cho tuyệt đối đúng phải được thực hiện thông qua: tính
đúng đắn của thuật toán và tính tương đương của chương trình với thuật toán (được thể
hiện ở chứng minh thông qua văn bản chương trình).
Việc kiểm thử chương trình chỉ là nhìn sự kiện đưa ra kết luận do vậy không thể
khẳng định một chương trình tuyệt đối đúng bằng kiểm thử. Tuy vậy, bộ dữ liệu kiểm
thử phải phủ kín mọi trường hợp cần đánh giá.
Thêm vào đó, trong quá trình kiểm thử, ta thường mắc phải các đặc trưng của
nguyên lý chủ quan như sau:
14. Các nguyên tắc kiểm thử
Các nguyên tắc luôn đóng vai trò quan trọng trong lĩnh vực công nghệ phần
mềm. Các nguyên tắc trong công nghệ phần mềm là các luật hay quy tắc hướng dẫn
làm thế nào để xây dựng (thiết kế, phát triển, kiểm thử và bảo trì) phần mềm. Kiểm thử
là một trong những lĩnh vực của công nghệ phần mềm, kiểm thử cũng có các nguyên
tắc riêng dành cho các kiểm thử viên. Chúng ta sẽ xem xét một số nguyên tắc cơ bản
liên quan đến kiểm thử động:
- Kiểm thử là tiến trình thực thi phần mềm và sử dụng các trường hợp kiểm thử
để phát hiện lỗi.
- Với mục đích của kiểm thử nhằm phát hiện lỗi, một ca kiểm thử tốt là ca kiểm
thử có khả năng cao phát hiện những lỗi chưa được tìm thấy.
- Một ca kiểm thử phải định nghĩa kết quả mong muốn.
- Kiểm thử nên được thực hiện bởi một nhóm độc lập với nhóm phát triển.
- Kết quả kiểm thử nên được kiểm tra một cách cẩn thận.
- Các ca kiểm thử nên được thiết kế cho cả những dữ liệu vào hợp lệ và không
hợp lệ.
Nhóm 03 – LT04A Trang 4
Đồ án môn học
thông tin release và ngăn ngừa hệ thống downtime và sẵn sàng trước những vấn đề gặp
phải.
17. Những thành phần của Loadrunner
LoadRunner chứa các thành phần sau đây:
Virtual User Generator: Tự động tạo ra VuGen script để lưu lại các thao tác
người dùng tương tác lên phần mềm. VuGen script này còn được xem là hoạt động của
một người ảo mà LoadRunner giả lập.
Controller: Tổ chức, điều chỉnh, quản lý và giám sát hoạt động kiểm tra tải.
Thành phần này có chức năng tạo ra những tình huống (scenario) kiểm tra.
Load Generator: Cho phép giả lập hàng ngàn người dùng, hoạt động của từng
người sẽ được thực hiện theo VuGen script. Kết quả thực hiện sẽ được thông báo cho
Controller.
Nhóm 03 – LT04A Trang 6
Đồ án môn học
Kiểm thử phần mềm
Analysis: Cung cấp việc xem, phân tích và so sánh các kết quả kiểm tra hiệu
năng phần mềm.
Launcher: Nơi tập trung tất cả các thành phần của LoadRunner cho người dùng.
18. Thuật ngữ dùng trong Loadrunner
Scenario: Là một file định nghĩa các sự kiện xảy ra trong mỗi lần kiểm tra dựa
trên hiệu suất yêu cầu.
Vuser: Trong Scenario, LoadRunner thay thế người sử dụng bằng người dùng ảo
hay còn gọi là Vuser. Vuser mô phỏng hành động của con người làm việc với ứng
dụng của chúng ta. Một Scenario có thể chứa hàng chục, hàng trăm và thậm chí hàng
ngàn Vuser.
Vuser Script: Các hành động mà Vuser thực thi trong Scenario được mô tả trong
Vuser Script.
Transactions: Chúng ta định nghĩa một transactions để đo lường hiệu quả hoạt
động của Server . Một Transaction đại diện cho người sử dụng dưới vai trò End-User
thực hiện theo quy trình nghiệp vụ mà chúng ta muốn đo lường.
Đồ án môn học
Kiểm thử phần mềm
Hình 3.3.Tiến trình cài đặt chương trình (tiếp theo)
Tích chọn I Agree và nhấn Next
Hình 3.4.Tiến trình cài đặt chương trình (tiếp theo)
Điền tên và chon Next
Nhóm 03 – LT04A Trang 10
Đồ án môn học
Kiểm thử phần mềm
Hình 3.5.Tiến trình cài đặt chương trình (tiếp theo)
Chọn thư mục để cài đặt phần mềm và chọn các tùy chọn khác
Hình 3.6.Tiến trình cài đặt chương trình (tiếp theo)
Hệ thống sẽ thông báo kết quả sau khi cài đặt thành công
Nhóm 03 – LT04A Trang 11
Đồ án môn học
Kiểm thử phần mềm
Hình 3.7.Tiến trình cài đặt chương trình (tiếp theo)
22. Hướng dẫn sử dụng công cụ Loadrunner
Để hưỡng dẫn sử dụng công cụ Loadrunner trong việc kiểm thử hiệu nặng của
phần mềm thì chúng ta sẽ sử dụng một trang web đăng ký tours du lịch được tích hợp
sẵn trong phần mềm LoadRunner.
Địa chỉ website : http://localhost:1080/WebTours
23. Xây dựng một Vuser Script
Để tạo một kiểm thử hiệu năng trên hệ thống của chúng ta , trước hết chúng ta
cần xây dựng một Vuser scrtipt mà có thể chạy như một người dùng thực sự. Chúng ta
sử dụng VuGen để tạo Vuser scripts
24. Giới thiệu về VuGen – bộ tạo Virtual User Generator
Trong một môi trường Test, LoadRunner thay thế con người sử dụng sức mạnh
của máy tính, với người sử dụng ảo hay còn gọi là Vuser. Các Vuser tạo tải trên hệ
thống mô phỏng hành động của người sử dụng và lặp đi lặp lại nhiều lần. VuGen hoạt
Record>Recording Options. Trong hộp thoại Recording Options, chọn General >
Script, và sau đó dưới Scripting Options, xóa the Track processes createdas COM
local server
26. Ghi lại một Vuser script
Bước kế tiếp để tạo một người dùng ảo là ghi ại các sự kiện, hoạt động bởi người
sử dụng thật.Trong phần trước, chúng ta đã tạo một Vuser script trống. Giờ chúng ta
có thể bắt đầu ghi trực tiếp các sự kiện vào script. Trong phần này chúng ta sẽ theo dõi
các sự kiện trong khi một đại lý du lịch đặt một chuyến bay từ Denver tớ Los Angeles
và sau đó kiểm tra hành trình chuyên bay ( flight itinerary).
Để ghi lại một Vuserscript:
1. Ghi lại hành động trên HP Web Tours Web site.
a. Click Record > Record hoặc click nút Record trên thanh công cụ
VuGen. Hộp thoại StartRecording được mở.
Hình 3.10.Giao diện ghi lại Vuser script
b. Trong hộp thoại Record into action, chọn Action.
c. Từ Application type, chọn Web.
Nhóm 03 – LT04A Trang 14
Đồ án môn học
Kiểm thử phần mềm
d. Trong box URL address nhập vào http://localhost:1080/WebTours.
e. Click Start Recording. Một cửa sổ trình duyệt mới được mở và hiển thị
HP Web Tours site.
Hình 3.11.Giao diện trang Web Tours
Chú ý rằng nếu có lỗi khi mở WebTours site chúng ta hãy chắc chắn rằng chúng
ta đã khởi động server. Để khởi động server chọn Start > All Programs > HP
Software > HP LoadRunner > Samples > Web > Start Web Server.
Thanh công cụ Recording được mở
2. Đăng nhập vào HP Web Tours Web site.
a. Sử dụng các thông tin sau để đăng nhập
-Username: jojo
b. Điều hướng tới <LoadRunner Installation>\tutorial và tạo một thư mục
mới với tên là Scripts.
c. Trong hộp File name, gõ lại basic_tutorial.
d. Click Save. VuGen lưu script trong thưc mục LoadRunnerscript folder và
hiển thị tên script trong thanh title của VuGen
27. Xem một Vuser script
Bây giờ chúng ta đã ghi lại hành động của một người sử dụng dịch vụ du lịch
đăng nhập, đặt một chuyến bay, kiểm tra lịch trình , đăng xuất. VuGen ghi lại các
hành động của chúng ta từ lúc chúng ta click nút Start Recording tới lúc chúng ta
Nhóm 03 – LT04A Trang 16
Đồ án môn học
Kiểm thử phần mềm
click nút Stop Recording.Chúng ta có thể sử dụng VuGen để xem lại script. VuGen
cho phép chúng ta thấy Vuserscript in trong một số định dạng
• Solution Explorer đưa cho chúng ta cấu trúc truy cập vào các thành phần khác
nhau của Vuserscript.
Hình 3.12.Giao diện Solution Explorer
• Step Navigator hiển thị một danh sách các hành động của một Vuser .Mỗi một
hành động trong khi ghi , VuGen tạo một bước trong Step Navigator
Nhóm 03 – LT04A Trang 17
Đồ án môn học
Kiểm thử phần mềm
Hình 3.13.Giao diện Step Navigator
• The Step Navigator hiển thị một biểu tượng để chỉ ra một bước xác định
chứa trong một ảnh chụp
Để xem script trong Step Navigator, chọn View > Step Navigator, hoặc click nút
Step
Navigator trên thanh công cụ VuGen. Double-click vào bất kỳ bước nào
trong Step Navigator để hiển thị hàm chứng năng tương ứng trong Editor
• VuGen Editor hiển thị một đoạn văn bản của script. Trong Editor, các hành