Tải bản đầy đủ (.docx) (347 trang)

Đặc tả chức năng website bán hàng điện tử

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.06 MB, 347 trang )

Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin chung
Tên đề tài

Kiểm thử chức năng website bán
hàng linh kiện điện tử

Họ và tên sinh viên:

Lê Quang Huy

Điện thoại liên lạc:
Email:
Lớp:

Công Nghệ Phần Mềm

Hệ đào tạo:

Đại học chính quy

Đồ án tốt nghiệp được thực hiện tại:

Hà Nội

Thời gian làm ĐATN:

2021


2. Mục tiêu của ĐATN
Nghiên cứu tổng quan về phần mềm, lỗi phần mềm, kiểm thử phần mềm, ứng
dụng và xây dựng kịch bản kiểm thử chức năng cho website.

3. Các nhiệm vụ cụ thể của ĐATN
- Tìm hiểu về phần mềm, lỗi phần mềm và kiểm thử phần mềm.
- Nghiên cứu về kiểm thử chức năng.
- Nắm rõ được về kiểm thử chức năng.
- Ứng dụng các kiến thức đã tìm hiểu về kiểm thử phần mềm và kiểm thử
chức năng để tiến hành xây dựng các TestCase và kiểm thử website.

4. Lời cam đoan của sinh viên:
Tôi – Lê Quang Huy – Cam kết ĐATN là cơng trình nghiên cứu của bản thân
tôi dưới sự hướng dẫn của GV. Ths. …..
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép tồn văn
của bất kỳ cơng trình nào khác.
Hà Nội, ngày tháng năm
Tác giả ĐATN

Lê Quang Huy

1

Lớp CNPM
1


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm
Lê Quang Huy
5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN


và cho phép bảo vệ:
Hà Nội, ngày tháng năm
Cán bộ hướng dẫn

Lê Quang Huy

2

Lớp CNPM
2


Đồ án tốt nghiệp chun ngành Cơng Nghệ Phần Mềm

TĨM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Từ khi Internet phát triển, các trang web thương mại điện tử ra đời để phục vụ
việc mua sắm hàng hóa của mọi người. Nó giúp tiết kiệm thời gian cho người mua
đồng thời giúp tiết kiệm được chi phí quảng cáo hàng hóa của các doanh nghiệp.
Một trang web thương mại điện tử tốt là chìa khóa thành cơng cốt lõi của một doanh
nghiệp. Do đó, để có trang web tốt thì việc kiểm thử rất quan trọng.
Mục đích của đồ án là giới thiệu về lý thuyết phần mềm, kiểm thử phần mềm,
kiểm thử phần mềm trên nền web. Ngoài ra đề tài đi sâu vào tìm hiểm kiểm thử
chức năng. Ứng dụng các kiến thức đã tìm hiểu và học được để xây dựng được kịch
bản kiểm thử và tiến hành kiểm thử trang web.
Nội dung đồ án gồm có các phần sau:
-

-


-

-

Mở đầu: Trình bày lý do chọn đề tài, mục tiêu nghiên cứu và bố
cục của đồ án.
Chương 1: Tổng quan phần mềm và lỗi phần mềm. Chương này
trình bày các khái niệm của phần mềm, đảm bảo chất lượng phần
mềm và lỗi phần mềm.
Chương 2: Tổng quan về kiểm thử phần mềm. Chương này trình
bày về khái niệm, mục tiêu, quy trình, các giai đoạn và phương
pháp kiểm thử phần mềm. Đồng thời giới thiệu về kiểm thử tự
động.
Chương 3: Kết quả thử nghiệm: Chương này trình bày các chức
năng của trang web bán hàng điện tử, xây dựng TestCase và báo
cáo kết quả kiểm thử.
Kết luận và hướng phát triển: Đưa ra kết quả đạt được từ đồ án và
hướng phát triển trong tương lại.

Sau quá trình tìm kiểm và thực hiện, đồ án đã giải quyết được các vấn đề đã đề
ra ban đầu, giải quyết từng bước và đặt ra những vấn đề mới giúp tăng tính logic và
hồn thiện đồ án hơn. Thơng qua việc tìm hiểu các tài kiệu trong nước và ngồi
nước, cũng như tiếp xúc các đồng nghiệp có kinh nghiệp, em dã có được nhiều kiến
thức bổ ích và hữu hiệu hơn cho đồ án cũng như tích lũy được nhiều kinh nghiệp
cho tương lại.

Lê Quang Huy

3


Lớp CNPM
3


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

LỜI CẢM ƠN
Để đồ án này đạt kết quả tốt đẹp, em đã nhận được sự hỗ trợ, trợ giúp của
nhiều người. với tình cảm sâu sắc, chân thành, cho phép em được bày tỏ lòng biết
ơn sâu sắc đến tất cả mọi người đã đồng hành và giúp đỡ em trong quá trình học tập
và nghiên cứu đề tài.
Em xin chân thành cảm ơn các thầy cô giáo của Khoa Công nghệ thông tin của
Trường Đại học……..Hà Nội, và các thầy cô giáo Bộ môn Công nghệ phần mềm đã
nhiệt tình giảng dạy, truyền đạt kiến thức và tạo điều kiện thuận lợi cho em trong
suốt quá trình học tập 5 năm qua cũng như trong quá trình thực hiện đồ án tốt
nghiệp.
Em xin gửi lời cảm ơn đặc biệt đến Thạc sĩ ………… – Bộ môn Công nghệ
phần mềm đã nhiệt tình hướng dẫn, chỉ bảo cho em trong suốt thời gian thực hiện
đồ án. Thầy đã trực tiếp hướng dẫn, chỉ bảo, giúp em khắc phục những khó khăn,
thiếu sót để có thể hồn thành các phần trong đồ án tốt nghiệp từ lý thuyết cho tới
thực hành
Mặc dù đã cố gắng với tất cả nỗ lực của bản thân để hoàn thiện đồ án, nhưng
do thời gian có hạn, năng lực và kinh nghiệm cịn hạn chế nên đồ án khơng thể
tránh khỏi những thiếu sót. Kính mong nhận được sự đóng góp ý kiến từ phía thầy
cơ, bạn bè để em có thể nâng cao kiến thức của bản thân, hoàn thiện đồ án được tốt
hơn.
Em xin chân thành cảm ơn!
Hà Nội, ngày……tháng……năm 2020
Sinh viên thực hiện


Lê Quang Huy

Lê Quang Huy

4

Lớp CNPM
4


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

MỤC LỤC

Lê Quang Huy

5

Lớp CNPM
5


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

DANH MỤC CÁC HÌNH VẼ

Lê Quang Huy

6


Lớp CNPM
6


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

DANH MỤC CÁC BẢNG BIỂU

Lê Quang Huy

7

Lớp CNPM
7


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

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

Từ viết Từ tiếng Anh
tắt

Từ và nghĩa tiếng
Việt

1


TC_G

Test case

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

2

TS

Test suite

Một bộ bao gồm
nhiều test case
liên quan với
nhau

3

CSDL

4

DB

Cơ sở dữ liệu
Database


Cơ sở dữ liệu

5

Lê Quang Huy

8

Lớp CNPM
8


MỞ ĐẦU
1. Tổng quan tình hình nghiên cứu thuộc lĩnh vực của đề tài
Trong giai đoạn phát triển của công nghệ thông tin, ngành công nghệ phần
mềm đang ngày một chiếm vị trí quan trọng trong xu hướng phát triển kinh tế cơng
nghiệp hóa, hiện đại hóa của đất nước ta. Cùng với sự phát triển của công nghệ
phần mềm, lỗi phần mềm và chất lượng phần mềm luôn là thách thức lớn với bản
thân ngành phần mềm khi thực tế đã chứng minh, kiểm thử phần mềm là giai đoạn
chiếm đến hơn 40% thời gian, kinh phí và nguồn lực phát triển dự án phần mềm.
Tuy nhiên ở Việt Nam hiện nay, việc kiểm thử phần mềm vẫn chưa thực sự được
nhìn nhận đúng đắn với tầm quan trọng của nó. Điều này thể hiện ở tỷ lệ kỹ sự kiểm
thử phần mềm ở Việt Nam còn khá thấp, cứ 5 lập trình viên thì mới có 1 kỹ sư kiểm
thử phần mềm, trong khi tỷ lệ nay theo chuẩn quốc tế là 3:1. Thêm vào đó mức độ
đáp ứng của kỹ sư kiểm thử phần mềm ở Việt Nam chưa cao. Nguyên nhân chính
của việc này đến từ sự thiếu hụt của các đơn vị đào tạo chuyên sâu về kiểm thử và
nguyên nhân sâu xa hơn nữa là vấn đề kiểm thử ở Việt Nam vẫn chưa được chuyên
nghiệp hóa và đầu tư đúng mức.
Kiểm thử phần mềm là một quá trình liên tục, xuyên suốt mọi giai đoạn phát
triển phần mềm để đảm bảo rằng phần mềm thỏa mãn các yêu cầu thiết kế và các

yêu cầu đó đáp ứng nhu cầu của người dùng. Các kỹ thuật kiểm thử phần mềm đã
và đang được nghiên cứu, và việc kiểm thử phần mềm đã trở thành quy trình bắt
buộc trong các dự án phát triển phần mềm trên thế giới. Kiểm thử phần mềm là hoạt
động rất tốn kém, mất thời gian và khó phát hiện được hết lỗi. Vì vậy, kiểm thử
phần mềm địi hỏi phải có chiến lược phù hợp, một kế hoạch hợp lý và thực hiện
được quản lý chặt chẽ.
Website chính là cột mốc quan trọng, thể hiện được sự uy tín và chất lượng
của doanh nghiệp thông qua một trang web được thiết kế chuyên nghiệp và chỉnh
chu để thyết thục khách hàng khi sử dụng dịch vụ, sản phẩm.
Website bán hàng link kiện điện tử mang đến cho khách hàng một mơ hình
bán hàng linh hoạt và dễ dàng. Quản trị có thể thêm các danh mục sản phẩm một
cách không giới hạn và tất cả công việc quản trị thêm mới các sản phẩm trở nên đơn
giản. Trang web rõ ràng, bố cục khoa học giúp người dùng tìm kiếm và theo dõi
được nội dung cần thiết một cách nhanh chóng và dễ dàng. Nội dung trình bày một


cách hợp lý, vừa phải, kết hợp các yếu tố hình ảnh. Website bán hàng link kiện điện
tử được thiết lập để phục vụ quy trình hoạt động quản lý bán hàng hóa, kiểm sốt số
lượng khách mua và hàng tồn còn lại, tối ưu được thời gian bán hàng
Thời đại công nghệ 4.0, công nghệ thông tin ngày càng phát triển mạnh mẽ ở
nhiều lĩnh vực khác nhau, kéo theo đó là hệ thống mạng và các phần mềm, ứng
dụng cũng gia tăng cả về số lượng lẫn chất lượng. Cùng với sự phát triển đó, lỗi
phần mềm và chất lượng phần mềm luôn là thách thức lớn khi ngành này thực tế đã
chứng minh kiểm thử phần mềm là giai đoạn chiếm hơn 40% thời gian, kinh phí và
nguồn nhân lực phát triển phần mềm.
Tự động hóa cũng đã và đang được nghiên cứu và ứng dụng trong nhiều lĩnh
vực khác nhau, kiểm thử phần mềm cũng không là ngoại lệ. Khi mà kiểm thử phần
mềm tiêu tốn một lượng lớn thời gian, kinh phí và nhân lực trong một dự án thì
song song với kiểm thử thủ công, sự ra đời của các công cụ kiểm thử tự động giúp
cho công việc kiểm thử trở nên nhanh, chính xác và bớt nhàm chán hơn.


2. Tính cấp thiết, ý nghĩa khoa học và thực tiễn của đề tài
Do tốc độ phát triển công nghệ thông tin nhanh, việc sử dụng mạng Internet đã
trở nên rất phổ biến. Người sử dụng Internet dễ tìm kiếm thơng tin và xu hướng
giao dịch thương mại trên Internet ngày càng nhiều. Với bán hàng online người mua
có thể khơng cần phải đến trực tiếp cửa hàng mà vẫn có thể xem và sở hữu sản
phẩm, ngược lại. Việc mua hàng qua website, ứng dụng khá phổ biến và thu được số
lượng đơn hàng khá lớn. Với hệ thống quy trình được thiết lập bài bản, việc bán
hàng thông qua website sẽ tạo ra được lợi nhuận rất cao và hoạt động về lâu dài sẽ
xây dựng được thương hiệu trên thị trường. Như vậy nhu cầu thiết kế website quản
lý bán hàng là điều cần thiết và công việc kiểm thử chức năng website là việc không
thể thiếu.

3. Mục tiêu của đề tài
Tìm kiểm kiểm thử chức năng và ứng dụng kiểm thử chức năng vào website
bán hàng linh kiện điện tử.

4. Nhiệm vụ cụ thể của đề tài
Tìm hiểu về kiểm thử và các loại kiểm thử.
Các loại kiểm thử chức năng.


Tạo TestCase.
Kiểm thử chức năng Website bán hàng link kiện điện tử.

5. Phương pháp thực hiện
Phương pháp nghiên cứu lý thuyết: Nghiên cứu và tìm hiểu lý thuyết về tổng
quan kiểm thử phần mềm, các loại kiểm thửu phần mềm, kiểm thử chức năng.
Phương pháp thực hiện: Thực hiện kiểm thử chức năng trên trang Web.


6. Bố cục của đồ án
Chương 1: Tổng quan về phần mềm, lỗi phần mềm và kiểm thử phần mềm.
Chương 2: Cơ sở lý thuyết về kiểm thử chức năng.
Chương 3: Kiểm thử chức năng Website bán hàng link liện điện tử.


CHƯƠNG 1: TỔNG QUAN PHẦN MỀM VÀ KIỂM THỬ PHẦN
MỀM
1.1 Định nghĩa phần mềm
Phần mềm là một tập hợp những câu lệnh được viết bằng một hoặc nhiều ngôn
ngữ lập trình theo một trật tự xác định nhằm tự động thực hiện một số chức năng
hoặc giải quyết một bài tốn nào đó. Phần mềm được thực thi trên máy, thường là
máy tính.
Phần mềm có 4 thành phần cơ bản:
-

Chương trình máy tính
Các thủ tục
Tài liệu
Dữ liệu cần thiết để vận hành

1.2 Đặc trưng của phần mềm
-

Phần mềm được thiết kế, chế tạo như các loại sản phẩm công nghiệp

-

khác, nhưng khơng được định hình trước.
Q trình phát triển phần mềm quyết định giá thành và chất lượng phần


-

mềm.
Các phần mềm chỉ thực sự tìm được ra lỗi trong pha phát triển.
Phần mềm có tính phức tạp và ln thay đổi.
Phần mềm là một hệ thống logic với nhiều khái niệm và các mối liên hệ
logic khác nhau.

1.3 Vòng đời phần mềm
Vịng đời phần mềm là khoảng thời gian tính từ khi phần mềm được đề xuất
cho đến khi bỏ đi. Cụ thể là từ khi được đặt hàng, phát triển, sử dụng và cho đến khi
bị loại bỏ.
Vòng đời phần mềm được phân chia thành các pha chính: xác định yêu cầu,
triển khai, kiểm thử, bảo trì (vận hành). Phạm vi, thứ tự các pha khác nhau tùy vào
từng mơ hình, dự án cụ thể.

Các giai đoạn

Các hoạt động


Thu thập yêu cầu

Thu thập các thông tin về chi tiết, thông số kỹ thuật
của phần mềm mà khách hàng mong muốn.

Thiết kế

Lên kế hoạch lập trình sử dụng ngơn ngữ lập trình,

cơ sở dữ liệu phù hợp với dự án, cũng như một số
chức năng và kiến trúc phức tạp.

Xây dựng

Sau giai đoạn thiết kế là giai đoạn xây dựng, giai
đoạn này là viết code xây dựng phần mềm.

Kiểm thử

Kiểm thử phần mềm để xác minh rằng phần mềm
được xây dựng theo yêu cầu do khách hàng cung
cấp.

Triển khai

Triển khai ứng dụng phần mềm trong mơi trường
thực tế.

Bảo trì

Khi hệ thống đi vào hoạt động, ta có thể thay đổi
code theo yêu cầu của khách hàng.
Bảng 1. 1 Vòng đời của phần mềm

1.4 Chất lượng phần mềm và đảm bảo chất lượng phần mềm
1.4.1 Chất lượng phần mềm
Định nghĩa chất lượng phần mềm theo IEEE (1991):
-


Định nghĩa 1: Chất lượng phần mềm là một mức độ mà một hệ thống,

-

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

Định nghĩa theo Pressman: Chất lượng phần mềm là sự phù hợp của các yêu
cầu cụ thể về hiệu năng và chức năng, các tiêu chuẩn phát triển phần mềm được ghi
lại rõ ràng bằng tài liệu với các đặc tính ngầm định của tất cả các phần mềm được


phát triển chuyên nghiệp. Định nghĩa của Pressman đề xuất ba yêu cầu với chất
lượng phần mềm phải được đáp ứng khi phát triển phần mềm:
-

Các yêu cầu chức năng rõ ràng là nhân tố chính quyết định chất lượng

-

đầu ra của phần mềm.
Các tiêu chuẩn chất lượng phần mềm sẽ được nói đến trong hợp đồng.
Các đặc tính ngầm định cần được đáp ứng trong quá trình phát triển cho
dù khơng được nói đến rõ ràng trong hợp đồng.

1.4.2 Đảm bảo chất lượng phần mềm
-


Định nghĩa theo Daniel Galin: Đảm bảo chất lượng phần mềm
(Software quality assure - SQA) là một tập hợp các hành động cần thiết
được lên kế hoạch một cách hệ thống để cung cấp đủ niềm tin rằng quá
trình phát triển phần mềm phù hợp để thành lập các yêu cầu chức năng
kỹ thuật, cũng như các yêu cầu quản lý theo lịch trình và hoạt động
trong giới hạn ngân sách.

1.4.3 Một số tiêu chí trong đảm bảo chất lượng phần mềm:
-

Tính năng: là khả năng cung cấp các chức năng thỏa mãn yêu cầu, mục

-

đích đã xác định khi bắt đầu triển khai phần mềm. Các tính năng bao
gồm:
o Tính phù hợp
o Tính chính xác
o Khả năng tương tác
o Tính bảo mật
Độ tin cậy: Nguyên nhân của độ tin cậy kém là do cấu trúc phần mềm
khơng kết hợp được với mã hóa. Việc đánh giá độ tin cậy của một phần
mềm cung cấp ước tính mức độ rủi ro kinh doanh và khả năng xảy ra
các lỗi tiềm ẩn của ứng dụng khi thử nghiệm. Mục đích của việc kiểm
tra và giám sát độ tin cậy là để giảm thiểu lỗi phần mềm cũng như
ngừng hoạt động hay các lỗi ảnh hưởng trực tiếp đến người dùng.
o Tính hồn thiện cấu trúc ứng dụng
o Quy trình mã hóa
o Tính phức tạp của của thuật toán

o Khả năng xử lý và chịu lỗi
o Khả năng phục hồi, quản lý tài nguyên
o Phần mềm quản lý tính tồn vẹn và tính thống nhất của dữ liệu


-

Hiệu quả: Là khả năng đáp ứng hiệu năng một cách thích hợp nhằm tiết

-

kiệm tài nguyên, tăng hiệu suất ứng dụng và khả năng mở rộng của
phần mềm. Tính toán nguồn lực, mã nguồn đảm bảo hiệu năng cao khi
phần mềm chạy trên hệ thống. Việc phân tích này cung cấp những rủi
ro tiềm ẩn, nguy hại do sự trì trệ của phần mềm theo thời gian. Đánh
giá tính hiệu quả của phần mềm dưới các điều kiện sau:
o Cấu trúc ứng dụng
o Độ tương tác thích hợp với các nguồn tài nguyên
o Hiệu suất, thời gian truy cập và quản lý dữ liệu
o Quản lý bộ nhớ, mạng và khơng gian đĩa
o Quy trình mã hóa, lập trình
Tính bảo mật: Có biện pháp bảo vệ, ngăn chặn khả năng xảy ra các

-

phạm vi bảo mật đến phần mềm, dữ liệu của hệ thống và ngăn chặn
nguy cơ tấn công các lỗ hổng bảo mật gây tổn hại cho người dùng,
doanh nghiệp; đáp ứng mức độ rủi ro chấp nhận được đối với người
dùng, phần mềm hay môi trường sử dụng. Để đánh giá độ an toàn, bảo
mật cần kiểm tra các thuộc tính sau:

o Cấu trúc ứng dụng
o Sự tuân thủ thiết kế nhiều lớp
o Vấn đề thực tế bảo mật
o Quy trình mã hóa, lập trình
o Bảo mật truy cập vào hệ thống, kiểm soát các chương trình
Khả năng bảo trì: Khả năng bảo trì bao gồm các khả năng kiểm tra,
nâng cấp, thay đổi và phát triển phần mềm sao cho phù hợp với yêu
cầu, chức năng và mơi trường. Tính duy trì bao gồm khả năng thích
ứng, tính di động và khả năng chuyển đổi. Cần phải cập nhật công nghệ
hay những thay đổi về thị trường, doanh nghiệp đảm bảo luôn cung cấp
thông tin, phần mềm chất lượng đến tay người dùng. Đánh giá khả năng
bảo trì qua các thuộc tính sau:
o Cấu trúc phần mềm và lập trình hướng đối tượng
o Khả năng phân tích
o Mức độ phức tạp của thuật tốn
o Kiểm sốt mức độ mã hóa
o Tính ổn định của phần cứng, hệ điều hành, thành phần trung

-

gian, cơ sở dữ liệu độc lập
o Khả năng kiểm thử được
Kích thước: Đo lường kích thước phần mềm u cầu tồn bộ mã nguồn
phải được thu thập chính xác, bao gồm các tập lệnh cấu trúc cơ sở dữ


liệu, mã nguồn thao tác dữ liệu, các tiêu đề thành phần, các tệp cấu
hình… Có hai loại kích thước phần mềm cần được đo là kích thước kỹ
thuật và kích thước chức năng:
o Phương pháp đánh số kỹ thuật phổ biến nhất là số dịng mã trên

mỗi cơng nghệ, số lượng tệp tin, chức năng, các lớp, bảng biểu.
o Để đo kích thước chức năng phổ biến nhất là phân tích điểm
chức năng được phân phối từ quan điểm, yêu cầu của người
dùng. Họ cung cấp mô tả về kích thước, giá trị và chức năng cho
bên phát triển phần mềm. Các giá trị kích thước này được kết
hợp với nhiều biện pháp để định lượng, đánh giá việc phân phối
và thực hiện phần mềm.
1.5 Kiểm thử phần mềm
1.5.1 Khái niệm kiểm thử phần mềm
Kiểm thử phần mềm là việc kiểm tra kết quả thực hiện của chương trình máy
tính xem có đúng với mục tiêu đã đặt ra với nó hay khơng thơng qua việc thực hiện
ở một số mẫu thử. Hiểu một cách đơn giản, kiểm thử là chạy một chương trình để
xác nhận bất kỳ lỗ hổng, lỗi sai hay những yêu cầu bị bỏ quên, những yêu cầu
không đúng so với thực tế đề ra
Theo IEEE Standard Glossary of Software Engineering Terminology, kiểm
thử phần mềm là quá trình khảo sát một hệ thống hay các thành phần dưới những
điều kiện xác định; quan sát, ghi lại kết quả, và đánh giá một khía cạnh nào đó của
hệ thống hay thành phần nào đó.
Kiểm thử là giai đoạn quan trọng đảm bảo chất lượng phần mềm.
Kiểm thử là tiến trình xem xét, kiểm tra lại đặc tả, phân tích, thiết kế và mã
hóa nhằm phát hiện lỗi phần mềm, xác minh phần mềm có đúng đặc tả, thiết kế; có
đáp ứng nhu cầu người dùng, có hoạt động hiệu quả không.
Hoạt động kiểm thử nhằm mục đích kiểm tra xem phần mềm làm ra có đúng
đặc tả (u cầu, phân tích, thiết kế) và có đáp ứng đúng u cầu người dùng hay
khơng. Đây chính là hai hoạt động cốt yếu để đảm bảo chất lượng phần mềm, diễn
ra trong suốt quá trình phát triển phần mềm.


Theo tiêu chuẩn ANSI/IEEE 1059, kiểm thử có thể được định nghĩa như một
q trình của việc phân tích các thành phần của phần mềm để dị tìm sự khác biệt

giữa phần mềm thực tế đang tồn tại và những điều kiện được yêu cầu – requirement
(đó là thiếu sót - defect, sai sót – error, lỗi – bug). Từ đó đánh giá được chất lượng
phần mềm.
1.5.2 Vai trị của kiểm thử phần mềm
Kiểm thử phần mềm là hoạt động nhằm tìm kiếm và phát hiện ra lỗi các phần
mềm.
Kiểm thử phần mềm đảm bảo sản phẩm phần mềm đáp ứng chính xác, đầy
đủ và đúng theo yêu cầu của khách hàng đề ra.
Hoạt động kiểm thử phần mềm đóng vai trị rất quan trọng trong q trình
phát triển phần mềm. Trên thực tế khơng có một phần mềm nào được tạo ra hồn
hảo và khơng có lỗi. Lúc này, kiểm thử phần mềm sẽ có nhiệm vụ chỉ ra lỗi và sai
sót trong các giai đoạn phát triển sản phẩm. Lỗi phần mềm cần được phát hiện và
sửa chữa càng sớm càng tốt, nếu không sẽ gây ra nhiều thiệt hại nghiêm trọng. Điển
hình như năm 1985, máy xạ trị Therac-25 của Canada do lỗi phần mềm mà phát ra
tia gây chết người đã giết chết ít nhất 5 người và nhiều người bị thương nặng. Hay
có thể kể đến một lỗi phần mềm khác vào tháng 4 năm 1996: Mã hoạt động cho tên
lửa Ariane 4 được sử dụng lại trong phiên bản tiếp theo Ariane 5. Tuy nhiên, rắc rối
đã xảy ra khi mã này thực hiện quá trình chuyển đổi số chứa dấu phấy động 64 bit
sang ký hiệu số nguyên 16 bit. Động cơ trong Ariane 5 có tốc độ nhanh hơn đã
khiến các số 64 bit trở lên lớn hơn so với Ariane 4, gây tình trạng q tải và sập
máy tính điều khiển. Hệ thống backup cũng gặp trục trặc ngay 0,05 giây sau đó và
thiết bị xử lý cơ sở của tên lửa bị tiếp quá nhiều năng lượng. Và chỉ sau 40 giây sau
khi phóng Ariane 5 đã phát nổ
Việc kiểm thử phần mềm một cách tỉ mỉ, chi tiết sẽ đảm bảo phần mềm ít lỗi
nghiêm trọng nhất có thể, đồng thời làm giảm chi phí sửa chữa và thiệt hại khơng
đáng có trong tương lai.


1.5.3 Mục tiêu của kiểm thử phần mềm
Việc thực hiện kiểm thử phần mềm nhằm những mục tiêu sau:

- Bằng việc kiểm thử sẽ tìm ra lỗi trong phần mềm và thiết lập chất lượng
của phần mềm.
- Đảm bảo phần mềm đáp ứng đúng yêu cầu đề ra.
- Kiểm thử phần mềm giúp chúng ta biết rằng phần mềm đang được thử
nghiệm thành công.
- Kiểm thử phần mềm giúp xác nhận được rằng phần mềm đủ điều kiện đến
tay người sử dụng.
- Kiểm thử phần mềm để đảm bảo chất lượng phần mềm.
- Kiểm thử phần mềm cung cấp và duy trì một sản phẩm chất lượng cho
khách hàng.
1.5.4 Cấp độ của kiểm thử phần mềm
Cấp độ kiểm thử phần mềm là một q trình trong đó mọi thành phần của
phần mềm đều được kiểm tra. Để kiểm tra hành vi và hiệu suất của quá trình kiểm
thử phần mềm cần chia thành nhiều cấp độ kiểm thử (Hình 1.1) là kiểm thử đơn vị,
kiểm thử tích hợp, kiểm thử hệ thống và kiểm thử chấp nhận.


Hình 1. 1 Cấp độ kiểm thử phần mềm
(Nguồn: Internet [19])
Cấp độ kiểm thử đơn vị chủ yếu do lập trình viên trực tiếp thực hiện trước
khi cài đặt chuyển giao cho đội kiểm thử thực hiện những ca kiểm thử chính thống.
Phần mềm khi phát triển sẽ bao gồm nhiều đơn vị chức năng hợp thành. Mỗi lập
trình viên sẽ đảm nhiệm việc phát triển một hay nhiều đơn vị chức năng. Sau khi
hồn thành chức năng của mình lập trình viên sẽ tiến hành kiểm thử chức năng đó
một cách cơ lập nhằm phát hiện ra lỗi và khắc phục trước khi tích hợp với các đơn
vị chức năng khác. Ưu điểm của kiểm thử đơn vị là có thể giảm lỗi trong các tính
năng mới được phát triển hoặc khi thay đổi chức năng hiện có. Và việc phát hiện
các lỗi ngay từ giai đoạn đầu trong q trình phát triển phần mềm sẽ giúp giảm chi
phí kiểm tra. Ngồi ra, kiểm thử đơn vị cũng có thể cải thiện thiết kế và cho phép tái
cấu trúc mã tốt hơn. Mặc dù có nhiều ưu điểm nhưng kiểm thử đơn vị lại bị giới hạn

bởi các tình huống và bộ dữ liệu kiểm thử mà lập trình viên sử dụng để kiểm thử
chương trình.
Sau khi kiểm thử đơn vị được tiến hành bởi chính lập trình viên viết ra nó,
các đơn vị chức năng sẽ được ghép lại với nhau để tạo thành hệ thống đầy đủ và có


thể làm việc được. Ở trạng thái độc lập riêng rẽ, các đơn vị chức năng hoạt động tốt
khơng có nghĩa là khi ghép lại sẽ không xuất hiện lỗi. Vì vậy phải tiếp tục kiểm thử
để phát hiện ra những lỗi kể trên. Ở mức kiểm thử tích hợp, các đơn vị chức năng
được kết hợp lại với nhau và tiến hành kiểm thử chúng theo phương pháp tăng dần
để đảm bảo cụm các đơn vị chức năng sẽ làm việc ổn định trong môi trường thử
nghiệm.
Sau khi tất cả các đơn vị chức năng đã được tích hợp lại với nhau tạo thành
một hệ thống hoàn chỉnh, kiểm thử hệ thống sẽ được thực thi để đảm bảo sản phẩm
phần mềm đáp ứng đầy đủ các yêu cầu trong bản đặc tả yêu cầu phần mềm. Đây là
công việc tốn nhiều cơng sức nhất trong q trình kiểm thử phần mềm. Đồng thời
cũng sử dụng nhiều kỹ thuật kiểm thử khác nhau như: 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ính dễ dùng, ... để hồn
tất cơng việc kiểm thử trong cấp độ này.
Khi kiểm thử hệ thống hoàn tất, phần mềm được coi như đã sẵn sàng cho việc
đưa vào sử dụng thực tế. Lúc này, phần mềm cần được tiến hành kiểm thử chấp
nhận bởi chính khách hàng và thành viên đội dự án. Kiểm thử chấp nhận thường
được thực hiện dưới hình thức cho một nhóm người dùng thử sản phẩm phần mềm
để phát hiện các lỗi và nhận phản hồi từ người dùng. Trong đó, phiên bản alpha
dành cho đội phát triển phần mềm và phiên bản beta được cung cấp cho người sử
dụng thật để đưa ra đánh giá trong môi trường thực tế. Ở thời điểm hiện tại, kiểm
thử chấp nhận được coi là cấp độ quy chuẩn bắt buộc không thể thiếu trong quy
trình phát triển của nhiều sản phẩm phần mềm.
1.5.5 Các phương pháp kiểm thử
Hiện nay có rất nhiều phương pháp được áp dụng trong kiểm thử phần mềm.

Trong đó có hai phương pháp kiểm thử được sử dụng phổ biến nhất đó là kiểm thử
tĩnh và kiểm thử động:
Kiểm thử tĩnh là loại kiểm tra được thực hiện bằng tay hoặc bằng một bộ
công cụ. Loại kiểm tra này thực hiện kiểm tra đoạn mã, tài liệu yêu cầu, thiết kế và
đưa ra nhận xét, lưu nhận xét vào tài liệu công việc. Sử dụng phương pháp kiểm thử
tĩnh giúp tìm ra lỗi và mã độc tiềm ẩn trong ứng dụng phần mềm. Kiểm thử tĩnh có


thể được thực hiện trên các tài liệu làm việc như yêu cầu kỹ thuật, tài liệu thiết kế,
mã nguồn, kế hoạch kiểm tra, kịch bản thử nghiệm và các trường hợp thử nghiệm,
nội dung trang web. Kiểm thử tĩnh thường được tiến hành trước nhằm tạo ra kịch
bản cho kiểm thử động. Có bốn kỹ thuật kiểm thử tĩnh. Thứ nhất, đó là kỹ thuật
kiểm duyệt (Inspection). Mục đích chính của kỹ thuật này là tìm ra các khiếm
khuyết. Việc kiểm tra sẽ được thực hiện bởi người kiểm duyệt. Đây là loại đánh giá
thơng thường có một danh sách kiểm tra được chuẩn bị để kiểm tra xem tài lài liệu
cơng việc hồn thành tới đâu. Thứ hai là kỹ thuật hướng dẫn (Walk-through). Trong
loại kỹ thuật này, người lãnh đạo mở một cuộc họp để giải thích sản phẩm. Những
người tham gia có thể đặt ra những câu hỏi nếu chưa hiểu và ghi chú lại, phục vụ
cho việc hồn thành cơng việc. Kỹ thuật thứ ba là nhận xét chuyên môn (Technical
reviews). Trong loại kiểm tra này, kiểm tra về kỹ thuật sẽ được kiểm tra một vòng.
Các kế hoạch kiểm tra và chiến lược kiểm thử được tiến hành để kiểm tra xem phần
mềm đã được thực hiện theo đúng các thông số kỹ thuật và tiêu chuẩn hay chưa.
Cuối cùng là kỹ thuật nhận xét khơng chính thức (Informal reviews): Kỹ thuật kiểm
thử tĩnh trong đó tài liệu được xem xét, nhận xét một cách khơng chính thức và đưa
ra các ý kiến khơng chính thức.
Kiểm thử động được thực hiện trong mơi trường thực thi chạy chương trình
ứng dụng, đánh giá trạng thái hoạt động của phần mềm. Kiểm thử động là quá trình
xử lý một cách tự động các bước thực hiện trong các ca kiểm thử. Hình thức sử
dụng các cơng cụ để kiểm tra tự động phần mềm nhằm rút ngắn thời gian kiểm thử.
Quy trình kiểm thử động gồm bốn bước. Bước thứ nhất là viết kịch bản kiểm thử,

dùng công cụ kiểm thử để ghi lại các thao tác lên phần mềm cần kiểm tra và tự động
sinh ra mã nguồn kiểm thử. Bước tiếp theo, chỉnh sửa để kịch bản kiểm thử thực
hiện kiểm tra theo đúng yêu cầu đặt ra, làm theo trường hợp kiểm thử cần thực hiện.
Bước thứ ba, chạy kịch bản kiểm thử, giám sát hoạt động kiểm tra phần mềm của
kịch bản kiểm thử. Cuối cùng là kiểm tra kết quả thông báo sau khi thực hiện kiểm
thử tự động. Ưu điểm của phương pháp kiểm thử động là có độ chính xác cao, chu
kỳ kiểm thử diễn ra trong thời gian ngắn. Bởi vì được thực hiện tự động trên máy
nên phương pháp này cần ít nhân lực trong q trình kiểm thử hơn. Tuy nhiên,


phương pháp này lại làm tốn nhiều chi phí và thời gian cho việc tạo các kịch bản
kiểm thử và việc phát triển công cụ kiểm thử tự động.
1.5.6 Các kỹ thuật kiểm thử
Mục tiêu của kiểm thử là phải thiết kế các trường hợp kiểm thử có khả năng
phát hiện nhiều lỗi nhất với thời gian và công sức tối thiểu. Do đó có thể chia các kỹ
thuật kiểm thử thành ba loại: kiểm thử hộp trắng, kiểm thử hộp đen và kiểm thử hộp
xám. Cụ thể:
Kiểm thử hộp trắng sử dụng các ca kiểm thử để kiểm tra mã nguồn ở mức
các mô đun đơn vị nhằm mục đích phát hiện ra các lỗi trong các thủ tục (thuật toán),
các luồng điều khiển, các trạng thái của chương trình (dữ liệu). Kiểm thử hộp trắng
là sự kiểm thử dựa trên việc phân tích chương trình. Kỹ thuật chính ở đây là xác
định đường đi của chương trình (điều khiển) từ đầu vào đến đầu ra. Mục đích của
kiểm thử hộp trắng là kiểm tra tất cả các đường đi có thể, đảm bảo mọi lệnh đều
được thực hiện ít nhất một lần trong một ca thử nghiệm nào đó. Ưu điểm đầu tiên
của kỹ thuật kiểm thử hộp trắng là cho phép kiểm tra cấu trúc bên trong của phần
mềm với mục đích đảm bảo rằng tất cả các câu lệnh và điều kiện sẽ được thực hiện
ít nhất một lần. Thứ hai, việc kiểm tra kỹ càng hơn, có thể bao phủ hầu hết các
đường dẫn. Thứ ba, kỹ thuật này rất thích hợp trong việc tìm kiếm lỗi và các vấn đề
trong mã lệnh. Các lập trình viên có thể tự kiểm tra. Thứ tư là giúp tối ưu việc mã
hóa. Cuối cùng, do yêu cầu kiến thức cấu trúc bên trong của phần mềm nên việc

kiểm soát lỗi được tối đa nhất. Tuy nhiên, việc kiểm thử sẽ không thể phát hiện
được lỗi do dữ liệu. Đồng thời khó thực hiện được tất cả các trường hợp kiểm thử vì
vịng lặp kiểm tra thường lớn. Bên cạnh đó, các bài kiểm tra thường rất phức tạp,
địi hỏi phải có các nguồn lực tay nghề cao, với kiến thức sâu rộng về lập trình và
thực hiện.
Kiểm thử hộp đen sử dụng các ca kiểm thử được thiết kế dựa trên đặc tả yêu
cầu, tài liệu người dùng nhằm mục đích phát hiện ra các khiếm khuyết, các lỗi của
từng mơ đun chương trình và tồn bộ hệ thống. Vì khơng có mối liên quan nào tới
mã lệnh nên kiểm thử hộp đen sẽ đánh giá khách quan phần mềm, người kiểm thử


có thể khơng hiểu biết về mã lệnh và tìm ra lỗi mà nhóm phát triển khơng tìm ra. Và
bởi vì khơng biết phần mềm được xây dựng như thế nào, cho nên sẽ dẫn đến có thể
một mơ đun được thiết kế nhiều ca kiểm thử trong khi nhiều mô đun không được
kiểm thử.
Kiểm thử hộp xám là sự kết hợp giữa kiểm thử hộp trắng và kiểm thử hộp đen.
Kỹ thuật này địi hỏi phải có sự truy cập tới cấu trúc dữ liệu và giải thuật bên trong
cho việc thiết kế các ca kiểm thử, nhưng là kiểm thử ở mức người sử dụng hay mức
hộp đen. Việc thao tác tới dữ liệu đầu vào và định dạng dữ liệu đầu ra là không rõ
ràng, giống như một chiếc “hộp xám”, bởi vì đầu vào và đầu ra rõ ràng là ở bên
ngoài “hộp đen” mà chúng ta vẫn gọi về hệ thống được kiểm tra. Sự khác biệt này
đặc biệt quan trọng khi quản lý kiểm thử tích hợp giữ hai modun mã lệnh được viết
bởi hai chuyên viên thiết kế khác nhau, trong đó chỉ giao diện là được đưa ra để
kiểm thử. Kiểm thử hộp xám có thể cũng bao gồm cả thiết kế đối chiếu để quyết
định, ví dụ giá trị biên hay thông báo lỗi.
1.5.7 Trường hợp kiểm thử (TestCase)
Trường hợp kiểm thử (Test case) là một tập hợp các đầu vào thử nghiệm,
điều kiện thực thi và kết quả mong đợi được phát triển cho một mục tiêu cụ thể
[18].
Trong quá trình kiểm thử phần mềm, thiết kế test case là một bước rất quan

trọng và có ảnh hưởng trực tiếp đến chất lượng phần mềm. Một bộ testcase tốt phải
có mức độ bao phủ toàn bộ phần mềm. Khi thiết kế các test case, các kiểm thử viên
cần bám sát các tài liệu kiểm thử như kế hoạch kiểm thử, tài liệu đặc tả,.v.v. để
khơng bị bỏ sót bất kỳ trường hợp nào. Thiết kế các test case càng chi tiết thì càng
sớm phát hiện được nhiều lỗi phần mềm. Từ đó mà các lập trình viên có thể nhanh
chóng khắc phục lỗi và cải thiện chất lượng phần mềm.
Thông thường, một test case có chứa các thơng tin như Bảng 1.2.
STT

Thành phần

Mơ tả

1

Mã test case

Mỗi test case chỉ có duy nhất một mã.

2

Mức độ ưu tiên

Mức độ ưu tiên sẽ giúp các kiểm thử viên, lập trình viên
và quản lý dự án dễ dàng kiểm soát chất lượng phần


mềm ở thời điểm hiện tại. Mức độ ưu tiên của test case
có 3 loại là thấp, trung bình và cao.
3


Người thực hiện

Tên của người viết test case.

4

Ngày thực hiện

Ngày mà test case được viết.

5

Người kiểm thử

Tên của người thực hiện kiểm thử.

6

Ngày kiểm thử

Ngày mà test case được kiểm thử.

7

Mục đích kiểm Tên test case phải ngắn gọn, dễ hiểu, chẳng hạn như
thử
“Kiểm tra in báo cáo đơn hàng”.

8


Tiền điều kiện

9

Các bước thực Nêu chi tiết các bước thực hiện kiểm tra test case.
hiện

10

Dữ liệu kiểm Dữ liệu kiểm thử cụ thể cho từng test case. Kiểm thử
thử
viên có thể nhập dữ liệu kiểm thử trực tiếp vào phần
“Dữ liệu kiểm thử” hoặc tạo một tập tin riêng biệt cho 1
hoặc nhiều test case.

11

Kết quả mong Kết quả mong muốn từ các bước thực hiện test case.
muốn

12

Kết quả hiện tại

Kết quả so với “Kết quả mong muốn” ở thời điểm hiện
tại. Kết quả hiện tại là “Passed” khi giống với “Kết quả
mong muốn”, là “Failed” khi không đạt yêu cầu.

13


Ghi chú

Những ghi chú về kết quả sau khi thực hiện kiểm tra test
case.

14

Loại kiểm thử

Điều kiện cần hoàn thành trước khi thực thi test case.

Lựa chọn Test case được kiểm thử thủ công hay tự
động.
Bảng 1. 2 Cấu trúc thông thường của một test case


Hình 1. 2 Biểu mẫu Testcase của Cơng ty cổ phần HiNet
1.5.8 Các nguyên tắc kiểm thử
Để kiểm thử đạt hiệu quả thì khi tiến hành kiểm thử phần mềm cần phải tuân
thủ một số nguyên tắc sau:
Nguyên tắc 1: Kiểm thử chỉ ra sự hiện diện của lỗi
Kiểm thử có thể chỉ ra sự có mặt của lỗi, nhưng khơng thể chứng minh rằng
phần mềm khơng có lỗi. Việc kiểm thử làm giảm xác suất các khuyết tật chưa được
tìm thấy trong phần mềm, nhưng ngay cả khi khơng có lỗi được tìm thấy, đó cũng
khơng phải là một bằng chứng đúng đắn để khẳng định rằng phần mềm khơng có
lỗi.
Ngun tắc 2: Kiểm thử đầy đủ, tồn bộ là khơng thể
Kiểm thử tồn bộ (kết hợp tất cả các yếu tố đầu vào và điều kiện tiên quyết)
là không khả thi trừ những trường hợp nhỏ và đơn giản. Thay vì kiểm thử đầy đủ,

nên sử dụng những đánh giá rủi ro và nỗ lực để ưu tiên tập trung kiểm thử
Nguyên tắc 3: Cần bắt đầu giai đoạn kiểm thử càng sớm càng tốt
Hoạt động kiểm thử nên bắt đầu càng sớm càng tốt trong chu trình phát triển
phần mềm và cần được tập trung vào các mục tiêu xác định
Nguyên tắc 4: Phân nhóm lỗi để xác định một số module tập trung nhiều
lỗi nhất


×