Tải bản đầy đủ (.doc) (97 trang)

Kiểm thử hệ thống quản lý dịch vụ giá trị gia tăng của Công ty VNPTMedia Software

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.47 MB, 97 trang )

TRƯỜNG ĐẠI HỌC THƯƠNG MẠI
KHOA HTTT KINH TẾ VÀ TMĐT

BẢN THẢO NỘI DUNG KHÓA LUẬN
Đề tài:
KIỂM THỬ HỆ THỐNG QUẢN LÝ DỊCH VỤ GIA TĂNG RINGTUNES
CỦA CÔNG TY PHÁT TRIỂN PHẦN MỀM VNPT-MEDIA

Sinh viên thực hiện

: Vũ Thị Huế

Mã sinh viên

: 17D190013

Lớp

: K53S1

HÀ NỘI - 2020


MỤC LỤC
PHẦN MỞ ĐẦU.......................................................................................................1
1. Tầm quan trọng, ý nghĩa của đề tài nghiên cứu................................................1
2. Tổng quan tình hình nghiên cứu........................................................................2
2.1. Tình hình nghiên cứu trong nước....................................................................2
2.2. Tình hình nghiên cứu trên thế giới..................................................................2
3. Mục tiêu và nhiệm vụ nghiên cứu của khóa luận..............................................4
4. Đối tượng và phạm vi nghiên cứu.......................................................................4


5. Phương pháp nghiên cứu....................................................................................5
5.1. Phương pháp thu thập dữ liệu.........................................................................5
5.2. Phương pháp xử lý dữ liệu...............................................................................6
6. Kết cấu khoá luận................................................................................................6
CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ HOẠT ĐỘNG KIỂM THỬ HỆ THỐNG
QUẢN LÝ DỊCH VỤ GIA TĂNG RINGTUNES..................................................7
1.1. Khái niệm kiểm thử phần mềm.......................................................................7
1.1.1. Khái niệm về kiểm thử..................................................................................7
1.1.2. Các nội dung kiểm thử..................................................................................8
1.1.3. Các nguyên tắc cơ bản của kiểm thử..........................................................11
1.1.4. Khái niệm về hệ thống thông tin.................................................................11
1.1.5. Các thành phần của hệ thống thơng tin.....................................................12
1.2. Quy trình kiểm thử.........................................................................................13
1.3. Các phương pháp kiểm thử............................................................................15
1.3.1. Kiểm thử hộp trắng.....................................................................................15
1.3.2. Kiểm thử hộp đen........................................................................................16
1.3.3. Kiểm thử hộp xám.......................................................................................17
1.4. Các công cụ, kỹ thuật kiểm thử.....................................................................17
1.4.1. Các kỹ thuật.................................................................................................17
1.4.2. Các công cụ kiểm thử..................................................................................20
1.4.3. Đánh giá công cụ, kỹ thuật kiểm thử phù hợp với cơng ty.......................22
1.5. Vai trị của hoạt động kiểm thử trong việc phát triển hệ thống quản lý dịch
vụ của công ty.........................................................................................................23
i


CHƯƠNG 2: KẾT QUẢ PHÂN TÍCH, ĐÁNH GIÁ THỰC TRẠNG KIỂM
THỬ CỦA CƠNG TY VNPT-MEDIA SOFTWARE...........................................24
2.1. Tổng quan về cơng ty....................................................................................24
2.1.1. Giới thiệu chung về doanh nghiệp.............................................................24

2.1.2. Cơ cấu tổ chức doanh nghiệp.....................................................................24
2.1.3. Lĩnh vực hoạt động.....................................................................................26
2.1.4. Tình hình hoạt động kinh doanh của doanh năm 2015 đến năm 2019.. .27
2.1.5. Chiến lược phát triển của doanh nghiệp từ năm 2018 đến 2023.............28
2.1.6. Thực trạng cơ sở hạ tầng công nghệ thông tin tại công ty VNPT-Media
Software
2.2.

............................................................................................................. 29

Thực trạng kiểm thử hệ thống quản lý dịch vụ Ringtunes của công ty

VNPT-Media Software..........................................................................................31
2.2.1.Thực trạng hoạt động kiểm thử...................................................................32
2.2.2. Đánh giá thực trạng hoạt động kiểm thử hệ thống quản lý dịch vụ
Ringtunes................................................................................................................ 40
CHƯƠNG 3: PHÁT TRIỂN KIỂM THỬ HỆ THỐNG QUẢN LÝ DỊCH VỤ
GIÁ TRỊ GIA TĂNG RINGTUNES TẠI CÔNG TY VNPT-MEDIA
SOFTWARE........................................................................................................... 44
3.1.

Định hướng phát triển của công ty VNPT-Media Software từ năm 2020

đến 2023.................................................................................................................. 44
3.2.

Đặc tả yêu cầu phần mềm...........................................................................45

3.2.1. Các chức năng của hệ thống......................................................................46
3.2.2. Yêu cầu phi chức năng...............................................................................47

3.3. Phát triển quy trình kiểm thử hệ thống quản lý dịch vụ gia tăng Ringtunes
48
3.3.1. Quy trình và phương pháp kiểm thử.........................................................48
3.3.2. Kiểm thử giao diện và chức năng của hệ thống dịch vụ giá trị gia tăng
Ringtunes................................................................................................................ 52
3.3.3. Kết quả kiểm thử.........................................................................................83
3.4. Đề xuất và Kiến nghị......................................................................................84
TÀI LIỆU THAM KHẢO.....................................................................................87
PHỤ LỤC...............................................................................................................88
ii


iii


LỜI CẢM ƠN
Trong suốt quãng thời gian học tại trường Đại học Thương mại, em đã được đào
tạo một cách bài bản về chuyên ngành Quản lý hệ thống thông tin kinh tế, được
trang bị đầy đủ kiến thức thiết yếu về công việc cũng như công tác tổ chức hệ thống
và quản lý kinh tế của doanh nghiệp. Kỳ thực tập và làm khóa luận này đã tạo cho
em cơ hội được tiếp xúc trực tiếp với công việc của một người chuyên về công nghệ
thông tin, một công việc của một người Tester thực tế, từ đó hiểu sâu hơn và củng
cố thêm những kiến thức được học trên trường. Trước hết, em xin chân thành cảm
ơn Ban giám hiệu Trường Đại học Thương mại cùng tất cả các thầy cô giáo đã
giảng dạy em trong suốt những năm ngồi trên giảng đường đại học. Đặc biệt, em
xin gửi lời cảm ơn chân thành tới ThS. Cù Nguyên Gíap đã tận tình hướng dẫn em
trong suốt q trình hồn thiện khóa luận. Thầy đã chỉ dẫn em phương hướng và
cách thức thực hiện, góp ý, sửa chữa và bở sung những thiếu sót để em có thể làm
tốt khóa luận này. Bên cạnh đó, em cũng xin cảm ơn sâu sắc Ban lãnh đạo Công ty
VNPT-Media Software Hà Nội và các anh chị trong công ty, đặc biệt là anh chị

phịng kiểm thử đã nhiệt tình giúp đỡ, hướng dẫn em trong suốt thời gian em thực
tập tại công ty, giúp em thu thập được đầy đủ tài liệu cho khóa luận tốt nghiệp. Một
lần nữa, em xin cảm ơn tất cả thầy cô cùng các anh chị trong công ty đã tạo điều
kiện thuận lợi để em có thể hồn thành tốt q trình thực tập, làm khóa luận và
nghiên cứu thực tế ngành học của mình. Mặc dù đã cố gắng hồn thành khóa luận
nhưng do hạn chế về kiến thức lý luận và kinh nghiệm thực tế cũng như hạn chế về
thời gian nên không thể tránh khỏi những thiếu sót. Vì vậy, em rất mong nhận được
những đánh giá, nhận xét và góp ý từ các thầy cơ để khóa luận của em hồn thiện
hơn.
Em xin chân thành cảm ơn!

iv


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

Thứ
tự
1

Từ viết
tắt
FPT

Diễn giải
Financing

Nghĩa tiếng việt

Promoting Công ty cổ phần đầu tư và phát


Technology
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

CB
NV
CNTT
DN

GSM
IT
LAN
NV
PSU
RNP
SCSI
SQL
TNHH
VAS
PTDV
PTPM
URL
UI
API
TNHH
SĐT
MD
NXB

triển công nghệ FPT
Cán bộ
Nhân viên
Công nghệ thông tin
Doanh nghiệp
Global System for Mobile Hệ thống thơng tin di động
Communications
Information Technology
Local Area Network


tồn cầu
Cơng nghệ thơng tin
Mạng cục bộ
Nhân viên
Power Supply Unit
Nguồn máy tính
Required
Navigation Thơng số tính năng dẫn đường
Performance
Small Computer

yêu cầu
System Giao diện hệ thống máy tính

Interface
Structured Query Language

Uniform Resource Lacator
Giao diện người dùng
Giao diện lập trình ứng

nhỏ
Ngơn ngữ truy vấn cấu trúc
Trách nhiệm hữu hạn
Dịch vụ giá trị gia tăng
Phát triển dịch vụ
Phát triển phần mềm
Uniform Resource Lacator
Giao diện người dùng
Giao diện lập trình ứng dụng


dụng
Trách nhiệm hữu hạn
Số điện thoại
Modul
Nhà xuất bản

Trách nhiệm hữu hạn
Số điện thoại
Modul
Nhà xuất bản

Value Added Services

v


PHẦN MỞ ĐẦU
1. Tầm quan trọng, ý nghĩa của đề tài nghiên cứu
Hiện nay trên thế giới phần mềm được sử dụng một cách phổ biến rộng rãi và phần
mềm được triển khai rất nhiều trong các doanh nghiệp. Việc ứng dụng tin học hoá
trong các doanh nghiệp hiện nay rất quan trọng và vô cùng đa dạng. Các hoạt động
trong giai đoạn xây dựng phần mềm, việc kiểm thử được coi là một gia đoạn quan
trọng nhằm đảm bảo chất lượng phần mềm và đáp ứng được 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 cho khách hàng.
Hiện nay đã có thêm rất nhiều những cơng cụ kiểm thử và các kỹ thuật giúp 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. Hơn
nữa, những cơng cụ và kỹ thuật kiểm thử mới giúp cho doanh nghiệp có thể rủ ngắn

được thời gian kiểm thử, đem lại một hiệu suất làm việc hiệu quả, tích kiệm được
nguồn nhân lực và thời gian thực hiện.
Cơng ty VNPT-Media Software có chức năng nghiên cứu và phát triển tất cả các
platform dịch vụ mà VNPT-Media đang cung cấp hiện nay, giúp VNPT tiến tới tự chủ
hoàn toàn trong lĩnh vực phần mềm. Xa hơn nữa trong tương lai, Công ty VNPTMedia Software sẽ tiếp tục phát triển các nền tảng lõi cho các dịch vụ sắp tới mà
VNPT sẽ cung cấp và hướng tới có thể trở thành một dịch vụ thương mại, tiến ra thị
trường nước ngồi. Doanh thu của cơng ty VNPT-Media Software đạt khoảng 30 tỷ
hàng năm. VNPT-Media Software tuy nhiên, để đẩy mạnh được việc để tiếp cận đến
cuộc cách mạng công nghiệp lần thứ 4 của thế giới - kỷ nguyên mà các công nghệ như
IoT, Big Data, trí tuệ nhân tạo, thực tế ảo….trên website với mục tiêu doanh thu tăng
thêm 10% đến 15% một năm. Và việc chú trọng hơn vào hệ thống quản lý dịch vụ
cũng giúp cho việc quảng cáo thương hiệu Công ty được đẩy mạnh, việc marketing
được thực hiện tốt hơn. Quảng cáo hình ảnh của Cơng ty qua website chính là một
chiến lược vô cùng thông minh và nhiều hiệu quả. Chính vì thế nên nhiệm vụ trọng
tâm hiện nay của công ty là triển khai việc nâng cấp trang web dịch vụ. Hệ thống quản
lý dịch vụ giá trị gia tăng Ringtunes của công ty đã được đầu tư và xây dựng từ năm
2018 và năm 2019 đến nay đang được nâng cấp thêm để phục vụ cho việc cung cấp
dịch vụ qua website. Và một trong những nhiệm vụ quan trọng hiện tại là kiểm thử
1


cho hệ thống quản lý d của công ty, nhằm hạn chế tối đa việc lỗi có thể xảy ra, đáp
ứng được các nhu cầu người dùng một cách đầy đủ và chính xác nhất. Chính vì thế tơi
lựa chọn đề tài Kiểm thử hệ thống quản lý dịch vụ giá trị gia tăng của Công ty VNPTMedia Software
2. Tổng quan tình hình nghiên cứu
2.1. Tình hình nghiên cứu trong nước
- Luận văn Thạc Sỹ Nghiên cứu kiểm thử bảo mật phần mềm của tác giả Đinh Thị
Thiên Anh: Trong luận án thạc sĩ này, tác giả nghiên cứu các vấn đề chung về các lỗi
bảo mật, tiếp đến là các lỗi bảo mật liên quan đến các ứng dụng phần mềm. Trên cơ sở
đó, xây dựng một quy trình kiểm thử bảo mật nhằm mục đích ứng dụng kiểm tra các

lỗi bảo mật trên các ứng dụng phần mềm.
- Luận văn Thạc Sỹ Nghiên cứu kiểm thử hiệu năng của ứng dụng phần mềm của
tác giả Hồng Anh Sơn: Tại đây, tác giả tập trung nghiên cứu, tìm hiểu, đánh giá các
nguyên lý, phương pháp tiếp cận kiểm thử hiệu năng ứng dụng phần mềm (Software
Performance Testing). Tìm hiểu, đánh giá quy trình kiểm thử hiệu năng phần mềm để
xác định tốc độ, khả năng phân tải và mức độ tin tưởng của ứng dụng phần mềm trong
mơi trường nhiều người dùng, cùng nhiều hoạt động khác nhau.
- Bản dịch Tiếng Việt bộ sách “Kiểm thử các ứng dụng phần mềm” của tập đoàn
LogiGear Việt Nam: Nội dung của bộ sách cung cấp kiến thức và kỹ thuật ứng dụng
về công nghệ web từ các giải pháp thương mại điện tử, điện thoại thông minh và các
thiết bị di động.
Bộ sách này gồm 2 tập. Tập 1 dành cho những ai bắt đầu làm quen với kiểm thử
phần mềm, cịn tập 2 sẽ tập trung vào các cơng cụ kiểm thử cụ thể.
Tuy nhiên vì sách được dịch từ một ngôn ngữ khác sang Tiếng Việt nên xét về
ngôn ngữ chun ngành đơi chỗ chưa thực sự được chính xác và đúng với ý đồ của
bản gốc.
2.2. Tình hình nghiên cứu trên thế giới
1. Sách Selenium 1.0 Testing Tools: Beginners Guide:
Cuốn sách Selenium 1.0 xuất bản lần đầu tháng 11 năm 2010 của tác giả David
Burns, một Nhà phát triển cao cấp trong thử nghiệm làm việc với Selenium trong
nhiều năm. Cuốn sách gồm 11 chương trình bày về cách để chúng ta có thể kiểm tra
các ứng dụng web của bạn với nhiều trình duyệt bằng khung Selenium để đảm bảo
2


chất lượng của các ứng dụng web. Tuy nhiên cuốn sách chỉ phù hợp với những người
đã có nền tảng với Python, Java và C#, những người mới bắt đầu không phù hợp với
cuốn sách này.
2. Sách Bug Advocacy:
Bug Advocacy của tác giả Cem Kaner và Rebecca Fiedler với 9 chương hướng dẫn

bạn đọc xác định được những lỗi thường gặp và giải pháp phần mềm thơng thường
trong q trình kiểm thử, báo cáo lỗi và quan trọng là cách xử lý lỗi không phải lặp đi
lặp lại. Đây chắc hẳn là cuốn sách cho người học Tester cơ bản hoặc đang thực hành
Testing. Sách hỗ trợ sinh viên và những người tự học muốn tìm hiểu ngữ cảnh về
kiểm thử phần mềm hộp đen. Cuốn sách cung cấp kiến thức và kỹ thuật ứng dụng về
công nghệ phần mềm từ các giải pháp thương mại điện tử Ý tưởng chính trong cuốn
sách này bao gồm:
+ Xác định các khái niệm chính (như lỗi phần mềm, chất lượng và quy trình xử lý
lỗi)
+ Phạm vi báo cáo lỗi (báo cáo lỗi là gì và bao gồm thơng tin gì)
+ Cách báo cáo lỗi là văn bản thuyết phục
+ Điều tra lỗi để phát hiện ra các lỗi nghiêm trọng hơn và các điều kiện sao chép
đơn giản hơn
Tuy nhiên Cuốn sách này chỉ phù hợp với những bạn sinh viên bắt đầu làm quen
với kiểm thử, đối với những người muốn nâng cao trình độ và kiến thức chuyên ngành
như những người đã đi làm thì cuốn sách này sẽ không phù hợp để cung cấp kiến thức
cho họ.
3. Sách Testing Applications on the software:
Cuốn sách này được viết bởi Bob Johnson và Michael Hackett cung cấp kiến thức
và kỹ thuật ứng dụng về công nghệ phần mềm từ các giải pháp thương mại điện tử.
Gồm 13 chương nghiêng về thực nghiệm, trình bày các kiểu kiểm thử có thể ứng dụng
trong kiểm thử các ứng dụng phần mềm cũng như các công cụ kiểm thử và cách ứng
dụng chúng trong quá trình kiểm thử phần mềm.
Cuốn sách này trình bày một cách có hệ thống từ lý thuyết kiểm thử tởng qt đến
những kỹ thuật mang tính thực nghiệm để kiểm thử các ứng dụng chạy trên nền phần
mềm, từ các ứng dụng thương mại điện tử, các ứng dụng chạy trên thiết bị cầm tay
cho đến các cổng thông tin điện tử và các ứng dụng phần mềm khác. Cuốn sách cũng
3



giới thiệu về kiến thức các hệ thống phần mềm. Mơ hình máy chủ và các cơng nghệ
chun sâu như giao thức mạng, kiến trúc thành phần. Ngoài ra cuốn sách cũng trình
bày hầu hết các loại kiểm thử, từ kiểm thử giao diện người dùng, kiểm thử chức năng,
kiểm thử hiệu năng, kiểm thử tải và kiểm thử bảo mật.
3. Mục tiêu và nhiệm vụ nghiên cứu của khóa luận
Mục tiêu chung: Kiểm thử Hệ thống quản lý dịch vụ giá trị gia tăng Ringtunes
Công ty VNPT-Media Software.
Mục tiêu chi tiết:
+ Tìm hiểu các kiến thức lý luận cơ bản về kiểm thử phần mềm, về bug trong
quá trình kiểm thử.
+ Thu thập dữ liệu về thực trạng quá tình kiểm thử trong các dự án gần đây, đặc
biệt là dự án về hệ thống quản lý dịch vụ Ringtunes
+ Từ dữ liệu thu được để đánh giá thực trạng về việc áp dụng quy trình kiểm
thử phần mềm.
+ Ứng dụng automatic test vào quy trình kiểm thử hệ thống dịch vụ tại cơng ty
VNPT-Media Software
Nhiệm vụ của khố luận:
+ Nghiên cứu, phát triển, tởng hợp các cơng trình nghiên cứu về hoạt động
kiểm thử phần mềm trong và ngoài nước
+ Cơ sở lý luận về hoạt động kiểm thử phần mềm
+ Phân tích và đánh giá thực trạng quản lý phần mềm và xây dựng phần mềm
tại Công ty VNPT-Media Software.
+ Phát triển kiểm thử phần mềm của Công ty VNPT-Media Software.
4. Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu:
+ Hệ thống thông tin của hệ thống quản lý dịch vụ gia tăng Ringtunes
+ Quy trình kiểm thử hệ thống quản lý dịch vụ tại công ty
- Phạm vi nghiên cứu: Phạm vi nghiên cứu đề tài được thể hiển qua không gian và
thời gian.
+ Về không gian: Công ty VNPT-Media Software

+ Về thời gian: Trong quá trình làm việc tại VNPT-Media Software từ
20/7/2020 đến 30/11/2020.
4


+ Về nội dung: Nghiên cứu các cơ sở lý luận về hệ thống thông tin và kiểm thử
phần mềm; Phân tích, đánh giá về việc sử dụng cơng cụ Selenium IDE trong quá trình
kiểm thử hệ thống quản lý dịch vụ Ringtunes tại công ty; Đề ra giải pháp cải thiện quá
trình kiểm thử phần mềm.
5. Phương pháp nghiên cứu
5.1. Phương pháp thu thập dữ liệu
Phương pháp thu thập dữ liệu qua phiếu khảo sát: Được thực hiện thông qua việc phát
15 phiếu điều tra
- Cơ cấu CB, NV được phát phiếu điều tra:
+ Trưởng phịng tởng hợp.
+ Trưởng phịng kế tốn.
+ 2 NV phịng Giai pháp phần mềm
+ 6 NV phịng kiểm thử.
+ 2 NV phịng Kế tốn.
+ 2 NV phòng Phần mềm dịch vụ giá trị gia tăng .
+ 1 NV phịng Trung tâm An Ninh Thơng tin
Nhìn chung, kết quả thu được đem lại một cái nhìn tởng qt về doanh nghiệp theo
nhiều khía cạnh và tình hình hệ thống thơng tin của doanh nghiệp tùy theo mức độ
hiểu biết của cán bộ nhân viên trong các phòng ban trực tiếp làm việc.
Phương pháp qua phỏng vấn: Bên cạnh việc phát phiếu điều tra, Để có những phân
tích sâu hơn, tơi đã phỏng vấn trực tiếp Trưởng phòng quản trị hệ thống quản lý dịch
vụ của cơng ty để có được những thơng tin thực tết nhất và tơi đã thực hiện phỏng vấn
trực tiếp Ơng Đinh Thế Tun – Trưởng phịng Kiểm thử cơng ty phát triểnphần mềm
VNPT - Media (VNPT - Media Software) để làm rõ được những hạn chế mà cơng ty
đang có. Cùng với đó là 15 câu hỏi phỏng vấn trực tiếp nhân viên kiểm thử.

Phương pháp quan sát: Quan sát quy trình kiểm thử phần mềm tại cơng ty VNPTMedia Software, tơi có được cái nhìn trực quan về nhiệm vụ mà một Tester cần phải
làm để có thể đáp ứng được cơng việc được giao, để có thể tích lũy cho mỗi cá nhân
ngày nhiều kinh nghiệm hơn trong công việc cũng như trong cuộc sống.
Phương pháp nghiên cứu tài liệu: Ngồi hai phương pháp trên, chúng tơi đã sử
dụng thêm phương pháp phát triển hệ thống thông tin và tập trung vào giai đoạn kiểm
thử nhằm kiểm tra và khẳng định hệ thống quản lý dịch vụ có thể được triển khai tại
doanh nghiệp nhằm mục đích đảm bảo hệ thống quản lý dịch vụ được hoạt động tốt
5


đem đến một trải nghiệm hoàn hảo cho khách hàng tham gia sử dụng dịch vụ tại
Website của Công ty VNPT-Media Software.
5.2. Phương pháp xử lý dữ liệu
Sau khi khảo sát, kết quả được thu về công cụ Excel để chúng tơi có thể phân tích,
thống kê, tởng hợp và đánh giá thực trạng hoạt động quản lý dịch vụ tại Công ty cũng
như thực trạng hoạt động quảng cáo và đẩy mạnh giao dịch dịch vụ của công ty.
Phương pháp chọn lọc, phân tích: Sau khi thu thập được những thông tin cần thiết,
tôi tiến hành chọn lọc những thơng tin cần thiết cho nghiên cứu. Sau đó sẽ tiến hành
tởng hợp, phân tích những số liệu để tởng kết vào bảng, sơ đồ, bảng biểu và hình vẽ
giúp cho việc đánh giá được thuận lợi và chuyên nghiệp hơn.
6. Kết cấu khoá luận
Chương 1: Cơ sở lý luận về hoạt động kiểm thử hệ thống quản lý dịch vụ gia tăng
Ringtunes
Chương 2: Kết quả phân tích đánh giá thực trạng kiểm thử hệ thống dịch vụ giá trị
gia tăng Ringtunes.
Chương 3: Phát triển kiểm thử hệ thống dịch vụ gia tăng Ringtunes của Công ty
VNPT-Media Software.

6



CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ HOẠT ĐỘNG KIỂM THỬ HỆ
THỐNG QUẢN LÝ DỊCH VỤ GIA TĂNG RINGTUNES
1.1. Khái niệm kiểm thử phần mềm
1.1.1. Khái niệm về kiểm thử
Kiểm thử phần mềm có nhiều định nghĩa khác nhau đề xuất bởi nhiều tổ chức
hay cá nhân khác nhau. Phần này của báo cáo sẽ trình bày một số định nghĩa nổi bật,
cụ thể như sau:
- Định nghĩa của Myer (1979): "Kiểm thử là quá trình thực thi một chương trình
với mục đích tìm ra lỗi". Theo như định nghĩa này, quá trình kiểm thử bao gồm tất cả
các hoạt động từ kiểm tra mã nguồn được thực hiện bởi trưởng nhóm phát triển, đến
việc chạy thử chương trình được tiến hành bởi các đồng nghiệp khác. Tất cả các hoạt
động trên đều được coi là các hoạt động kiểm thử.
(Nguồn: Glen Myer(1979))
- Hai định nghĩa của IEEE (1990):
+ Định nghĩa 1: Kiểm thử phần mềm là quá trình vận hành một hệ thống hoặc một
thành phần của hệ thống với các điều kiện xác định, nhận xét và ghi lại các kết quả tạo
ra đánh giá về những khía cạnh của hệ thống hay thành phần hệ thống.
+ Định nghĩa 2: Kiểm thử phần mềm là quá trình phân tích các yếu tố phần mềm để
phát hiện những khác biệt giữa chương trình với các điều kiện yêu cầu và đánh giá các
đặc điểm của các yếu tố phần mềm.
Theo như định nghĩa 2 việc chạy chương trình như một phần của tiến trình kiểm
thử phần mềm là khơng cần thiết.
- Định nghĩa của Daniel Galin: Kiểm thử phần mềm là một q trình được tiến hành
bởi một nhóm chuyên viên kiểm thử, trong đó một đơn vị phần mềm, một nhóm các
đơn vị được tích hợp, hoặc cả gói phần mềm được kiểm tra bằng cách chạy các chương
trình trên máy tính. Tất cả các bước kiểm tra liên được tiến hành theo các thủ tục kiểm
thử và các trường hợp kiểm thử đã được thông qua.
Định nghĩa của Daniel Galin là một định nghĩa khá hoàn thiện về kiểm thử phần
mềm.

Một số thuật ngữ có trong định nghĩa của Daniel Galin:
7


+ Nhóm chuyên viên kiểm thử: Một nhóm độc lập hoặc nhóm tư vấn từ bên ngồi,
những người chun kiểm thử được chỉ định để thực hiện các nhiệm vụ chủ yếu là để
phát hiện và loại bỏ sai lệch và để đảm bảo kiểm thử hiệu quả bởi các chuyên gia kiểm
thử được đào tạo.
+ Các thủ tục kiểm thử đã được thơng qua: Q trình kiểm thử được thực hiện theo
kế hoạch kiểm thử và các thủ tục kiểm thử được thông qua phù hợp với các thủ tục
đảm bảo chất lượng phần mềm được thông qua bởi tổ chức phát triển phần mềm.
+ Các trường hợp kiểm thử được thông qua: Các trường hợp kiểm thử được định
nghĩa đầy đủ trong kế hoạch kiểm thử. Khơng có sự thiếu sót hoặc bở sung nào được
mong đợi xảy ra trong suốt quá trình thực thi kiểm thử.
- Định nghĩa tổng quan lại như sau: 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.
1.1.2. Các nội dung kiểm thử
- Phương pháp kiểm thử: Trong kiểm thử phần mềm có hai phương pháp kiểm thử
chính đó là kiểm thử tĩnh và kiểm thử động.
+ Kiểm thử tĩnh: Kiểm thử tĩnh hay còn gọi là Kiểm thử thủ công là kỹ thuật
kiểm tra các tài kiệu và tự động phân tích cú pháp của code hoặc các tài liệu đặc tả mà
khơng cần chạy chương trình. Kiểm thử tĩnh cung cấp rất nhiều lợi ích. Khi áp dụng
sớm vào các vòng đời phát triển phần mềm, kiểm thử tĩnh có khả năng xác định 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 thực hiện kiểm thử
động để có kể ngăn chặn kịp thời. Kiểm thử tĩnh có thể phát hiện sớm được các lỗi
mà khó có thể phát hiện được khi kiểm thử động. Kiểm thử tĩnh còn giúp việc giảm
thời gian và chi phí trong khi thực hiện kiểm thử.
+ Kiểm thử động: Là một quá trình xử lý tự động các bước thực hiện một test

case. Kiểm thử tự động được thực hiện bởi phần mềm kiểm thử tự động hay còn gọi là
Automation Testing Tool.

8


Bảng 1.1 Bảng so sánh sự khác biệt của hai phương pháp kiểm thử tĩnh (kiểm thử thủ công) và
kiểm thử động.

Tiêu chí so
Kiểm thử động
sánh
Thời gian xử Kiểm thử tự động nhanh hơn

đáng kể so với phương pháp thủ
công
Đầu tư
Đầu tư ban đầu trong kiểm thử tự
động cao. Mặc dù ROI tốt hơn và
lâu dài
Và việc đầu tư một khoản kinh
phí cho các cơng cụ kiểm thử
động và các kỹ sư kiểm thử tự
động hoá là cần thiết
Độ tin cậy
Kiểm thử tự động là một phương
pháp đáng tin cậy vì được thực
hiện bởi những cơng cụ nên
chính xác và không nhàm chán
Giao diện

đối với
người dùng

Kiểm thử tự động liên quan đến
hành động của con người, vì vậy
khơng phù hợp với người dùng
và trải nghiệm của khách hàng

Deadlines

Kiểm thử thủ công
Các trường hợp kiểm thử
được thực hiện bởi tester trên
phần mềm
Đầu tư ban đầu trong kiểm
thử thủ công là tương đối
thấp. ROI thấp hơn nhưng chỉ
cần đầu tư cho nguồn nhân
lực

Kiểm thử thủ cơng có thể dễ
bị lỗi và nhàm chán với việc
lặp đi lặp lại nhiều lần những
công việc giống nhau.
Phương pháp kiểm thử thủ
công cho phép người dùng
quan sát, có thể hữu ích để
cung cấp hệ thống thân thiện
với người dùng.
Kiểm thử thủ cơng có nguy

cơ trễ deadline cao
Các trường hợp kiểm thử thủ
công không cung cấp giá trị
đào tạo.

Các kiểm thử tự động khơng có
rủi ro trễ deadlines
Tài liệu
Kiểm thử tự động như một tài
liệu để đào tạo về những trường
hợp kiểm thử đơn vị tự động.
một lập trình viên mới có thể
tham khảo và nhanh chóng hiểu
yêu cầu
Khi nào nên
Kiểm thử tự động phù hợp
Kiểm thử thủ công phù
sử dụng
cho kiểm thử hồi quy, kiểm thử hợp cho thăm dò, khả năng sử
hiệu suất hoặc các trường hợp dụng và kiểm thử Adhoc.
kiểm thử chức năng có khả năng
lặp lại cao.
(Nguồn tác giả tổng hợp)
- Các hình thức kiểm thử:
9


+ Kiểm thử đơn vị (Unit Test): là hoạt động kiểm thử nhỏ nhất. Kiểm thử thực
hiện trên các hàm hay thành phần riêng lẻ. Đây là 1 công việc mà để thực hiện được
nó thì người kiểm thử sẽ phải hiểu biết về code, về chương trình, các hàm...

+ Kiểm thử tích hợp (Intergration test): Kiểm thử tích hợp bao gồm 2 mục tiêu
chính là phát hiện lỗi giao tiếp xảy ra giữa các Unit Tích hợp các Unit đơn lẻ thành
các hệ thống nhỏ và cuối cùng là 1 hệ thống hoàn chỉnh để chuẩn bị cho bước kiểm
thử hệ thống.
+ Kiểm thử hệ thống (System test): Kiểm thử 1 hệ thống đã được tích hợp hồn
chỉnh để xác minh rằng nó đáp ứng được yêu cầu. Kiểm thử hệ thống thuộc loại kiểm
thử hộp đen. Kiểm thử hệ thống tập trung nhiều hơn vào các chức năng của hệ thống.
Kiểm tra cả chức năng và giao diện, các hành vi của hệ thống 1 cách hoàn chỉnh, đáp
ứng với yêu cầu.
+ Kiểm thử chấp nhận (Acceptance test): Trong kiểu kiểm thử này, phần mềm sẽ
được thực hiện kiểm tra từ người dùng để tìm ra nếu phần mềm phù hợp với sự mong
đợi của người dùng và thực hiện đúng như mong đợi. Trong giai đoạn test này, tester
có thể cũng thực hiện hoặc khách hàng có các tester của riêng họ để thực hiện. Có 2
loại kiểm thử chấp nhận đó là kiểm thử Alpha và kiểm thử Beta.
Kiểm thử Alpha: là loại kiểm thử nội bộ. Tức là phần mềm sẽ được 1 đội kiểm thử
độc lập hoặc do khách hàng thực hiện tại nơi sản xuất phần mềm.
Kiểm thử Beta: là loại kiểm thử mà khách hàng thực hiện kiểm thử ở chính mơi
trường của họ. Loại kiểm thử này được thực hiện sau kiểm thử Alpha.
+ Kiểm thử chức năng: là một loại kiểm thử hộp đen và các trường hợp kiểm thử
của nó được dựa trên đặc tả của ứng dụng phần mềm/thành phần đang test. Các chức
năng được kiểm thử bằng cách nhập vào các giá trị nhập và kiểm tra kết quả đầu ra, và
ít quan tâm đến cấu trúc bên trong của ứng dụng. Có thể hiểu 1 cách đơn giản, kiểm
thử chức năng là xác nhận tất cả các chức năng của hệ thống. Nó đánh giá ứng dụng
và xác nhận liệu ứng dụng có đang hoạt động theo yêu cầu hay không.
+ Kiểm thử phi chức năng: Loại kiểm thử này tập trung vào các khía cạnh phi
chức năng của ứng dụng đó là kiểm thử chịu tải, kiểm thử bảo mật, kiểm tra tính
tương thích trên từng môi trường…
1.1.3. Các nguyên tắc cơ bản của kiểm thử
Có bảy 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à:
10



- 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 hồn tồ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 do.
- 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.
- 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
hồ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.1.4. Khái niệm về hệ thống thông tin
Hệ thống thông tin là tập hợp phần cứng, phần mềm, cơ sở dữ liệu, mạng viễn
thông, con người và các quy trình thủ tục khác nhằm thu thập, xử lý, lưu trữ và truyền

phát thông tin trong một tổ chức, doanh nghiệp.
(Theo giáo trình Hệ thống thơng tin quản lý- Trường Đại học Thương Mại)
Hệ thống thông tin hỗ trợ việc ra quyết định, phân tích tình hình, lập kế hoạch,
điều phối và kiểm soát các hoạt động trong một tổ chức, doanh nghiệp
11


1.1.5. Các thành phần của hệ thống thơng tin

Hình 1.5 Các thành phần của hệ thống thông tin
(Nguồn: Ảnh trong slide bài giảng HTTT)
HTTT gồm 5 thành phần chính:
+ Nguồn lực phần cứng: Gồm các thiết bị vật lý được sử dụng trong q trình xử lý
thơng tin như nhập dữ liệu vào, xử lý và truyền phát thông tin ra.
+ Nguồn lực phần mềm: Đó là các chương trình được cài đặt trong hệ thống, thực
hiện công việc quản lý hoặc các quy trình xử lý trong hệ thống thơng tin. Dùng để
kiểm sốt và điều phối phần cứng, thực hiện xử lý và cung cấp thông tin theo yêu cầu
của người sử dụng.
+ Nguồn lực dữ liệu: Cơ sở dữ liệu là tập hợp dữ liệu có tở chức và có liên quan
đến nhau được lưu trữ trên các thiết bị lưu trữ thứ cấp để phục vụ yêu cầu khai thác
thông tin đồng thời của nhiều người sử dụng hay nhiều chương trình ứng dụng với
nhiều mục đích tại nhiều thời điểm khác nhau.
+ Nguồn lực mạng: Gồm tập hợp máy tính và các thiết bị vật lý được kết nối với
nhau nhờ đường truyền vật lý theo một kiến trúc nhất định dựa trên các giao thức
nhằm chia sẻ các tài nguyên trong mạng của tổ chức, doanh nghiệp.
+ Nguồn lực con người: Gồm toàn bộ những đối tượng tham gia quản lý, xây
dựng, mô tả, lập trình, sử dụng, nâng cấp và bảo trì hệ thống. Được coi là thành phần
quan trọng nhất, đóng vai trị chủ động để tích hợp các nguồn lực khác trong hệ thống.
1.2. Quy trình kiểm thử
Tùy vào từng tở chức, hệ thống, ngữ cảnh, mức độ rủi ro của phần mềm mà quy

trình kiểm thử phần mềm có thể gồm nhiều bước khác nhau. Nhưng nhìn chung mọi
quy trình kiểm thử đều có những bước cơ bản như quy trình dưới đây:
12


Lập kế hoạch
kiểm thử
Phân tích và
thiết kế
Thực hiện kiểm
thử
Đánh giá và
báo cáo kết quả
Đóng hoạt động
kiểm thử

Sơ đồ 1.1 Quy trình kiểm thử phần mềm
Theo đó một quy trình kiểm thử phần mềm cơ bản gồm bước cơ bản:
Bước 1: Lập kế hoạch kiểm thử
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ử.
- Các mốc thời gian dự kiến cho kế hoạch kiểm thử.
Bước 2: Phân tích và thiết kế
Mục đích: Nhằm chỉ định các test case và các bước kiểm tra chi tiết cho mỗi phiên
PM.

Hoạt động phân tích và thiết kế kiểm thử có các nhiệm vụ chủ yếu sau đây:
- Rà soát các yêu cầu cần thiết trước khi tiến hành kiểm thử như tài liệu đặc tả, tài
liệu thiết kế, tài liệu giao diện, v.v
- Xác định các điều kiện kiểm thử
- Thiết kế test case
13


- Đánh giá tính khả thi trong việc kiểm thử của yêu cầu cũng như của hệ thống.
- Chuẩn bị môi trường test cũng như xác định các yêu cầu về cơ sở hạ tầng và các
công cụ kiểm thử tương ứng.
Bước 3: Thực hiện kiểm thử
Mục đích: Thực hiện các bước kiểm tra đã thiết kế và ghi nhận kết quả. Chia thành
2 hoạt động chính là: thực hiện test và chạy test
Thứ nhất: Việc thực hiện test có nhiệm vụ chủ yếu sau đây:
- Chuẩn bị test data
- Thiết kế và phân loại các trường hợp kiểm thử dựa theo độ ưu tiên của từng
trường hợp kiểm thử
- Tự động hóa cho các trường hợp kiểm thử nếu thấy cần thiết
Thứ hai: Hoạt động chạy test có nhiệm vụ chủ yếu sau đây:
- Chạy các test case theo các bước đã định ra trước đó
- Chạy lại các case bị failed trước đó để xác nhận là case đó đã được sửa
- So sách kết quả ghi nhận được khi thực thi với kết quả mong đợi
- Đánh giá kết quả kiểm thử (Passed/Failed) cho các trường hợp kiểm thử
- Viết báo cáo lỗi cho những trường hợp kết quả ghi nhận được và kết quả mong
đợi không giống nhau
Bước 4: Đánh giá và báo cáo kết quả kiểm thử
Mục đích: Đánh giá tồn bộ q 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 tốn số liệu liên quan, đến q
trình kiểm tra.

Các tiêu chí đánh giá kết quả thực thi này bao gồm:
- Số lượng test case tối đa được thực thi Passed
- Tỷ lệ lỗi giảm xuống dưới mức nhất định
- Khi đến deadline
Việc kiểm thử chỉ kết thúc khi:
- Đối chiếu kết quả thực thi test case 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ừ đó, đánh giá xem liệu 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

14


- 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: Đóng hoạt động 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 được giao cho
khách hàng.
- Kiểm tra lại đã giao đầy đủ cho khách hàng những phần đã cam kết từ đầu
- 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 để dùng
cho những mục đích /dự án sau này
- Đánh giá q trình kiểm thử cũng như rút ra bài học kinh nghiệm cho những dự
án trong tương lại.
1.3. Các phương pháp kiểm thử
Ta phân loại kiểm thử dựa vào các yếu tố: chiến lược kiểm thử, phương pháp
kiểm thử và kỹ thuật kiểm thử
Dựa vào chiến lược kiểm thử ta có thể phân chia kiểm thử thành hai loại: kiểm
thử thủ công và kiểm thử tự động. Theo phương pháp tiến hành kiểm thử ta chia kiểm
thử làm hai loại: kiểm thử tĩnh và kiểm thử động. Dựa vào kỹ thuật kiểm thử ta có thể

phân chia kiểm thử thành ba loại: kiểm thử hộp đen, kiểm thử hộp trắng và kiểm thử
hộp xám. Trong báo cáo này sẽ đi sâu vào phân loại dựa theo các kỹ thuật kiểm thử.
1.3.1. Kiểm thử hộp trắng
Kiểm thử hộp trắng (được biết đến như là kiểm thử tính rõ ràng của hộp, kiểm
thử hộp kính, kiểm thử hộp trong suốt và kiểm thử cấu trúc) giúp kiểm thử được cấu
trúc nội bộ hoặc hoạt động của một chương trình, như tương phản với chức năng được
bộc lộ của người dùng cuối. Một góc nhìn nội bộ của hệ thống trong kiểm thử hộp
trắng giống như là các kỹ năng lập trình được sử dụng để thiết kế ra các tình huống
kiểm thử. Các Tester lựa chọn yếu tố đầu vào để thực hiện đường dẫn thông qua các
mã và xác định được kết quả đầu ra thích hợp. Điều này tương tự các nút kiểm thử
trong một mạch, ví dụ như kiểm thử thơng mạch (ICT).
Các kỹ thuật được sử dụng trong kiểm thử hộp trắng bao gồm:


Kiểm thử API (giao diện lập trình ứng dụng) - kiểm thử ứng dụng có sử

dụng các API công cộng và cá nhân.

15




Kiểm thử độ bao phủ mã - tạo ra các bài kiểm thử để đáp ứng một số

tiêu chí của bảo hiểm mã (ví dụ, các nhà thiết kế kiểm thử có thể tạo ra các bài
kiểm thử để làm tất cả các câu lệnh trong chương trình được thực hiện ít nhất
một lần).



Phương pháp chèn lỗi - cố tình đưa ra những lỗi lầm để đánh giá hiệu

quả của các chiến lược kiểm thử.


Phương pháp kiểm thử đột biến.



Phương pháp thử tĩnh.

Các cơng cụ bao phủ mã có thể đánh giá đầy đủ của một bộ kiểm thử đã được
tạo ra bằng phương pháp bất kỳ nào đó, bao gồm cả kiểm thử hộp đen. Điều này cho
phép nhóm nghiên cứu phần mềm kiểm thử các bộ phận của một hệ thống mà hiếm
khi được kiểm thử và đảm bảo rằng các điểm chức năng quan trọng nhất đã được
kiểm thử. Bao phủ mã giống như một phần mềm metric có thể báo cáo tỷ lệ phần trăm
cho:


Bao phủ chức năng: dựa vào các báo cáo của chức năng này thực hiện.



Bao phủ câu lệnh: dựa vào các báo cáo về số lượng các dịng được thực

hiện để hồn thành kiểm thử.
100% bao phủ câu lệnh đảm bảo rằng tất cả các đường dẫn mã, hoặc các nhánh
(trong điều kiện của luồng điều khiển) được thực hiện ít nhất một lần. Điều này hữu
ích trong việc đảm bảo đúng chức năng nhưng không đủ kể từ khi các mã tương tự có
thể thực hiện tiến trình xử lý dữ liệu đầu vào khác nhau dù đúng hoặc không

1.3.2. Kiểm thử hộp đen
Kiểm thử hộp đen coi phần mềm như là một "hộp đen", kiểm thử chức năng mà
không cần bất kỳ kiến thức về cấu trúc và hành vi bên trong phần mềm. Các Tester chỉ
biết về những gì phần mềm phải làm mà khơng biết là nó làm như thế nào. Phương
pháp kiểm thử hộp đen bao gồm:







Phân vùng tương đương
Phân tích giá trị biên
Bảng chuyển đởi trạng thái
Kiểm thử bảng quyết định
Kiểm thử chéo
Kiểm thử dựa trên mơ hình

16


Hình 1.2 Kiểm thử hộp đen
(Nguồn: Glen Myer(1979))
1.3.3. Kiểm thử hộp xám
Kiểm thử hộp xám liên quan đến hiểu biết về cấu trúc dữ liệu bên trong và các
thuật toán cho mục đích của các bài kiểm thử thiết kế. Khi thực hiện những bài kiểm
thử với User hoặc mức độ hộp đen, Tester không nhất thiết phải truy cập vào mã
nguồn của phần mềm. Ta có thể thao tác với dữ liệu đầu vào và định dạng đầu ra
không xác định như hộp xám bởi vì đầu vào và đầu ra rõ ràng ở bên ngoài của "hộp

đen" mà chúng được hệ thống gọi ra trong quá trình kiểm thử. Sự phân biệt này là đặc
biệt quan trọng khi tiến hành kiểm thử tích hợp giữa hai Module được viết mã bởi hai
nhà phát triển khác nhau, mà ở đó chỉ có các giao diện được bộc lộ ra để kiểm thử.
Kiểm thử hộp xám cũng có thể bao gồm kỹ thuật đảo ngược để xác định đối
tượng, giá trị biên hoặc các thơng báo lỗi.

Hình 1.3 Kiểm thử hộp xám
(Nguồn: Glen Myer(1979))
1.4. Các công cụ, kỹ thuật kiểm thử
1.4.1. Các kỹ thuật
- Trong kiểm thử có 4 kỹ thuật kiểm thử phổ biến như: Phân vùng tương đương,
phân tích giá trị biên, bảng quyết định và đốn lỗi.
-

Kỹ thuật phân vùng tương đương: Đây là một kỹ thuật chia đầu vào thành

những nhóm 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. Kỹ thuật này sẽ giúp
17


giảm đáng kể số lượng test case cần phải thiết kế vì với mỗi lớp tương đương ta chỉ
cần test trên các phần tử đại diện.
- Kỹ thuật phân tích giá trị biên: Đây là kỹ thuật test mà chúng ta test tất cả các
giá trị ở vùng biên của dữ liệu và dữ liệu ra. Chúng ta sẽ tập trung vào các giá trị trong
lớp tương đương để làm đại diện, phân tích giá trị biên yêu cầu chọn một hoặc vài giá
trị là các cạnh của lớp tương đương để làm điều kiện test.
-

Kỹ thuật bảng quyết định: Đối với kiểm thử hành vi của hệ thống với nhiều


trường dữ liệu, 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 cần nhiều sự kết hợp. Hỗ trợ việc lựa chọn test case
một cách có hệ thống và có thể đem lại nhiều lợi ích tỏng việc nhận biết vấn đề tiềm
ẩn và sự khơng rõ ràng trong đặc tả.

Hình 1.4 Mẫu bảng quyết định
-

Kỹ thuật đoán lỗi: Kiểm thử viên phỏng đoán lỗi dựa trên trực giác và kinh

nghiệm của mình, từ đó liệt kê các trường hợp có thể xảy ra lỗi và sinh ca kiểm thử.
Khó có thể đưa ra một quy trình cho kỹ thuật kiểm thử đốn lỗi vì nó có tính trực giác
cao và khơng thể dự đốn trước.
Trong một số trường hợp, kiểm thử viên có thể kết hợp với lập trình viên để tìm ra
những trường hợp có thể bị bỏ sót trong quá trình viết đặc tả yêu cầu phần mềm và lập
trình.

18


Bảng 1.2 bảng phân tích ưu điểm và hạn chế của các kỹ thuật kiểm thử
Kỹ thuật kiểm

Ưu điểm

Hạn chế

thử

Phân tích giá trị Thay vì phải test hết tồn bộ Phương pháp này chỉ hiệu
biên

các giá trị từng vùng tương quả trong trường hợp các
đương, kỹ thuật phân tích giá đối số đầu vào độc lập với
trị biên tập trung vào việc nhau và mỗi đối số đều có
kiểm thử các giá trị biên của một miền giá trị hữu hạn
miền giá trị đầu vào để thiết
kế trường hợp kiểm thử do lỗi
thường tiềm ẩn tại các ngõ
ngách và tập hợp tại biên
Tích kiệm thời gian thiết kế

Phân vùng tương

testcase và trường hợp test
Vì mỗi vùng tương đương ta Khơng phải bất kỳ bài toán

đương

chỉ cần test trên các phần tử nào cũng có thể áp dụng
đại diện nên số lượng testcase kỹ thuật này.
được giảm đi khá nhiều nhờ Có thể sót lỗi ở biên nếu
đó mà thời gian thực hiện test chỉ chọn giá trị ở khoảng
cũng giảm đáng kể.

Bảng quyết định

giữa


của

miền

tương

đương.
Có thể kiểm tra sự kết hợp Nếu có quá nhiều kết hợp
của các điều kiện mà có thể các điều kiện, sử dụng kỹ
đã bị thiếu sót và khơng được thuật này có thể khơng hợp
thử nghiệm và có thể tìm thấy lý để kiểm tra từng kết hợp

Đoán lỗi

khuyết điểm
điều kiện
Đoán lỗi rất hiệu quả khi kết Chỉ những tester có kinh
hợp với các kỹ thuật kiểm thử nghiệm mới có thể thực
khác.

hiện kỹ thuật kiểm thử này.

Kỹ thuật này giúp phát hiện Đôi khi q lan man trong
ra những lỗi khơng mơ tả đốn lỗi dẫn tới mất nhiều
trong tài liệu, hay các kỹ thời gian thiết kế testcase
thuật kiểm thử chính thức và thực hiện test không
19



×