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

KỸ THUẬT KIỂM THỬ CẤU HÌNH VÀ ỨNG DỤNG

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

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
======***======

BÁO CÁO BÀI TẬP LỚN HỌC PHẦN
KIỂM THỬ PHẦN MỀM

NGHIÊN CỨU CÁC KỸ THUẬT KIỂM
THỬ CẤU HÌNH VÀ ỨNG DỤNG
GVHD:
Nhóm - Lớp:
Thành viên:

Th. Hoàng Quang Huy
9

Hà Nội, Năm 2022


LỜI MỞ ĐẦU
Bất kỳ 1 sản phẩm phần mềm nào cũng chắc chắn có lỗi, vì sản phẩm
phầm mềm do con người xây dựng nên, dù có cẩn trọng, có giỏi đến mức
nào thì cũng khơng thể đảm bảo sản phẩm mình tạo ra là khơng có lỗi. Do
đó, sẽ cần một người, nhóm hoặc tổ chức độc lập kiểm thử xem sản phẩm
đó có vấn đề hay có lỗi gì hay khơng. Để kiểm thử phần mềm thì chúng ta
cần phải có kế hoạch, chiến lược kiểm thử cũng như các kỹ thuật các
phương pháp kỹ hiệu quả cho mỗi mức độ kiểm thử. Ở đề tài bài tập lớn
này, nhóm em làm về kỹ thuật kiểm thử cấu hình (configuration testing) và
kiếm thử ứng dụng (application testing).

1




Mục lục
LỜI MỞ ĐẦU......................................................................................................1
DANH MỤC HÌNH ẢNH...................................................................................4
Chương 1. KIỂM THỬ CẤU HÌNH (CONFIGURATION TESTING)........5
1.1 Khái niệm..............................................................................................5
1.2 Ví dụ......................................................................................................5
1.3 Điều kiện...............................................................................................6
1.4 Mục tiêu.................................................................................................7
1.5 Cách thực hiện.......................................................................................8

2

1.5.1

Kiểm thử cấu hình phần mềm........................................................8

1.5.2

Kiểm thử cấu hình phần cứng......................................................10

1.6 Các trường hợp thử nghiệm mẫu.........................................................11
Chương 2. KIỂM THỬ ỨNG DỤNG (APPLICATION TESTING)............13
2.1 Khái niệm............................................................................................13
2.2 Cách để kiểm thử ứng dụng................................................................13
2.2.1

Kiểm thử ứng dụng web...............................................................14


2.2.2

Kiểm thử ứng dụng trên máy tính để bàn.....................................15

2.2.3

Kiểm thử ứng dụng di động..........................................................16

2.3 Phương pháp kiểm thử ứng dụng........................................................16
2.3.1

Kiểm thử hộp đen.........................................................................17

2.3.2

Kiểm thử hộp trắng.......................................................................17

2.3.3

Kiểm thử hộp xám........................................................................20

2.4 Kế hoạch để kiểm thử ứng dụng.........................................................20
2.5 Công cụ kiểm thử ứng dụng................................................................21


2.6 Lựa chọn phương pháp tối ưu để kiểm thử ứng dụng.........................21
2.7 Các khó khăn khi kiểm thử ứng dụng.................................................22
2.8 Kiểm thử ứng dụng di động................................................................23
2.9 Một vài ví dụ về kiểm thử ứng dụng trên thiết bị di động..................23
2.10


Các trở ngại của kiểm thử ứng dụng trên thiết bị di động...............24

Chương 3. Thực hành kiểm thử.......................................................................25
3.1 Công cụ kiểm thử................................................................................25
3.1.1

Công cụ kiểm thử ứng dụng mobile - testRigor...........................25

3.1.2

Công cụ kiểm thử website - BrowerStack....................................25

3.2 Kiểm thử với testRigor........................................................................26

3

3.2.1

Tạo máy ảo và viết các kịch bản kiểm thử...................................29

3.2.2

Tiến hành kiểm thử.......................................................................30

3.3 Kiểm thử với BrowserStack................................................................32
3.3.1

Khởi động website và chọn cấu hình kiểm thử............................33


3.3.2

Tiến hành kiểm thử, kiểm tra kết quả và xác định lỗi..................34

KẾT LUẬN..................................................................................................37
LỜI CẢM ƠN..............................................................................................38
TÀI LIỆU THAM KHẢO............................................................................39


DANH MỤC HÌNH ẢNH
Hình 3.1. Cơng cụ kiểm thử testRigor.............................................................23
Hình 3.2. Cơng cụ kiểm thử BrowerStack......................................................24
Hình 3.3. Màn hình chính................................................................................24
Hình 3.4. Màn hình login................................................................................24
Hình 3.5. Màn hình quản lý lịch đặt................................................................25
Hình 3.6. Menu................................................................................................25
Hình 3.7. Màn hình đặt lịch.............................................................................26
Hình 3.8. Màn hình danh sách barbershop......................................................26
Hình 3.9. Cài đặt máy ảo.................................................................................27
Hình 3.10. Kịch bản kiểm thử.........................................................................27
Hình 3.11. Kết quả tổng quát..........................................................................28
Hình 3.12. Giao diện website..........................................................................29
4

Hình 3.13. Chọn phương pháp test..................................................................30
Hình 3.14. Chọn cấu hình kiểm thử................................................................31
Hình 3.15. Bắt đầu kiểm thử...........................................................................32
Hình 3.16. Kết quả kiểm thử...........................................................................32



Chương 1. KIỂM THỬ CẤU HÌNH
(CONFIGURATION TESTING)
1.1 Khái niệm
- Kiểm thử cấu hình là một kỹ thuật kiểm tra phần mềm trong đó ứng
dụng phần mềm được kiểm tra với nhiều sự kết hợp giữa phần mềm và
phần cứng để đánh giá các yêu cầu chức năng và tìm ra cấu hình tối ưu
mà ứng dụng phần mềm hoạt động mà khơng có bất kỳ lỗi hoặc sai sót
nào.
- Kiểm thử cấu hình là một kiểm thử phần mềm trong đó ứng dụng đang
được kiểm tra phải được kiểm tra bằng cách sử dụng kết hợp nhiều
phần mềm và phần cứng.
5

1.2 Ví dụ
- Các ứng dụng Máy tính để bàn sẽ có 2 tầng hoặc 3 tầng, ở đây chúng ta
sẽ xem xét ứng dụng Máy tính để bàn 3 tầng được phát triển
bằng ASP.Net và bao gồm Máy khách, Máy chủ Business Logic và
Máy chủ cơ sở dữ liệu trong đó mỗi thành phần hỗ trợ các nền tảng
được đề cập
 Nền tảng máy khách - Windows XP, Window7 OS, windows 8
OS, v.v.
 Nền tảng máy chủ - Windows Server 2008 R2, Windows Server
2008 R2, Windows Server 2012R2
 Cơ sở dữ liệu –SQL Sever 2008, SQL Server 2008R2, SQL
Server 2012, v.v.


- Người thử nghiệm phải kiểm tra sự kết hợp giữa máy khách, máy chủ
và cơ sở dữ liệu với sự kết hợp của các nền tảng và phiên bản cơ sở dữ
liệu nêu trên để đảm bảo rằng ứng dụng đang hoạt động bình thường và

khơng bị lỗi.
- Kiểm thử cấu hình khơng chỉ giới hạn ở phần mềm mà cịn có thể áp
dụng cho phần cứng, đó là lý do tại sao nó cịn được gọi là kiểm thử
cấu hình phần cứng, nơi kiểm tra các thiết bị phần cứng khác nhau như
máy in, máy quét, web cam, v.v. hỗ trợ ứng dụng đang được kiểm tra.

6

1.3 Điều kiện
Đối với bất kỳ dự án nào trước khi bắt đầu với kiểm tra cấu hình, chúng ta
phải tuân theo một số điều kiện tiên quyết:
- Tạo ma trận bao gồm các kết hợp khác nhau của cấu hình phần mềm và
phần cứng
- Ưu tiên các cấu hình vì khó kiểm tra tất cả các cấu hình
- Kiểm tra mọi cấu hình dựa trên mức độ ưu tiên.


1.4 Mục tiêu
- Xác thực ứng dụng để xác định xem nó có đáp ứng các u cầu về cấu
hình hay không
- Gây ra lỗi theo cách thủ công giúp xác định các lỗi khơng được tìm
thấy một cách hiệu quả trong q trình thử nghiệm (Ví dụ: thay đổi cài
đặt khu vực của hệ thống như Múi giờ, Ngôn ngữ, Định dạng ngày giờ,
v.v.)
- Xác định cấu hình tối ưu của ứng dụng đang thử nghiệm.
- Phân tích hiệu suất hệ thống bằng cách thêm hoặc sửa đổi các tài
nguyên phần cứng như Load Balancers, tăng hoặc giảm dung lượng bộ
7

nhớ, kết nối các kiểu máy in khác nhau, v.v.

- Phân tích Hiệu quả của hệ thống dựa trên mức độ ưu tiên, mức độ hiệu
quả của các bài kiểm tra với các nguồn lực sẵn có để đạt được cấu hình
hệ thống tối ưu.
- Xác minh hệ thống trong Môi trường phân tán theo địa lý để xác minh
hệ thống hoạt động hiệu quả như thế nào.
- Đối với Ví dụ: Máy chủ ở một vị trí khác và máy khách ở một vị trí
khác, hệ thống sẽ hoạt động tốt bất kể cài đặt hệ thống.
- Xác minh xem lỗi có thể tái tạo dễ dàng như thế nào bất kể các thay đổi
cấu hình.


- Đảm bảo có thể theo dõi các mục ứng dụng như thế nào bằng cách ghi
lại và duy trì các phiên bản có thể dễ dàng nhận dạng một cách hợp lý.
- Xác minh mức độ quản lý của các mục ứng dụng trong suốt vòng đời
phát triển phần mềm.

1.5 Cách thực hiện
Có hai loại kiểm thử cấu hình như được đề cập:
- Kiểm thử cấu hình phần mềm.
- Kiểm thử cấu hình phần cứng.
8

1.5.1 Kiểm thử cấu hình phần mềm
- Kiểm thử cấu hình phần mềm là kiểm thử Ứng dụng đang được kiểm
thử với nhiều hệ điều hành, các bản cập nhật phần mềm khác nhau, v.v.
Kiểm thử cấu hình phần mềm rất tốn thời gian vì cần thời gian để cài
đặt và gỡ cài đặt các phần mềm khác nhau được sử dụng để kiểm thử.
- Một trong những cách tiếp cận được áp dụng để kiểm thử cấu hình
phần mềm là kiểm thử trên máy ảo. Máy ảo là một môi trường được cài
đặt trên phần mềm và hoạt động giống như một phần cứng vật lý và

người dùng sẽ có cảm giác giống như một máy vật lý. Máy ảo mơ
phỏng cấu hình thời gian thực.


- Thay vì cài đặt và gỡ cài đặt phần mềm trên nhiều máy vật lý, tốn thời
gian, tốt hơn hết bạn nên cài đặt ứng dụng / phần mềm đó trong máy ảo
và tiếp tục thử nghiệm. Q trình này có thể được thực hiện bằng cách
có nhiều máy ảo, điều này giúp đơn giản hóa cơng việc của người kiểm
tra
- Kiểm thử cấu hình phần mềm thường có thể bắt đầu khi
 Các yêu cấu về khả năng cấu hình được kiểm thử được chỉ dịnh
 Mơi trường thử nghiệm đã sẵn sàng
 Nhóm kiểm thử được đào tạo tốt về kiểm thử cấu hình
 Bản dựng được phát hành là đơn vị và đã vượt qua bài kiểm thử
tích hợp
- Chiến lược kiểm thử điển hình được tuân theo để kiểm thử cấu hình
phần mềm là kiểm thử chức năng trên nhiều cấu hình phần mềm để xác
minh xem ứng dụng được kiểm tra có hoạt động như mong muốn mà

9

khơng có bất kỳ sai sót hoặc lỗi nào hay không.
- Một chiến lược khác là đảm bảo hệ thống đang hoạt động tốt bằng cách
làm thủ cơng các trường hợp kiểm thử và xác minh tính hiệu quả.

Ví dụ
- Giả sử có một ứng dụng ngân hàng, ứng dụng này phải được kiểm thử
khả năng tương thích trên nhiều trình duyệt khi ứng dụng được lưu trữ
trong mơi trường có tất cả các điều kiện tiên quyết, nó có thể vượt qua
kiểm thử đơn vị và kiểm thử tích hợp trong phịng thí nghiệm thử

nghiệm.


- Nhưng nếu cùng một ứng dụng được cài đặt ở một nơi khách hàng và
các máy thiếu một số bản cập nhật của phần mềm hoặc các phiên bản
mà ứng dụng đó phụ thuộc trực tiếp hoặc gián tiếp, thì ứng dụng đó có
thể bị lỗi. Để tránh tình huống này, bạn nên không thực hiện các bài
kiểm thử theo cách thủ công bằng cách loại bỏ một số u cầu về khả
năng cấu hình và sau đó tiến hành kiểm thử.

Kiểm thử đơn
vị
Thành phần 1
Kiểm thử
10

Thành phần 2

tích hợp

Thành phần 3

Hình 1.1. Mơ hình kiểm thử cấu hình

Mơi trường kiểm thử

1.5.2 Kiểm thử cấu hình phần cứng
- Kiểm thử cấu hình phần cứng thường được thực hiện trong phịng thí
nghiệm, nơi chúng ta tìm thấy các máy vật lý có phần cứng khác nhau
được gắn vào chúng.

- Bất cứ khi nào một bản dựng được phát hành, phần mềm phải được cài
đặt trong tất cả các máy vật lý có phần cứng được gắn vào và bộ thử


nghiệm phải được chạy trên mỗi máy để đảm bảo rằng ứng dụng hoạt
động tốt.
- Để thực hiện tác vụ trên, cần phải nỗ lực đáng kể để cài đặt phần mềm
trên mỗi máy, gắn phần cứng và chạy thủ cơng hoặc thậm chí để tự
động hóa quy trình nói trên và chạy bộ thử nghiệm.
- Ngoài ra, trong khi thực hiện kiểm thử cấu hình phần cứng, chúng ta
chỉ định loại phần cứng cần kiểm thử và có rất nhiều phần cứng và thiết
bị ngoại vi của máy tính khiến chúng ta khơng thể chạy tất cả chúng. Vì
vậy, nhiệm vụ của người kiểm thử là phân tích phần cứng nào được
người dùng sử dụng chủ yếu và cố gắng thực hiện kiểm thử dựa trên
mức độ ưu tiên.

11

1.6 Các trường hợp thử nghiệm mẫu
- Hãy xem xét một Kịch bản Ngân hàng để kiểm thử khả năng tương
thích của phần cứng. Ứng dụng Ngân hàng được kết nối với Máy đếm
tiền phải được thử nghiệm với các mẫu khác nhau như Rolex, Strob,
Maxsell, StoK, v.v.
- Hãy lấy một số trường hợp thử nghiệm mẫu để kiểm tra Máy đếm ghi
chú
 Xác mình kết nối của ứng dụng với mơ hình rolex khi các điều
kiện tiên quyết khơng được cài đặt


 Xác mình kết nối của ứng dụng với mơ hình rolex khi các điều

kiện tiên quyết được cài đặt

 Xác minh xem hệ thống có đang đếm các ghi chú chính xác hay
khơng

 Xác minh xem hệ thống có đang đếm các ghi chú khơng chính
xác hay khơng

 Xác minh các ghi chú giả mạo
12
 Xác minh thời gian phản hồi

 Xác minh xem các ghi chú giả có được phát hiện hay không, v.v
- Các trường hợp thử nghiệm trên dành cho một kiểu máy và phải thử
nghiệm giống nhau với tất cả các kiểu máy hiện có trên thị trường bằng
cách thiết lập chúng trong phịng thí nghiệm thử nghiệm. Do đó, bạn
nên th ngồi việc kiểm tra cấu hình phần cứng cho các tổ chức
chuyên về chúng.


Chương 2.

KIỂM

THỬ ỨNG DỤNG
(APPLICATION
TESTING)
2.1 Khái niệm
- Kiểm thử ứng dụng được định nghĩa là một loại kiểm thử phần mềm,
được tiến hành thông qua các tập lệnh với động cơ là tìm ra lỗi trong

phần mềm. Nó giải quyết các bài kiểm tra cho tồn bộ ứng dụng.
- Nó giúp nâng cao chất lượng ứng dụng của bạn đồng thời giảm chi phí,
tối đa hóa ROI và tiết kiệm thời gian phát triển.
13
- Trong Kỹ thuật phần mềm, Kiểm thử ứng dụng có thể được thực hiện
trong nhiều danh mục khác nhau như GUI, chức năng, cơ sở dữ liệu
(phụ trợ), kiểm tra tải, v.v.
- Đối với Kiểm thử ứng dụng, vòng đời kiểm thử bao gồm các giai đoạn
khác nhau bao gồm phân tích yêu cầu, lập kế hoạch kiểm tra, phân tích
kiểm tra, thiết kế kiểm tra, thực thi kiểm tra và báo cáo lỗi, v.v.

2.2 Cách để kiểm thử ứng dụng
- Các ứng dụng và sản phẩm phần mềm có một số biến thể về các tính
năng mà chúng hỗ trợ cũng như các quy trình mà chúng thực hiện. Vì
vậy, Kiểm thử ứng dụng đảm bảo rằng một chương trình hoặc ứng
dụng cụ thể hoạt động bình thường.


- Vòng đời cho Kiểm thử ứng dụng bao gồm bốn giai đoạn:
 Thiết kế kế hoạch kiểm tra dựa trên các yêu cầu ứng dụng
 Phát triển các trường hợp thử nghiệm thủ công và tập lệnh thử
nghiệm tự động
 Thực hiện các bài kiểm tra chức năng để xác nhận các yêu cầu
ứng dụng
 Thực hiện các bài kiểm tra tải và điều chỉnh hiệu suất ứng dụng

14

Design


Dev

Test

Hình 2.1. Vòng đời kiểm thử

- Kiểm thử ứng dụng được phân loại thành ba phân đoạn
 Kiểm thử ứng dụng web
 Kiểm thử ứng dụng trên máy tính để bàn
 Kiểm thử ứng dụng di động

Tune


2.2.1 Kiểm thử ứng dụng web
- Kiểm thử chức năng và hiệu suất
- Thử nghiệm trên nhiều trình duyệt
- Kiểm thử tải trọng và ứng suất
- Kiểm thử sự tuân thủ và hồi quy
- Kiểm thử sự chấp nhận của người dùng
- Thử nghiệm beta

15

- Thử nghiệm thăm dò và khói
- Hỗ trợ đa ngơn ngữ và kiểm tra khả năng tương thích

2.2.2 Kiểm thử ứng dụng trên máy tính để bàn
- Kiểm thử giao diện người dùng
- Kiểm thử khả năng sử dụng

- Kiểm thử năng suất
- Kiểm thử khả năng tương thích (Phần mềm / Phần cứng)


- Thử nghiệm chức năng
- Kiểm tra bảo mật

2.2.3 Kiểm thử ứng dụng di động
- Kiểm thử giao diện người dùng
- Kiểm thử dựa trên quy tắc
16

- Kiểm thử hồi quy
- Thử nghiệm chức năng
- Kiểm tra bảo mật

2.3 Phương pháp kiểm thử ứng dụng
- Phương pháp kiểm thử là một cách khác để đảm bảo rằng một ứng
dụng phần mềm được kiểm tra đầy đủ. Phương pháp kiểm thử khơng có
tổ chức và kém có thể dẫn đến một sản phẩm khơng ổn định.
- Có ba cách Kiểm thử được thực hiện:
 Kiểm thử hộp đen
 Kiểm thử hộp trắng
 Kiểm thử hộp xám


2.3.1 Kiểm thử hộp đen
- Kỹ thuật kiểm thử hộp đen được sử dụng phổ biến để kiểm thử chức
năng, kiểm thử phi chức năng và kiểm thử hồi quy. Trong thử nghiệm
hộp đen, chiến lược được sử dụng là:

 Kiểm thử lớp tướng đương
 Kiểm thử giá trị ranh giới
 Kiểm thử bảng quyết định
 Bảng chuyển đổi trạng thái

2.3.2 Kiểm thử hộp trắng

17
-

Kiểm thử Hộp Trắng (còn gọi là Clear Box Testing, Open Box Testing,
Glass Box Testing, Transparent Box Testing, Code-Based Testing hoặc
Structural Testing) là một phương pháp kiểm thử phần mềm trong đó
tester biết về cấu trúc nội bộ / thiết kế. Người kiểm tra chọn đầu vào để
thực hiện các đường dẫn thông qua mã và xác định đầu ra thích hợp.
Kiến thức lập trình và kiến thức thực hiện là rất cần thiết trong kiểm thử
hộp trắng.

-

Kiểm thử hộp trắng bao gồm phân tích dịng dữ liệu, điều khiển dịng,
dịng thơng tin, mã thực hành, ngoại lệ và những lỗi trình bày trong hệ
thống để kiểm tra những hành động của phần mềm không được định
hướng trước.

-

Các kỹ thuật kiểm thử hộp trắng phổ biến:



 Kiểm thử đường cơ bản (Đồ thị dòng)
 Kiểm thử dựa trên luồng điều khiển
 Kiểm thử lặp
 Kiểm thử đột biến
- Test cases của kỹ thuật white box thường được viết theo các rẽ nhánh
câu lệnh, các điểm quyết định (cả quyết định đúng và quyết định sai),
các vòng lặp khác nhau và kiểm tra cấu trúc data bên trong của ứng
dụng với mục tiêu test bao phủ nhiều nhất có thể các câu lệnh, điểm
quyết định và các rẽ nhánh trong code. Nhờ đó sẽ giúp ích rất nhiều cho
tester tạo testcase hướng automation

- Độ bao phủ test là tỉ lệ (tính theo %) test case đã được thực hiện trên
18

tổng số test case cần thiết cho ứng dụng. Nếu tỉ lệ này càng cao thì ứng
dụng càng được test kỹ. Mặc dù việc đảm bảo ứng dụng có test
coverage là 100% trong một số trường hợp là bất khả thi, nhưng ta vẫn
sẽ luôn cố gắng để đạt được kết quả gần với con số đó nhất

- Độ bảo phủ test (the test coverage) giúp QA-tester đo được bộ testcase
họ tạo ra đã đảm bảo được đầy đủ cho tất cả các trường hợp xử lý khi
chạy chương trình chưa.
- Tiêu chuẩn của điều kiện bao phủ:
 Code coverage
 Bao phủ tính năng (Function coverage)


2.3.2.1 Code coverage
- Là phương pháp thống kê dựa vào số lương code được kiểm tra. Trong
code coverage có thể phần chia thành các loại sau:

 Bao phủ dòng lệnh (Statement coverage)
 Bao phủ các nhánh (Branch/Decision coverage)
 Bao phủ điều kiện (Condition coverage)
 Bao phủ đường dẫn (Path coverage)

2.3.2.2 Bao phủ tính năng (Function coverage) tính năng (Function coverage)
19

- Function coverage dựa trên việc thực thi các chức năng. Là phương
pháp đánh giá mức độ bao phủ của thiết kế dựa trên tính năng đã được
kiểm tra. Đối với phương pháp này, việc định ra những tính năng nào
cần kiểm tra sẽ quyết định chất lượng của function coverage.
-

Ví dụ: ta có các hàm cộng, trừ, nhân, chia và hàm tính tốn. Ta phải
thực hiện test case cho hàm tính tốn để các hàm cộng trừ nhân chia
phải được gọi ít nhất 1 lần.



×