ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
Tel. (84-511) 736 949, Fax. (84-511) 842 771
Website: itf.ud.edu.vn, E-mail:
LUẬN VĂN TỐT NGHIỆP KỸ SƯ
NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH : 05115
ĐỀ TÀI :
TÌM HIỂU CÁC PHƯƠNG PHÁP KIỂM THỬ PHẦN MỀM VÀ
ỨNG DỤNG CÔNG CỤ KIỂM TRA TỰ ĐỘNG TESTARCHITECT
ĐỂ KIỂM THỬ TỰ ĐỘNG CHO ỨNG DỤNG DOLPHIN
Mã số : 06T2 – 49
06T1 – 67
Ngày bảo vệ : 14 - 15/ 06 /2011
SINH VIÊN : NGUYỄN TÙNG
06T2
NGUYỄN ĐĂNG QUYỀN 06T1
CBHD :
K.S VÕ ĐỨC HOÀNG
ĐÀ NẴNG, 06/2011
LỜI CẢM ƠN
Chúng tôi xin được gửi lời cảm ơn tới các thầy cô trong khoa công nghệ thông
tin trường Đại học Bách Khoa Đà Nẵng và công ty Logigear đã tạo điều kiện và
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
Đà Nẵng ngày … tháng … năm 2011
Cán bộ hướng dẫn
K.s. Võ Đức Hoàng
Tìm hiều về kiểm thử phần mềm và kiểm thử tự động
Nguyễn Tùng 06T2 – Nguyễn Đăng Quyền 06T1
Trang 5
Tìm hiều về kiểm thử phần mềm và kiểm thử tự động
TÓM TẮT ĐỒ ÁN
Đồ án gồm những nội dung chính sau:
- Khái quát về kiểm thử phần mềm:
o Khái niệm kiểm thử phần mềm
o Một số phương pháp kiểm thử phần mềm
o Các giai đoạn kiểm thử phần mềm
o Các lỗi thường gặp khi kiểm thử
- Sơ lược về Test Tool và kiểm tra tự động
- Giới thiệu chương trình kiểm thử phần mềm TestArchitect
- Thực hành kiểm thử Ứng dụng web cộng đồng Dolphin bằng công cụ
TestArchitect
Nguyễn Tùng 06T2 – Nguyễn Đăng Quyền 06T1
Trang 6
Tìm hiều về kiểm thử phần mềm và kiểm thử tự động
DANH SÁCH HÌNH SỬ DỤNG TRONG ĐỒ ÁN
Hình 1: Mô hình thác nước......................................................................12
II.1.
Kiểm thử phần mềm.....................................................................15
II.1.1.
Khái niệm..............................................................................15
II.1.2.
Lý do cần kiểm thử................................................................15
II.1.3.
Vai trò....................................................................................15
II.1.4.
Mục tiêu................................................................................16
II.1.5.
Lợi ích...................................................................................16
II.2. Các giai đoạn kiểm thử và điểm xác định:........................................16
II.3. Tổng Quan Về Kiểm Thử Phần Mềm...............................................17
II.3.1 Tìm hiểu Testing, QA, QC........................................................17
II.3.2 Nhóm kiểm thử.........................................................................17
II.3.2.1. Mục tiêu.............................................................................17
II.3.2.2. Trách nhiệm của Tester......................................................17
II.3.3.
Mục tiêu của kiểm thử...........................................................18
II.3.3.1. Lớp tương đương và phân tích giá trị biên.........................18
II.3.3.2. Thiết kế kiểm thử...............................................................18
II.3.4. Các phương pháp kiểm thử.......................................................18
II.4.
Các giai đoạn kiểm thử...................................................................31
II.4.1.
Kiểm thử đơn vị.....................................................................31
II.4.2.
Kiểm thử tích hợp..................................................................31
II.4.3.
III.4.
Các lỗi thường gặp khi kiểm thử..................................................37
III.4.1. Các lỗi dữ liệu vào ra.............................................................37
III.4.2. Các lỗi logic..........................................................................38
III.4.3. Các lỗi tính toán....................................................................38
III.4.4. Các lỗi giao diện....................................................................39
III.4.5. Các lỗi dữ liệu.......................................................................39
ỨNG DỤNG LÝ THUYẾT ĐỂ THIẾT KẾ TEST REQUIREMENTS VÀ
TEST CASE.....................................................................................................40
IV.1. Ví dụ về thiết kế TR và TC cho Gmail web và ứng dụng Evernote.40
IV.1.1. TR và TC cho 1 số chức năng gmail.........................................40
IV.1.2. TR và TC cho ứng dụng Evernote............................................43
IV.2. Ví dụ về Bug và cách viết Bug...........................................................46
SƠ LƯỢC VỀ TEST TOOL.............................................................................50
V.1.
Test Tool.......................................................................................50
V.2.
Kiểm thử tự động.........................................................................51
TÌM HIỂU VÀ GIỚI THIỆU VỀ CÔNG CỤ KIỂM THỬ TỰ ĐỘNG TEST
ARCHITECT...................................................................................................53
VI.1.
Giới thiệu về nền tảng Action Based Testing................................53
VI.1.1. Action based testing là gì ?....................................................53
VI.1.2. Cách làm việc của ABT là gì ?..............................................54
VI.2.
GIỚI THIỆU VỀ TOOL TESTARCHITECT...............................56
VI.2.1. Giới thiệu...............................................................................56
VI.2.2. Chức năng cơ bản..................................................................58
VI.2.2.1.Automation Engineers....................................................60
VI.2.2.2.Software Testers..............................................................60
chiếm tỷ trọng khá lớn công sức và thời gian trong một dự án. Do vậy, nhu cầu
tự động hoá qui trình kiểm tra phần mềm đã được đặt ra.
Qua thực tế cho thấy việc áp dụng kiểm thử tự động hợp lý sẽ mang lại
thành công cho hoạt động kiểm tra phần mềm. Kiểm thử tự động giúp giảm bớt
công sức thực hiện, tăng độ tin cậy, giảm sự nhàm chán và rèn luyện kỹ năng
lập trình cho kiểm thử viên. Nhận thấy tầm quan trọng đó của kiểm thử phần
mềm trong việc phát triển phần mềm hiện nay, chúng em đã chọn đề tài: “Tìm
hiểu các phương pháp kiểm thử phần mềm và ứng dụng công cụ kiểm tra tự
động TestArchitect để kiểm thử tự động cho ứng dụng Dolphin” làm đề tài
cho đồ án tốt nghiệp. Nội dung đồ án sẽ giới thiệu khái quát về kiểm thử phần
mềm, Test Tool, kiểm tra tự động và giới thiệu một công cụ kiểm tra tự động
khá mạnh hiện nay là TestArchitect của Logigear.
Mặc dù đã có nhiều cố gắng trong quá trình làm bài, nhưng do thời gian
và kinh nghiệm còn hạn chế nên bài làm không thể tránh được thiếu sót, vì vậy
chúng tôi rất mong nhận được sự chỉ bảo của thầy cô và sự đóng góp ý kiến của
các bạn để đồ án được hoàn thiện hơn.
Chúng tôi xin chân thành cảm ơn!
Nguyễn Tùng 06T2 – Nguyễn Đăng Quyền 06T1
Trang 10
Tìm hiều về kiểm thử phần mềm và kiểm thử tự động
CHƯƠNG I
VÒNG ĐỜI PHÁT TRIỂN PHẦN MỀM
I.1.
Mô hình này làm cho ý nghĩa việc sản xuất được rõ hơn.
1. Phân tích các yêu cầu và định nghĩa: hệ thống dịch vụ, khó khăn và mục
tiêu được hình thành bởi sự trợ giúp của hệ thống người tiêu dùng. Sau
đó các yếu tố này được định nghĩa sao cho có thể hiểu được bởi cả
người phát triển và người tiêu dùng.
2. Thiết kế phần mềm và hệ thống: Thiết kế hệ thống các quy trình, các bộ
phận và các yêu cầu về cả phần mềm lẫn phần cứng. Hoàn tất hầu như
tất cả kiến trúc của các hệ thống này. Thiết kế phần mềm tham gia vào
việc biểu thị các chức năng hệ thống phần mềm mà có thể được chuyển
đổi thành một hay nhiều chương trình khả thi.
3. Thực hiện và thử nghiệm các đơn vị: Trong giai đoạn này, thiết kế phần
mềm phải được chứng thực như là một tập hợp nhiều chương trình hay
nhiều đơn vị nhỏ. Thử nghiệm các đơn vị bao gồm việc xác minh rằng
mỗi đơn vị thỏa mãn đặc tả của nó.
4. Tổng hợp và thử nghiệm toàn bộ: Các đơn vị chương trình riêng lẻ hay
các chương trình được tích hợp lại và thử nghiệm như là một hệ thống
hoàn tất và chứng tỏ được các yêu cầu của phần mềm được thỏa mãn.
Sau khi thử nghiệm phần mềm được cung ứng cho người tiêu dùng.
5. Sản xuất và bảo trì: Thông thường (nhưng không bắt buộc) đây là giai
đoạn lâu nhất của chu kỳ sống (của sản phẩm). Phần mềm được cài đặt
và được dùng trong thực tế. Bảo trì bao gồm điều chỉnh các lỗi mà chưa
được phát hiện trong các giai đọan trước của chu kì sống; nâng cấp sự
thực hiện của hệ thống các đơn vị và nâng cao hệ thống dịch vụ cho là
các phát hiện vê yêu cầu mới.
Chỗ yếu của mô hình này là nó không linh hoạt. Các bộ phận của đề án chia ra
thành những phần riêng của các giai đoạn. Hệ thống phân phối đôi khi không
dùng được vì không thỏa mãn được yêu cầu của khách hàng. Mặc dù vậy mô
Nguyễn Tùng 06T2 – Nguyễn Đăng Quyền 06T1
Trang 12
Đặc điểm của mô hình
-
Chu kỳ giao hàng ngắn. Phát triển rất tập trung
-
Mô hình, uses case, user stories, index card, hay đặc tả chức năng được
sử dụng như tài liệu để test.
-
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 những người phát triển.
-
Do cấu trúc năng động của mô hình này nên việc phát triển cũng cần sử
dụng phương pháp kiểm thử hồi quy.
-
Mô hình phát triển phần mềm này rất hoan nghênh sự thay đổi cho ứng
dụng đến từ khách hàng.
Nguyễn Tùng 06T2 – Nguyễn Đăng Quyền 06T1
Trang 13
II.1.
Kiểm thử phần mềm
1 Khái niệm
Kiểm thử phần mềm là quá trình xác minh và thẩm định động tức là quá
trình thực hiện kiểm tra, kiểm soát ngay khi thực hiện chương trình (thường
làm được khi có mã nguồn của chương trình) để tìm ra các lỗi có thể. Hiện nay
đây cũng là kỹ thuật được phổ biến nhất.
- Kiểm thử phần mềm theo GlenMyers: Là quá trình vận hành chương
trình để tìm ra lỗi.
- Cần vận hành như thế nào để hiệu suất tìm ra lỗi là cao nhất và chi phí
(thời gian, công sức) ít nhất?
II.1.1.
Lý do cần kiểm thử
- Để đánh giá chất lượng sản phẩm
- Để phát hiện ra các vấn đề
- Hạn chế chi phí phải trả cho các thất bại do lỗi gây ra sau này (hiệu
quả)
- Có kế hoạch tốt nâng cao chất lượng cho suốt quá trình phát triển (giải
pháp).
II.1.2.
Vai trò
- Chi phí của kiểm thử chiếm:
Mục tiêu
- Cố gắng tạo ra các ca kiểm thử để chỉ ra lỗi của phần mềm được xây
dựng
- Có một chương trình tốt, chi phí ít.
II.1.4.
Lợi ích
- Thuyết minh rằng các chức năng phần mềm tương ứng với đặc tả (xác
minh).
- Yêu cầu thực thi là phù hợp (thẩm định),
- Cung cấp thêm các chỉ số độ tin cậy và chỉ số chất lượng phần mềm
nói chung (thẩm định).
- Tuy nhiên, kiểm thử không thể khẳng định rằng phần mềm không có
khiếm khuyết
II.2. Các giai đoạn kiểm thử và điểm xác định:
Giai đoạn phát triển: là một lượng 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 lượng 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,
khi phần mềm di chuyển từ giai đoạn này qua giai đoạn khác. Mốc phát triển
này cho chúng ta biết ứng dụng phá triển đang ở vị trí nào trong vòng đời phát
triển của phần mềm
Các giai đoạn kiểm thử và mốc:
Bảng 1
Test
Phase
Developer/
Technical Tester
Kiểm thử một Lặp đi lặp lại 1 hệ
đơn vị code
thống hoàn chỉnh.
trong 1 thời
Kiểm tra các đơn
gian
vị code khi nó
làm việc chung
môi trường với
nhau.
Nguyễn Tùng 06T2 – Nguyễn Đăng Quyền 06T1
Tester
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 sử dụng.
Đánh giá phần
mềm có đáp
ứng được các
yêu cầu của
người dùng đã
đề ra hay
Tìm hiểu Testing, QA, QC
-
Testing : Tiến trình thực thi chương trình để tìm ra những thiếu sót của
chương trình.
-
Quality Assurance (QA): Tập hợp các hoạt động được lập ra để đảm bảo
tiến trình phát triển và duy trì là phù hợp để chắc chắn một hệ thống sẽ
đáp ứng các mục tiêu của nó.
-
Quality Control (QC): Tập hợp các hoạt động được tạo ra để đánh giá
sản phẩm đang được tiến hành.
II.3.2
Nhóm kiểm thử
II.3.2.1. Mục tiêu
-
Tìm và viết báo cáo lỗi.
-
Sửa chữa kế hoạch và lịch trình kiểm thử
Dự toán công việc kiểm thử, thời gian, và tiền của ứng dụng.
Xác nhận và báo cáo tiến trình kiểm thử qua các giai đoạn các cột mốc.
Dạy cho các tester khác để tìm lỗi.
II.3.3.
Mục tiêu của kiểm thử
II.3.3.1.
Lớp tương đương và phân tích giá trị biên
- Lớp tương đương : hai lớp được gọi là tương đương nếu kết quả dự kiến của
hai lớp này là như nhau.
- Biên: Điểm đánh dấu hay vùng chuyển tiếp từ 1 lớp tương đương đến 1 lớp
khác gọi là biên.
Kiểm thử điều kiện biên có ưu điểm vượt trội khi lớp tương đương được sử
dụng.
II.3.3.2.
Thiết kế kiểm thử
Các bước chung:
- Xác định các lớp
-
Các phương pháp kiểm thử
Hai phương pháp phổ biến:
Kiểm thử hộp trắng (white box)
Kiểm thử hộp đen (black box)
II.3.4.1.
II.3.4.1.1
Kiểm thử hộp trắng
Khái niệm kiểm thử hộp trắng
Nguyễn Tùng 06T2 – Nguyễn Đăng Quyền 06T1
Trang 18
Tìm hiều về kiểm thử phần mềm và kiểm thử tự động
Kiểm thử hộp trắng (kiểm thử theo cấu trúc) là kiểm thử được thực hiện
trực tiếp trên mã nguồn, khám xét các chi tiết thủ tục; các con đường logic, các
trạng thái của chương trình.
Kiểu kiểm thử này thường sử dụng công thức toán học và lý thuyết đồ
thị và được thực hiện ở cấp độ kiểm thử đơn vị.
vị Việc xác định các trường hợp
kiểm thử không dễ dàng
Mọi cấu trúc dữ liệu được dùng
Mọi tiến trình được lần vết
II.3.4.1.3
Yêu cầu kiểm thử hộp trắng
- Yêu cầu đặt ra:
+ Mọi con đường độc lập trong một module cần được thực hiện ít nhất một
lần.
+ Mọi ràng buộc logic được thực hiện cả hai phía: phía đúng & phía sai
+ Tất cả các vòng lặp ở biên của nó và cả các biên vận hành phải được thực
hiện.
+ Mọi cấu trúc dữ liệu nội tại được dùng để bảo đảm tính hiệu lực của nó
II.3.4.1.4
Lý do kiểm thử hộp trắng
- Vì sao cần tốn tiền cho kiểm thử hộp trắng?
+ Các lỗi logic & giả thiết không đúng đắn tỷ lệ nghịch với xác suất để
một con đường logic được thi hành.
Nguyễn Tùng 06T2 – Nguyễn Đăng Quyền 06T1
Trang 19
+ IF
+ IF-Then-Else
+ For
+ While
+ Do-While
+ Case
Nguyễn Tùng 06T2 – Nguyễn Đăng Quyền 06T1
Trang 20
Tìm hiều về kiểm thử phần mềm và kiểm thử tự động
Sequence
ee
If
Then
Pretest
Loop
IfThen
Else
Posttest
Loop
Cas
e
- Đặc trưng:
+ Nhằm thuyết minh: các chức năng phần mềm đủ & vận hành đúng
+ Thực hiện các phép thử qua giao diện
Nguyễn Tùng 06T2 – Nguyễn Đăng Quyền 06T1
Trang 22
Tìm hiều về kiểm thử phần mềm và kiểm thử tự động
- Cơ sở: đặc tả, các điều kiện vào/ra và cấu trúc dữ liệu
+ Ít chú ý tới cấu trúc logic nội tại của nó
* Ưu điểm:
Chúng độc lập với cách thức mà phần mềm được cài đặt, vì vậy, nếu ta
thay đổi cách cài đặt thì vẫn có thể sử dụng được các trường hợp kiểm thử,
chúng ta có thể thực hiện kiểm thử song song với quá trình cài đặt phần mềm,
làm giảm thời gian phát triển dự án.
Hình 5: Mô hình kiểm thử hộp đen
* Các kỹ thuật kiểm thử hộp đen:
- Kiểm thử theo giá trị biên
- Kiểm thử theo các lớp tương đương
- Kiểm thử dựa vào bảng quyết định
- Kiểm thử dựa vào đồ thị nguyên nhân-kết quả
II.3.4.2.2
Mục tiêu
- Kiểm thử hộp đen nhằm tìm ra các loại sai:
+ Chức năng thiếu hoặc không đúng đắn.
+ Sai về giao diện.
chương trình, các biến đầu vào x1 và x2 sẽ có các giới hạn:
a
c
a
Nguyễn Tùng 06T2 – Nguyễn Đăng Quyền 06T1
b
x1
Trang 25