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

XÂY DỰNG CÁC CA KIỂM THỬ CHO PHẦN MỀM QUẢN LÝ QUAN HỆ KHÁCH HÀNG NINACRM CỦA CÔNG TY TNHH NINASOFT

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 (2.43 MB, 83 trang )

TRƯỜNG ĐẠI HỌC THƯƠNG MẠI
KHOA HTTT KINH TẾ VÀ TM ĐIỆN TỬ
------

KHÓA LUẬN TỐT NGHIỆP
ĐỀ TÀI:
XÂY DỰNG CÁC CA KIỂM THỬ CHO PHẦN MỀM QUẢN LÝ

QUAN HỆ KHÁCH HÀNG NINACRM CỦA CÔNG TY TNHH
NINASOFT

Giáo viên hướng dẫn

: TS Lê Việt Hà

Sinh viên thực hiện

: Nguyễn Thị Hạnh

Lớp hành chính

: K56S1

Mã sinh viên

: 20D190013

Hà Nội, 11.2023


LỜI CẢM ƠN


Lời đầu tiên, em xin chân thành cảm ơn cô T.S Lê Việt Hà – Giảng viên Khoa
Hệ thống thông tin kinh tế và Thương mại điện tử Trường Đại học Thương mại đã
hướng dẫn tận tình, chỉ bảo và có những góp ý nhiệt tình cho em trong suốt thời gian
thực hiện đề tài để em có thể hồn thành Khóa luận tốt nghiệp của mình.
Tiếp đến, em cũng xin gửi lời cảm ơn chân thành đến Khoa Hệ thống thông tin
kinh tế và Thương mại điện tử Trường Đại học Thương Mại đã tạo điều kiện cho em
học tập, nghiên cứu.
Em xin gửi lòng biết ơn sâu sắc đến quý công ty TNHH Ninasoft, ban lãnh đạo
cơng ty cùng tồn thể nhân viên trong cơng ty đã tạo điều kiện cho em được tìm hiểu,
nghiên cứu trong suốt q trình thu thập thơng tin.
Mặc dù đã cố gắng hồn thành khóa luận với tất cả sự nỗ lực của bản thân, nhưng
khóa luận chắc chắn khơng tránh khỏi những thiếu sót, kính mong q Thầy Cơ sẽ có
những nhận xét, góp ý để bài làm được hoàn thiện hơn. Một lần nữa, em xin chân
thành cảm ơn những sự giúp đỡ của tất cả mọi người.
Em xin chân thành cảm ơn!

i


MỤC LỤC

LỜI CẢM ƠN ................................................................................................................. i
DANH MỤC BẢNG ..................................................................................................... iv
DANH MỤC HÌNH VẼ................................................................................................. v
DANH MỤC TỪ VIẾT TẮT ........................................................................................ v
PHẦN MỞ ĐẦU ............................................................................................................ 1
I. Sự cần thiết của việc kiểm thử phần mềm .............................................................. 1
II. Mục tiêu nghiên cứu.................................................................................................. 1
III. Đối tượng nghiên cứu ............................................................................................. 2
IV. Phương pháp nghiên cứu ....................................................................................... 2

V. Kết cấu khóa luận...................................................................................................... 3
CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ HOẠT ĐỘNG KIỂM THỬ PHẦN MỀM
QUẢN LÝ QUAN HỆ KHÁCH HÀNG NINACRM CỦA CÔNG TY TNHH
NINASOFT..................................................................................................................... 4
1.1 Những khái niệm cơ bản về kiểm thử phần mềm................................................. 4
1.1.1 Phần mềm .............................................................................................................. 4
1.1.2 Kiểm thử phần mềm ............................................................................................. 6
1.2 Một số lý thuyết về xây dựng ca kiểm thử............................................................. 7
1.2.1 Các phương pháp kiểm thử ................................................................................. 7
1.2.2 Các giai đoạn của kiểm thử phần mềm ............................................................ 11
1.2.3 Kiểm thử thủ công và kiểm thử tự động .......................................................... 13
1.2.4 Quy trình kiểm thử phần mềm.......................................................................... 13
1.2.5 Các kỹ thuật kiểm thử phần mềm..................................................................... 16
1.2.6 Các phần mềm hỗ trợ quá trình kiểm thử ....................................................... 20
1.3 Tổng quan tình hình nghiên cứu .......................................................................... 21
1.3.1 Tình hình nghiên cứu trong nước ..................................................................... 21
1.3.2 Tình hình nghiên cứu trên thế giới ................................................................... 22
CHƯƠNG 2: KẾT QUẢ PHÂN TÍCH, ĐÁNH GIÁ THỰC TRẠNG KIỂM THỬ
PHẦN MỀM QUẢN LÝ QUAN HỆ KHÁCH HÀNG NINACRM CỦA CƠNG
TY TNHH NINASOFT ............................................................................................... 24
2.1 Tổng quan về cơng ty TNHH Ninasoft ................................................................ 24
2.1.1 Giới thiệu chung về công ty TNHH Ninasoft ................................................... 24
2.1.2 Cơ cấu tổ chức công ty TNHH Ninasoft ........................................................... 26
2.2 Thực trạng hoạt động kiểm thử phần mềm Quản lý quan hệ khách hàng tại
công ty TNHH Ninasoft............................................................................................... 28
2.2.1 Thực trạng cơ sở hạ tầng công nghệ thông tin tại Công ty TNHH Ninasoft 28
ii


2.2.2 Thực trạng hoạt động kiểm thử phần mềm Quản lý quan hệ khách hàng tại

Công ty TNHH Ninasoft. ............................................................................................ 30
2.3 Đánh giá thực trạng kiểm thử phần mềm Quản lý quan hệ khách hàng tại
Công ty TNHH Ninasoft ............................................................................................. 34
2.3.1 Ưu điểm ............................................................................................................... 34
2.3.2 Nhược điểm ......................................................................................................... 35
CHƯƠNG 3: XÂY DỰNG CÁC CA KIỂM THỬ PHẦM MỀM QUẢN LÝ
QUAN HỆ KHÁCH HÀNG NINACRM ................................................................... 36
3.1 Định hướng phát triển của Công ty TNHH Ninasoft giai đoạn 2023-2030 ...... 36
3.2 Kiểm thử thủ công phần mềm Quản lý quan hệ khách hàng NinaCRM ......... 36
3.2.1 Mô tả phần mềm quản lý quan hệ khách hàng NinaCRM............................. 36
3.2.2 Đặc tả yêu cầu của hệ thống .............................................................................. 38
3.2.3 Xây dựng các ca kiểm thử phần mềm Quản lý quan hệ khách hàng
NinaCRM. .................................................................................................................... 41
3.3 Đề xuất kiểm thử tự động phần mềm Quản lý quan hệ khách hàng NinaCRM
bằng công cụ kiểm thử Selenium ............................................................................... 58
3.3.1 So sánh các công cụ kiểm thử tự động .............................................................. 58
3.3.2 Kiểm thử tự động phần mềm Quản lý quan hệ khách hàng NinaCRM bằng
công cụ Selenium IDE ................................................................................................. 59
3.4 Đánh giá hoạt động kiểm thử phần mềm Quản lý quan hệ khách hàng
NinaCRM tại công ty TNHH Ninasoft. ..................................................................... 72
KẾT LUẬN .................................................................................................................. 73
TÀI LIỆU THAM KHẢO
PHỤ LỤC

iii


DANH MỤC BẢNG
Bảng 1.1: So sánh các kỹ thuật kiểm thử ...................................................................... 19
Bảng 2.1 Thông tin chung về công ty............................................................................ 24

Bảng 2.2: Kết quả hoạt động kinh doanh giai đoạn 2020 – 2022 (Đơn vị: VNĐ) ........ 25
Bảng 2.3: Chi tiết số lượng nhân viên các phịng ban cơng ty ...................................... 27
Bảng 2.4: Chi tiết số lượng phần cứng công ty ............................................................. 28
Bảng 3.1: Testcase chức năng đăng nhập ...................................................................... 41
Bảng 3.2: Testcase chức năng Thêm mới khách hàng .................................................. 43
Bảng 3.3: Testcase chức năng tìm kiếm khách hàng..................................................... 51
Bảng 3.4: Testcase chức năng thêm mới dự án ............................................................. 52
Bảng 3.5: Testcase chức năng tìm kiếm dự án .............................................................. 57
Bảng 3.6: So sánh các công cụ kiểm thử ....................................................................... 58
Bảng 3.7: Testcase kiểm thử tự động chức năng thêm mới khách hàng thành công .... 63
Bảng 3.8: Testcase kiểm thử tự động chức năng thêm mới khách hàng khi bỏ trống
textbox tên khách hàng .................................................................................................. 64
Bảng 3.9: Testcase kiểm thử tự động chức năng thêm mới khách hàng đã tồn tại trong
Database......................................................................................................................... 65
Bảng 3.10: Testcase kiểm thử tự động tìm kiếm khách hàng thành công ..................... 66
Bảng 3.11: Testcase kiểm thử tự động tìm kiếm khách hàng khơng thành cơng .......... 67
Bảng 3.12: Testcase kiểm thử tự động chức năng cập nhật số điện thoại khách hàng
thành công...................................................................................................................... 68
Bảng 3.13: Testcase kiểm thử tự động chức năng cập nhật số điện thoại khách hàng
khi bỏ trống số điện thoại .............................................................................................. 69
Bảng 3.14: Testcase kiểm thử tự động chức năng cập nhật số điện thoại khách hàng
không đúng định dạng ................................................................................................... 70
Bảng 3.15: Testcase kiểm thử tự động chức năng cập nhật số điện thoại khách hàng có
chứa ký tự chữ cái.......................................................................................................... 71
Bảng 3.16: Kết quả kiểm thử tự động bằng công cụ Selenium IDE ............................. 72

iv


DANH MỤC HÌNH VẼ

Hình 1.1: Quy trình xây dựng phần mềm ........................................................................ 5
Hình 1.2: Phương pháp kiểm thử hộp trắng .................................................................... 8
Hình 1.3: Phương pháp kiểm thử hộp đen....................................................................... 9
Hình 1.4: Phương pháp kiểm thử hộp xám ................................................................... 10
Hình 1.5: Các giai đoạn của kiểm thử phần mềm ......................................................... 11
Hình 1.6: Quy trình kiểm thử phần mềm ...................................................................... 14
Hình 2.1: Logo Cơng ty TNHH Ninasoft ...................................................................... 24
Hình 2.2: Cơ cấu tổ chức Cơng ty TNHH Ninasoft ...................................................... 26
Hình 3.1: Mơ hình phân rã chức năng ........................................................................... 37
Hình 3.2: Giao diện đăng nhập phần mềm Quản lý quan hệ khách hàng NinaCRM ... 41
Hình 3.3: Giao diện thêm mới khách hàng .................................................................... 43
Hình 3.4: Giao diện tìm kiếm khách hàng ..................................................................... 51
Hình 3.5: Giao diện thêm mới dự án ............................................................................. 52
Hình 3.6: Giao diện tìm kiếm dự án .............................................................................. 57
Hình 3.7: Quy trình kiểm thử tự động ........................................................................... 59
Hình 3.8: Kết quả kiểm thử tự động chức năng thêm mới khách hàng thành cơng ...... 63
Hình 3.9: Kết quả kiểm thử tự động chức năng thêm mới khách hàng khi bỏ trống
textbox tên khách hàng .................................................................................................. 64
Hình 3.10: Kết quả kiểm thử tự động chức năng thêm mới khách hàng đã tồn tại trong
database ......................................................................................................................... 65
Hình 3.11: Kết quả kiểm thử tự động chức năng tìm kiếm khách hàng thành cơng ..... 66
Hình 3.12: Kết quả kiểm thử tự động chức năng tìm kiếm khách hàng khơng thành
cơng ............................................................................................................................... 67
Hình 3.13: Kết quả kiểm thử tự động chức năng cập nhật số điện thoại khách hàng
thành cơng...................................................................................................................... 68
Hình 3.14: Kết quả kiểm thử tự động chức năng cập nhật số điện thoại khách hàng khi
bỏ trống số điện thoại .................................................................................................... 69
Hình 3.15: Kết quả kiểm thử tự động chức năng cập nhật số điện thoại khách hàng
không đúng định dạng ................................................................................................... 70
Hình 3.16: Kết quả kiểm thử tự động chức năng cập nhật số điện thoại khách hàng có

chứa ký tự chữ cái.......................................................................................................... 71

v


DANH MỤC TỪ VIẾT TẮT
TNHH

Trách nhiệm hữu hạn

ĐHQG - HCM

Đại học quốc gia – Hồ Chí Minh

CNTT

Cơng nghệ thơng tin

HTTT

Hệ thống thông tin

TC (Testcase)

Ca kiểm thử

CRM (Customer
Management)
API


(Application

Relationship Quản lý quan hệ khách hàng
programming Giao diện lập trình ứng dụng

interface)
ISTQB (International Organization Hội đồng kiểm định kiểm thử phần mềm
Testing Qualifications Board)
quốc tế
SQL (Structured Query Language)

Ngơn ngữ truy vấn mang tính cấu trúc

CSDL

Cơ sở dữ liệu

IDE (Integrated
Environment)

Development Môi trường phát triển tích hợp

CPU (Central Processing Unit)

Bộ xử lý trung tâm

UI (User Interface)

Giao diện người dùng


vi


PHẦN MỞ ĐẦU
I. Sự cần thiết của việc kiểm thử phần mềm
Thế giới ngày càng chuyển động không ngừng và công nghệ cũng vậy, trong thời
đại hiện nay việc ứng dụng công nghệ thông tin vào kinh doanh ngày càng được áp
dụng phổ biến rộng rãi và phổ biến. Để tạo ra được một sản phẩm cơng nghệ hồn hảo,
việc kiểm thử được coi là một giai đoạn quan trọng nhằm đảm bảo chất lượng phần
mềm và đáp ứng tối đa nhu cầu người dùng. Hoạt động kiểm thử được thực hiện nhằm
tìm ra được các lỗi có thể xảy ra trong quá trình phát triển phần mềm, giúp kịp thời sửa
lỗi trước khi đưa sản phẩm phần mềm vào hoạt động chính thức, đem đến những trải
nghiệm tốt nhất cho khách hàng. Hiện nay đã có thêm rất nhiều những công cụ kiểm
thử và hỗ trợ việc kiểm thử phần mềm được thực hiện một cách nhanh hơn và chính
xác hơn.
Cơng ty TNHH Ninasoft là cơng ty Cơng nghệ và Dịch vụ Phần mềm chuyên
cung cấp các giải pháp phần mềm tùy chỉnh, chất lượng cao để đáp ứng nhu cầu riêng
biệt của các doanh nghiệp thuộc nhiều ngành khác nhau. Để một sản phẩm cơng nghệ
có thể được đưa vào ứng dụng và ứng dụng rộng rãi thì sự phản hồi và đóng góp của
người sử dụng là yếu tố rất quan trọng. Từ những góp ý dó sẽ giúp cho sản phẩm được
hồn thiện hơn. Để có thể ứng dụng phần mềm Quản lý quan hệ khách hàng vào doanh
nghiệp một cách hiệu quả nhất thì nhiệm vụ quan trọng hiện tại là kiểm thử cho hệ
thống Quản lý quan hệ khách hàng để nhằm hạn chế tối đa việc lỗi có thể xảy ra, đáp
ứng được tất cả nhu cầu người dùng một cách đầy đủ và chính xác nhất. Chính vì thế,
em lựa chọn đề tài “Xây dựng các ca kiểm thử cho phần mềm Quản lý quan hệ khách
hàng NinaCRM của công ty TNHH Ninasoft”
II. Mục tiêu nghiên cứu
Mục tiêu chung: Xây dựng các ca kiểm thử để hoàn thiện phần mềm Quản lý
quan hệ khách hàng của công ty TNHH Ninasoft
Mục tiêu cụ thể:

- Cơ sở lý luận về kiểm thử phần mềm.
- Tổng quan tình hình nghiên cứu trong và ngồi nước về kiểm thử phần mềm.
- Phân tích thực trạng quá trình kiểm thử phần mềm của cơng ty TNHH
Ninasoft.
- Đánh giá thực trạng hoạt động kiểm thử phần mềm Quản lý quan hệ khách
hàng NinaCRM.
- Đề xuất giải pháp: Xây dựng các ca kiểm thử cho phần mềm Quản lý quan
hệ khách hàng NinaCRM.

1


III. Đối tượng nghiên cứu
Đối tượng nghiên cứu: Các ca kiểm thử trong phần mềm Quản lý quan hệ khách
hàng NinaCRM của công ty TNHH Ninasoft.
IV. Phương pháp nghiên cứu
a) Phương pháp nghiên cứu
Trong bài báo cáo này, em đã lựa chọn sử dụng một kết hợp linh hoạt giữa
phương pháp nghiên cứu định tính và phương pháp nghiên cứu phát triển hệ thống
thông tin kinh tế. Phương pháp nghiên cứu định tính đã giúp em khám phá sâu sắc và
hiểu rõ hơn về yêu cầu cụ thể của người sử dụng đối với phần mềm. Qua việc tương
tác trực tiếp, thu thập ý kiến, em đã có cơ hội cập nhật và điều chỉnh các yêu cầu theo
thời gian, đảm bảo rằng sản phẩm phản ánh đúng nhu cầu và mong muốn của người
dùng.
Song song đó, phương pháp nghiên cứu phát triển hệ thống thông tin kinh tế đã
giúp em đánh giá hiệu quả triển khai của phần mềm. Qua việc xây dựng và thử nghiệm
các thành phần của hệ thống, em có thể đo lường được sự linh hoạt, tính ổn định, và
khả năng mở rộng của phần mềm. Nhờ đó, em đã có cái nhìn tồn diện về khả năng
hoạt động của sản phẩm trong môi trường thực tế.
Bằng cách kết hợp cả hai phương pháp nghiên cứu này, em tin rằng khóa luận

của mình khơng chỉ là kết quả của sự hiểu biết sâu sắc về nhu cầu người sử dụng mà
còn là sản phẩm của một q trình phát triển có chất lượng, dựa trên những đánh giá
chặt chẽ và thực nghiệm thực tế.
b) Phương pháp thu thập dữ liệu
- Phương pháp thu thập dữ liệu thứ cấp: em đã thu thập dữ liệu thông qua
website, báo cáo thống kế của công ty về thực trạng ứng dụng công nghệ trong doanh
nghiệp cũng như phương hướng hoạt động của công ty trong thời gian tới.
- Phương pháp thu thập sơ cấp: em đã sử dụng phương pháp phỏng vấn với
các câu hỏi liên quan đến hiệu quả xây dựng ca kiểm thử trong phần mềm diễn ra tại
công ty TNHH Ninasoft và xác định rõ yêu cầu của khách hàng. Đồng thời em cũng sử
dụng phương pháp quan sát để tiến hành quan sát quy trình kiểm thử phần mềm tại
cơng ty, từ đó sẽ có cái nhìn rõ hơn về nhiệm vụ của một Tester cần phải làm để đáp
ứng được nhiệm vụ được giao, đồng thời có thể tích lũy được kinh nghiệm làm việc
của bản thân.
c) Phương pháp xử lý dữ liệu
Sau khi tiến hành phỏng vấn, em đã ghi chép, phân tích thực trạng hoạt động của
việc kiểm thử phần mềm tại công ty.
- Đối với dữ liệu thứ cấp: tiến hành đánh giá và lựa chọn ra những thông tin có
ích, cần thiết cho nghiên cứu.
2


- Đối với dữ liệu sơ cấp: em đã sử dụng cơng cụ Word để ghi chép, phân tích,
tổng hợp, thống kê các dữ liệu thu được và từ đó có thể đưa ra các kết luận.
V. Kết cấu khóa luận
Chương 1: Cơ sở lý luận về hoạt động kiểm thử phần mềm Quản lý quan hệ
khách hàng NinaCRM của cơng ty TNHH Ninasoft
Chương 2: Kết quả phân tích, đánh giá thực trạng kiểm thử phần mềm Quản lý
quan hệ khách hàng NinaCRM của công ty TNHH Ninasoft
Chương 3: Xây dựng các ca kiểm thử phần mềm Quản lý quan hệ khách hàng

NinaCRM

3


CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ HOẠT ĐỘNG KIỂM THỬ PHẦN MỀM
QUẢN LÝ QUAN HỆ KHÁCH HÀNG NINACRM CỦA CÔNG TY TNHH
NINASOFT
1.1 Những khái niệm cơ bản về kiểm thử phần mềm
1.1.1 Phần mềm
a) Khái niệm về phần mềm
Phần mềm máy tính (Computer Software) hay cịn gọi là phần mềm (Softwtare):
là một tập hợp những câu lệnh hoặc chỉ thị được viết bằng một hay nhiều ngơn ngữ lập
trình theo một trật tự xác định nào đó, và các dữ liệu hay tài liệu liên quan nhằm tự
động thực hiện một số nhiệm vụ, chức năng hoặc là giải quyết một vấn đề cụ thể nào
đó.
Phần mềm thực hiện các chức năng của nó bằng cách gửi các chỉ thị trực tiếp đến
phần cứng hay phần cứng máy tính hoặc bằng cách cung cấp các dữ liệu để phục vụ
các chương trình hay phần mềm khác.
Phần mềm là một khái niệm trừu tượng, nó khác phần cứng ở chỗ là “phần mềm
khơng thể sờ hay đụng vào”, và nó cần phải có phần cứng máy tính mới có thể thực thi
được.
b) Quy trình xây dựng phần mềm
Quy trình xây dựng phần mềm là một trong những yếu tố cực kỳ quan trọng đem
lại thành công cho các nhà sản xuất phần mềm nói chung và cho cơng ty TNHH
Ninasoft nói riêng, nó giúp cho mọi thành viên trong dự án từ người mới, người ngồi
cơng ty hay trong cơng ty đề có thể xử lý, đồng bộ và nắm bắt được cơng việc của
mình trong dự án. Có thể nói quy trình xây dựng phần mềm có tính chất quyết định để
tạo ra sản phẩm phần mềm có chất lượng tốt, với chi phí thấp và năng suất cao.
Quy trình có thể hiểu là phương pháp thực hiện hoặc sản xuất ra sản phẩm.

Tương tự như vậy thì quy trình xây dựng phần mềm chính là phương pháp phát triển
hay sản xuất ra phần mềm. Thực tế, công ty TNHH Ninasoft đã áp dụng quy trình xây
dựng phần mềm bao gồm các giai đoạn sau:

4


Hình 1.1: Quy trình xây dựng phần mềm

(Nguồn: Tài liệu kiểm thử phần mềm cơng ty TNHH Ninasoft)
- Phân tích yêu cầu và tài liệu đặc tả (Requirements): thực hiện khảo sát và
phân tích yêu cầu của khách hàng sau đó tiến hành tổng hợp lại trong tài liệu giải pháp.
Tài liệu giải pháp miêu tả đầy đủ các yêu cầu về chức năng, phi chức năng và giao
diện cần đáp ứng. Đầu ra của giai đoạn này là tài liệu đặc tả yêu cầu và bản thiết kế
mẫu.
- Thiết kế (Design): giai đoạn này sẽ dựa vào tài liệu đặc tả yêu cầu và bản
thiết kế mẫu để đưa ra được một bản thiết kế tổng thể, thiết kế chi tiết từng chức năng
và thiết kế phần CSDL của phần mềm.
- Lập trình (Coding): lập trình viên thực hiện lập trình dựa trên tài liệu giải
pháp và bản thiết kế đã được phê duyệt.
- Kiểm thử (Testing): nhân viên kiểm thử sẽ tạo ra các kịch bản kiểm thử
(testcase) dựa trên tài liệu đặc tả yêu cầu sau đó sẽ tiến hành kiểm thử dựa trên kịch
bản đã viết và cập nhật kết quả thu được vào kịch bản kiểm thử. Trong quá trình kiểm
thử khi phát hiện ra lỗi sẽ log bug lên hệ thống quản lý lỗi. Tester và lập trình viên
(Developer) sẽ phối hợp xử lý lỗi và cập nhật lên hệ thống quán lý lỗi. Giai đoạn này
nhằm đảm bảo cho phần mềm sản xuất ra đáp ứng được những yêu cầu được chỉ ra
trong tài liệu đặc tả yêu cầu.
5



-

Triển khai (Release): nhiệm vụ của giai đoạn này là tiến hành triển khai sản

phẩm cho khách hàng.
1.1.2 Kiểm thử phần mềm
a) Khái niệm kiểm thử phần mềm
Kiểm thử phần mềm là quá trình thực thi một chương trình với mục đích tìm ra
lỗi. Kiểm thử phần mềm đảm bảo sản phẩm phần mềm được làm ra đáp ứng được đầy
đue, chính xác và đúng theo yêu cầu của khách hàng, yêu cầu của sản phẩm đã đặt ra.
Kiểm thử phần mềm cũng cung cấp mục tiêu, cái nhìn độc lập về phần mềm, điều này
cho phép việc đánh giá và hiểu rõ các rủi ro khi thực thi phần mềm. Kiểm thử phần
mềm tạo điều kiện để tận dụng tối đa tư duy đánh giá và sáng tạo, tạo điều kiện để có
thể phát hiện ra được những điều mà người khác chưa nhìn thấy.
Kiểm thử phần mềm nhằm đánh giá chất lượng hay tính chấp nhận được của một
sản phẩm phần mềm. Kiểm thử sinh ra nhằm mục đích phát hiện ra lỗi hoặc là bất cứ
vấn đề trục trặc nào của phần mềm.
b) Ca kiểm thử (Testcase)
Ca kiểm thử mô tả dữ liệu đầu vào, hành động và một kết quả mong đợi nào đó
để xác định một chức năng của ứng dụng phần mềm có hoạt động đúng hay khơng.
Một testcase gồm có mã testcase, tên testcase, mục tiêu test, các bước thực hiện, kết
quả mong đợi và kết quả thực tế.
Các ca kiểm thử đóng vai trò quan trọng trong việc kiểm thử dựa vào phân tích
động. Quy trình kiểm thử dựa trên phân tích động bao gồm các bước: lập kế hoạch
kiểm thử, phát triển ca kiểm thử, tiến hành kiểm thử dựa trên các ca kiểm thử và đánh
giá kết quả kiểm thử.
Thông tin về một ca kiểm thử tiêu biểu sẽ thể hiện được chúng được thực hiện
bởi ai, được thực hiện khi nào và kết quả cuẩ mỗi lần thực hiện ra sao, thành cơng hay
thất bại, nó được thực hiện trên trình duyệt nào và thực hiện ở phiên bản nào của phần
mềm. Đối với các ca kiểm thử về giao diện của người dùng, ngồi thơng tin đầu vào

thì cũng cần phải bổ sung thêm trình tự các bước thực hiện.
Mục tiêu thiết kế ca kiểm thử nhằm:
- Tìm ra lỗi và sai sót của phần mềm một cách nhiều nhất.
- Tạo ra được các ca kiểm thử có chi phí rẻ nhất, tốn ít thời gian và cơng sức
nhất.
c) Kế hoạch kiểm thử (Test plan)
Một kế hoạch kiểm thử dự án phần mềm là một tài liệu mô tả các mục tiêu, phạm
vi, phương pháp tiếp cận, quy trình kiểm thử, các cơng cụ, mơi trường dùng để kiểm
thử, tài nguyên và nhân lực cần có. Test plan là cơ sở để tiến hành kiểm thử một phần

6


mềm. Quá trình chuẩn bị test plan là một cách hữu ích để con người ta suy nghĩ tới
những nỗ lực cần thiết để tạo ra chất lượng của một sản phẩm phần mềm.
Cấu trúc của một test plan bao gồm: tên dự án, danh sách các module cần test,
ngày bắt đầu, ngày kết thúc test, danh sách các testcase, nhân sự tham gia, tài nguyên
sử dụng và kế hoạch kiểm thử.
Test plan đóng vai trị là một kế hoạch chi tiết để tiến hành các hoạt động kiểm
thử phần mềm được quản lý và kiểm soát rõ ràng bởi Test Leader.
Test plan giúp cho những người khơng thuộc nhóm kiểm thử, ví dụ như các nhà
phát triển, khách hàng hay các nhà quản lý kinh doanh có thể dễ dàng theo dõi và hiểu
được chi tiết về quá trình kiểm thử.
d) Vai trò của kiểm thử phần mềm trong hoạt động xây dựng phần mềm
Xây dựng phần mềm và kiểm thử phần mềm có mối quan hệ khăng khít với
nhau. Ngay từ những giai đoạn đầu tiên của kiểm thử phần mềm như phân tích yêu
cầu, phân tích thiết kế,.. đã phải được tiến hành kiểm thử một cách độc lập bởi một đội
ngũ kiểm thử có kinh nghiệm để nếu có phát hiện sai sót thì tiến hành sửa chữa kịp
thời, càng về các giai đoạn sau mới phát hiện ra lỗi thì chi phí sữa lỗi lúc đó sẽ càng
nhiều và càng mất thời gian. Vì vậy, không thể chủ quan lơ là việc kiểm thử mà phải

tiến hành ngay từ những giai đoạn đầu tiên để có thể chỉnh sửa lỗi càng sớm càng tốt,
tránh cho việc đến gần giai đoạn cuối mới phát hiện ra lỗi và phải quay lại sửa từ đầu.
Điều này là một minh chứng cho thấy vai trò của kiểm thử phần mềm là cực kỳ quan
trọng trong hoạt động xây dựng phần mềm.
1.2 Một số lý thuyết về xây dựng ca kiểm thử
1.2.1 Các phương pháp kiểm thử
Kiểm thử phần mềm là công việc nhằm đảm bảo hoạt động của phần mềm ứng
dụng vừa được phát triển. Việc kiểm thử phần mềm được thực hiện tùy theo khả năng,
kinh nghiệm mà người thực hiện kiểm thử phần mềm để áp dụng phương pháp kiểm
thứ phù hợp. Có 3 phương pháp kiểm thử cơ bản đó là: Phương pháp kiểm thử hộp
trắng (White box testing), phương pháp kiểm thử hộp đen (Black box testing) và
phương pháp kiểm thử hộp xám (Grey box testing).
a) Phương pháp kiểm thử hộp trắng (White box testing)

7


Hình 1.2: Phương pháp kiểm thử hộp trắng

(Nguồn: Tài liệu kiểm thử phần mềm công ty TNHH Ninasoft)
Kiểm thử hộp trắng cịn có tên gọi khác đó là kiểm thử cấu trúc, nó được biết đến
như là là một kỹ thuật kiểm thử nhằm kiểm tra cấu trúc bên trong của phần mềm, giúp
kiểm tra được cấu trúc nội bộ hoặc là hoạt động bên trong của một chương trình phần
mềm như là các câu lệnh, các cấu trúc dữ liệu, các khối,.. và mối quan hệ giữa chúng.
Trong kiểm thử hộp trắng phần mềm được kiểm thử được coi như là một chiếc hộp
trắng (thực chất là hợp trong suốt), các thành phần, đơn vị bên trong chương trình sẽ
được nhìn thấy cùng với các mối tương tác giữa chúng.
Kiểm thử hộp trắng được hướng tới việc xem xét kỹ về chi tiết thủ tục. Với kiểm
thử hộp trắng thì cấu trúc mã hoặc là thuật tốn của chương trình sẽ được đưa vào để
xem xét. Việc kiểm tra được thực hiện thông qua việc quan sát kết quả thực thi các

đơn vị đó và mối quan hệ với các đơn vị định trước. Vì thế mà các trường hợp kiểm
thử sẽ được thiết kế dựa vào cấu trúc mã hoặc cách thức làm việc của chương trình.
Người kiểm thử sẽ truy cập vào mã nguồn của chương trình và có thể dễ dàng kiểm tra
được nó, lấy nó làm cơ sở để hỗ trợ cho việc kiểm thử.
Các kỹ thuật được sử dụng trong kiểm thử hộp trắng bao gồm:
- Kiểm thử API (API Testing): Kiểm thử ứng dụng bằng cách sử dụng các hàm
API public và private.
- Kiểm thử độ bao phủ của mã (Code Coverage): Là việc tạo ra các trường hợp
kiểm thử để mà đáp ứng hay là thỏa mãn một số điều kiện bao phủ code (có nghĩa là
người thiết kế các trường hợp kiểm thử sẽ tạo ra các trường hợp kiểm thử sao cho tất
cả các câu lệnh trong chương trình có thể được thực hiện ít nhất là 1 lần).
- Chèn lỗi (Fault injection methods): Kiểm thử bằng việc tiến hành cải tiến bao
phủ một trường hợp dựa vào việc đưa ra một số lỗi để test các đường dẫn code, từ đó
đánh giá hiệu quả của các chiến lược.
-

Phương pháp kiểm thử đột biến (Mutation testing methods)
Phương pháp kiểm thử tĩnh (Static Testing)
8


Từ những phân tích trên ta có thể thấy kiểm thử hộp trắng được hỗ trợ bởi một số
công cụ phần mềm giúp dị vết khi thực hiện chương trình, vì vậy mà người kiểm thứ
có thể biết được khi một lệnh được thực thi thì kết quả hoạt động có được giống như
mong muốn hay là khơng. Ưu điểm của cách kiểm thử này là dễ dàng tự động hóa và
khi mà phát hiện ra được lỗi thì đồng thời cũng có thể xác định được nguồn gốc của lỗi
là do đầu. Tuy nhiên thì phương pháp kiểm thử này yêu cầu người kiểm thử phải thành
thạo về mã nguồn, các lỗi trong thiếu sót và sự sai trong việc thiết kế. Vì vậy má kiểm
thử hộp trắng nên được thực hiện bởi chính những người tạo ra chương trình đó,
những người hiểu rõ về các dịng code họ viết ra thì việc phát hiện và sửa lỗi mới trở

nên dễ dàng.
b) Phương pháp kiểm thử hộp đen (Black box testing)
Hình 1.3: Phương pháp kiểm thử hộp đen

(Nguồn: Tài liệu kiểm thử phần mềm công ty TNHH Ninasoft)
Nếu như kiểm thử hộp trắng coi phần mềm như một chiếc hộp màu trắng và cái
người mà kiểm thử phải thành thạo về mã nguồn thì kiểm thử hộp đen cũng sẽ coi
phần mềm như là một chiếc hộp màu đen nhưng với phương pháp kiểm thứ hộp đen
thì người kiểm thử tiến hành kiểm thứ chức năng mà sẽ không cần có bất kỳ kiến thức
về cấu trúc và hành vi bên trong của phần mềm. Kiểm thử hộp đen sẽ kiểm tra các
chức năng của hệ thống dựa trên các đặc tả u cầu (Requirement document). Tóm lại
thì phương pháp kiểm thử hộp đen là phương pháp kiểm thử dựa trên giá trị đầu vào và
đầu ra của chương trình để kiểm thử mà khơng hề quan tâm tới phần mã nguồn (code)
bên trong. Đối với phần mềm máy tính thì kiểm thử hộp đen biểu hiện việc kiểm thử
được tiến hành trên giao diện của phần mềm. Mặc dù chúng được thiết kế để phát hiện
ra lỗi, kiểm thử hộp đen dùng để thể hiện rằng các chức năng phần mềm đã vận hành
thì dữ liệu đầu vào được chấp nhận đúng, dữ liệu đầu ra được tạo ra đúng, tính tồn
vẹn thơng tin được duy trì. Phương pháp kiểm thử hộp đen xem xét một khía cạnh của
hệ thống mà ít để ý đến cấu trúc logic bên trong của phần mềm. Các kỹ thuật được sử
dụng trong kiểm thử hộp đen bao gồm:
- Kỹ thuật phân vùng tương đương
9


-

Kỹ thuật phân tích giá trị biên

-


Kỹ thuật bảng quyết định

-

Kỹ thuật đoán lỗi

c) Phương pháp kiểm thứ hộp xám (Grey box testing)
Hình 1.4: Phương pháp kiểm thử hộp xám

(Nguồn: Tài liệu kiểm thử phần mềm công ty TNHH Ninasoft)
Đây chính là phương pháp kết hợp giữa kiểm thử hộp trắng và kiểm thử hộp đen.
Kiểm thử hộp xám cho phép người kiểm thử phần mềm có thể kiểm tra được hai mặt
của một phần mềm. Trong kiểm thử hộp xám cấu trúc bên trong phần mềm chỉ được
biết một phần, người kiếm thử có thể truy cập vào cấu trúc dữ liệu bên trong và thuật
tốn của chương trình với mục đích là để thiết kế testcase nhưng khi tiến hành kiểm
thử thì sẽ kiểm thử với vai trị là người dùng cuối hoặc là ở mức hộp đen.
Các kỹ thuật được sử dụng trong kiểm thử hộp xám bao gồm:
- Kỹ thuật kiểm tra ma trận: báo cáo trạng thái của dự án.
- Kỹ thuật kiểm tra hồi quy: tiến hành chạy lại các trường hợp thử nghiệm nếu
các thay đổi mới được thực hiện.
- Kỹ thuật kiểm tra mẫu: xác minh ứng dụng tốt cho thiết kế hoặc cấu trúc và
các mẫu của nó.
- Kỹ thuật kiểm tra mảng trực giao: được sử dụng làm tập hợp con của tất cả
các kết hợp có thể.
Kiểm thử hộp xám chính là sự kết hợp giữa kiểm thử hộp trắng và kiểm thử hộp
đen vì vậy ưu điểm của phương pháp kiểm thử này là chúng ta có thể thiết kế kịch bản
thử nghiệm phức tạp một cách thông minh, lượng testcase ít những vẫn có thể bao phủ
được tất cả các hoạt động của phần mềm. Tuy nhiên thì rất khó để có thể liên kết lỗi
khi thực hiện kiểm thứ hộp xám cho một ứng dụng có hệ thống phân tán.


10


1.2.2 Các giai đoạn của kiểm thử phần mềm
Hình 1.5: Các giai đoạn của kiểm thử phần mềm

(Nguồn: Tài liệu kiểm thử phần mềm công ty TNHH Ninasoft)
a) Kiểm thử đơn vị (Unit testing)
Kiểm thử đơn vị là một loại kiểm thử phần mềm trong đó tiến hành thực hiện
kiểm thử từng đơn vị hoặc từng thành phần riêng lẻ của phần mềm.
Mục đích của việc kiểm thử đơn vị là để xác định từng đơn vị (unit) của phần
mềm phải được phát triển đúng như đã được thiết kế. Kiểm thử đơn vị là mức test thấp
nhất trong bất kỳ phần mềm nào, vì vậy nó có thể ngăn chặn các defect tới các level
cao hơn. Kiểm thử đơn vị được thực hiện trước khi kiểm thử tích hợp được diễn ra.
Kiểm thử đơn vị thường là kiểm thử do lập trình viên thực hiện và phải được
thực hiện càng sớm càng tốt trong giai đoạn viết code và cũng được thực hiện xuyên
suốt quá trình phát triển phần mềm.
b) Kiểm thử tích hợp (Integration testing)
Kiểm thử tích hợp là một mức của kiểm thử phần mềm để kiểm tra một nhóm các
module nhỏ có liên quan đến nhau xem chúng có hoạt động đúng chức năng như đã
thiết kế hay khơng. Theo như ISTQB: "Kiểm thử tích hợp được thực hiện để phát hiện
ra các lỗi có liên quan đến giao diện hay trong tương tác giữa các thành phần hoặc một
hệ thống phức tạp".
Có 2 cấp độ kiểm thử tích hợp khác nhau có thể được thực hiện trên các đối
tượng kiểm thứ có kích thước khác nhau Kiểm thử tích hợp thành phần: tập trung vào
kiểm tra các tương tác và giao diện giữa các thành phần tích hợp.
11


Kiểm thử tích hợp thành phần được thực hiện sau khi kiểm tra thành phần. Trong

phát triển lặp và tăng dần, kiểm thử tích hợp hệ thống thường là 1 phần của q trình
tích hợp liên tục. Kiểm thử tích hợp thành phần kiểm tra sự tương tác giữa các thành
phần với điều kiện các thành phần đã pass ở phần kiểm thử thành phần trước đó.
Kiểm thử tích hợp hệ thống: tập trung vào kiểm tra sự tương tác giữa các hệ
thống con khác nhau với điều kiện các hệ thống này đã pass ở lần kiểm thử trước đó.
Kiểm thử tích hợp là mức thứ hai trong các mức kiểm thử phần mềm. Nó được
thực hiện sau kiểm thử đơn vị và trước kiểm thử hệ thống.
Kiểm thử tích hợp có thể được thực hiện bởi một người phát triển phần mềm
(developer) một nhóm kiểm thử chuyên nghiệp bao gồm cả kiểm thử phi chức năng.
Mục đích của kiểm thử kết hợp là kiểm tra sự tích hợp của một nhóm các thành
phần riêng lẻ có liên quan xem chúng có hoạt động đúng như mong đợi hay không.
c) Kiểm thử hệ thống (System testing)
Kiểm thử hệ thống cũng là một phần của kiểm thử phần mềm. Giai đoạn này sẽ
hoàn thiện và hợp nhất phần mềm để kiểm thử. Theo ISTQB định nghĩa thì quy trình
của kiểm thử tích hợp hệ thống để xác nhận xem hệ thống phần mềm có đáp ứng đúng
theo đặc tả yêu cầu hay không.
Kiểm thử hệ thống là mức kiểm thử thứ 3 trong các mức kiểm thử phần mềm. Nó
được thực hiện sau kiểm thử tích hợp và trước kiểm thử chấp nhận. Thông thường
kiểm thử hệ thống sẽ do các tester thực hiện kiểm thử.
Mục đích của mức kiểm thử này là đánh giá xem cái hoạt động của hệ thống có
đáp ứng đúng theo như tài liệu đặc tà hay chưa.
d) Kiểm thử chấp nhận (Acceptance testing)
Theo ISTQB định nghĩa: “kiểm thử chấp nhận có liên quan đến yêu cầu và quy
trình kinh doanh để xác định liệu hệ thống có đáp ứng tiêu chí chấp nhận hay không và
cho phép người dùng, khách hàng hoặc tổ chức được ủy quyền khi xác định có chấp
nhận hệ thống hay không".
Kiểm thử chấp nhận là mức thứ tư được thực hiện sau khi hoàn thành kiểm thử
hệ thống và trước khi đưa sản phẩm vào sử dụng chính thức. Kiểm thử chấp nhận được
chia làm 2 nhóm khác nhau đó là kiểm thử alpha và kiểm thử beta.
Kiểm thử Alpha là kiểm thử được thực hiện bởi một nhóm người thực hiện test

ngay tại nơi sản xuất phần mềm. Kiểm thử Alpha là hình thức kiểm thử chấp nhận nội
bộ trước khi phần mềm được tiến hành kiểm thử Beta.
Kiểm thứ Beta là kiểm thử được thực hiện bởi người dùng bên ngoài ( khách
hàng hoặc là người dùng cuối tại địa điểm của người dùng cuối). Kiểm thử Beta được
thực hiện tại địa điểm của khách hàng, người dùng thực hiện kiểm thử hay sử dụng
phần mềm bên ngồi – khơng phải nơi phát hành phần mềm.
12


Mục đích của mức kiểm thứ này là phải đảm bảo cho phần mềm đáp ứng được
đúng yêu cầu của khách hàng và sản phẩm nhận được là sự chấp nhận từ khách hàng.
1.2.3 Kiểm thử thủ công và kiểm thử tự động
a) Kiểm thử thủ công
Kiểm thử thủ công là kiểm thử phần mềm mà trong đó các kiểm thứ đều được
thực hiện hoàn toàn bằng tay từ việc viết test case cho đến thực hiện test, tất cả mọi
thao tác từ nhập điều kiện đầu vào cho đến thực hiện các điều kiện khác như click nút
và quan sát kết quả rồi so sánh. Trong kiểm thử thủ công, kiểm thử viên sẽ kiểm tra tất
các các luồng chức năng thiết yếu của ứng dụng và phần mềm. Người kiểm thử thực
hiện các test case và tạo các báo cáo kiểm thử mà khơng cần đến bất kì công cụ hỗ trợ
kiểm thử phần mềm nào. Kiểm thử thủ cơng có rất nhiều lợi ích, khi áp dụng sớm vào
vịng đời phát triển của phần mềm nó có khả năng phát hiện ra sớm những lỗi có trong
tài liệu đặc tả yêu cầu hay bản thiết kế trước khi tiến hành kiểm thử động để có thể
ngăn chặn lỗi kịp thời. Kiểm thử thủ cơng có thể phát hiện sớm những lỗi mà kiểm thử
tự động khó có thể phát hiện được.
Hiện nay phần lớn các công ty lớn, các tổ
chức phần mềm hay các nhóm làm phần mềm đều tiến hành kiểm thử thủ công là chủ
yếu. Đây là một phương pháp kiểm thứ cổ điển, giúp tìm và phát hiện ra lỗi trong các
hệ thống phần mềm, thường được tiến hành bởi một kiểm thử viên có kinh nghiệm và
thực hiện theo quy trình kiểm thử phần mềm.
b) Kiểm thử tự động

Kiểm thử tự động là kiểm thử phần mềm mà trong đó các bước thực hiện kiểm
thứ đều được xử lý một cách tự động, có rất ít hoặc hồn tồn khơng có sự can thiệp
của con người. Kiểm thử tự động là phương kiểm thử phần mềm được thực hiện bằng
một chương trình đặc biệt, giúp cho người kiểm thử phần mềm không phải thực hiện
đi thực hiện lại các bước kiểm thử nhàm chán.
Trong kiểm thử tự động thì kiểm thử viên sẽ là người viết mã nguồn (viết code)
hay còn gọi là viết các kịch bản kiểm thử (test scripts) để tự động hóa các thao tác
kiểm thử. Mục tiêu của kiểm thử tự động là hoàn thành kiểm thử trong thời gian ngắn
hơn.
Kiểm thử tự động cho phép kiểm thử viên kiểm thứ lặp lại và hồi quy mà
không cần đến sự can thiệp của người kiểm thử thủ công. Trong kiểm thử tự động tất
cả các hoạt động kiểm thứ đều được tiến hành một cách tự động nhưng tuy nhiên nó
vẫn địi hỏi phải thực hiện kiểm thử thủ công trước khi thực hiện kiểm thử tự động để
tạo ra các kịch bản kiểm thử ban đầu.
1.2.4 Quy trình kiểm thử phần mềm
Tùy vào từng tổ chức, hệ thống, ngữ cảnh hay là tùy vào các môi trường khác
nhau mà quy trình kiểm thử phần mềm có thể được diễn ra gồm các bước khác nhau.
Nhưng nhìn chung tất cả các hoạt động của chúng đều nhằm mục đích cuối cùng là
13


đảm bảo cho phần mềm hoạt động đúng theo yêu cầu của khách hàng, chạy mượt mà
và không xảy ra lỗi khi hoạt động.
Quy trình kiểm thử bao gồm 5 bước cơ bản được thể hiện như hình dưới đây:
Hình 1.6: Quy trình kiểm thử phần mềm

(Nguồn: Tài liệu kiểm thử phần mềm công ty TNHH Ninasoft)
Bước 1: Lập kế hoạch và kiểm sốt việc kiểm thử
Mục đích: Mơ tả được các giai đoạn kiểm thử, các loại công cụ, nguồn lực, tài
nguyên và thời gian diễn ra kiểm thử.

Cụ thể sẽ được chia thành 2 hoạt động chính:
Một là lập kế hoạch cho việc kiểm thử:
- Xác định được phạm vi kiểm thử, rủi ro cũng như mục đích của việc kiểm
thử.
-

Đưa ra và xác định các cách để tiếp cận việc kiểm thử.

- Xác định được phương pháp kiểm thử, tổng thời gian và nguồn lực yêu cầu
của dự án.
- Lên kế hoạch cho việc thiết kế các ca kiếm thử, thực thi kiểm thử cũng như
đánh giá kết quả kiểm thử.
- Đưa ra các mốc thời gian dự kiến cho kế hoạch kiểm thử.
Hai là kiểm soát việc kiểm thử:
- Theo dõi và ghi lại tiến độ cơng việc kiểm thử.
- Đo lường và phân tích kết quả của hoạt động kiểm thử.
- Tiền hành đưa ra các hoạt động khắc phục lỗi nếu cần thiết.
- Đưa ra quyết định.
Bước 2: Phân tích và thiết kế
Mục đích: Để thiết kế test case và các bước kiểm tra chi tiết cho mỗi phiên bản
phần mềm.
Ở bước này thì có các hoạt động cụ thể như sau:
14


-

Đọc hiểu và phân tích các tài liệu đặc tả, tài liệu thiết kế để nắm được các

yêu cần cần thiết trước khi tiến hành kiểm thử.

-

Xác định các điều kiện cần để kiểm thử

-

Viết test case.
Đánh giá tính khả thi của việc kiểm thử.

- Xác định yêu cầu về cơ sở hạ tầng, các công cụ kiểm thử và chuẩn bị môi
trường kiểm thử.
Bước 3: Thực hiện kiểm thử
Mục đích: Tiến hành thực hiện các bước kiểm tra dựa theo test case đã viết và
ghi nhận kết quả. Chia làm 2 hoạt động chính là thực hiện test và chạy test.
Đối với hoạt động thực hiện kiểm thử thì có nhiệm vụ cụ thể như sau:
- Chuẩn bị dữ liệu (data) cho việc kiểm thử.
- Tiến hành phân loại và thiết kế các trường hợp kiểm thử dựa vào độ ưu tiên.
- Tiến hành tự động hóa các trường hợp kiểm thử (nếu cần).
Đối với hoạt động chạy test thì lại có những nhiệm vụ như sau:
- Tiến hành thực hiện test dựa theo các bước đã được viết trong test case.
- Tiến hành chạy lại các case bị fail để kiểm tra xem chúng đã được sửa hay
chira.
-

So sánh kết quả thu được khi test với kết quả mong đợi.
Viết báo cáo lỗi cho những trường hợp có kết quả test khác với kết quả mong

đợi.
Bước 4: Đánh giá và báo cáo
Mục đích: Nhằm đánh giá được tồn bộ q trình kiểm thử.

Các tiêu chí đánh giá kết quả thực hiện test bao gồm:
- Số lượng test case được đánh Pass, số lượng Bug tồn tại.
- Ti lệ lỗi giảm xuống dưới mức nhất định.
- Khi đến hạn kết thúc (Deadline). Việc kiểm thử chỉ kết thúc khi:
• Kết quả thực thi testcase so với các tiêu chí kết thúc kiểm thử được định ra
trong lúc lập kế hoạch kiểm thử để từ đó có thể đánh giá xem có cần phải test thêm
hay điều chỉnh các tiêu chỉ kết thúc kiểm thử trong bản kế hoạch
• Viết báo cáo tóm tắt hoạt động kiểm thử cũng như kết quả kiểm thử cho các
bên liên quan.
Bước 5: Hoàn tất kiểm thử
Mục đích: Kết thúc hoạt động kiểm thử và phần mềm đã sẵn sàng để giao cho
khách hàng. Cụ thể các công việc cần làn như sau:

15


-

Kiểm tra lại cam kết với khách hàng và kiểm tra lại phần mềm đã làm ra xem

đã làm đầy đủ được các yêu cầu, các chức năng như đã cam kết với khách hàng hay
chira.
-

Kiểm tra lại các lỗi nghiêm trọng đã được fix tương ứng.
Đóng gói các tài liệu kiểm thử, kịch bản kiểm thử, môi trường test v.v để sử

dụng làm tài liệu cho các dự án sau này.
- Đánh giá kết quả kiểm thử và rút ra bài học kinh nghiệm cho những dự án
sau.

Ngoài ra thì chúng ta cũng có thể kết thúc việc kiểm thử vì những lý do như sau:
- Dự án bị hủy bỏ.
-

Khi mà dự án đã đạt được một mục tiêu nào đó.
Khi mà hoạt động bào tri hay cập nhật hệ thống được hoàn tất.

1.2.5 Các kỹ thuật kiểm thử phần mềm
Một trong những lý do quan trọng nhất trong kiểm thử phần mềm là thiết kế và
tạo ra các ca kiểm thử (Testcase) có hiệu quả. Ca kiểm thử tốt nhất là ca kiểm thử có
khả năng phát hiện ra lỗi, khiếm khuyết của phần mềm một cách nhiều nhất. Với
những ràng buộc về thời gian và chi phí đã cho thì vấn đề then chốt của kiểm thử là
phải trả lời cho câu hỏi: Tập con nào của tất cả các ca kiểm thử có thể có khả năng tìm
ra nhiều lỗi nhất? Thơng thường, phương pháp kiểm thứ kém hiệu quả nhất là kiểm tra
tất cả các giá trị đầu vào một cách ngẫu nhiên- quá trình kiểm thử một chương trình
diễn ra bằng việc chọn ngẫu nhiên một tập con các giá trị đầu vào có thể. Về mặt khả
năng tìm ra nhiều lỗi nhất, tập hợp các ca kiểm thử được chọn ngẫu nhiên có rất ít khả
năng là tập hợp tối ưu hay gần tối ưu. Sau đây là một số phương pháp để chọn ra được
một tập dữ liệu kiểm thử một cách thơng minh.
Trong kiểm thử phần mềm thì có 4 kỹ thuật kiểm thử thường được sử dụng mà
nếu biết vận dụng chúng một cách linh hoạt thì sẽ giúp giảm thiểu được rất nhiều số
lượng testcase thừa, giúp tiết kiệm được thời gian nhưng vẫn đảm bảo được chất lượng
của phần mềm đó là: kỹ thuật phân vùng tương đương, phân tích giá trị biên, bảng
quyết định và đốn lỗi.
a) Kỹ thuật phân vùng tương đương
Kỹ thuật phân vùng tương đương là một phương pháp kiểm thử hộp đen chia các
giá trị đầu vào (input) thành những nhóm có giá trị tương đương nhau. Nếu một giá trị
trong nhóm hoạt động đúng thì tất cả các giá trị trong nhóm đó cũng hoạt động đúng
và ngược lại. Thiết kế ca kiểm thử bằng kỹ thuật phân vùng tương đương dựa trên sự
đánh giá về các lớp tương đương với cùng một điều kiện đầu vào. Các lớp tương

đương bao gồm:

16


-

Lớp tương đương hợp lệ bao gồm tập hợp các giá trị kiểm thử thỏa mãn điều

kiện của hệ thống.
-

Lớp tương đương không hợp lệ bao gồm tập hợp các giá trị kiểm thử mô tả

trạng thái hoạt động khác của hệ thống, ví dụ như là thiếu, sai sót, không đúng theo
yêu cầu,...
Kỹ thuật phân vùng tương dương đảm bảo ca kiểm thử có 2 tính chất:
- Giảm thiểu được số lượng các ca kiểm thử không cần thiết để hoàn thành
mục tiêu kiến thức hợp lý.
- Bao phủ được một tập rất lớn các ca kiểm thử khác. Tức là chấp nhận sự có
mặt hay vắng mặt của lỗi qua tập giá trị đầu vào cụ thể
Thiết kế các ca kiểm thử bằng kỹ thuật phân vùng tương đương được tiến hành
bằng 2 bước:
- Bước 1: Tiến hành phân loại và xác định các lớp tương đương nhau.
- Bước 2: Xác định các ca kiểm thử.
Với một đầu vào hay điều kiện bên ngoài đã cho, việc xác định các lớp tương
đương hầu như là một quy trình mang tính kinh nghiệm. Mặc dù việc phân lớp tương
đương là rất tốt khi lựa chọn ngẫu nhiên các ca kiểm thử nhưng nó vẫn cịn nhiều thiếu
sót. Hai kỹ thuật tiếp theo là kỹ thuật phân tích giá trị biên và đồ thị nguyên nhân- kết
quả bao phủ được những thiếu sót của phương pháp này.

b) Kỹ thuật phân tích giá trị biên
Kinh nghiệm cho thấy các ca kiểm thử mà đi khảo sát tỉ mỉ các điều kiện biên sẽ
có tỷ lệ lỗi cao hơn các ca kiểm thử bình thường khác. Đây là phương pháp kiểm thứ
mà chúng ta sẽ tiến hành kiểm thử tất cả các giá trị ở vùng biên của dữ liệu vào và dữ
liệu ra. Ở kỹ thuật kiểm thử này chúng ta sẽ tập trung vào kiểm tra các giá trị biên mà
khơng phải đi kiểm tra tồn bộ dữ liệu. Thay vì chọn nhiều giá trị trong lớp tương
đương để làm đại diện như ở kỹ thuật phân vùng tương đương thì phân tích giá trị biên
u cầu chọn một hay một vài giá trị là các cạnh của các lớp tương đương để làm điều
kiện kiểm thử.
Kỹ thuật phân tích giá trị biên là kỹ thuật thiết kế ca kiểm thử bổ sung cho kỹ
thuật phân vùng tương đương nhưng nó lại khác với kỹ thuật phân vùng tương đương
ở 2 khía cạnh:
- Phân tích giá trị biên khơng lựa chọn phần từ bất kỳ nào trong một lớp tương
đương là điển hình mà nó u cầu là một hay nhiều phần từ sẽ được lựa chọn, trong đó
mỗi cạnh của lớp tương đương sẽ chính là một đối tượng cần kiểm tra.
- Ngoài việc chỉ tập trung chú ý vào các trạng thái đầu vào, các ca kiểm thử
cũng được tạo ra bằng việc xem xét kết quả (các lớp tương đương đầu ra).

17


Kỹ thuật kiểm thử phân vùng tương đương hoạt động dựa trên nguyên tắc: Nếu
một hệ thống mà hoạt động tốt với các giá trị biên thì nó cũng sẽ hoạt động tốt đối với
các giá trị nằm giữa hai giá trị biên. Phân tích giá trị biên yêu cầu óc sáng tạo và lượng
kiến thức chuyên môn nhất định và nó là một q trình mang tính kinh nghiệm cao.
Tuy nhiên kỹ thuật này cũng có một số quy tắc chung như sau:
- Nếu điều kiện đầu vào là một miền giới hạn bởi a và b thì cần thiết kế các ca
kiểm thử cho cả a và b và cả trên, dưới a và b.
- Nếu điều kiện đầu vào đặc tả một số giá trị thì thiết kế các ca kiểm thử cho cả
các số trên và dưới số nhỏ nhất và lớn nhất.

c) Kỹ thuật bảng quyết định
Một yếu điểm của kỹ thuật phân tích giá trị biên và kỹ thuật phân vùng tương
đương là chúng không khảo sát được sự kết hợp của các giá trị đầu vào. Việc kiểm tra
sự kết hợp của các giá trị đầu vào không phải là một nhiệm vụ đơn giản bởi vì nếu
phân lớp tương đương các giá trị đầu vào thì số lượng kết hợp sẽ là rất lớn. Nếu khơng
có cách lựa chọn có hệ thống một tập con các giá trị đầu vào thì khi chọn ra một tập
tùy hứng các điều kiện có thể dẫn tới việc chọn sai và việc kiểm thử sẽ trở nên không
hiệu quả. Kỹ thuật bảng quyết định hỗ trợ việc lựa chọn một cách có hệ thống các ca
kiểm thử có hiệu quả cao.
Trong các kỹ thuật để thiết kế các ca kiểm thử (testcase) thì đối với các trường dữ
liệu đơn như là các textbox thì chúng ta thường sử dụng các kỹ thuật như kỹ thuật
phân vùng tương đương, kỹ thuật phân tích giá trị biên. Tuy nhiên đối với kiểm thử
hành vi của hệ thống với nhiều trường dữ liệu thì kỹ thuật bảng quyết định sẽ giúp
chúng ta phân loại và định hình được kịch bản kiểm thử một cách chính xác và rõ ràng
hơn. Bàng quyết định là một kỹ thuật tốt để áp dụng cho những trường hợp mà cần có
nhiều sự kết hợp. Nó hỗ trợ việc lựa chọn testcase một cách có hệ thống và có thể đem
lại nhiều lợi ích trong việc nhận biết vấn đề tiềm ẩn và sự không rõ ràng trong đặc tả.
Các bước để tạo bảng quyết định:
- Nhập đầu vào theo hàng.
- Nhập tất cả các quy tắc trong cột.
- Điền vào bảng với sự kết hợp của các giá trị đầu vào.
- Trong hàng cuối cùng, tiến hành ghi chú đầu ra so với kết hợp đầu vào.
d) Kỹ thuật đoán lỗi
Đoán lỗi là một kỹ thuật kiểm thử phần mềm dựa trên kinh nghiệm đốn lỗi,
trong đó các nhà phân tích kiểm thử sử dụng kinh nghiệm của mình để phán đốn phần
có vấn đề hoặc có lỗi của ứng dụng kiểm thử. Họ phỏng đoán cả bằng trực giác và
kinh nghiệm về các loại lỗi thường hay gặp hoặc là dưa trên những trải nghiệm về
kiểm thử trước đó của các ứng dụng và sau đó tiến hành viết các ca kiểm thử để đưa ra
các lỗi đó. Vì vậy kỹ thuật đốn lỗi là kỹ thuật khơng hề tn theo một nguyên tắc cụ
thế nào, test case có thể được thiết kế tùy thuộc vào đặc trung hay luồng hoạt động của

phần mềm theo tài liệu mô tả chức năng.
18


×