Tải bản đầy đủ (.pdf) (92 trang)

NGHIÊN CỨU VÀ ỨNG DỤNG KỸ THUẬT KIỂM THỬ HỘP ĐEN TRONG KIỂM THỬ WEBSITE THI ĐUA KHEN THƢỞNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.9 MB, 92 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƢỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT HÀ NỘI

NGUYỄN THỊ VÂN
1221050117

ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI

NGHIÊN CỨU VÀ ỨNG DỤNG KỸ THUẬT KIỂM THỬ HỘP ĐEN TRONG
KIỂM THỬ WEBSITE THI ĐUA KHEN THƢỞNG

Hà Nội, 2017


BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƢỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT

ĐỒ ÁN TỐT NGHIỆP
CHUYÊN NGÀNH TIN HỌC TRẮC ĐỊA

ĐỀ TÀI

NGHIÊN CỨU VÀ ỨNG DỤNG KỸ THUẬT KIỂM THỬ HỘP ĐEN TRONG
KIỂM THỬ WEBSITE PHẦN MỀM THI ĐUA KHEN THƢỞNG

SINH VIÊN THỰC HIỆN



GIÁO VIÊN HƢỚNG DẪN

NGUYỄN THỊ VÂN

ThS. NGUYỄN TUẤN ANH
Bộ môn Tin học trắc địa

Lớp Tin học trắc địa K57

Hà Nội, 2017


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

MỤC LỤC
DANH MỤC CÁ C HÌ
NH VẼ .................................................................................. 6
DANH MỤC CÁ C BẢNG BIỂU ............................................................................ 7
KÝ HIỆU THUẬT NGỮ ......................................................................................... 8
LỜI CẢM ƠN......................................................................................................... 10
THÔNG TIN NGHIÊN CỨU ................................................................................ 11
1. Thông tin chung .............................................................................................. 11
2. Mục tiêu .......................................................................................................... 11
3. Nội dung chính................................................................................................ 11
MỞ ĐẦU ................................................................................................................ 12
1. Giới thiệu tổng quan ...................................................................................... 12
2. Tính cấp thiết, ý nghĩa khoa học và thực tiễn của đề tài ............................... 13
CHƢƠNG 1: TỔNG QUAN VỀ CHẤT LƢỢNG PHẦN MỀM VÀ KIỂM THỬ
PHẦN MỀM ........................................................................................................... 15

1.1. Định nghĩa chất lƣợng phần mềm ............................................................... 15
1.2. Định nghĩa đảm bảo chất lƣợng phần mềm ................................................ 15
1.3. Lỗi phần mềm .............................................................................................. 15
1.3.1. Định nghĩa lỗi phần mềm và phân loại lỗi phần mềm ......................... 15
1.3.2. Các nguyên nhân gây lỗi phần mềm .................................................... 15
1.3.3. Chi phí cho việc sửa lỗi phần mềm ...................................................... 17
1.3.4. Quy trình xử lý lỗi phần mềm .............................................................. 17
1.4. Kiểm thử phần mềm .................................................................................... 17
1.4.1. Khái niệm kiểm thử phần mềm ............................................................ 17
1.4.2. Lý do cần kiểm thử phần mềm ............................................................. 18
1.4.3. Mục tiêu của kiểm thử phần mềm ........................................................ 18
1.4.4. Các nguyên tắc cơ bản của kiểm thử phần mềm .................................. 18
1.4.5. Các phƣơng pháp kiểm thử .................................................................. 19
1.4.5.1. Kiểm thử tĩnh – Static testing ............................................................ 19
1.4.5.3. Kiểm thử hộp đen - Black box testing .............................................. 20
1.5. Quy trình kiểm thử phần mềm .................................................................... 21

Nguyễn Thị Vân

3

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

1.5.1. Các bƣớc trong một quy trình kiểm thử phần mềm ............................. 21
1.5.2. Mô hình phát triển và kiểm thử phần mềm hình chữ V ........................ 22
1.5.3. Nhân lực kiểm thử phần mềm .............................................................. 25
1.5.4. Quy trình xây dựng kế hoạch kiểm thử ................................................ 25

1.6. Các cấp độ kiểm thử phần mềm. ................................................................. 28
1 .6.1. Kiểm thử đơn vị – Unit test ................................................................. 29
1.6.2. Kiểm thử tích hợp – Intergration Test .................................................. 30
1.6.3. Kiểm thử hệ thống – System Test ........................................................ 31
1.6.4. Kiểm thử chấp nhận sản phẩm – Acceptance Test............................... 34
1.6.5. Một số cấp độ kiểm thử khác ............................................................... 34
1.7. Nguyên tắc kiểm thử phần mềm.................................................................. 35
CHƢƠNG 2: CÁC KỸ THUẬT KIỂM THỬ HỘP ĐEN ..................................... 36
2.1. Giới thiệu ..................................................................................................... 36
2.2 Quy trình kiểm thử hộp đen tổng quát ......................................................... 36
2.3. Equivalence Partitioning – Kỹ thuật phân lớp tƣơng đƣơng ...................... 37
2. 4 Boundary Value Analysis – Kỹ thuật phân tích giá trị biên ....................... 39
2.5. Decision Tables – Kỹ thuật sử dụng bảng quyết định................................. 39
2.6 Pairwise Testing – Kỹ thuật kiểm thử các bộ n thần kỳ............................... 42
2.7. State Transition/Diagram Testing - Kỹ thuật biểu đồ chuyển trạng thái .... 47
2.8. Use case Testing – Kỹ thuật sử dụng use case ............................................ 47
2.9. Cause-Effect Diagram – Kỹ thuật dùng đồ thị nhân quả ............................ 48
2.10. Kỹ thuật đoán lỗi ....................................................................................... 52
2.11. Kết luận ..................................................................................................... 53
CHƢƠNG 3: TRIỂN KHAI KIỂM THỬ WEBSITE THI ĐUA KHEN THƢỞNG54
3.1. Kiểm thử ứng dụng Website........................................................................ 54
3.2. Kiểm thử website thi đua khen thƣởng tỉnh thanh hóa ............................... 55
3.2.1 Giới thiệu bài toán ................................................................................. 55
3.2.2. Biểu đồ mô tả các chức năng sẽ đƣợc thực hiện kiểm thử hộp đen ..... 56
3.2.3. Thiết kế định hƣớng trƣờng hơp kiểm thử ........................................... 57
3.3 Thiết kế bộ các test case ............................................................................... 61

Nguyễn Thị Vân

4


Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

3.3.1. Test case kiểm thử chức năng đăng nhập, thay đổi mật khẩu, đăng
xuất. ................................................................................................................ 61
3.3.2. Test case kiểm thử chức năng đăng kí ................................................. 67
3.3.3. Testcase kiểm thử chức năng Quản lý đợt thi đua ............................... 69
3.3.4. Test case kiểm thử chức năng Hồ sơ lƣu ............................................. 79
3.3.5. Test case sử dụng kỹ thuật use case ..................................................... 84
3.3.6. Testcase kiểm thử Giao diện ................................................................ 88
3.4 Thực thi test và báo cáo kết quả . ................................................................. 89
TÀI LIỆU THAM KHẢO ...................................................................................... 92

Nguyễn Thị Vân

5

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

DANH MỤC CÁC HÌ
NH VẼ
Hình 1-1. Mô hình phát triển và kiểm thử phần mềm hình chữ V ..................................21
Hình 1-2. Sơ đồ nhân lực kiểm thử phần mềm............................................................... 22
Hình 1- 3. Xây dựng kế hoạch kiểm thử ....................................................................... 23

Hình1- 4. Sơ đồ các cấp độ kiểm thử .............................................................................26
Hình 2-1. Quy trình kiểm thử hộp đen tổng quát ............................................................34
Hình 2-2. Giao diện đăng nhập hệ thống. ...................................................................... 36
Hình 2-3. Cấu trúc bảng quyết định .............................................................................. 38
Hình 2-4. Giao diện PictMaster Tool............................................................................. 44
Hình 2-5. Đồ thị nhân – quả cho bài toán tính thuế thu nhập ...................................... 48
Hình 3-1. Giao diện phần mềm thi đua khen thƣởng .....................................................53
Hình 3-2. Biểu đồ quản lý testcase ...............................................................................54
Hình 3-3. Màn hình đăng nhập thi đua khen thƣởng...................................................... 58
Hình 3-4. Màn hình chức năng đăng kí ......................................... .............................. 64
Hình 3-5. Màn hình quản lý đợt thi đua ........................................................................ 66
Hình 3-6. Màn hình quản lý hồ sơ ................................................................................. 75
Hình 3-7. Biểu đồ use case thi đua khen thƣởng ........................................... .......... 80

Nguyễn Thị Vân

6

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

DANH MỤC CÁC BẢNG BIỂU
Bảng 1-1. Kiểm thử giao diện ngƣời sử dụng ................................................................30
Bảng 2-1. Bảng quyết định bài toán kiểm tra thẻ đƣờng sắt ...........................................39
Bảng 2-2. Bảng các trƣờng hợp kiểm thử sử dụng kỹ thuật pairwise testing ................ 43
Bảng 2-3. Khuôn mẫu đặc tả use case theo Alistair Cockburn .................................... 46
Bảng 2-4. Bảng các ký hiệu sử dụng trong đồ thị nguyên nhân – hệ quả ..................... 46
Bảng 2-5. Bảng quyết định cho đồ thị nhân – quả bài toán tính thuế thu nhập............ 49

Bảng 2-6. Bảng testcase sử dụng kỹ thuật dùng đồ thị nhân – quả.............................. 50
Bảng 3-1. Bảng thiết kế quy trình kiểm thử.................................................................. 58
Bảng 3-2. Test case đăng nhập – đăng xuất – thay đổi mật khẩu phần mềm thi đua khen
thƣởng ............................................................................................................................ 59
Bảng 3-3. Bảng dùng kỹ thuật quyết định chức năng đăng kí ....................................... 64
Bảng 3-4. Testcase đăng kí thi đua .............................................................................. 66
Bảng 3-5. Testcase đợt thi đua .......................................................................................68
Bảng 3-6. Testcase quản lý hồ sơ ................................................................................. 76
Bảng 3-7. Testcase giao diện ....................................................................................... 78
Bảng 3-8. Mô tả use case ...............................................................................................82
Bảng 3-9. Testcase sử dụng kỹ thuật use case .................................................. .......... 82
Bảng 3-10. Bảng báo cáo .............................................................................................. 85

Nguyễn Thị Vân

7

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

KÝ HIỆU THUẬT NGỮ

Ký hiệu/ Thuật ngữ

Ý nghĩa

Static testing


Kiểm thử tĩnh

Dynamic testing

Kiểm thử động

Blackbox Testting

Kiểm thử hộp đen

White box testing

Kiểm thử hộp trắng

Unit Tests

Kiểm thử đơn vị

Intergration Tests

Câu hỏi và trả lời

System Tests

Kiểm thử hệ thống

Acceptance Tests

Kiểm thử chấp nhận


Test case

Trƣờng hợp kiểm thử

Test suite

Tập hợp các trƣờng hợp kiểm thử trong Selenium

Test script

Tập hợp các trƣờng hợp kiểm thử

Selenium RC

Selenium Remote Control

Test Manager

Ngƣời quản lí kiểm thử

Test Leader

Quản lí nhóm kiểm thử

Test Analyst

Phân tích kiểm thử

Test Designer


Thiết kế kiểm thử

Test Executing

Thi hành kiểm thử

Nguyễn Thị Vân

8

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

Test Report

Báo cáo kiểm thử

QC team

Đội kiểm tra chất lƣợng

Developers

Lập trình viên

PM

Quản lídự án


Customer

Khách hàng

Test Analyst

Phân tích kiểm thử

Test Designer

Thiết kế kiểm thử

Project Leader

Quản lí dự án

API

Application Programming Interface

Nguyễn Thị Vân

9

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa


LỜI CẢM ƠN
Đồ án tốt nghiệp này đƣợc thực hiện tại Trƣờng đại học Mỏ - Địa chất. Em xin
cảm ơn các thầy cô giáo Bộ môn Tin học trắc địa và khoa Công nghệ thông tin Trƣờng
đại học Mỏ - Địa chất đã tạo mọi điều kiện thuận lợi về mặt thủ tục trong quá trình em
làm đồ án.
Em xin chân thành cảm ơn thầy giáo Ths. Nguyễn Tuấn Anh đã trực tiếp tận tình
hƣớng dẫn, giúp đỡ, tạo mọi điều kiện thuận lợi trong suốt quá trình em làm đồ án, luôn
theo sát và đƣa ra những lời khuyên, động viên kịp thời giúp em hoàn thành đồ án một
cách suất sắc nhất; cảm ơn các thầy cô giáo đã trực tiếp giảng dạy trong suốt thời gian
học tập tại trƣờng.
Để thực hiện đƣợc các thử nghiệm trong nghiên cứu này, em xin chân thành cảm
ơn Công ty cổ phẩn đầu tƣ và phát triển Tâm Việt đã tạo điều kiện thuận lợi cho em
đƣợc thực tập tốt nghiệp tại công ty. Đặc biệt em xin gửi lời cảm ơn tới Giám Đốc
Lƣơng Thanh Bình – đảm bảo chất lƣợng phần mềm đã trực tiếp hƣớng dẫn, giúp đỡ tận
tình để em có thể nắm bắt công việc, nghiên cứu kiến thức về kiểm thử phần mềm và
vận dụng những kiến thức đƣợc học vào thực hành dự án.
Bên cạnh đó, con xin gửi lời cảm ơn tới bố mẹ chị gái và em trai đã giúp đỡ, sát
cánh bên con trong những hoàn cảnh khó khăn nhất. Và con cũng xin gửi lời cảm ơn tới
các bác, các anh chị đã và luôn động viên tinh thần giúp con có thêm nghị lực phấn đấu
trong học tập và cuộc sống.
Mặc dù đã hết sức cố gắng hoàn thành đồ án với toàn bộ nỗ lực của bản thân,
nhƣng với năng lực kiến thức bản thân còn hạn chế nên đồ án không tránh khỏi những
thiếu sót. Kính mong thầy cô và các bạn góp ý, giúp đỡ em để em có thể hoàn thiện kiến
thức của bản thân nhiều hơn và phát triển đồ án, định hƣớng mới hơn trong tƣơng lai.
Một lần nữa, em xin trân trọng gửi lời cảm ơn tới tất cả mọi ngƣời và em mong sẽ
nhận đƣợc nhiều sự góp ý quý báu của các thầy cô và các bạn. Em xin chân thành cảm
ơn!

Nguyễn Thị Vân


10

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

THÔNG TIN NGHIÊN CỨU
1. Thông tin chung
- Tên đề tài: Nghiên cứu và ứng dụng kiểm thử hộp đen trong kiểm thử website
phần mềm thi đua khen thƣởng
- Sinh viên thực hiện: Nguyễn Thị Vân
- Mã sinh viên 1221050117
- Lớp: Tin học Trắc Địa – K57
- Hệ đào tạo: Chính quy
- Điện thoại: 01679826134
- Email:
- Đồ án tốt nghiệp đƣợc thực hiện tại: Hà Nội
- Thời gian thực hiện: 2017
2. Mục tiêu
Mục tiêu chính của đề tài là đƣa ra cái nhìn tổng quan về các kỹ thuật kiểm thử và đi
sâu vào việc tìm hiểu các kỹ thuật kiểm thử hộp đen đã và đang đƣợc sử dụng. Đồng
thời áp dụng đƣợc các kỹ thuật đó vào quy trình kiểm thử cho phần mềm Thi đua khen
thƣởng
3. Nội dung chính
- Xác định mục tiêu đề tài
- Nghiên cứu các vấn đề kiểm thử
- Tìm hiểu phân tích các kỹ thuật kiểm thử hộp đen
- Tìm hiểu quy trình nghiệp vụ của phần mềm
- Lựa chọn các kỹ thuật kiểm thử thích hợp

- Thiết kế test case cho phần mềm
- Thực hiện kiểm thử
- Đƣa ra kết quả kiểm thử và kết luận
4. Kết quả chính đạt đƣợc
 Hoàn thành tìm hiểu về kiểm thử, nắm đƣợc các kỹ thuật kiểm thử hộp đen cơ
bản, áp dụng vào các bài toán cụ thể.
 Hoàn thành việc tìm hiểu về dự án, chức năng của phần mềm cần kiểm thử tại
đơn vị phụ trách.
 Hoàn thành việc nghiên cứu quy trình kiểm thử, vận dụng các kỹ thuật đã nghiên
cứu vào việc thiết kế bộ các trƣờng hợp kiểm thử.

Nguyễn Thị Vân

11

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

MỞ ĐẦU
1. Giới thiệu tổng quan
Tổng quan tình hình nghiên cứu thuộc lĩnh vực của đề tài. Trong giai đoạn phát triển
của công nghệ thông tin, ngành công nghệ phần mềm đang ngày chiếm một vị trí quan
trọng trong xu hƣớng phát triển kinh tế công nghiệp hóa hiện đại hóa của đất nƣớc ta.
Cùng với sự phát triển của công nghệ phần mềm, lỗi phần mềm và chất lƣợng phần mềm
luôn là thách thức với bản thân ngành phần mềm khi thực tế đã chứng minh, kiểm thử
phần mềm là giai đoạn chiếm đến hơn 40% thời gian, kinh phí và nguồn nhân lực phát
triển dự án phần mềm hiện nay.
Bên cạnh đó số lƣợng kỹ sƣ kiểm thử phần mềm Việt Nam hiện nay vẫn chƣa đáp

ứng đƣợc nhu cầu thị trƣờng. Các dự án lập trình phần mềm trên thế giới, trung bình cứ
3 lập trình viên có1 kiểm thử viên trong khi đó ở Việt Nam số lƣợng đó là 5 : 1. Tại hội
nghị quốc tế kiểm thử tự động năm 2011 tại TP.HCM cho biết với đà phát triển của
ngành công nghiệp phần mềm nhƣ hiện nay thìViệt Nam trong thời gian tới sẽ thiếu
khoảng 10.000 tester. Chúng ta đã và đang chứng kiến sự tăng trƣởng đáng kinh ngạc
của ngành công nghiệp phần mềm trong vài thập kỷ qua. Nếu nhƣ trƣớc đây phần mềm
máy tính chỉ đƣợc sử dụng để tính toán khoa học kỹ thuật và xử lý dữ liệu thìngày nay
nó đã đƣợc ứng dụng vào mọi mặt của của đời sống hàng ngày của con ngƣời, từ các
ứng dụng nhỏ để điều khiển các thiết bị dùng trong gia đình đến các ứng dụng lớn hơn
nhƣ trợ giúp điều khiển các phƣơng tiện và hệ thống giao thông, trả tiền cho các hoá
đơn, quản lý và thanh toán về tài chính, v.v...Vìthế con ngƣời ngày càng phụ thuộc chặt
chẽ vào các sản phẩm phần mềm và do vậy đòi hỏi về chất lƣợng của các sản phẩm phần
mềm ngày càng cao, tức là các phần mềm phải đƣợc sản xuất với giá thành hạ, dễ dùng,
an toàn và tin cậy đƣợc. Kiểm thử có phƣơng pháp là một hoạt động không thể thiếu
trong quy trình sản xuất phần mềm để đảm bảo các yếu tố chất lƣợng nêu trên của các
sản phẩm phần mềm. Kiểm thử phần mềm là đề tài đang ngày càng nhận đƣợc sự quan
tâm, nghiên cứu lớn bởi tầm quan trọng của nó. Các kỹ thuật kiểm thử đã và đang đƣợc
nghiên cứu phát triển trong ngành phần mềm trên khắp thế giới, nổi bật nhƣ ISTQB
(International Software Testing Quanlifications Board) là một tổ chức phi lợi nhuận
cung cấp chứng chỉ thẩm định chất lƣợng của kiểm thử phần mềm có giá trị toàn cầu đã
đƣa ra hệ thống một loạt các tài liệu, sách cung cấp kiến thức về lý thuyết kiểm thử và
kỹ thuật kiểm thử phần mềm. Ở nƣớc ta, trong khoa Công nghệ thông tin thuộc các
trƣờng đại học đã đặt kiểm thử phần mềm thành một môn học chính thức và xây dựng
giáo trình, bài giảng riêng cho môn học này, ví dụ nhƣ bài giảng điện tử môn học kiểm
thử và bảo đảm chất lƣợng phần mềm của tác giả Thạc Bình Cƣờng, Khoa Công nghệ
thông tin, Trƣờng đại học Bách khoa Hà Nội đã trình bày khá chi tiết về lý thuyết các kỹ
thuật kiểm thử. Ngoài ra là các đề tài nghiên cứu đi sâu vào một kỹ thuật kiểm thử riêng.
Nguyễn Thị Vân

12


Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

Tuy nhiên, trong quá trình tìm hiểu làm đồ án thì chƣa có đề tài cụ thể nào về việc vận
dụng tất cả các kỹ thuật kiểm thử vào việc phân tích, kiểm thử cho một sản phẩm phần
mềm thực tế nào mà phần lớn mới chỉ dừng lại ở việc chỉ ra những ví dụ demo đơn lẻ
cho từng kỹ thuật. Đặc biệt kiểm thử phần mềm thi đua đua khen thƣởng là một lĩnh vực
kiểm thử khá mới mẻ và đang thu hút các công ty phát triển phần mềm thì đề tài về vấn
đề này hiện chƣa đƣợc nghiên cứu cụ thể trong một đề tài nào.
2. Tính cấp thiết, ý nghĩa khoa học và thực tiễn của đề tài
Kiểm thử phần mềm đứng ở vị trí hết sức nhạy cảm, nó là bƣớc đệm giữa giai đoạn
xây dựng phần mềm và sử dụng phần mềm, trƣớc khi giao sản phẩm hoàn chỉnh cho
khách hàng. Mặc dù công việc kiểm thử phần mềm không xa lạ song những khái niệm
và kỹ thuật lại khá rắc rối. Ở mỗi loại và mỗi miền ứng dụng riêng biệt lại có các đặc thù
riêng và cần đƣợc bổ trợ bởi các kỹ thuật kiểm thử riêng cho chúng. Ngƣời kiểm thử có
thể hiểu và tự phát triển các kỹ thuật kiểm thử thích hợp cho các hệ thống phức tạp và
chuyên dụng hơn dựa trên các kỹ thuật cơ bản. Phần mềm đã và đang đƣợc ứng dụng
vào trong tất cả mọi mặt của cuộc sống hàng ngày, trong đó thi đua khen thƣởng là lĩnh
vực đƣợc cho là cơ hội lớn đối với ngành phần mềm trong nƣớc khi mà các dự án về
giáo dục, hành chính luôn đƣợc chú trọng. Để giải quyết việc thủ tục hồ sơ khen thƣởng
giấy tờ cồng kềnh phức tạp. Việc tạo ra một sản phẩm có thể bán đƣợc trên thị trƣờng
đòi hỏi sự nỗ lực của hàng chục, hàng trăm thậm chí hàng ngàn nhân viên. Số lƣợng
dòng mã lên đến hàng triệu. Và để tạo ra một sản phẩm thìkhông phải chỉ do một tổ
chức đứng ra làm từ đầu đến cuối, mà đòi hỏi sự liên kết, tích hợp của rất nhiều sản
phẩm, thƣ viện lập trình,...của nhiều tổ chức khác nhau...Từ đó đòi hỏi việc kiểm thử
phần mềm càng ngày càng trở nên rất quan trọng.
Sự ra đời của phần mềm thi đua khen thƣởng mang đến hàng loạt các giải pháp cho

thủ tục hồ sơ hành chính đi kèm mang lại những hiệu quả to lớn trong công tác quản lý
hồ sơ, mặt khác còn là công cụ giúp Lãnh đạo, cán bộ giám sát kiểm soát hoạt đông thi
đua khen thƣởng tỉnh giám sát, kiểm soát hoạt động thi đua khen thƣởng ở các đơn vị cơ
sở .Điều này mở ra một thời cơ lớn cho ngành công nghệ phần mềm đồng thời với đó là
sự cạnh tranh về hiệu quả, chất lƣợng phần mềm của các đơn vị thực hiện. Quản lý chất
lƣợng phần mềm là vấn đề không mới nhƣng theo một số đánh giá là còn yếu của các
công ty phần mềm Việt Nam. Kiểm thử là một hoạt động mang tính sống còn trong các
dự án sản xuất hoặc gia công phần mềm. Ngƣời làm phần mềm đều hiểu rõ vai trò quan
trọng của nó, tuy nhiên không phải ai (trong ngành và ngoài ngành) cũng đều hiểu rõ
hoạt động này. Bản thân công việc kiểm thử phần mềm cũng là một lĩnh vực hoạt động
độc lập và khá “hấp dẫn”.Song song với sự phát triển các công nghệ lập trình, các ngôn
ngữ lập trình...thìcác công nghệ và kỹ thuật kiểm thử phần mềm ngày càng phát triển và
mang tính khoa học. Mỗi một cơ quan, đơn vị lại có yêu cầu riêng về kỹ năng đối với

Nguyễn Thị Vân

13

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

ngƣời phụ trách kiểm thử. Đứng trƣớc một phần mềm cần kiểm thử mà ngƣời kiểm thử
không có kiến thức hay thông tin nào về thông tin hiện thực phần mềm nhƣ mã nguồn
của phần mềm, giải thuật đƣợc dùng, các dữ liệu xử lý...thìkiểm thử hộp đen là chính
chiến lƣợc cho vấn đề này. Việc hiểu và nắm vững các kỹ thuật kiểm thử hộp đen là yêu
cầu cơ bản, quan trọng hàng đầu đối với một ngƣời thực hiện công việc kiểm thử. Từ
những phân tích trên, xác định đƣợc việc nắm rõ các kỹ thuật kiểm thử là yêu cầu tiên
quyết của một ngƣời thực hiện công việc kiểm thử. Trong báo cáo đồ án này đƣợc chia

thành 3 chƣơng với nội dung nhƣ sau:
Chƣơng 1: Tổng quan về Chất lƣợng phần mềm và Kiểm thử phần mềm:
Chƣơng này trình bày về những định nghĩa cơ bản về phần mềm, ngành công
nghệ phần mềm, lỗi phần mềm, và qui trình xử lý lỗi phần mềm. Kiến thức cơ
bản về kiểm thử phần mềm nhƣ các nguyên tắc kiểm thử, các phƣơng pháp kiểm
thử, các giai đoạn kiểm thử phần mềm, kiểm thử hộp đen, kiểm thử hộp trắng.
Chƣơng 2: Trình bày các kỹ thuật kiểm thử hộp đen: Kỹ thuật phân lớp tƣơng
đƣơng, kỹ thuật phân tích giá trị biên, kỹ thuật dùng bảng quyết định, kỹ thuật
kiểm thử n bộ, kỹ thuật dùng lƣợc đồ trạng thái, kỹ thuật dùng use case, kỹ thuật
dùng đồ thị nhân quả và kỹ thuật đoán lỗi
Chƣơng 3: Kiểm thử giao diện ứng dụng Website.
Chƣơng này trình bày khái quát về Kiểm thử ứng dụng Website, đặc điểm về chất
lƣợng của một ứng dụng Website, áp dụng viết kịch bản và thực thi kiểm thử cho
một số chức năng cơ bản của ứng dụng website Thi đua khen thƣởng.

Nguyễn Thị Vân

14

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

CHƢƠNG 1: TỔNG QUAN VỀ CHẤT LƢỢNG PHẦN MỀM VÀ KIỂM
THỬ PHẦN MỀM
1.1. Định nghĩa chất lƣợng phần mềm
Có rất nhiều định nghĩa về chất lƣợng phần mềm đƣợc đƣa ra bởi các tổ chức, cá
nhân khác nhau. Trong phạm vi của đồ án này trình bày một số định nghĩa tiêu biểu.
Định nghĩa theo IEEE (1991):

-

Định nghĩa 1: Chất lƣợng phần mềm là một mức độ mà một hệ thống, thành phần
hệ thống hay tiến trình đáp ứng đƣợc yêu cầu đã đƣợc đặc tả.
Định nghĩa 2: Chất lƣợng phần mềm là mức độ mà một hệ thống, thành phần hệ
thống hay tiến trình đáp ứng đƣợc yêu cầu và sự mong đợi của khách hàng hay
ngƣời sử dụng.

1.2. Định nghĩa đảm bảo chất lƣợng phần mềm
Định nghĩa theo Daniel Galin: Đảm bảo chất lƣợng phần mềm (Soft are Quality
Assure) là một tập hợp các hành động cần thiết đƣợc lên kế hoạch một cách hệ thống để
cung cấp đầy đủ niềm tin rằng quá trình phát triển phần mềm phù hợp để thành lập các
yêu cầu chức năng kỹ thuật cũng nhƣ các yêu cầu quản lý theo lịch trình và hoạt động
trong giới hạn ngân sách.
1.3. Lỗi phần mềm
1.3.1. Định nghĩa lỗi phần mềm và phân loại lỗi phần mềm
- Định nghĩa lỗi phần mềm: Có rất nhiều định nghĩa về lỗi phần mềm nhƣng có thể
hiểu và phát biểu một cách đơn giản thì"Lỗi phần mềm là sự không khớp giữa
chƣơng trình và đặc tả của nó".
- Dựa vào định nghĩa, ta có thể phân loại lỗi phần mềm thành 3 dạng:
+ Lỗi sai: Sản phẩm phần mềm đƣợc xây dựng khác với đặc tả.
+ Lỗi thiếu: Các yêu cầu của sản phẩm phần mềm đã có trong đặc tả nhƣng
lại không có trong sản phẩm thực tế.
+ Lỗi thừa: Sản phẩm thực tế có những tính năng không có trong tài liệu đặc
tả.
1.3.2. Các nguyên nhân gây lỗi phần mềm
Lỗi phần mềm có thể đến từ nhiều nguyên nhân khác nhau, trong đó có cả các nguyên
nhân chủ quan và các nguyên nhân khách quan. Dƣới đây là chín nguyên nhân chủ yếu
gây ra lỗi phần mềm:


Nguyễn Thị Vân

15

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

Định nghĩa các yêu cầu bị lỗi: Những lỗi trong việc xác định yêu cầu thƣờng nằm
ở phía khách hàng.
- Các lỗi trong giao tiếp giữa khách hàng và nhà phát triển: Những lỗi này thƣờng
xuất hiện trong giai đoạn đầu của dự án. Một số lỗi hay gặp phải: hiểu sai chỉ dẫn
trong tài liệu yêu cầu, hiểu sai thay đổi khi khách hàng trình bày bằng lời nói và
tài liệu, hiểu sai về phản hồi và thiếu quan tâm đến những đề cập của khách hàng.
 Giải pháp khắc phục: Cần có ủy ban liên kết giữa khách hàng và nhà cung cấp để
tránh lỗi trong giao tiếp. Ủy ban do quản trị dự án đứng đầu và khách hàng phải
giới thiệu những ngƣời hiểu về mặt nghiệp vụ vào ủy ban đó.
- Sai lệch có chủ ý với các yêu cầu phần mềm: Trong một số trƣờng hợp các nhà
phát triển cố tình làm sai lệch các yêu cầu trong tài liệu đặc tả. Nguyên nhân của
việc này đến từ các áp lực thời gian, ngân sách, hay cố tình sử dụng lại các môđun từ các dự án trƣớc mà chƣa phân tích đầy đủ những thay đổi để thích nghi
với các yêu cầu mới.
 Giải pháp khắc phục: Dựa trên những thống kê để quyết định xem giải pháp nhƣ
thế nào, sắp xếp ƣu tiên xem bỏ đƣợc yêu cầu nào hay sử dụng lại đƣợc mô-đun
nào.
- Các lỗi thiết kế logic: Lỗi phần mềm xảy ra trong quá trình các chuyên gia thiết
kế hệ thống, các kiến trúc sƣ hệ thống, kỹ sƣ phần mềm, các nhà phân tích xây
dựng phần mềm theo yêu cầu. Các lỗi điển hình bao gồm:
+ Định nghĩa các yêu cầu phần mềm bằng các thuật toán sai.
+ Quy trình định nghĩa có chứa trình tự lỗi.

+ Sai sót trong các định nghĩa biên nhƣ > 3 hay ≥ 3.
+ Thiếu sót các trạng thái hệ thống phần mềm đƣợc yêu cầu.
+ Các lỗi lập trình: Có rất nhiều lý do dẫn đến việc các lập trình viên gây ra
các lỗi lập trình. Những lý do này bao gồm: Sự hiểu sai các tài liệu thiết
kế, ngôn ngữ; sai sót trong ngôn ngữ lập trình; sai sót trong việc áp dụng
các công cụ phát triển; sai sót trong lựa chọn dữ liệu...
+ Không tuân thủ theo các tài liệu hƣớng dẫn và tiêu chuẩn lập trình: Các lỗi
phần mềm có thể đến từ việc không tuân thủ các tài liệu và tiêu chuẩn lập
trình của các tổ chức phát triển phần mềm.
+ Thiếu sót trong quá trình kiểm thử: Lỗi phần mềm có thể đến từ chính quá
trình kiểm thử khi mà ngƣời kiểm thử để lọt lỗi.
 Những lỗi này đến từ các nguyên nhân sau đây:
+ Kế hoạch kiểm thử chƣa hoàn chỉnh, để sót yêu cầu cần kiểm thử.
+ Lỗi trong tài liệu và báo cáo kiểm thử.
+ Việc sửa chữa các lỗi đƣợc phát hiện không hoàn chỉnh do áp lực thời gian
hay do thiếu cẩn thận.
-

Nguyễn Thị Vân

16

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

 Giải pháp khắc phục: Lên kế hoạch kiểm thử cụ thể tại giai đoạn đầu của dự án.
- Các lỗi thủ tục: Các thủ tục hƣớng dẫn cho ngƣời sử dụng tại từng bƣớc của tiến
trình. Chúng có tầm quan trọng đặc biệt trong các hệ thống phần mềm phức tạp

mà các tiến trình đƣợc thực bằng nhiều bƣớc, mỗi bƣớc có thể có nhiều kiểu dữ
liệu và cho phép kiểm tra các kết quả trung gian. Các lỗi có thể đến từ việc viết
các thủ tục.
- Các lỗi về tài liệu: Các lỗi về tài liệu là vấn đề của các đội phát triển và bảo trì
đôi khi có những sai sót trong các tài liệu liên quan. Những lỗi này có thể là
nguyên nhân gây ra lỗi trong giai đoạn phát triển kế tiếp và giai đoạn bảo trì.
1.3.3. Chi phí cho việc sửa lỗi phần mềm
Việc kiểm thử và sửa lỗi phần mềm có thể thực hiện trong bất cứ giai đoạn nào của
vòng đời phần mềm.Tuy nhiên công việc này nên đƣợc thực hiện càng sớm càng tốt vì
càng về giai đoạn sau của vòng đời phần mềm, chi phícho việc tìm và sửa lỗi càng tăng,
đặc biệt là đến giai đoạn đã triển khai phần mềm thìchi phícho sửa lỗi sẽ trở nên rất lớn
và ảnh hƣởng trực tiếp đến uy tín của tổ chức phát triển phần mềm.
1.3.4. Quy trình xử lý lỗi phần mềm
- Quy trình xử lý lỗi có thể bao gồm 6 bƣớc chính:
Bƣớc 0: Bắt đầu: Phát hiện phần mềm có lỗi.
Bƣớc 1: Đƣa lỗi lên hệ thống quản lý lỗi.
Bƣớc 2: Gán lỗi cho nhân viên phát triển.
Bƣớc 3: Xử lý lỗi.
Bƣớc 4: Kiểm thử lại.
Bƣớc 5: Đóng lỗi.
1.4. Kiểm thử phần mềm
1.4.1. Khái niệm kiểm thử phần mềm
Kiểm thử phần mềm là quy trình đƣợc sử dụng để đánh giá, kiểm tra chất lƣợng
phần mềm ở nhiều khía cạnh khác nhau dựa trên các yêu cầu của ngƣời sử dụng đối với
sản phẩm phần mềm, nhằm đảm bảo phần mềm hoạt động tốt trong các môi trƣờng, các
trƣờng hợp khác nhau.
Có thể định nghĩa một cách dễ hiểu nhƣ sau:

Nguyễn Thị Vân


17

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

Kiểm thử phần mềm là một tiến trình hay một tập hợp các tiến trình được thiết kế
để đảm bảo mã hóa máy tính thực hiện theo cái mà chúng đã được thiết kế để làm, và
không thực hiện bất cứ thứ gìkhông mong muốn. Đây là một pha quan trọng trong quá
trình phát triển hệ thống, giúp cho người xây dựng hệ thống và khách hàng thấy được hệ
thống mới đã đáp ứng yêu cầu đặt ra hay chưa?
1.4.2. Lý do cần kiểm thử phần mềm
 Phần mềm nào cũng có lỗi bởi vì nó do con ngƣời làm ra.
 Kiểm thử độ tin cậy của phần mềm.
 Các lỗi đang dùng trong thực tế có thể rất tốn chi phí cũng nhƣ gây nguy hiểm
đến con ngƣời.
 Tránh kiện tụng của khách hàng.
 Phát triển doanh nghiệp.
 Lỗi phát hiện càng sớm thìchi phíkhắc phục càng nhỏ.
1.4.3. Mục tiêu của kiểm thử phần mềm
 Phát hiện và xác định càng nhiều lỗi càng tốt ở các phần mềm đƣợc kiểm thử.
 Tiến hành sửa lỗi ở các phần mềm đƣợc kiểm thử và kiểm thử lại cho đến khi đạt
một mức độ chất lƣợng phần mềm chấp nhận đƣợc.
 Thực thi những trƣờng hợp kiểm thử một cách hiệu quả trong một giới hạn ngân
sách và lịch trình cho phép.
1.4.4. Các nguyên tắc cơ bản của kiểm thử phần mềm
Có 7 nguyên tắc cơ bản cần chú ý khi kiểm thử phần mềm, các nguyên tắc đó là:
 Kiểm thử để chứng minh sự có mặt của lỗi và không chứng minh điều ngƣợc lại:
Kiểm thử có thể cho thấy sự có mặt của lỗi nhƣng không thể chứng minh điều

ngƣợc lại là chƣơng trình không có lỗi. Việc kiểm thử giảm nguy cơ không tìm
thấy lỗi trong phần mềm nhƣng ngay cả khi không tìm thấy lỗi thì cũng không thể
chứng minh đƣợc sản phẩm phần mềm đƣợc phát triển hoàn toàn chính xác.
 Không thể kiểm thử vét cạn: Việc kiểm thử không thể thực hiện đƣợc cho tất mọi
trƣờng hợp kiểm thử. Do vậy thay vì kiểm thử mọi khía cạnh, ta phải tập trung
vào kiểm thử những yếu tố quan trọng và nhiều rủi ro.
 Kiểm thử sớm: Các hoạt động kiểm thử nên bắt đầu càng sớm càng tốt trong
vòng đời phát triển phần mềm, và nên tập trung và những mục tiêu kiểm thử nhất
định.
 Phân cụm lỗi: Một số lƣợng nhỏ các mô-đun phần mềm có thể chứa hầu hết các
lỗi đƣợc phát hiện ra trong suốt quá trình kiểm thử hoặc tập trung hầu hết các lỗi
vận hành.

Nguyễn Thị Vân

18

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

 Kiểm thử ngƣợc: Nếu một phƣơng pháp kiểm thử đƣợc lặp đi lặp lại nhiều lần,
các trƣờng hợp kiểm thử giống nhau sẽ không phát hiện đƣợc triệt để lỗi mới. Để
khắc phục điều này ta có thể sử dụng nguyên tắc "kiểm thử ngƣợc", các trƣờng
hợp kiểm thử cần phải đƣợc xem xét và duyệt lại một cách đều đặn, và việc kiểm
thử mới cần phải đƣợc viết lại để thực thi những phần khác của phần mềm hay hệ
thống để tìm ra nhữ ng lỗi tiềm ẩn.
 Kiểm thử phụ thuộc vào ngữ cảnh: Việc kiểm thử đƣợc thực hiện trong những
hoàn cảnh khác nhau thì khác nhau.

 Sai lầm về việc không có lỗi: Tìm kiếm và sửa lỗi không thể giúp đƣợc gì nếu hệ
thống không dùng đƣợc hoặc không đáp ứng đƣợc yêu cầu và sự mong đợi của
khách hàng.
1.4.5. Các phƣơng pháp kiểm thử
Phân loại dựa vào các yếu tố: Chiến lƣợc kiểm thử; Phƣơng pháp kiểm thử; Kỹ thuật
kiểm thử.
 Chiến lƣợc kiểm thử
+ Kiểm thử thủ công
+ Kiểm thử tự động
 Phƣơng pháp tiến hành kiểm thử
+ Kiểm thử tĩnh
+ Kiểm thử động
 Kỹ thuật kiểm thử
+ Kiểm thử hộp đen
+ Kiểm thử hộp trắng
+Kiểm thử hộp xám
1.4.5.1. Kiểm thử tĩnh – Static testing
Là phƣơng pháp thử phần mềm đòi hỏi phải duyệt lại các yêu cầu và các đặc tả
bằng tay, thông qua việc sử dụng giấy, bút để kiểm tra logic, lần từng chi tiết mà không
cần chạy chƣơng trình. Kiểu kiểm thử này thƣờng đƣợc sử dụng bởi chuyên viên thiết kế
ngƣời mà viết mã lệnh một mình.
Kiểm thử tĩnh cũng có thể đƣợc tự động hóa. Nó sẽ thực hiện kiểm tra toàn bộ bao
gồm các chƣơng trình đƣợc phân tích bởi một trình thông dịch hoặc biên dịch mà xác
nhận tính hợp lệ về cú pháp của chƣơng trình.

Nguyễn Thị Vân

19

Lớp Tin Trắc Địa K57



Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

1.4.5.2. Kiểm thử động – Dynamic testing
Là phƣơng pháp thử phần mềm thông qua việc dùng máy chạy chƣơng trình để
điều tra trạng thái tác động của chƣơng trình. Đó là kiểm thử dựa trên các ca kiểm thử
xác định bằng sự thực hiện của đối tƣợng kiểm thử hay chạy các chƣơng trình. Kiểm thử
động kiểm tra cách thức hoạt động động của mã lệnh, tức là kiểm tra sự phản ứng vật lý
từ hệ thống tới các biến luôn thay đổi theo thời gian. Trong kiểm thử động, phần mềm
phải thực sự đƣợc biên dịch và chạy. Kiểm thử động thực sự bao gồm làm việc với phần
mềm, nhập các giá trị đầu vào và kiểm tra xem liệu đầu ra có nhƣ mong muốn hay
không. Các phƣơng pháp kiểm thử động gồm có kiểm thử Unit – Unit Tests, Kiểm thử
tích hợp – Intergration Tests, Kiểm thử hệ thống – System Tests, và Kiểm thử chấp nhận
sản phẩm – Acceptance Tests…
1.4.5.3. Kiểm thử hộp đen - Black box testing
Một trong những chiến lƣợc kiểm thử quan trọng là kiểm thử hộp đen, hƣớng dữ
liệu, hay hƣớng vào/ra. Kiểm thử hộp đen xem chƣơng trình nhƣ là một “Hộp đen”. Mục
đích của bạn là hoàn toàn không quan tâm về cách cƣ xử và cấu trúc bên trong của
chƣơng trình không thực hiện theo đặc tả của nó.
Theo hƣớng tiếp cận này, dữ liệu kiểm tra đƣợc lấy chỉ từ các đặc tả.
Các phƣơng pháp kiểm thử hộp đen:
 Phân lớp tƣơng đƣơng – EQUIVALENCE PARTITIONING.
 Phân tích giá trị biên BOUNDARY VALUE ANALYSIS.
 Kiểm thử mọi cặp ALL-PAIRS TESTING .
 Kiểm thử Fuzz FUZZ TESTING .
 Kiêm thử dựa trên mô hình – MODEL-BASED TESTING .
 Ma trận dấu vết TRACEABILITY MATRIX .
 Kiểm thử thăm dò EXPLORATORY TESTING .
 Kiểm thử dựa trên đặc tả SPECIFICATION -BASE TESTING .

Kiểm thử dựa trên đặc tả tập trung vào kiểm tra tính thiết thực của phần mềm theo
những yêu cầu thích hợp. Do đó, kiểm thử viên nhập dữ liệu vào, và chỉ thấy dữ liệu ra
từ đối tƣợng kiểm thử. Mức kiểm thử viên mà khi đó có thể xác minh là đối tƣợng với
dữ liệu đầu vào đã cho, giá trị đầu ra (cách thức hoạt động) có giống với giá trị mong
muốn đã đƣợc xác định trong ca kiểm thử đó hay không. Kiểm thử dựa trên đặc tả là cần
thiết, nhƣng không đủ để ngăn chặn những rủi ro chắc chắn.
 Ƣu, nhƣợc điểm
Kiểm thử hộp đen không có mối liên quan nào tới mã lệnh, và kiểm thử viên chỉ rất
đơn giản tâm niệm là một mã lệnh phải có lỗi, sử dụng nguyên tắc “Hãy đòi hỏi và bạn
đƣợc nhận”, những kiểm thử viên hộp đen tìm ra lỗi mà những lập trình viên đã không
Nguyễn Thị Vân

20

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

tìm ra. Nhƣng mặt khác, ngƣời cũng nói kiểm thử hộp đen “Giống nhƣ là đi trong bóng
tối mà không có đen vậy” Bởi vìkiểm thử viên không biết các phần mềm đƣợc kiểm tra
thực sự đƣợc xây dựng nhƣ thế nào. Đó là lí do mà có nhiều trƣờng hợp mà một kiểm
thử duy nhất, và/hoặc một số phần mềm của chƣơng trình không đƣợc kiểm tra chút nào.
Do vậy, kiểm thử hộp đen có ƣu điểm của “Một sự đánh giá khách quan”, mặt khác nó
lại có nhƣợc điểm của “Thăm dò mù”.
1.4.5.4. Kiểm thử hộp trắng – White box testing
Là một chiến lƣợc kiểm thử khác, trái ngƣợc hoàn toàn với kiểm thử hộp đen, kiểm
thử hộp trắng hay kiểm thử hƣớng logic cho phép bạn khảo sát cấu trúc bên trong của
chƣơng trình. Chiến lƣợc này xuất phát từ dữ liệu kiểm thử bằng sự kiểm thử tính logic
của chƣơng trình. Kiểm thử viên sẽ truy cập vào cấu trúc dữ liệu và giải thuật bên trong

chƣơng trình (và cả mã lệnh thực hiện chúng).
 Các phƣơng pháp kiểm thử hộp trắng:
 Kiểm thử giao diện lập trình ứng dụng - API testing (application programming
interface): là phƣơng pháp kiểm thử của ứng dụng sử dụng các API công khai và
riêng tƣ.
 Bao phủ mã lệnh – Code coverage: tạo các kiểm tra để đáp ứng một số tiêu chuẩn
về bao phủ mã lệnh.
 Các phương pháp gán lỗi – Fault injection.
 Các phương pháp kiểm thử hoán chuyển – Mutation testing methods.
 Kiểm thử tĩnh – Static testing: kiểm thử hộp trắng bao gồm mọi kiểm thử tĩnh.
 Phƣơng pháp kiểm thử hộp trắng cũng có thể đƣợc sử dụng để đánh giá sự hoàn
thành của một bộ kiểm thử mà đƣợc tạo cùng với các phƣơng pháp kiểm thử hộp
đen. Điều này cho phép các nhóm phần mềm khảo sát các phần của một hệ thống
ít khi đƣợc kiểm tra và đảm bảo rằng những điểm chức năng quan trọng nhất đã
đƣợc kiểm tra.
1.5. Quy trình kiểm thử phần mềm
1.5.1. Các bƣớc trong một quy trình kiểm thử phần mềm
Thuật ngữ: Software Test Process là 1 chuỗi các hoạt động, phƣơng thức thực hiện
mà con ngƣời phải làm để thực hiện kiểm thử cho hệ thống phần mềm.
 Quy trình kiểm thử phần mềm bao gồm các bƣớc:
 Lập kế hoạch kiểm tra.
 Phân tích, thiết kế test case.
 Thực hiện test.
 Đánh giá kết quả test.
 Tổng kết quá trình kiểm thử.
a) Lập kế hoạch :

Nguyễn Thị Vân

21


Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

Nhiệm vụ quan trọng trong phần lập kế hoạch kiểm thử là xác định đƣợc các yếu tố sau:
 Các giai đoạn kiểm thử áp dụng cho dự án
 Các phƣơng pháp kiểm thử
 Các công cụ kiểm thử
 Nguồn lực kiểm thử
 Tài nguyên môi trƣờng kiểm thử, bao gồm các tài nguyên phần cứng và phần
mềm
 Mốc bàn giao các tài liệu kiểm thử
 Nhằm chỉ định và mô tả các loại kiểm tra sẽ đƣợc triển khai và thực hiện. Kết
quả của bƣớc lập kế hoạch là bản tài liệu kế hoạch KTPM bao gồm nhiều chi
tiết từ các loại kiểm tra, chiến lƣợc kiểm tra, cho đến thời gian và phân định
lực lƣợng kiểm tra viên, xác định tiêu chíkết thúc kiểm thử.
b) Phân tích và thiết kế test
Nhằm chỉ định các testcase và các bƣớc kiểm tra chi tiết cho mỗi phiên PM. Giai
đoạn thiết kế test là hết sức quan trọng, nó đảm bảo tất cả các tình huống kiểm tra hết tất
cả các yêu cầu
Các bƣớc thiết kế test :
 Xác định và mô tả test case
 Mô tả các bƣớc chi tiết để kiếm tra
 Xem xét và khảo sát độ bao phủ của việc kiểm tra
 Xem xét testcase và các bƣớc kiểm tra
c) Thực hiện test
Mục đích thực hiện các bƣớc kiểm tra đã thiết kế và ghi nhận kết quả
d) Đánh giá test

Mục đích: Đánh giá toàn bộ quá trình kiểm tra bao gồm xem xét và đánh giá kết
quả kiểm tra lỗi, chỉ định các yêu cầu thay đổi và tính toán số liệu liên quan, đến quá
trình kiểm tra.
e) Tổng kết quá trình kiểm thử
Viết báo cáo tổng kết.

1.5.2. Mô hình phát triển và kiểm thử phần mềm hình chữ V

Nguyễn Thị Vân

22

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

 Các tính chất cần ghi nhận trên mô hình chữ V:
Requirements

Preparation
Acceptance

Preparation

Preparation

Integration

Unit/Component

Specification

Hình 1-1 Mô hình phát triển và kiểm thử phần mềm hình chữ V
 Bƣớc 1: Requirements Definition (Xác định yêu cầu): Đóng vai trò xác định
yêu cầu bài toán, tính chất công việc, khi bƣớc này hoàn thành thi đƣợc đƣa
vào bƣớc kiểm thử Acceptance Test (kiểm thử chấp nhận).
 Bƣớc 2: Functional system design (Thiết kế chức năng hệ thống): Bƣớc này
đƣợc xảy ra trên kỹ thuật hệ thống và thiết kế, nó là bƣớc mức độ cao vìthời
điểm này, nó phải cung cấp đƣợc tổng quan về giải pháp xử lý, nền tảng xây
dựng, hệ thống sản phẩm, và các dịch vụ. Sau khi bƣớc này đƣợc hoàn thành nó
chuyển sang mức System Test(kiểm thử hệ thống)
 Bƣớc 3: Technical system design (Thiết kế kỹ thuật hệ thống): Sau khi
hoàn thành bƣớc này chuyển sang mức test: Integration (tich hợp).
 Bƣớc 4: Component Specification (Đặc tả thành phần): Đây là bƣớc mức độ
thấp của thiết kế, là giai đoạn mà sản phẩm phần mềm đã đƣợc tiến hành thiết
kế thực tế, bắt đầu đi vào xác định các yếu tố logic, các sơ đồ lớp với mọi
phƣơng thức, mối liên quan giữa các lớp, giai đoạn này có thể phát sinh các
mâu thuẫn, sự phùhợp hay không phùhợp….Sau khi bƣớc này đƣợc thực hiện
thành công thì đƣợc chuyển đến công đoạn test gọi là Unit/Component Test
(kiểm thử đơn vị, thành phần).
 Ƣu điểm và Nhƣợc Điểm.
 Ƣu điểm.

Nguyễn Thị Vân

23

Lớp Tin Trắc Địa K57



Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

- Đơn giản dễ sử dụng.
- Có hoạt động, kế hoạch cụ thể cho quá trình test.
- Tiết kiệm đƣợc thời gian, và có cơ hội thành công cao hơn waterfall.
- Chủ động trong việc phát hiện bug, sớm tìm ra bug ngay từ những bƣớc đầu.
 Nhược điểm.
- Độ linh hoạt ít và còn tồn tại sự cứng nhắc. Nó thể hiện ở chỗ cứ sau mỗi
step thì lại phải có một - công đoạn test, nếu yêu cầu dự án không quá phức
tạp và dễ hiểu, thì việc thực hiện nhiều công đoạn test nhƣ vậy là tốn thời
gian.
- Giống với waterfall, sản phẩm của dự án chỉ đƣợc xuất hiện khi tất cả các
bƣớc đƣợc hoàn thành xong, không có nguyên mẫu ngay từ ban đầu. Không
đáp ứng đƣợc yêu cầu dịch vụ vừa phát triển, song song với vừa bán sản
phẩm.
- Nếu có sự thay đổi về kỹ thuật ở nửa chừng, thì sẽ phải quay lại các bƣớc
đầu tiên, thực hiện lại, update lại tài liệu.
 Áp dụng cho những dự án nhƣ thế nào.




Dự án có kích thƣớc nhỏ, và trung bình, các yêu cầu dự án là rõ ràng, cố định.
Khi team phát triển có đội ngũ kỹ thuật tốt, có nguồn tài nguyên phong phú, sẵn
có để đảm bảo đƣợc yêu cầu, đọc nhanh, test nhanh và coding nhanh.
Nếu khách hàng có sự tự tin cao trong yêu cầu thiết kế (nghĩa là ít thay đổi, ít
dao động) thì V model là lựa chọn cần thiết.

Các hoạt động hiện thực và các hoạt động kiểm thử đƣợc tách biệt nhƣng độ quan trọng
là nhƣ nhau. Chữ V minh họa các khía cạnh của hoạt động Verification và Validation.

Cần phân biệt giữa các mức độ kiểm thử ở đó mỗi mức kiểm thử là kiểm thử trên mức
phát triển phần mềm tƣơng ứng.
Mô hình phát triển tăng tiến - tƣơng tác :
 Qui trình thiết lập các yêu cầu phần mềm, thiết kế, xây dựng, kiểm thử hệ thống
phần mềm đƣợc thực hiện nhƣ 1 chuỗi các chu kỳ phát triển ngắn hơn.
 Hệ thống có đƣợc từ một bƣớc lặp đƣợc kiểm thử ở nhiều cấp trong việc phát triển
hệ thống đó.
 Kiểm thử hồi quy có độ quan trọng tăng dần theo các bƣớc lặp (không cần trong
bƣớc đầu tiên).
 Thanh kiểm tra và kiểm định có thể ₫ƣợc thực hiện theo kiểu tăng dần trên từng
bƣớc lặp.
Các tính chất của qui trình kiểm thử tốt :
 Cần có 1 mức độ kiểm thử cho mỗi công đoạn phát triển phần mềm.
 Các mục tiêu kiểm thử sẽ bị thay đổi, mỗi mức kiểm thử nên có các mục tiêu đặc
thùcủa mình.

Nguyễn Thị Vân

24

Lớp Tin Trắc Địa K57


Đồ án tốt nghiệp chuyên ngành Tin học Trắc địa

 Việc phân tích và thiết kế test case cho 1 mức độ kiểm thử nên bắt đầu sớm nhất
nhƣ có thể có.
 Các tester nên xem xét các tài liệu sớm nhƣ có thể có, ngay sau khi các tài liệu
này đƣợc tạo ra trong chu kỳ phát triển phần mềm.
 Số lƣợng và cƣờng độ của các mức kiểm thử đƣợc điều khiển theo các yêu cầu

đặc thùcủa project phần mềm đó.
 Sơ đồ tổ chức phổ biến của đội kiểm thử.
1.5.3. Nhân lực kiểm thử phần mềm

1.5.4. Quy trình xây dựng kế hoạch kiểm thử
Ghi chú quan trọng:
Sau khi xây dựng xong kế hoạch kiểm thử, ta có thể thay đổi nó nhƣng phải tuân
thủ quy trình yêu cầu thay đổi.
Các hoạt động chính trong việc xây dựng kế hoạch kiểm thử:
-

Định nghĩa mục đích, phạm vi, chiến lƣợc, cách tiếp cận, các điều kiện chuyển,
các rủi ro, kế hoạch giảm nhẹ và tiêu chíchấp thuận.
Định nghĩa cách thức thiết lập môi trƣờng và các tài nguyên đƣợc dùng cho việc
kiểm thử.
Thiết lập cơ chế theo dõi lỗi phát hiện.
Chuẩn bị ma trận theo dõi bao phủ mọi yêu cầu phần mềm.
Báo cáo trạng thái kiểm thử.

Nguyễn Thị Vân

25

Lớp Tin Trắc Địa K57


×