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

Kiểm thử phần mềm nhúng nhóm 3

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 (1014.84 KB, 44 trang )

HỌC VIỆN KỸ THUẬT MẬT MÃ

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO MÔN HỌC

KIỂM THỬ PHẦN MỀM NHÚNG

Đề tài:
KIỂM THỬ THỦ CÔNG MỘT SỐ CHỨC NĂNG CỦA
WEBSITE K-OFFICE

Giảng viên hướng dẫn: ThS. Thái Thị Thanh Vân
Sinh viên thực hiện: Đinh Công Tuấn - CT050453

Hoàng Tuấn Minh - CT050432
Vũ Tuấn Kiệt - CT050427

Hà Nội, 03 – 2024

LỜI NÓI ĐẦU

Kiểm thử phần mềm là quá trình đánh giá một phần mềm để đảm bảo rằng nó hoạt
động đúng đắn, hiệu quả và đáp ứng được các yêu cầu của người dùng. Quá trình này
thường được thực hiện để xác nhận tính năng, sự ổn định, hiệu suất, và bảo mật của phần
mềm. Việc khơng kiểm thử phần mềm có thể dẫn đến nhiều hậu quả tiêu cực, từ mất mát
tài chính đến tổn thất về uy tín và cơ hội thị trường. Điều này làm nổi bật tầm quan trọng
của việc thực hiện kiểm thử phần mềm một cách cẩn thận và toàn diện trong quá trình phát
triển sản phẩm.

Hiện nay, công việc phát triển và kiểm thử website nói riêng cũng đang trên đà


phát triển mạnh bởi nhu cầu sử dụng của con người ngày càng cao. Chỉ cần một thiết
bị kết nối internet đã có thể truy cập được đến mọi website trên thế giới. Tuy nhiên,
kiểm thử website cũng còn tồn tại một số khó khăn và ảnh hưởng trực tiếp đến nó như:
tính bảo mật, hiệu suất, giao diện, chức năng có hoạt động tốt hay khơng, … Do đó,
nhóm chúng em đã quyết định chọn đề tài “Kiểm thử thủ công một số chức năng của
Website K-Office” cho môn học Kiểm thử phần mềm nhúng. Bản báo cáo gồm 3
phần:

Chương 1: Tổng quan về kiểm thử phần mềm
Chương 2: Kế hoạch kiểm thử
Chương 3: Thực hiện kiểm thử và đánh giá kết quả

1

LỜI CẢM ƠN

Báo cáo Kiểm thử phần mềm nhúng là kết quả tìm hiểu và nghiên cứu của nhóm
chúng em. Để có thể thực hiện và hoàn thành báo cáo này, em đã nhận được sự hướng
dẫn và giúp đỡ nhiệt tình của các thầy cơ trong Học viện Kỹ thuật Mật Mã. Nhóm em
xin chân thành cảm ơn đến các thầy cơ đã tận tình dạy bảo, truyền đạt kiến thức cho
chúng em trong suốt quá trình học tập.

Đặc biệt, chúng em xin gửi lời cảm ơn sâu sắc đến cô Thái Thị Thanh Vân –
người đã tận tình cung cấp tài liệu, kiến thức và chỉ bảo chúng em trong suốt quá trình
thực hiện đề tài này.

Trong quá trình làm đề tài, do thời gian có hạn và trình độ kiến thức, kinh
nghiệm cịn hạn chế nên chắc chắn khơng tránh khỏi những thiếu sót. Chúng em rất
mong nhận được sự góp ý từ thầy, cơ để chúng em có thể học hỏi thêm nhiều điều,
hoàn thiện hơn bài báo cáo của mình cũng như hồn thành tốt hơn các bài báo cáo sắp

tới.

Chúng em xin chân thành cảm ơn!
Nhóm sinh viên thực hiện
Đinh Công Tuấn
Hoàng Tuấn Minh
Vũ Tuấn Kiệt

2

MỤC LỤC

LỜI NÓI ĐẦU...........................................................................................................1
LỜI CẢM ƠN............................................................................................................2
CHƯƠNG 1: KHÁI QUÁT VỀ PHẦN MỀM VÀ KIỂM THỬ PHẦN MỀM.........5

1.Tổng quan về phần mềm.....................................................................................5
1.1 Định nghĩa....................................................................................................5
1.2 Phân loại phần mềm.....................................................................................6
1.3 Quy trình phát triển phần mềm....................................................................6
1.4 Mối quan hệ giữa quy trình phát triển phần mềm và kiểm thử....................9

2. Tổng quan về kiểm thử phần mềm...................................................................10
2.1 Khái niệm...................................................................................................10
2.2 Vai trò của kiểm thử phần mềm.................................................................11
2.3 Các kỹ thuật kiểm thử phần mềm..............................................................11
2.4 Một số loại hình kiểm thử phổ biến...........................................................12

Chương 2 KẾ HOẠCH KIỂM THỬ........................................................................14
1 Giới thiệu..........................................................................................................14

1.1 Mục đích....................................................................................................14
1.2 Tổng quan...................................................................................................14
1.3 Phạm vi......................................................................................................14
1.4 Lịch trình cơng việc...................................................................................14
2. Chiến lược kiểm thử.........................................................................................15
2.1 Kiểm thử chức năng...................................................................................15
2.2 Kiểm thử khả năng sử dụng.......................................................................15
3, Thiết kế Test Case............................................................................................16
3.1 Trang đăng ký............................................................................................16
3.2 Trang đăng nhập.........................................................................................17
3.3 Trang tạo thư mục......................................................................................18
3.4 Trang K-WORD.........................................................................................22
3.5 Trang K-Learning.......................................................................................26
3.6 Trang Quản lý tài khoản.............................................................................27
3

CHƯƠNG 3: THỰC HIỆN KIỂM THỬ VÀ ĐÁNH GIÁ KẾT QUẢ...................31
1. Thực thi kiểm thử.............................................................................................31
1.1 Tạo tài khoản..............................................................................................31
1.2 Trang đăng nhập.........................................................................................32
1.3 Trang tạo thư mục......................................................................................34
1.4 Trang K-WORD.........................................................................................37
1.5Trang K-Learning........................................................................................41
1.6 Trang quản lý tài khoản..............................................................................43
2 Đánh giá kết quả kiểm thử................................................................................46
3 Kết luận.............................................................................................................46

TÀI LIỆU THAM KHẢO........................................................................................47

4


CHƯƠNG 1: KHÁI QUÁT VỀ PHẦN MỀM VÀ KIỂM
THỬ PHẦN MỀM

1.Tổng quan về phần mềm

1.1 Định nghĩa
Phần mềm là một tập hợp các chương trình máy tính, dữ liệu, tài liệu và hướng

dẫn, cũng như các yếu tố không vật lý khác, được thiết kế để thực hiện một hoặc nhiều
nhiệm vụ hoặc chức năng cụ thể trên một máy tính hoặc thiết bị điện tử. Phần mềm có
thể được phát triển để chạy trên nhiều nền tảng khác nhau, bao gồm máy tính cá nhân,
máy chủ, thiết bị di động, thiết bị nhúng và các hệ thống nhúng khác.

Một số đặc điểm chính của phần mềm bao gồm:
o Được viết bằng ngơn ngữ lập trình: Phần mềm thường được viết bằng các
ngơn ngữ lập trình như C, C++, Java, Python, và nhiều ngơn ngữ lập trình
khác.
o Thực hiện chức năng cụ thể: Phần mềm được thiết kế để thực hiện một
loạt các chức năng hoặc nhiệm vụ cụ thể, như xử lý dữ liệu, tương tác với
người dùng, hoặc kết nối với các hệ thống khác.
o Cấu trúc và tổ chức: Phần mềm thường được tổ chức thành các thành phần
logic, modules, hoặc lớp để dễ dàng quản lý và bảo trì.
o Có thể thay đổi và cải thiện: Phần mềm có thể được cập nhật, mở rộng và
cải thiện qua thời gian để đáp ứng nhu cầu mới và sửa chữa các lỗi hoặc vấn
đề phát sinh.
o Địi hỏi quản lý và bảo trì: Phần mềm cần được quản lý và bảo trì để đảm
bảo tính ổn định, an ninh và hiệu suất.

Phần mềm có thể được phân loại thành nhiều loại khác nhau, bao gồm ứng dụng

máy tính cá nhân, ứng dụng di động, phần mềm doanh nghiệp, phần mềm nhúng, phần
mềm máy chủ, và nhiều loại khác. Đồng thời, nó cũng là một phần quan trọng của hệ
thống thông tin hiện đại và kinh tế số.

5

1.2 Phân loại phần mềm

1.2.1 Theo phương thức hoạt động
• Phần mềm hệ thống dùng để vận hành máy tính và các phần cứng máy tính. Đây
là các loại phần
• mềm mà hệ điều hành liên lạc với chúng để điều khiển và quản lý các thiết bị
phần cứng.
• Phần mềm ứng dụng: để người sử dụng có thể hồn thành một hay nhiều cơng
việc nào đó.
• Các phần mềm chuyển dịch mã bao gồm trình biên dịch và trình thơng dịch.
• Các nền tảng công nghệ như .NET, 1C: DOANH NGHIỆP...

1.2.2 Theo khả năng ứng dụng
• Phần mềm thời gian thực (các PM anti-virus, PM chat...)
• PM giải trí (Game...)
• PM nhúng: chạy trên các thiết bị đặc thù như điện thoại di động, TV, máy
lạnh, ...
• PM phân tán: chạy trên nhiều thiết bị, phối hợp hoạt động đồng thời với nhau

1.3 Quy trình phát triển phần mềm

1.3.1 Tổng quan
Cũng như mọi ngành sản xuất khác, qui trình là một trong những yếu tố cực kỳ


quan trọng đem lại sự thành công cho các nhà sản xuất phần mềm, nó giúp cho mọi
thành viên trong dự án từ người cũ đến người mới, trong hay ngoài cơng ty đều có thể
xử lý đồng bộ cơng việc tương ứng vị trí của mình thơng qua cách thức chung của cơng
ty, hay ít nhất ở cấp độ dự án.Có thể nói qui trình phát triển/xây dựng phần mềm
(Software Development/Engineering Process - SEP) có tính chất quyết định để tạo ra
sản phẩm chất luợng tốt với chiphí thấp và năng suất cao.

Vậy quy trình là gì?
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, SEP chính là phương pháp phát triển hay sản xuất ra sản phẩm phần
mềm. Thơng thường một qui trình bao gồm những giai đoạn cơ bản sau:
• Đặc tả yêu cầu (Requirements Specification): chỉ ra những “đòi hỏi” cho cả các
yêu cầu chức năng và phi chức năng.
• Phát triển phần mềm (Development): tạo ra phần mềm thỏa mãn các yêu cầu
được chỉ ra trong “Đặc tả yêu cầu”

6

1.3.2 Các mơ hình SEP

Có khá nhiều mơ hình SLC khác nhau, trong đó một số được ứng dụng khá phổ biến
trên thế giới:

• Mơ hình Waterfall (Waterfall model)
• Mơ hình chữ V(V-model)
• Các mơ hình nhiều phiên bản (Multi-version models)
• Mơ hình mẫu (Prototype)
• Mơ hình tiến hóa (Evolutionary)
• Mơ hình lặp và tăng dần (Iterative and Incremental)
• Mơ hình phát triển ứng dụng nhanh (RAD)

• Mơ hình xoắn ốc (Spiral)
• Mơ hình phát triển dựa trên kiểm thử (Test Driven Development-TDD)

1.3.3 Mơ hình phát triển dựa trên kiểm thử (TDD)

a. Định nghĩa
TDD là một phương pháp tiếp cận mới nhằm cải tiến quy trình phát triển phần

mềm trong đó kết hợp phương pháp Phát triển kiểm thử trước (Test First Development)
và phương pháp Điều chỉnh lại mã nguồn (Refactoring). Mục tiêu quan trọng nhất của
TDD là viết mã nguồn sáng sủa, rõ ràng và có thể chạy được.
b. Các cải tiển của TDD

TDD hoàn toàn thay đổi cách phát triển truyền thống. Khi ta bắt đầu thực hiện
một tính năng mới, câu hỏi đầu tiên đặt ra là liệu thiết kế hiện tại có phải là thiết kế tốt
nhất cho phép ta thực hiện các chức năng hay khơng. Nếu có, ta tiến hành thơng qua
một phương pháp Phát triển kiểm thử trước TFD. Nếu không, ta điều chỉnh lại nó một
cách cục bộ để thay đổi riêng phần thiết kế bị ảnh hưởng bởi tính năng mới, cho phép
ta dễ dàng bổ thêm các tính năng có thể. Kết quả là chất lượng thiết kế của ta sẽ ln
ln được nâng cao, do đó sẽ thuận lợi hơn khi làm việc với nó trong tương lai.

Một giả định cơ bản của TDD là ta có sẵn một nền tảng (framework) cho kiểm
thử mức đơn vị (unit-test). Những lập trình viên phần mềm theo phương pháp Agile
thường sử dụng các công cụ mã nguồn mở thuộc họ xUnit, như JUnit hay VBUnit, mặc
dù các công cụ thương mại cũng là những lựa chọn khả dĩ. Nếu khơng có những cơng
cụ như vậy thì TDD hầu như khơng thể thực
hiện được.

Hai nguyên tắc đơn giản cho TĐ: Trước tiên, ta nên viết mã xử lý nghiệp vụ mới
chỉ khi mẫu kiểm thử tự động thực hiện không thành công. Thứ hai, ta nên loại bỏ bất

kỳ sự trùng lặp mà ta tìm thấy. Những quy tắc đơn giản:

7

 Thiết kế với mã nguồn mà chúng chạy được và tạo ra kết quả phản hồi giữa các
quyết định.

 Tự viết các mẫu kiểm thử của riêng minh, không chờ người khác.
 Môi trường phát triển phải cung cấp được kết quả nhanh với những thay đổi nhỏ

(ví dụ như ta cần một trình biên dịch nhanh và chuỗi kiểm thử hồi quy).
 Thiết kế phải bao gồm những thành phần gắn kết, sự phụ thuộc lẫn nhau nhỏ để

thực hiện các mẫu kiểm thử dễ dàng hơn.
c. TDD và cách kiểm thử truyền thống

TDD là một kỹ thuật thiết kế với một hiệu ứng phụ là việc đảm bảo toàn bộ mã
nguồn được thực hiện kiểm thử mức đơn vị. Tuy nhiên, cịn có những điều quan trọng
hơn cả việc thực hiện kiểm thử. Ta sẽ vẫn cần xem xét các kỹ thuật kiểm thử khác nhau
như kiểm thử chấp nhận (acceptance test) hay kiểm thử dò hỏi (investigative test) theo
kiểu Agile. Ta có thể thực hiện nhiều những kiểu kiểm thử này trong dự án nếu như ta
chọn làm điều đó (vì ta nên làm).

Mặc dù TDD là một phương pháp kiểm thử và phát triển khác biệt, nhưng nó
thường được xem là một phần của phương pháp kiểm thử hộp trắng, với việc viết các
test case trước khi triển khai mã nguồn.
d. Tại sao nên dùng TDD?

Có nhiều lợi ích khi sử dụng phương pháp phát triển phần mềm Test-Driven
Development (TDD), bao gồm:


 Đảm bảo chất lượng mã nguồn: TDD tạo điều kiện để viết mã nguồn có chất
lượng cao hơn. Bằng cách viết test case trước khi triển khai mã nguồn, các nhà
phát triển phải suy nghĩ về yêu cầu và giao diện của hệ thống trước khi viết mã.
Điều này giúp đảm bảo rằng mã nguồn sẽ phản ánh đúng yêu cầu của dự án.

 Thúc đẩy thiết kế tốt hơn: TDD khuyến khích việc áp dụng các nguyên tắc thiết
kế tốt như SOLID (Single Responsibility, Open/Closed, Liskov Substitution,
Interface Segregation, Dependency Inversion) và DRY (Don't Repeat Yourself).
Bằng cách viết các test case trước, các nhà phát triển thường phải suy nghĩ về
cách thiết kế mã nguồn sao cho dễ kiểm thử, linh hoạt và tái sử dụng.

 Phát hiện lỗi sớm hơn: Việc viết test case trước khi triển khai mã nguồn giúp
phát hiện các lỗi sớm trong quá trình phát triển. Khi một test case khơng thành
công, người phát triển biết ngay lập tức rằng có lỗi xảy ra và có thể sửa chữa nó
ngay trước khi lỗi lan rộng ra các phần khác của hệ thống.

 Tăng tốc độ phát triển: Mặc dù có vẻ như việc viết test case trước khi triển khai
mã nguồn có thể tốn thời gian, nhưng thực tế cho thấy rằng TDD thường giúp
tăng tốc độ phát triển. Bằng cách loại bỏ thời gian cần thiết để gỡ lỗi mã nguồn
8

sau khi triển khai, và giảm thiểu số lượng lỗi xuất hiện trong quá trình phát triển,
TDD có thể giúp tiết kiệm thời gian tồn diện.
 Tăng tin cậy và tự tin trong việc thay đổi mã nguồn: Với một tập hợp robust của
test case, các nhà phát triển có thể dễ dàng kiểm tra xem các thay đổi trong mã
nguồn có làm ảnh hưởng đến tính năng hiện tại hay không. Điều này giúp họ tự
tin hơn khi thực hiện các thay đổi và refactor mã nguồn.
Tóm lại, việc sử dụng TDD có thể cung cấp nhiều lợi ích cho quá trình phát triển
phần mềm, bao gồm cải thiện chất lượng mã nguồn, phát hiện lỗi sớm, và tăng tốc độ

phát triển.

1.4 Mối quan hệ giữa quy trình phát triển phần mềm và kiểm thử

Mối quan hệ giữa quy trình phát triển phần mềm và kiểm thử là rất chặt chẽ và
tương tác. Cả hai đều là các hoạt động quan trọng trong quy trình phát triển phần mềm
và đều hướng đến mục tiêu chung là sản phẩm phần mềm chất lượng cao.

Dưới đây là một số mối quan hệ chính giữa quy trình phát triển phần mềm và
kiểm thử:

 Liên kết với quy trình phát triển phần mềm: Kiểm thử là một phần quan trọng
của quy trình phát triển phần mềm và thường được tích hợp vào các chu trình
phát triển như Agile, Waterfall, hoặc DevOps. Trong mỗi chu trình, các hoạt
động kiểm thử được lập kế hoạch và triển khai song song với các hoạt động phát
triển.

 Phản hồi và cải tiến liên tục: Kiểm thử cung cấp phản hồi quan trọng cho quá
trình phát triển phần mềm. Kết quả từ việc kiểm thử giúp các nhà phát triển hiểu
về chất lượng và tính chính xác của sản phẩm, từ đó họ có thể điều chỉnh hoặc
cải thiện mã nguồn để đạt được kết quả tốt hơn.

 Xác định yêu cầu và tiêu chí chấp nhận: Trong quy trình phát triển phần mềm,
các yêu cầu và tiêu chí chấp nhận được xác định từ đầu. Các test case sau đó
được phát triển dựa trên những yêu cầu này để đảm bảo rằng phần mềm đáp ứng
được những yêu cầu này.

 Kiểm thử hỗ trợ phát triển: Trong quy trình phát triển phần mềm, kiểm thử cung
cấp một cơ chế để đảm bảo rằng mã nguồn được phát triển đúng cách. Việc viết
test case trước khi triển khai mã nguồn (TDD) có thể thúc đẩy thiết kế tốt hơn và

giúp phát triển mã nguồn có chất lượng cao hơn.

 Bảo đảm chất lượng sản phẩm: Kiểm thử là một phần quan trọng của quy trình
đảm bảo chất lượng phần mềm (QA - Quality Assurance). Các hoạt động kiểm
thử như kiểm thử đơn vị, kiểm thử hệ thống và kiểm thử tích hợp giúp đảm bảo

9

rằng phần mềm được phát triển đáp ứng được các tiêu chuẩn chất lượng và yêu
cầu của khách hàng.
Tóm lại, quy trình phát triển phần mềm và kiểm thử là hai phần không thể thiếu và
tương tác chặt chẽ trong việc tạo ra các sản phẩm phần mềm chất lượng. Sự liên kết và
phối hợp giữa chúng giúp đảm bảo rằng sản phẩm phần mềm cuối cùng đáp ứng được
yêu cầu của khách hàng và có chất lượng cao.

2. Tổng quan về kiểm thử phần mềm

2.1 Khái niệm
Kiểm thử phần mềm là một quá trình hệ thống để đánh giá chất lượng và tính chính xác
của phần mềm. Nó bao gồm việc thiết kế, triển khai và thực hiện các test case để xác
định xem phần mềm hoạt động như mong đợi hay khơng, và để đảm bảo rằng nó đáp
ứng được các yêu cầu và tiêu chuẩn đã được xác định từ trước.
Dưới đây là một số khía cạnh quan trọng của khái niệm kiểm thử phần mềm:

 Đánh giá chất lượng: Một trong những mục tiêu chính của kiểm thử phần mềm là
đánh giá chất lượng của phần mềm. Các test case được thiết kế để kiểm tra tính
đúng đắn, tính tồn vẹn, hiệu suất, và khả năng đáp ứng của phần mềm.

 Xác định lỗi và vấn đề: Một phần quan trọng của kiểm thử phần mềm là phát
hiện và báo cáo lỗi, vấn đề hoặc không phù hợp trong phần mềm. Điều này giúp

các nhà phát triển sửa lỗi và cải thiện chất lượng phần mềm trước khi phát hành
sản phẩm.

 Đảm bảo yêu cầu được đáp ứng: Kiểm thử phần mềm đảm bảo rằng phần mềm
đáp ứng được các yêu cầu đã được xác định trước đó, bao gồm cả yêu cầu chức
năng và yêu cầu phi chức năng.

 Tăng tin cậy và tự tin: Việc thực hiện các test case và kiểm thử phần mềm giúp
tăng tin cậy và tự tin trong việc sử dụng phần mềm. Người dùng có thể tin tưởng
rằng phần mềm hoạt động đúng cách và sẽ không gặp phải các vấn đề không
mong muốn.

 Hỗ trợ quyết định: Kết quả từ các hoạt động kiểm thử phần mềm cung cấp thông
tin quan trọng để hỗ trợ quyết định trong quá trình phát triển và triển khai phần
mềm. Các nhà phát triển và quản lý có thể sử dụng thơng tin này để quyết định
về việc tiếp tục phát triển, sửa lỗi hoặc phát hành phần mềm.

10

2.2 Vai trò của kiểm thử phần mềm

Vai trị của kiểm thử phần mềm là vơ cùng quan trọng trong quy trình phát triển
phần mềm và có ảnh hưởng đến nhiều khía cạnh khác nhau của dự án. Dưới đây là một
số vai trị chính của kiểm thử phần mềm:

 Đảm bảo chất lượng sản phẩm: Một trong những vai trị chính của kiểm thử phần
mềm là đảm bảo chất lượng của sản phẩm cuối cùng. Bằng cách thực hiện các
test case và phát hiện lỗi, kiểm thử phần mềm giúp đảm bảo rằng sản phẩm đáp
ứng được các yêu cầu chất lượng và tiêu chuẩn đã đặt ra.


 Phát hiện lỗi và vấn đề sớm: Một vai trò quan trọng khác của kiểm thử phần
mềm là phát hiện lỗi và vấn đề trong phần mềm càng sớm càng tốt trong quá
trình phát triển. Việc phát hiện lỗi sớm giúp giảm thiểu chi phí và thời gian cần
thiết để sửa chữa sau này.

 Đảm bảo yêu cầu và yêu cầu chức năng: Kiểm thử phần mềm đảm bảo rằng phần
mềm đáp ứng được các yêu cầu chức năng và yêu cầu phi chức năng đã được xác
định từ trước. Điều này giúp đảm bảo rằng sản phẩm phát triển đáp ứng được
mục tiêu và nhu cầu của khách hàng.

 Tăng tin cậy và tự tin trong việc sử dụng sản phẩm: Khi phần mềm đã trải qua
các hoạt động kiểm thử và đã được xác minh là hoạt động đúng đắn, người dùng
có thể tin tưởng và sử dụng sản phẩm một cách tự tin hơn. Điều này tạo ra một
trải nghiệm tích cực cho người dùng và tăng cơ hội thành công của sản phẩm.

 Hỗ trợ quyết định: Kết quả từ các hoạt động kiểm thử phần mềm cung cấp thông
tin quan trọng để hỗ trợ quyết định trong quy trình phát triển và triển khai phần
mềm. Các nhà phát triển và quản lý có thể sử dụng thơng tin này để quyết định
về việc tiếp tục phát triển, sửa lỗi hoặc phát hành sản phẩm.

Tóm lại, kiểm thử phần mềm đóng vai trò quan trọng trong việc đảm bảo chất lượng
và tính chính xác của phần mềm, giúp phát hiện lỗi và vấn đề sớm, đảm bảo rằng yêu
cầu được đáp ứng, tăng tin cậy và tự tin trong việc sử dụng sản phẩm, và hỗ trợ quyết
định trong quy trình phát triển.

2.3 Các kỹ thuật kiểm thử phần mềm

Các cách kiểm thử truyền thống thường bao gồm:
 Kiểm thử hộp đen (Black Box Testing): Trong kiểm thử này, người kiểm thử


không cần biết về cấu trúc nội bộ của phần mềm. Họ tập trung vào đầu vào và
đầu ra dự kiến của chương trình để kiểm tra xem nó hoạt động như mong đợi hay
không.

11

 Kiểm thử hộp trắng (White Box Testing): Ngược lại với kiểm thử hộp đen, kiểm
thử hộp trắng yêu cầu kiểm tra cấu trúc nội bộ của mã nguồn. Người kiểm thử sẽ
tập trung vào việc kiểm tra các nhánh điều kiện, vòng lặp, và các cấu trúc lập
trình khác để đảm bảo rằng mã nguồn được thực hiện đúng cách.

 Kiểm thử hộp xám (Gray Box Testing): Là một sự kết hợp giữa kiểm thử hộp
đen và hộp trắng, trong kiểm thử hộp xám, người kiểm thử có một số kiến thức
về cấu trúc nội bộ của phần mềm, nhưng khơng hồn tồn biết mọi chi tiết. Họ
sử dụng thông tin này để tạo các test case hiệu quả.

2.4 Một số loại hình kiểm thử phổ biến

Dưới đây là một số loại hình kiểm thử phổ biến mà thường được áp dụng trong
quy trình phát triển phần mềm:

 Kiểm thử đơn vị (Unit Testing):
Mục tiêu: Kiểm tra tính đúng đắn của các thành phần nhỏ nhất của phần mềm, như hàm
hoặc phương thức.
Cách thực hiện: Viết các test case để kiểm tra từng chức năng của các thành phần đơn
vị.
Công cụ: PHPUnit (cho PHP), JUnit (cho Java), PyTest (cho Python), ...

 Kiểm thử tích hợp (Integration Testing):
Mục tiêu: Kiểm tra tính tương tác và tính hợp nhất giữa các thành phần của hệ thống.

Cách thực hiện: Kiểm tra các kết nối, giao tiếp giữa các thành phần và đảm bảo chúng
hoạt động cùng nhau như mong đợi.
Công cụ: Cucumber, Selenium, TestNG, ...

 Kiểm thử hồi quy (Regression Testing):
Mục tiêu: Đảm bảo rằng các thay đổi mới khơng ảnh hưởng đến tính chất hoạt động
của phần mềm trong các phiên bản trước đó.
Cách thực hiện: Chạy lại các test case đã tồn tại trước đó để kiểm tra xem các tính năng
đã hoạt động đúng như trước khi thực hiện các thay đổi mới.
Công cụ: Jenkins, Bamboo, TeamCity, ...

 Kiểm thử chấp nhận (Acceptance Testing):
Mục tiêu: Đảm bảo rằng phần mềm đáp ứng các yêu cầu của người dùng và khách
hàng.
Cách thực hiện: Tập trung vào kiểm tra các kịch bản sử dụng thực tế và yêu cầu chức
năng của phần mềm.
Công cụ: Selenium, Cucumber, SpecFlow, ...

 Kiểm thử hệ thống (System Testing):

12

Mục tiêu: Kiểm tra toàn bộ hệ thống phần mềm đã hồn chỉnh.
Cách thực hiện: Kiểm tra tính năng, hiệu suất, bảo mật và các yếu tố khác của hệ thống.
Công cụ: JMeter, LoadRunner, SoapUI, ...

 Kiểm thử hiệu suất (Performance Testing):
Mục tiêu: Đánh giá và kiểm tra hiệu suất của phần mềm trong các điều kiện hoạt động
khác nhau.
Cách thực hiện: Kiểm tra thời gian phản hồi, tải trọng, và tài nguyên hệ thống trong các

tình huống cụ thể.
Công cụ: Apache JMeter, LoadRunner, Gatling, ...

 Kiểm thử bảo mật (Security Testing):
Mục tiêu: Kiểm tra và đánh giá tính bảo mật của hệ thống phần mềm.
Cách thực hiện: Phát hiện các lỗ hổng bảo mật, xác thực, ủy quyền và mã độc.
Công cụ: OWASP ZAP, Burp Suite, Nessus, ...

 Kiểm thử giao diện người dùng (UI Testing):
Mục tiêu: Kiểm tra giao diện người dùng để đảm bảo tính tương tác và trải nghiệm
người dùng tốt nhất.
Cách thực hiện: Kiểm tra hành vi của giao diện người dùng và xác định xem nó có hoạt
động như mong đợi khơng.
Cơng cụ: Selenium, TestComplete, Cypress, ...

Các loại kiểm thử này thường được sử dụng kết hợp để đảm bảo rằng phần mềm
được kiểm tra toàn diện và đáp ứng được các yêu cầu chất lượng và tiêu chuẩn.

13

CHƯƠNG 2: KẾ HOẠCH KIỂM THỬ

1 Giới thiệu

1.1 Mục đích

 Xác định thơng tin cơ bản về dự án kiểm thử và các chức năng được kiểm thử, chức
năng không được kiểm thử.

 Liệt kê những yêu cầu cho việc kiểm thử.

 Xây dựng bộ Test Plan và bộ Test Case phù hợp cho từng chức năng được kiểm thử.
 Kiểm thử Website theo bộ Test Case đã xây dựng.
 Thống kê các lỗi tìm được (nếu có) và cập nhật trạng thái thực tế vào file Test Case.

1.2 Tổng quan
 Website K-Office là website cho phép chỉnh sửa tài liệu thời gian thực và tạo các
lớp học trực tuyến

1.3 Phạm vi

Kế hoạch kiểm thử được áp dụng để kiểm thử những chức năng của trang web
được đưa ra sau đây:

 Đăng ký, đăng nhập
 Chức năng tạo thư mục, chỉnh sửa thư mục
 Chức năng K-Word, K-Learning.

1.4 Lịch trình cơng việc

Cơng việc Tài liệu liên quan Thời gian Ngày bắt đầu Ngày kết thúc
Test Plan 2 ngày
Lập kế Test Plan 1 ngày 28/02/2024 29/02/2024
hoạch kiểm 2 ngày
thử Test Design 4 ngày 1/03/2024 1/03/2024
Test Case 2/03/2024 3/03/2024
Xem lại tài liệu
6/03/2024 9/03/2024
Phác thảo những 14
Test Case cần có


Viết bảng
Test Case

chi tiết Test Case 1 ngày 10/03/2024 11/03/2024
14/03/2024
Xem lại bộ Test Test Case 3 ngày 12/03/2024 16/03/2024
Case
Test Case
Tiến hành kiểm
thử Test 2 ngày 15/03/2024

Đánh giá và Report
tổng hợp kết
quả kiểm thử

Bảng 2.1 Lịch trình cơng việc

2. Chiến lược kiểm thử

2.1 Kiểm thử chức năng

Mục đích kiểm thử Đảm bảo các chức năng được kiểm thử (Đăng nhập,K-word, K- learning, K-sheet) hoạt động tốt, khơng sai sót.

Kỹ thuật Thực thi tất cả các test case được viết, theo dõi và lưu lại kết quả
để xác định:

- Kết quả mong đợi khi dữ liệu hợp lệ được sử dụng.
- Thông báo lỗi khi khi kiểm thử với dữ liệu không hợp lệ.

Tiêu chuẩn dừng Các Test Case ở trạng thái Pass chiếm khoảng 95% tổng số Test

Case và hệ thống hoạt động ổn định.

Chịu trách nhiệm kiểm thử Tester

Cách kiểm thử Thực hiện kiểm thử thủ công bằng tay theo các bước thực hiện
đã được liệt kê ở test case.

Xử lý ngoại lệ Liệt kê tất cả các vấn đề liên quan phát sinh trong quá trình thực
thi kiểm thử.

Bảng 2.2 kiểm thử chức năng

2.2 Kiểm thử khả năng sử dụng

Đảm bảo các chức năng được kiểm thử khi hoạt động khơng
Mục đích kiểm thử có độ trễ hoặc trễ thời gian ngắn, xử lý được nhiều tác vụ mà

không mất nhiều thời gian.

Kỹ thuật Thực thi tất cả các test case được viết, theo dõi và lưu lại kết quả
15

để xác định:
- Kết quả mong đợi khi dữ liệu hợp lệ được sử dụng.
- Thông báo lỗi khi khi kiểm thử với dữ liệu không hợp lệ.

Tiêu chuẩn dừng - Giao diện có bố cục rõ ràng, cỡ chữ màu chữ dễ nhìn.
- Khơng có lỗi chính tả, khơng có hình ảnh hiển thị bị lỗi.
Chịu trách nhiệm - Thời gian xử lý dữ liệu ngắn (dưới 3 giây).
kiểm thử

Cách kiểm thử Tester
Xử lý ngoại lệ
Thực hiện kiểm thử thủ công bằng tay.
Liệt kê tất cả các vấn đề liên quan phát sinh trong quá trình thực
thi kiểm thử.

Bảng 2.3 Kiểm thử khả năng sử dụng

3, Thiết kế Test Case

3.1 Trang đăng ký

ID MÔ TẢ CÁC BƯỚC THỰC KẾT QUẢ THỰC TEST CASE HIỆN MONG ĐỢI TẾ

Ô Textbox nhập thông tin người dùng

Kiểm tra Bỏ trống Email, nhập Hiển thị thông

R_1 chức năng đúng các ơ cịn lại báo lỗi Email Pass

Validate của trống

form đăng ký Nhập email sai định Hiển thị thông

R _2 tài khoản dạng: “123456”, nhập báo lỗi email Pass

đúng các ơ cịn lại không hợp lệ

Bỏ trống Tên tài Hiển thị thông


R _3 khoản, nhập đúng các báo lỗi Tên tài Pass

ô còn lại khoản trống

Bỏ trống số điện thoại Hiển thị thông

R _4 (10 <= số ký tự =< 12, báo lỗi Số điện nhập đúng các ô cịn thoại khơng hợp Pass

lại lệ

R _5 Bỏ trống ô mật khẩu, Thông báo lỗi Pass

nhập đúng các ơ cịn Mật khẩu trống

lại

16

Nhập mật khẩu <6 ký Thông báo lỗi

R _6 tự mật khẩu không Pass

hợp lệ

Nhập mật khẩu >6 ký Thông báo lỗi

tự nhưng ô nhập mật mật khẩu không

khẩu và nhập lại mật trùng khớp


R _7 khẩu không trùng Pass

khớp

Kiểm tra 1. Nhập các thông tin Thông báo tạo
hợp lệ tài khoản thành
R_8 chức năng 2. Nhấn vào nút đăng công Pass
tạo tài khoản ký
THỰC
Bảng 2.4 Test case trang đăng ký TẾ
Pass
3.2 Trang đăng nhập Pass
Pass
ID MÔ TẢ CÁC BƯỚC THỰC KẾT QUẢ
LG_1 TEST CASE HIỆN MONG ĐỢI Pass
LG__2 Pass
LG__3 Kiểm tra Bỏ trống tên tài khoản Thông báo lỗi
chức năng Tên tài khoản 17
LG__4 Validate của 1. Nhập tên tài khoản trống
LG__5 form đăng 2. Bỏ trống ô mật khẩu Thông báo lỗi
nhập 1. Nhập tên tài khoản Mật khẩu trống
2. Nhập mật khẩu <6 Thông báo lỗi
Kiểm tra ký tự mật khẩu phải
chức năng 1. Nhập sai tên tài tối thiểu 6 ký tự
xác thực khoản Thông báo lỗi tài
2. Nhập mật khẩu hợp khoản hoặc mật
lệ khẩu không
3. Ấn nút đăng nhập chính xác
1. Nhập đúng tên tài
khoản Thông báo lỗi tài

2. Nhập sai mật khẩu khoản hoặc mật
3. Ấn nút đăng nhập khẩu không
chính xác

1. Nhập đúng tên tài Hệ thống thông

khoản báo đăng nhập

LG__6 2. Nhập đúng mật thành công, Pass
3.3 Trang tạo thư mục
khẩu chuyển tới giao THỰC
TẾ
3. Ấn nút đăng nhập diện Trang chủ Pass
Fail
Bảng 2.5 Test case trang đăng nhập Pass

ID MÔ TẢ CÁC BƯỚC THỰC KẾT QUẢ TEST CASE HIỆN MONG ĐỢI Fail
18
CF_1 Kiểm tra hiển Tạo thư mục mới Hiển thị form
CF_ 2 thị của giao Ấn nút tạo thư mục nhập tên thư
CF_3 diện tạo thư mới mục
mục
CF_4 Kiểm tra 1. Bỏ trống ô Hiển thị thông
chức năng nhập tên thư mục báo lỗi tên thư
Validate của 2. Ấn nút xác nhận mục trống,
form nhập tên không cho phép
thư mục 1. Nhập tên thư mục tạo tài liệu
Kiểm tra cần tạo 1. Hiển thị thông
chức năng tạo 2. Ấn nút xác nhận báo tạo thư mục
thư mục mới thành công

2. Cập nhật lại
Kiểm tra 1. Tạo 1 thư mục bất danh sách thư
chức năng kỳ mục
Không cho 2. Tạo 1 thư mục tiếp Thông báo lỗi
phép tạo các theo trùng tên với thư Tên thư mục đã
thư mục mục vừa tạo tồn tại
trùng tên
trong cùng 1
thư mục chứa


Đổi tên thư mục

Kiểm tra Nhấp chuột trái 2 lần Hiển thị ra

chức năng liên tục vào ô Tên thư Textbox cho

RF_1 hiển thị mục phép nhập tên Pass

Textbox nhập thư mục mới

tên thư mục

Kiểm tra 1. Nhấp chuột trái 2 1. Hiển thị lỗi

chức năng lần liên tục vào ô Tên Tên thư mục

không cho thư mục không hợp lệ

RF_2 phép tạo tên 2. Bỏ trống tên thư 2. Đặt lại tên thư Fail


thư mục mục mục như ban

trống 3. Nhấp chuột ra khỏi đầu

ô Textbox

Kiểm tra 1. Nhấp chuột trái 2 1. Hiển thị lỗi

chức năng lần liên tục vào ô Tên Tên thư mục

không cho thư mục không đã tồn tại

RF_3 các thư mục 2. Nhập tên thư mục 2. Đặt lại tên thư trong cùng 1 mới giống với thư mục mục như ban Fail

thư mục gốc đã có sẵn đầu

trùng tên 3. Nhấp chuột ra khỏi

ô Textbox

Kiểm tra 1. Nhấp chuột trái 2 1. Thông báo đổi

chức năng lần liên tục vào ô Tên tên thư mục

đổi tên thư thư mục thành công

mục khi đặt 2. Nhập tên thư mục 2. Cập nhật tên

RF_4 tên hợp lệ mới hợp lệ thư mục mới Pass


3. Nhấp chuột ra khỏi

ô Textbox

RMF_1 Kiểm tra Xóa thư mục Hiển thị lên ô Pass
chức năng Ấn nút xóa thư mục xác nhận: “Bạn 19
hiển thị ô xác có muốn xóa thư


×