tìm hiểu về kỹ thuật kiểm thử phần mềm

95
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÀI TẬP LỚN KỸ THUẬT PHẦN MỀM Nội dung : Tìm hiểu về kỹ thuật Kiểm thử phần mềm Giáo viên hướng dẫn TS. Vũ Thị Hương Giang Sinh viên thực hiện : 1. Nguyễn Lan Anh - 20080063 2. Bùi Văn Trường - 20082818 3. Ngô Đăng Trung - 20082780 Lớp : Công nghệ phần mềm K53

Upload: nguyen-anh

Post on 11-Jan-2017

63 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

TR NG Đ I H C BÁCH KHOA HÀ N IƯỜ Ạ Ọ ỘVIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

BÀI TẬP LỚN

KỸ THUẬT PHẦN MỀM

Nội dung : Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Giáo viên hướng dẫn TS. Vũ Thị Hương Giang

Sinh viên thực hiện : 1. Nguyễn Lan Anh - 20080063

2. Bùi Văn Trường - 20082818

3. Ngô Đăng Trung - 20082780

Lớp : Công nghệ phần mềm K53

HÀ NỘI 10 – 2011

Page 2: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Mục lụcLời nói đầu.....................................................................................................................................................5PHẦN I: TỔNG QUAN LÝ THUYẾT KIỂM THỬ.....................................................................................6

I. GIỚI THIỆU.................................................................................................................................61. Vòng đời kiểm thử........................................................................................................................62. Các tiêu chí đánh gíá kiểm thử.....................................................................................................63. Mô hình phát triển chữ V.............................................................................................................7II. KIỂM THỬ UNIT........................................................................................................................81. Tiến trình kiểm thử Unit...............................................................................................................8

a. Kế hoạch kiểm thử Unit.............................................................................................8b. Thiết kế kiểm thử.......................................................................................................8c. Thực hiện và đánh giá kiểm thử unit.........................................................................9

2. Kế hoạch kiểm thử unit................................................................................................................93. Kiểm thử hộp đen.......................................................................................................................104. Kiểm thử hộp trắng.....................................................................................................................10

a. KIểm thử nhánh cơ bản (Basis Path Testing)..........................................................115. Các trường hợp kiểm thử và dữ liệu kiểm thử...........................................................................13III. KIỂM THỬ TÍCH HỢP.............................................................................................................141. Tạo dữ liệu và file kiểm thử.......................................................................................................142. Các chiến thuật và kĩ nghệ kiểm thử...............................................................................................14

a. Kiểm thử tích hợp không tăng tiến..............................................................................14b. Kiểm thử tích hợp tăng tiến.....................................................................................15Kiểm thử Sandwich...........................................................................................................17c. Tiêu chí để hoàn thành.............................................................................................17d. Các lời bình về kiểm thử môđun..............................................................................17e. Đề nghị phương pháp luận kiểm thử tích hợp.........................................................18

IV. KIỂM THỬ HỆ THỐNG...........................................................................................................18V. KIỂM THỬ XÁC NHẬN..........................................................................................................19VI. KIỂM THỬ HỔI QUY...............................................................................................................19VII. LỖI DỮ LIỆU..........................................................................................................................201. Vòng đời của lỗi.........................................................................................................................202. Lỗi dữ liệu..................................................................................................................................213. Dạng của lỗi................................................................................................................................234. Lỗi nguy hại................................................................................................................................255. Trạng thái lỗi..............................................................................................................................256. Xử lý nguồn gốc.........................................................................................................................26

Page 3: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

7. Ưu tiên lỗi...................................................................................................................................28PHẦN II: PHƯƠNG PHÁP KIỂM THỬ GAME.......................................................................................29

I. GIỚI THIỆU TỔNG QUAN......................................................................................................29II. KIỂM THỬ CHIẾN LƯỢC.......................................................................................................29

1. Mục tiêu và định nghĩa............................................................................................292. Lập bảng kế hoạch và các yêu cầu kiểm thử - Testing plan and Testing requirement........................................................................................................................313. Kiểm thử game và công nghệ kiểm thử - Game testing and testing technique.......32

a. Các thành phần và cấu trúc chi tiết của game......................................................32b. GAME TESTING TECHNIQUES AND “TIPS-N-HINTS”..............................34c. SPECIAL CONSIDERATIONS FOR GAME TESTING...................................36

4. Test plan development for game testing..................................................................365. Software testing and testing techniques...................................................................37

6. Testing considerations for software testing.........................................................397. Kiểm thử toàn chu trình...........................................................................................40

PHẦN III: QUY TRÌNH KIỂM THỬ TRONG CÔNG NGHIỆP........................................................41I. GIỚI THIỆU VỀ CÔNG TY......................................................................................................41

PHẦN IV: VẬN DỤNG VÀO VIỆC KIỂM THỬ GAME CỜ TƯỚNG...................................................48I. TỔNG QUAN HỆ THỐNG VÀ MODULE KIỂM THỬ..........................................................48

1. Mô tả bài toán..........................................................................................................482. Mô tả hệ thống.........................................................................................................483. Các thành phần chính...............................................................................................494. Mô hình thiết kế tổng thể.........................................................................................50

II. TIẾN HÀNH KIỂM THỬ..........................................................................................................581. Mục đích.................................................................................................................582. Yêu cầu giao diện....................................................................................................583. Tình huống kiểm thử và kết quả..............................................................................59

PHÂN CÔNG CÔNG VIỆC TRONG NHÓM............................................................................................62PHẦN IV: TỔNG KẾT...............................................................................................................................63Các tài liệu tham khảo..................................................................................................................................64

Page 4: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Lời nói đầu Nói đến công nghệ phần mềm là nói đến quá trình, công cụ và các chiến

lược xây dựng một cách hiệu quả một hệ thống phần mềm. Hiện nay, quá trình xây

dựng phần mềm không đơn giản chỉ là ngồi viết mã nguồn rồi đem bán. Mà cả giai

đoạn phía sau mới thực sự chiếm rất nhiều công sức của người làm phần mềm, đó

là quá trình kiểm thử và bảo trì phần mềm.

Trong vòng đời phát triển phần mềm thường có các giai đoạn là nghiên cứu

sơ bộ, phân tích yêu cầu, thiết kế, cài đặt, kiểm thử và bảo trì phần mềm. Cụ thể

hơn, thì hai giai đoạn đầu là đặt vấn đề và phân tích các yêu cầu của hệ thống, giai

đoạn tiếp theo là quá trình xây dựng trên lý thuyết các modul, các thành phần cần

có của phần mềm, giai đoạn tiếp nữa là đi hiện thực hóa các lý thuyết đó. Hai giai

đoạn cuối luôn yêu cầu sự chuẩn xác và rõ ràng của các giai đoạn trên, để có thể

làm việc dễ dàng.

Theo IEEE thì tổng quan về kiểm thử phần mềm là như sau:

Kiểm thử là một hoạt động thực hiện để đánh giá chất lượng sản phẩm, để cải thiện

nó, bằng cách định ra các nhược điểm và vấn đề của nó. Kiểm thử bao gồm các xác

minh về sự đáp ứng của phần mềm trước một tập các test case, được lựa chọn phù

hợp từ các modul thực thi phổ biến của phần mềm, so sánh với các đáp ứng đáng

mong đợi.

Chúng em chọn đề tài Tìm hiểu về các kỹ thuật kiểm thử phần mềm để làm

bài tập lớn môn học Kỹ thuật phần mềm nhằm mục đích tìm hiểu về các kỹ thuật

kiểm thử, các kỹ thuật kiểm thử tại công ty trên thực tế. Tuy đã cố gắng hết sức

nhưng còn nhiều sai sót, mong cô góp ý để chúng em hoàn thiện hơn bài tập lớn

của mình!

Page 5: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

PHẦN I: TỔNG QUAN LÝ THUYẾT KIỂM THỬ

I. GIỚI THIỆU

1. Vòng đời kiểm thử

Vòng đời của kiểm thử bắt đầu từ việc lập kế hoạch kiểm thử. Sau đó là ghi

ra các ý tưởng các trường hợp kiểm thử. Từ các trường hợp kiểm thử này đưa ra tất

cả các trường hợp kiểm thử và các kịch bản kiểm thử. Sử dụng các thủ tục/ hay

kịch bản kiêm rthử này, tester có thể phác hoạ toàn bộ kiểm thử hệ thống/ kiểm thử

tích hợp. Kết quả kiểm thử sẽ được đánh giá bởi các tiêu chí kiểm thử đặt ra ban

đầu. Mô hình kiểm thử là một dãy các kế hoạch, các trường hợp kiểm thử và các

thủ tục kiểm thử. Trong tiến trình bảo trì và nâng cấp dự án, thì kiểm thử đóng một

vai trò quan trọng

2. Các tiêu chí đánh gíá kiểm thử

Tiêu chí đánh giá kiểm thử là độ bao phủ và chất lượng của kiểm thử:

Sự bao phủ của kiểm thử là một tiêu chí quan trọng trong tiến trình kiểm

thử, nó phải bao phủ toàn bộ các yêu cầu cần kiểm thử và các trường hợp

kiểm thử hay toàn bộ đoạn chương trình.

Chất lượng của kiểm thử là một tiêu chí quan trọng để đánh giá độ tin cậy,

tính hiệu năng, sự ổn định của chương tmrình. Chất lượng của kiểm thử phụ

thuộc vào việc đánh giá, phân tích để phát hiện ra lỗi của chương trình trong

suốt tiến trình kiểm thử.

Page 6: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

3. Mô hình phát triển chữ V

Kiểm thử và bảo trì là một pha quan trọng trong quá trình phát triển

phần mềm. Sau đây là mô hình chữ V trong kiểm thử:

The Software Development V-Model

Bên trái chữ V là quá trình phát triển phần mềm, và bên phải là kiểm thử.

Tại mỗi một mức trong tiến trình phát triển thì có một pha kiểm thử tương ứng .

Các mức kiểm thử có thể được lập kế hoạch và thiết kế song song. Sau đó

chúng ta thực hiện kiểm thử từ đáy tháp chữ V nên tương ứng với từng mức phát

triển .

Kế hoạch kiểm thử hệ thống cần phải sớm hơn khi trước khi pha kiểm thử bắt đầu:

Kế hoạch kiểm thử hệ thống là phải khớp với các yêu cầu phần mềm .

Page 7: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Các trường hợp kiểm thử cần phải hoàn thành khi mà các thiết kế chi tiết đã

xong.

Kiểm thử hệ thống bắt đầu từ ngay sau khi lập trình .

II. KIỂM THỬ UNITKiểm thử unit ứng dụng ở mức môđun. Thường là được thực hiện bới nhà

phát triển trước khi các môđun được tích hợp với các mô đun khác .

Kiểm thử unit là mức thấp nhất trong tiến trình kiểm thử, thường là áp dụng

phương pháp kiểm thử hộp trắng .

Kết quả của kiểm thử Unit thường tìm ra khoảng 20% lỗi trong tất cả cá lỗi của dự

án.

1. Tiến trình kiểm thử Unit

a. Kế hoạch kiểm thử Unit

Lập kế hoạch cho kiểm thử khác nhau (như kiểm thử hệ thống, kiểm thử tích

hợp). Quyết định xem dặc điểm nào cần phải kiểm thử. Các hướng tiếp cận để

kiểm thử unit

Phương thức phân tích kiểm thử.

Kĩ thuật kiểm thử (hộp đen hay hộp trắng).

Các công cụ dùng trong kiểm thử.

b. Thiết kế kiểm thử

Tạo các trường hợp kiểm thử

Thiết kế các thủ tục kiểm thử:

Page 8: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Thủ tục làm thế nào để thực thi một trường hợp kiểm thử

Một thủ tục có thể áp dụng cho một vài trường hợp kiểm thử khác

Triển khai chương trình kiểm thử:

Kiểm thử gốc(stub): Kiểm thử lần lượt từ gốc của chương trình, sau

khi xong thì tiếp tục kiểm thử Stub tiếp theo ở bên dưới.

Kiểm thử driver : Driver là một trình điều khiển kiểm thử unit .

c. Thực hiện và đánh giá kiểm thử unit

Chuẩn bị kiểm thử môi trường.

Thực hiện kiểm thử unit.

Phát hiện ra lỗi trong kiểm thử unit.

Làm báo cáo ghi lại toàn bộ sự thành công hay thất bại trong từng

unit một dựa theo các kết quả yêu cầu.

2. Kế hoạch kiểm thử unit

Để thực hiện một kiểm thử có hiệu quả, thì cần thiết phải có một kế hoạch

kiểm thử có hiệu quả. Cần phải lập kế hoạch thật chi tiết, càng chi tiết càng tốt.

Kế hoạch kiểm thử unit cần phải đưa ra các tài liệu chỉ dẫn việc thực hiện

kiểm thử trên từng môđun như thế nào. Mục tiêu là mỗi mô đun sau khi dược kiểm

thử thì phải thoả mãn tất các yêu cầu đặt ra về chức năng

Kế hoạch kiểm thử cần phải đưa ra một danh sách các đầu vào cho môđun

và một danh sách các đầu ra phù hợp với các mô đun đó. Mộ môđun dược gọi là

đạt nếu tất cả các đầu vào đều có đầu ra tương ứng. Mỗi một sự sai trệch nào của

đầu ra đều phải cần xem xét cụ thể. Danh sách các đầu vào phải thoả mãn yêu cầu

của phần mềm, tối thiểu là lần đầu tiên. Kế hoạch kiểm thử giúp cho các nhà phát

Page 9: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

triển có thể đảm bảo chắc chắn rằng mỗi dòng mà, và mỗi câu lệnh điều kiện đều

phải thực hiện được tối thiểu một lần

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

Hướng vào các đặc tả bên ngoài

Chủ yếu là kiểm tra giao diện của các hàm vào ra

Các kỹ thuật thường dùng:

Lược đồ nguyên nhân kết quả.

Phân đoạn tương đương.

Phân tích giá trị biên.

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

Thực hiện bên trong chương trình.

Sử dụng các đặc tả chi tiết.

Bao gồm các thứ sau:.

Các chỉ dẫn bao quát.

Bao quát toàn bộ các câu lệnh điều kiện đơn.

Các điều kiện, đa điều kiện.

Kiểm thử hộp trắng là một thiết kế kiểm thử sử dụng cấu trúc của thiết kế chi tiêt.

Sử dụng thiết kế chi tiết người sử dụng có thể đảm bảo rằng:

Bảo đảm rằng tất cả các đường dẫn độc lập ở bên trong môđun đều được thử

tối thiểu một lần.

Thử nghiệm tất các các trường hợp lôgic trong các câu lệnh điều kiện.

Thực hiện tất cá các vòng lặp tới giá trị biên của chúng.

Thử nghiệm tất cả các giá trị biên bên trong đảm bảo chúng hợp lệ.

Page 10: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

a. KIểm thử nhánh cơ bản (Basis Path Testing)

Là một cách kiểm thử hộp trắng. Trường hợp kiểm thử bắt nguồn từ các đặc

tả yêu cầu độc lập. Một tập các trường hợp kiểm thử có thể được phát sinh bởi các

tập kiểm thử cơ bản.

Đây là một cái tên đến từ thực tế rằng các kiểm thử nầy đều kiểm thử từ tất

cả các hướng có thể thông qua chương trình.

Tóm tắt Basis Path Testing

Bước 1

Vẽ biểu đồ luồng chương tình cho một đoạn mã được lựa chọn nào đó

If -then - else loop - while case - of

Thực hiện từng câu lệnh một.

Bỏ qua các dòng lệnh liên tục.

Thêm một nút cho mỗi một nhánh hay câu lệnh quyết định.

Triển khai các nút phù hợp với sự thể hiện của nó.

Bước 2

Page 11: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Độ phức tạp tính toán từ lưu đồ luồng tính như sau

C = # Edges - # Nodes + 1

Bước 3

Tìm C cho mỗi trường hợp kiểm thử

Chọn một trường hợp kiểm thử để bắt đầu.

Trường hợp sau giống cái đầu chỉ thay đổi một sô thông số cho phù

hợp thôi.

Tiếp tục cho đên 'C' xuất phát.

Bước 4

Thu được các kết quả dự đoán cho mỗi trường hợp kiểm thử

Sử dụng các đặc tả của chương trình dể quyết định xem loại dữ liệu

nào nên làm(tốt nhất là việc này nên làm bởi các nhà phân tích)

Bước 5

Confirm that actual results match expected results

So sánh kết quả giữa thực tế và lí thuyết

Thực hiện đi bộ qua chương trình

Hiệu quả của kiểm thử nhánh cơ bản ( Basis Path Testing )

Hiệu quả

Bao phủ hầu hết toàn bộ các vấn đề.

Sẽ phát hiện ra hầu hết các lỗi.

Page 12: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Hầu hết các loại lỗi.

Là một phương tiện hay để xem lại toàn bộ mã nguồn và đi bộ qua

giải thuật.

Có thể ứng dụng cho các mức lôgic cao hơn hay các đoạn mã giả.

Hiệu lực

Là một qui trình xác định tốt.

Hiệu quả trong việc sử dụng tài nguyên máy và thời gian thiết kế.

Phát sinh đơn giản và dễ thực thi các trường hợp kiểm thử.

Giá cả thì chấp nhận được trong thương mại.

5. Các trường hợp kiểm thử và dữ liệu kiểm thử

Kiểm tra các toán tử ở mức giá trị thông thường.

Kiểm tra với các giá trị giới hạn.

Kiểm tra ngoài vùng giá trị.

Kiểm tra các lỗi ở trong vòng lặp.

Kiểm tra các kết thúc không bình thường trong vòng lặp.

Kiểm tra các kết thúc không bình thường trong đệ quy.

Kiểm tra tất các các cấu trúc dữ liệu được truy nhập bởi hàm.

Kiểm tra tất cả các loại file được truy nhập bởi hàm thành viên.

Kiểm tra tất cả các lỗi điều kiện.

Kiểm tra tính hiệu quả của kiểm thử nếu thấy cần thiết.

Đảm bảo rằng mọi câu lệnh đều được thực hiện.

Đảm bảo rằng mọi câu lệnh điều kiện đều thực hiện ở tất cả các

nhánh.

Page 13: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

III. KIỂM THỬ TÍCH HỢP

1. Tạo dữ liệu và file kiểm thử

Các hoạt động chính:

Xác định nội dung của kiểm thử dữ liệu và file.

Tạo dữ liệu kiểm thử, dữ liệu kiểm thử có thể tạo ra bằng một trong

các phương pháp luận sau.

Vào thủ công.

Phần mềm sinh dữ liệu kiểm thử.

Giúp ra từ cơ sở dữ liệu sống.

Điền đầy các dữ liệu kiểm thử với sự giúp đỡ của các chương trình

quản lí cơ sở dữ liệu.

Kiểm tra xem có khớp với các yêu cầu đặt ra không

2. Các chiến thuật và kĩ nghệ kiểm thử

a. Kiểm thử tích hợp không tăng tiến

Big Bang là một kiểm thử tích hợp không tăng tiến

Tất cả các mô đun đều được phối hợp ngay từ đầu.

Phần mềm được kiểm thử toàn bộ - kết quả ban đầu thường là lộn

xộn.

Để đúng được là rất khó vì một dãy các lỗi gặp phải.

Khi một lỗi được sửa thì lại bắt gặp một lỗi khác chỉ cho tới khi nào

vòng lặp dừng thì thôi.

Cho nên phương pháp này không được đề nghị

Page 14: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

b. Kiểm thử tích hợp tăng tiến

Là một kiểm thử trái ngược lại với kiểm thử Big Bang

Phần mềm được xây dựng và kiểm thử từng đoạn một.

Lỗi dễ bị cô lập và xử lí.

Giao diện dễ kiểm thử hơn và có thể áp dụng kiểm thử hệ thống.

Kiểm thử tích hợp hệ thống bao gồm các phương pháp luận sau:

Kiểm thử tích hợp Top-Down.

Kiểm thử tích hợp Bottom-up.

Kiểm thử Sandwich.

Kiểm thử tích hợp Top-Down:

Hàm Main là nút gốc còn tất cả cá môđun ở bên dươic là các gốc

con(bới vì sau khi kiểm thử xong nút gốc này thì tất cả cá nút gốc

con sẽ được kiểm thử).

Stubs are replaced with actual modules one at a time, depending on

the integration approach selected (depth/breadth first).

Nút gốc sẽ được thay thế bằng các môđun cụ thể, phụ thuộc vào

hướng kiểm thử tích hợp được lựa chọn.

Cứ tiếp tục quá trình như vậy cho đến khi nào kết thúc chương trình

thì thôi.

Thuật tiện

Không cầm có driver kiểm thử.

Lỗi giao diện được phát hiện sớm.

Bất tiện

Page 15: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Cần gốc (stubs).

Làm chậm tiến trình kiểm thử.

Lỗi ở trong các môđun ở mức thấp khó tìm ra.

Chú thích

Chương trình làm việc đầu tiên nâng lên tinh thần.

Rất khó để có thế duy trì thuần top-down trong thực tế.

Tích hợp Bottom-Up

Mô đun ở mức thấp nhất sẽ được kiểm thử đầu tiên

Mỗi một driver được viết để theo dõi các đầu vào và đầu ra

Kiểm thử từng khối

Driver sẽ bị xoá đi và các cụm sẽ được kết hợp lại, sau đó di chuyển

nên trên trong cấu trúc chương trình

Thuận tiện

Không cần đến gốc

Rất dễ điều chỉnh số lượng người cần thiết

Lỗi quyết định sớm được tìm thấy

Sự bất tiện

Các driver kiểm thử là cần thiết

Rất nhiều môđun phải được tích hợp trước khi làm việc

Lỗi giao diện khám phá muộn

Page 16: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Chú thích

Phải kiểm tra nhiều các đoạn mã hơn là so với Top-Down

Bottom-up là một cách mang tính trực giác nhiều hơn

Kiểm thử Sandwich

Là một phương pháp kiểm thử kết hợp cả top-down và bottom-up

Tất cả các môđun và giao diện đều phải kiểm thử bằng phương pháp

Top-Down

Cả driver và stub đều được sử dụng khi cần thiết

Tất cả các môđun đều được xây dựng và kiểm thử unit bắt đầu từ

mức thấp nhất, sử dụng chiến thuật Bottom-Up

c. Tiêu chí để hoàn thành

Một tester phải biết khi nào kiểm thử là đủ. Kiểm thử có thể dừng khi:

Nó không phát sinh lỗi

Nó đã bao phủ gần như hoàn toàn

Nó phát hiện ra một số lượng lỗi

Kế hoạch kiểm thử kết thúc

d. Các lời bình về kiểm thử môđun

Đúng với các yêu cầu phần mềm

Có mức điều khiển cao

Có phức tạp hay ẩn chứa lỗi hay không

Page 17: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Có các yêu cầu hiệu năng xác định hay không

Các bình luận nên càng sớm càng tốt

e. Đề nghị phương pháp luận kiểm thử tích hợp

Lựa chọn một nhóm các môđun không quá phức tạp để kiểm thử.

Kết nối các nhóm môđun vào chương trình.

Kiểm thử tích hợp trên bộ khung của hệ thống.

Thử nghiệm tất cả các môđun.

Thử nghiệm tất cả các lựa chọn của chương trình với các tiện ích

của nó.

Thực thi kiểm thử trên bộ khung của chương trình.

Nạp kiểm thử.

Kiểm thử hiệu năng của chương trình.

Cố gắng phá vỡ bộ khung.

Lặp lại bốn bước trên nhiều lầm nếu thấy cần thiết để xây dựng một

mức hoàn chỉnh.

IV. KIỂM THỬ HỆ THỐNG

Mỗi lần kiểm thử thủ tục hỗ trợ kiểm thử hệ thống được thực hiện, đội kiểm

thử so sánh kết quả mong đợi của mỗi kiểm thử thủ tục với kết quả thực tế. Nếu kết

quả thực tế khác so với kết quả mong đợi, sự khác nhau này phải được xem xét lại

kỹ hơn.

Kiểm thử hệ thống thường thực hiện sau tất cả các môđun, kiểm thử tích hợp

và kiểm thử unit được chấp nhận một cách thành công.

Đội kiểm thử cần có thể tái tạo lại vấn đề và phải chắc chắn là vấn đề này

không phải gây ra do lỗi kiểm thử, lỗi thiết lập môi trường, lỗi thủ tục kiểm thử,

Page 18: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

hay lỗi kiểm thử kịch bản. Nếu báo cáo lỗi bởi vì những lỗi được xác định trong lỗi

kiểm thử, lỗi thiết lập môi trường, lỗi kiểm thử thủ tục, hay lỗi kiểm thử kịch bản,

hành động thích hợp để hiệu chỉnh nên được thực hiện và thực hiện lại kiểm thử.

Nhược điểm của sản phẩm nên được ghi lại trong DMS.

V. KIỂM THỬ XÁC NHẬNKiểm thử kiểm nhận chứng minh cho khách hàng rằng tiêu chuẩn kiểm nhận xác

định trước đã được xác định bởi hệ thống.

Điển hình nó được sử dụng như một kỹ thuật để bàn giao hệ thống.

VI. KIỂM THỬ HỔI QUY

Thực hiện kiểm thử hồi quy thông thường mất rất nhiều nỗ lực cố gắng. Vì thế,

kiểm thử hồi quy có thể được thực hiện sau một giai đoạn. Tuy nhiên, kiểm thử hồi

quy phải được thực hiện khi:

Tổng số những yêu cầu thay đổi xảy ra từ bản cơ sở cuối cùng với kiểm

thử hồi quy lớn hơn 10% tổng số những yêu cầu trong cơ sở đó.

Tỉ lệ tổng số lỗi được phát hiện sau kiểm thử kiểm nhận hay trong trong

thao tác chia tổng số man-months của dự án lớn hơn 1.

Với những dự án bảo trì, khởi động cho kiểm thử hồi quy phải được xác định trong

kế hoạch kiểm thử. Leader kiểm thử phải xác định khi nào đội dự án kiểm soát

kiểm thử hồi quy và phạm vi kiểm thử hồi quy. Lập biểu của kiểm thử hồi quy phải

được xác định trong lập biểu của dự án.

Page 19: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

VII. LỖI DỮ LIỆU

1. Vòng đời của lỗi

Một lỗi trong phần mềm là một cái gì đó mà gây ra cho phần mềm chạy theo cách

mà nó không nhất quán với những yêu cầu hay sự cần thiết của khách hàng hay

những chuẩn liên quan. Để có phần mềm chất lượng cao, sản phẩm cuối cùng nên

có vài lỗi có thể.

Một lỗi được tìm thấy và phải được ghi lại trong DMS bởi một một

nhân viên. Lỗi được vào trong DMS với trạng thái “Error” và thông tin

khác.

Lãnh đạo dự án phải xem lại dữ liệu của một lỗi (như là dạng lỗi, nguồn

gốc,tính nguy hại,..), sửa nó và giao cho người sửa lỗi. Thông thường

thành viên được giao là tác giả của văn bản hay đoạn mã nguồn mà lỗi

được tìm thấy trong đó. Trạng thái của lỗi được thay đổi thành

“Assigned”.

Sau khi sửa lỗi, tác giả đổi trạng thái lỗi thành thành “Pending”

Người kiểm thử kiểm thử lại lỗi chưa giải quyết và cập nhật trạng thái

thành “Tested” nếu lỗi được sửa một cách hài lòng, hay thành “Error”.

Nếu một lỗi với trạng thái “Error” có thể được chấp nhận mà không có

một hành động hiệu chỉnh nào, lãnh đạo dự án cần đổi trạng thái thành

“Accepted”.

Vòng đời của lỗi được mô hình hoá trong flowchart sau đây:

Page 20: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Quá trình bắt lỗi

2. Lỗi dữ liệu

Thông tin quan trọng của lỗi của lỗi bao gồm:

# Dữ liệu Mô tả dữ liệu Bắt

buộc/Tuỳ

Page 21: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

chọn

1 Project Code Dự án hay sản phẩm bị mắc

một lỗiB

2 Defect ID Tên của lỗi B

3 Title Miêu tả ngắn gọn của lỗi B

4 Description Miêu tả đầy đủ của lỗi B

5 Severity Tính nguy hại của lỗi B

6 Type Phân loại của lỗi B

7 Status Trạng thái hiện tại của lỗi B

8 Stage detected Phạm vi hoạt động của dự án

xác định vòng đời khi lỗi được

phát hiện

T

9 QC activity Hoạt động phát hiện ra lỗi B

10 QC activity type Dạng của hoạt động QC như là

xem lại, kiểm tra.......

B

11 Stage injected Phạm vi hoạt động trong dự án

xác định vòng đời mà từ đó lỗi

được gây ra

T

12 Process origin Tên hay mã nguồn của đoạn

phần mềm mà trong đó lỗi là

nguồn gốc

B

13 Priority Mức ưu tiên sửa lỗi T

14 Creator Người phát hiện lỗi, người

kiểm thử hay người xem lại

B

15 Create date Ngày ghi lại lỗi trong dữ liệu

lỗi

B

16 Assigned to Người chịu trách nhiệm sửa lỗi, T

Page 22: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

thường là tác giả

17 Due date Hạn chót mà việc sửa lỗi phải

hoàn thành

T

18 Work product Trong sản phẩm mà lỗi được

tìm thấy.

B

19 Module Phần của sản phẩm mà lỗi

được tìm thấy trong đó. Nó là

mức CI cao như bình thường.

T

20 Corrective action Hành động để sửa lỗi T

21 Close date Ngày mà lỗi được đóng. B

22 Reference Tài liệu tham khảo hay miêu tả

về lỗi

T

23 History Thông tin về lỗi. Tất cả những

phần như hiệu chỉnh,.....của lỗi

được thể hiện.

T

24 Attached picture Ảnh minh hoạ lỗi T

3. Dạng của lỗi

Sau đây là một số dạng chung của lỗi:

# Dạng lỗi Ví dụ

1 Functionality Chức năng được chỉ ra không làm

việc

Requirement

misunderstanding

Những yêu cầu đầu vào không được

hiểu rõ

Page 23: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Feature missing Một phần của đặc tính hay đặc tính

không hoàn thành

Coding logic Kỹ năng kỹ thuật, đánh giá dữ liệu...

hay những lý do khác không được

xác định như là vấn đề viết code

Business logic không theo luồng công việc

2 User Interface Lỗi trong giao diện, bố cục

3 Performance tôc độ xử lý chậm hay lỗi hệ thống

do cấu hình; vấn đề bộ nhớ

4 Design issue Thiết kế được chỉ rõ liên quan vấn

đề

5 Coding standard Vấn đề với chuẩn viết mã nguồn

6 Document Lỗi phát hiện trong khi xem lại văn bản:

Kế hoạch dự án, SRS, Kế hoạch kiểm thử,

… liên quan tới chuẩn văn bản (mẫu,

phiên bản, header/footer,...)

7 Data and Database

IntegrityVấn đề với xử lý dữ liệu hay luồng dữ

liệu: vào/ra

8 Security and Access

Control

Vấn đề với đặc quyền người dùng,

vấn đề bảo mật

9 Portability Mã nguồn không độc lập với

platform

10 Other không như những dạng trên

11 Tools Lỗi gây ra bởi sử dụng công cụ

Page 24: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

4. Lỗi nguy hại

# Dạng nguy hại Giải thích

1 Fatal Lỗi không cho người sử dụng tiếp tục sử

dụng hệ thống, có lẽ hệ thống bị tấn

công

2 Serious Hệ thống không thể làm việc tốt

3 Medium Lỗi này không ngăn người sử dụng xử

lý, nhưng gây ra sự bất tiện

4 Cosmetic Một lỗi mà không có cách nào ảnh

hưởng đến hiệu năng của sản phẩm. Nó

có lẽ là một lỗi ngữ pháp.

5. Trạng thái lỗi

Một lỗi có một vài trạng thái sau đây trong vòng đời của nó:

# Status Description

1 ERROR Lỗi không được sửa hay sửa nhưng

không được hài lòng như mong muốn

2 ASSIGNED Lỗi được xem lại và được giao sửa nó

3 PENDING Lỗi được sửa xong và được kiểm thử lại

4 TESTED Lỗi được sửa một cách hài lòng như

mong muốn

Page 25: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

5 ACCEPTED Lỗi không được sửa một cách hài lòng

như mong muốn, nhưng nó được chấp

nhận bởi sự nhượng bộ của tác giả hay

khách hàng.

6 CANCELLED Nó không là một lỗi hay lỗi được loại bỏ bởi

những hành động khác với sửa lỗi

6. Xử lý nguồn gốc

Xử lý nguồn gốc là xử lý mà trong nó bị nhiễm lỗi. Xác định rằng những phân tích

yêu cầu của xử lý này là của một lỗi. Nó được đánh giá từ độ tự nhiên của lỗi và

những thông tin khác về lỗi.

# Tên Code Ví dụ lỗi

1 Contract

Management01-QT Những thủ tục không thích hợp;

những thông tin khách hàng

thiếu; những yêu cầu khách hàng

không hiểu; quản lý thay đổi yêu

cầu khách hàng không chặt chẽ

2 Requirements 02-QT Giả định không đúng; đặc tả giao

diện không hoàn hảo; luồng xử

lý không rõ ràng; yêu cầu không

có đặc tả, nhập nhằng, không

hoàn hảo

3 Design 03-QT Yêu cầu không được thực thi đầy

đủ; lôgic vấn đề; vấn đề liên

Page 26: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

quạn đến chuẩn.

4 Coding 04-QT Vấn đề với viết code, logic, xử

lý dữ liệu, vào/ra

5 Deployment 05-QT Sự triển khai kế hoạch không

thích hợp, giải pháp; những vấn

đề môi trường

6 Customer support 06-QT Kế hoạch hỗ trợ không rõ ràng

7 Test 07-QT Sự cố gắng không thích hợp hay

lịch biểu cho kiểm thử; sự không

hoàn hảo của yêu cầu kiểm thử

hay vạch kế hoạch; kiểm thử

case sai; kiểm thử dữ liệu thích

hợp không xác định; tiêu chuẩn

kiểm thử không thích hợp.

8 Configuration

management

08-QT cấu trúc quản lý cấu hình không

thích hợp; những vấn đề trong

đặt tên và quản lý cấu trúc; quản

lý thay đổi trong kế hoạch CM

còn thiếu.

9 Project management 09-QT Nỗ lực hay đánh giá lập biểu

không thích hợp; những vấn đề

trong đánh giá rủi ro; sự không

hoàn hảo của kế hoạch dự án

10 Subcontract

Management

10-QT Lựa chọn nhà thầu phụ không

thích hợp; quản lý chất lượng

nhà thầu phụ không chặt chẽ

Page 27: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

7. Ưu tiên lỗi

PL hay tác giả có thể dựa vào ưu tiên lỗi để sửa nó

# Ưu tiên Miêu tả

1 Immediately Lỗi phải được sửa ngay lập tức

2 High priority Lỗi nên được đưa lên mức chú ý cao

hơn

3 Normal priority

4 Low priority

Page 28: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

PHẦN II: PHƯƠNG PHÁP KIỂM THỬ GAME

I. GIỚI THIỆU TỔNG QUANĐể việc kiểm thử có hiệu quả nhất cần có phương pháp kiểm thử và

tiếp cận các vấn đề một cách quy mô và hoàn hảo nhất nhằm nâng cao chất

lượng của sản phẩm. Ngược lại, khi không có phương pháp và cách tiếp cận

đúng sẽ làm kéo dài quá trình kiểm thử gây nên những sự trì hoãn và không

kiểm soát hết các lỗi.

Mục tiêu là đưa ra 1 phương pháp chung cho việc test game để cover

được hết tất cả các thành phần ở các mức độ khác nhau nhằm đảm bảo chất

lượng phần mềm và đưa ra các chiến lược (testing strategy), quy trình

(testing processes), kỹ thuật (techniques), và tiêu chuẩn (test coverage

criteria) cho việc test game, ngoài ra, còn có yêu cầu kiểm thử, kế hoạch

kiểm thử rõ nét, Tài liệu đặc tả và “Kiểm thử toàn chu trình”.

Hiện tại có rất ít các tài liệu cũng như quy định cho việc test game và

các tài liệu hầu hết đều tập chung vào việc đề xuất, đưa ý tưởng để nâng cao

chất lượng các game.

II. KIỂM THỬ CHIẾN LƯỢC

1. Mục tiêu và định nghĩaKiểm thử là việc tìm ra các lỗi của game và loại bỏ các lỗi này ra khỏi

chương trình. Có nhiều hình thức test khác nhau với cùng 1 sản phẩm và

được phân loại thành black-box, clear-box(white-box). Mục tiêu của kiểm

thử là kiểm tra tổng thể chương trình (e.g: test planning, test design, testing

Page 29: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

execution, regression testing and bug reporting) tuy nhiên cần phải chú

ý nhấn mạnh vào khía cạnh khác nhau của trò chơi.

Black-box – Kiểm thử hộp đen: tập trung chủ yếu và việc kiểm thử

chức năng và hiệu năng của trò chơi: test giao diện: menu, menu actions; các

cảm nhận (look and feek): giao diện, các đối tượng và cách thức chơi game

thực tế. Để kiểm thử hộp trắng, tester cần nắm được logic game, và có khả

năng chơi game cũng như những rule cần thiết cho game đó.

Clear-box – Kiểm thử hộp trắng: tập trung vào việc kiểm thử cấu trúc

của game, sự tương thích của game và tính nhất quán trong game: database,

tính tương thích, các thành phần, công cụ: âm thanh, actions.. Đối với clear-

box, tester cần hiểu về code, và các công cụ debug lỗi cũng như môi trường

của dev, đầu vào, đầu ra của các đoạn code.

Kiểm tra chất lượng phần mềm không phải là công việc của một cá

nhân và chất lượng của game hay phần mềm không chỉ phụ thuộc vào tester.

Chất lượng dự án phụ thuộc vào tất cả các thành viên trong nhóm và mỗi

thành viên phải đảm bảo cũng như chịu trách nhiệm cao nhất về chất lượng

công việc mà mình đang làm.

Nguyên tắc của việc kiểm thử game

Quy trình kiểm thử không phải là một quy trình độc lập và không thể

bị tách thành một quy trình độc lập mà phải được coi là một phần không thể

thiếu được của quy trình sản xuất game.

Trên thực tế thì chưa một tester nào có thể hoàn thành 100% công

việc test cho một game. Việc kết hợp giữa đội phát triển và đội test sẽ giảm

thiểu được các rủi ro và cover được hết các lỗi có thể xảy ra với hệ thống.

Page 30: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

2. Lập bảng kế hoạch và các yêu cầu kiểm thử - Testing plan and Testing requirement

a. Tài liệu xác định yêu cầu kiểm thử game

Tài liệu xác định yêu cầu kiểm thử cần đưa ra được những

mục tiêu mà game phải đáp ứng. Và việc kiểm thử game là đảm

bảo chương trình sẽ đáp ứng được các mục tiêu đó. Tester cần phải

hiểu về yêu cầu của game và đưa chúng thành các yêu cầu mục

tiêu, các thuật ngữ và đã được hiện thực hóa bởi các dev.

Khi yêu cầu kiểm thử đã được thông qua, tester base trên đó

để làm tài liệu test plan và testcase. Các test case và test plan sau

khi hoàn thành sẽ được đội dev thông qua để có thể xác định đầu

ra, đầu vào của dữ liệu và các trường hợp break của game.

Tài liệu test TESTING REQUIREMENTS thường được hoàn

thành trong giai đoạn khởi tạo của dự án sau khi đã có tài liệu thiết

kế tổng quan. Tài liệu yêu cầu kiểm thử không chỉ bao gồm yêu

cầu test của game mà sẽ bao gồm tất cả các thành phần của dự án:

(specific features and the major game functionality). Các tài liệu

này sẽ được thông qua bởi người chịu trách nhiệm kỹ thuật của dự

án.

b. Xác định yêu cầu về mốc thời gian thực hiện

Hoàn thành việc test các bug đã được fix, đóng các bug đã

fix. Hoàn tất việc test tất cả các thành phần có liên quan và ảnh

Page 31: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

hưởng đến chương trình: sự kiện, môi trường, cấp độ, đối tượng,

phiên bản…

Hoàn thành việc test và phải đạt được yêu cầu với 1 số điểm

ngưỡng và các điều lệ cũng như các yêu cầu trong tài liệu yêu cầu

đã được đưa ra bởi nhà sản xuất hoặc PM của dự án.

3. Kiểm thử game và công nghệ kiểm thử - Game testing and testing technique

a. Các thành phần và cấu trúc chi tiết của game Systematic: Kiểm tra hệ thống nghĩa là kiểm tra toàn bộ các

thành phần của game. Bao gồm:

The menu and the menu functions,

Art (character model, texture, terrain or world, crowd, objects,

etc.),

Animation (hình ảnh) (the like and feel of the movement,

realism, frame rate),

sound and the sound effect (hiệu ứng âm thanh)(in conjunction

with the facial animation, e.g. lip sync, and the animation

sequence)

music

camera (cinematic view, zoom in and out, replay),

game flow and logic,

world/level/scene

the player attributes,

the action attributes

Page 32: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

the condition to advance to the next level (what are the rules?)

(các điều kiện trong game, các rule của game)

the use of environmental objects (các đối tượng trên các môi

trường khác nhau),

the event/object triggers, and

the scoring

progressive levels of difficulty (độ khó ở các cấp độ khác

nhau),

the game pad: game stream,

the use of multi-button actions (also called button mashing),

the ease of use of the button functions,

the AI logic (logic giao diện) (for both defensive play and

offensive play; player movement and positioning),

Statistics (thống kê) (pre-game and in-game like player

statistics and high score),

title screens

NIS (Non-Interactive Sequence: tương tác màn hình),

SFX (Special effect: hiệu ứng đặc biệt)

any movie clip,

the shock/vibration effect of the game pad: hiệu ứng rung,

chuông…,

the use of digital and analog mode: chế độ máy khác nhau

legal text: quy định về text, and

the game options: các chế độ tùy chọn của game (game

start/menu selection, hints, game pause, pause menu options

scrolling, i.e. cycling through the available options on the

screen, etc.)

Page 33: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

b. GAME TESTING TECHNIQUES AND “TIPS-N-HINTS”Dưới đây là một số kỹ thuật chi tiết và các kỹ thuật test:

Kiểm tra tỷ mỷ toàn bộ màn hình

Nắm bắt được các rules của game và có thể chơi game để kiểm

tra các rule này.

Test for clipping

Examine the overlap: Kiểm tra việc ngắt các ứng dụng (thực

hiện chồng chéo nhiều action khi đang chơi game) check action

game khi overload

Test với các trường hợp dữ liệu sai, dữ liệu trùng lặp

Kiểm tra follow, logic của game thông qua việc chơi ở

tất cả các cấp độ khác nhau và ở các điều kiện khác

nhau

Kiểm tra màu sắc các đối tượng và hiệu ứng các đối

tượng khi có hoặc không có action.

Test loading/saving from a game save device

Đảm bảo quy trình load game or load data và các

message thông báo cho các quy trình này và hiển thị

chúng lên màn hình

Đảm bảo việc thời gian load và kết nối giữa các action

nằm trong giới hạn chấp nhận được.

Tìm kiếm các trường hợp bất thường khi đang chơi

game và ảnh hưởng đến tốc độ, logic, màn hình, level…

Page 34: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

hoặc các yếu tố ảnh hưởng đến toàn bộ follow của

game.

Thử nghiệm chế độ multi-player, multi-actions để

check game.

Kiểm tra các lỗ hổng về bộ nhớ, dung lượng bộ nhớ

(quá tải) việc tải game bằng cách duy trì chơi game

trong 1 thời gian dài hoặc việc thoát ra và đăng nhập

vào game nhiều lần trong 1 thời gian ngắn

Kiểm tra các ràng buộc (dữ liệu, môi trường, hệ

thống…)

Kiểm tra tính tương thích của game trên các platform

khác nhau ví dụ:

Trên PC: game cần tương thích với tất cả các hệ

điều hành: windows, linux…

Hay việc chơi game online trên các trình duyệt

khác nhau, kết nối của các nhà mạng khác nhau,

tốc độ kết nối mạng khác nhau..

Kiểm tra việc tương thích cấu hình của game trên

môi trường của người dùng thực và điều kiện thực

tế của người dùng sở tại

Kiểm tra việc nội địa hóa của game nếu cần thiết

Đây là một số kỹ thuật cần có và cơ bản cho 1 game tester để

kiểm thử game thông thường. Đối với các game đặc thù khác nhau

Page 35: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

đòi hỏi tester cần phải có những ứng dụng kỹ thuật khác nhau để

đảm bảo chương trình hoàn thiện nhất trên khả năng có thể của dự

án.

c. SPECIAL CONSIDERATIONS FOR GAME TESTING Với các tester khi test game việc phân chia được thứ tự ưu tiên và các

lỗi của hệ thống theo cấp độ là việc rất quan trọng. Điều này sẽ ảnh

hưởng trực tiếp đến tiến trình dự án và chất lượng của phần mềm.

Trong test game có 2 khái niệm cần quan tâm: crack bugs và

Placeholder

Crack bugs: là 1 lỗi mà trên thực tế nó không hề tồn tại nhưng

được phát hiện ra bởi các action trong quá trình chơi game

(tưởng tượng)

Placeholder: là 1 action giả lập được hiển thị khi chương trình

xảy ra các sự cố (ví dụ: màn hình loading khi đang load dữ

liệu..)

4. Test plan development for game testingCó 2 kiểu test case cho việc test game:

Test case để kiểm tra chức năng của game: thường được biết đến và sử dụng

trong công nghiệp phần mềm như 1 cách kiểm tra tích cực và hiệu quả.

Page 36: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Một trong những cách kiểm tra khác đó là kiểm tra độ bền và cấp độ, độ khó

cũng như khả năng của hệ thống với game (tolerance resistance) được biết đến

như là Negative Testing (Stress Testing or Load Testing).

Các trường hợp nagative thường được tets với các điều kiện bất thường và

check các action của hệ thống đưa ra với trường hợp này. Ví dụ:

Load game mà không có thẻ nhớ, thẻ nhớ không đủ dung lượng hoặc load game

vào bộ nhớ trong của máy và kéo thẻ nhớ ra khi đang load.

Chơi game trong khoảng time dài (trên 48h) để kiểm tra việc cấp phát và quản

lý bộ nhớ

Check khả năng tương thích với người chơi: game có thể chơi 1 người, theo đội

hoặc nhiều hơn nữa..

Định nghĩa Smoke Testing: test việc biên dịch game trên các môi trường khác

nhau và các cấu hình khác nhau

5. Software testing and testing techniquesa. SOFTWARE TESTING PROCESSES

Kiểm tra code (Code Inspection): tập chung vào cấu trúc của code, các

chuẩn trong code, các comment, các cấu trúc định nghĩa…

Incremental Focus Testing (tăng cường việc kiểm tra)

Data Analysis (phân tích dữ liệu)

Path and Flow testing

Page 37: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Algorithm-Specific testing: cài đặt và chạy ứng dụng trên 1 môi trường

khác để test các tính năng và khả năng tương thích của game trên các môi

trường

Artificial Intelligence Analysis: tạo ra các số liệu thống kê về các actions đã

được hệ thống định dạng sẵn trên các môi trường khác nhau (kiểm tra tính

ổn định của game)

b. SOFTWARE TESTING TECHNIQUES AND “TIPS-N-HINTS”

File structures

Make Files

Memory management

Debugger and Code inspection

Test Programs

Sound Testing

P3D and pipelines

Database and Game Statistics

Overlays

Front End

Bug Tracking Software

Page 38: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Game Tester and love of the game

Burning CDs

6. Testing considerations for software testinga. TESTING COVERAGE

Với một tester khi kiểm thử phần mềm không thể cover được toàn bộ

chương trình. Cũng tương tự như vậy đối với 1 game tester. Các tester cần phải

nắm bắt được toàn bộ hệ thống, focus vào những điểm quan trọng và phải đưa

ra quyết định test như thế nào là đủ và đạt yêu cầu trong 1 khoảng thời gian

nhất định (best effort in time box).

b. TESTING VS. DEBUGGING

Việc nắm bắt và phân tích được các lỗi cũng như nguyên nhân gây lỗi

sẽ giúp đơn giản hóa được quá trình fix bug. Tuy nhiên không phải tất cả các

tester đều có thể nắm rõ nguyên nhân gây ra lỗi và điều này cần sự phối kết

hợp giữa tester và dev. Dựa vào 1 số yếu tố có thể làm rõ thêm các lỗi:

- Mỗi một vấn đề (issue) chỉ được mô tả 1 lỗi duy nhất. Việc cô lập lỗi

và mô tả chi tiết tiến trình gây lỗi giúp minh bạch hóa lỗi khi fix.

- Mô tả chi tiết quá trình gây lỗi và các bước để tái hiện lỗi: bao gồm cả

môi trường, cấu hình, thiết bị…

- Kiểm tra xem chương trình đã đạt mức tới hạn chưa??

- Giao (Assign) lỗi phù hợp nhất với trình độ của dev để giải quyết vấn

đề nhanh nhất là tốn ít effort nhất.

c. TOOLS SUPPORT FOR TESTING

Page 39: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Việc test game đòi hỏi cần phải có một môi trường thực và chuyên

nghiệp cho các tester. Môi trường test của tester cần gần với môi trường

người dùng hơn so với môi trường của dev. Môi trường test cần hỗ trợ tối

đa được giao diện, các thành phần, các công cụ hỗ trợ và kiến thức nền tảng.

7. Kiểm thử toàn chu trìnhMục tiêu của full cycle testing là tìm và fix bug của hệ thống ngay từ giai

đoạn đầu và đảm bảo chất lượng dự án sẽ hoàn thiện vào giai đoạn cuối cùng

của dự án.

Các kỹ thuật được sử dụng cho “Kiểm thử toàn chu trình”:

- validation for accuracy and correctness: xác nhận tính chính xác và

đúng đắn (hợp lệ).

- verification for completeness: xác minh tính đầy đủ.

TESTING FOR DIFFERENT PROJECT STAGES

Giai đoạn Development – coding and implementation/ integration of various

pipelines and work by the teams that are integrated to make up the game.

“Clear box” testing will encompass module/component testing, testing of

coverage and flow, data integrity, algorithm-specific testing (e.g. debug

code is in the game code), path testing, and various levels of functional

regression testing. This is more an incremental testing.

Giai đoạn Review – Focus Group, and a “big bang” testing both Clear

Box and Black Box Testing, in a structured manner.

Giai đoạn Regression Testing – it will be the game testing (Alpha, Beta, and

Final).

Page 40: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

PHẦN III: QUY TRÌNH KIỂM THỬ TRONG CÔNG NGHIỆP

I. GIỚI THIỆU VỀ CÔNG TY

Công ty VTC Mobile

Công ty có trụ sở tại 18 Tam Trinh, Q.Hoàng Mai, Hà Nội

Website : http://www.mobile.vtc.vn

Tổng công ty Truyền thông Đa phương tiện VTC (tên giao dịch quốc tế là VTC

- Multimedia Corporation) được thành lập từ tháng 2/1988, trực thuộc Bộ

Thông tin và Truyền thông. Tổng công ty Truyền thông Đa phương tiện sở hữu

một trường Đại học và 3 khối kinh doanh là: Truyền thông, Viễn thông, Công

nghệ và nội dung số với tổng số CBCNV là 4500 người.

II. Qui trình làm phần mềm

Công ty sử dụng qui trình phát triển phần mềm khá thông dụng, cũng đi

từ các bước nhận hợp đồng, khảo sát đến phân tích thiết kế, lập trình, quá trình

test sẽ song hành với các quá trình trên cho đén khi bàn giao cho khách hàng

và cuối cùng là bảo trì.

III. Qui trình kiểm thử phần mềm

Qui trình kiểm thử :

Đầu tiên đội test sẽ tham gia vào quá trình nghiên cứu yêu cầu của khách

hàng, tham gia vào đặc tả chi tiết của bản design. Phân tích trao đổi với

đội developer và cả leader

Page 41: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Sau đó khi leader lên được plan chi tiết về công việc của toàn đội, tester

sẽ dựa trên plan công việc của leader để lên plan cho mình và cho test

team

Trong quá trình đội developer coding thì tester bắt đầu viết scenario, lập

test case.

Khi dev đã hoàn thành và yêu cầu tester thực hiện việc test, thì tester sẽ

tiến hành test dựa trên test case đã được lập. Sau đó log các bug tìm

được lên DMS và giao cho dev tương ứng fix.

Sau khi dev fix xong sẽ request test thực hiện việc test lại sản phẩm tới

khi nào free bug thì thôi.

Sau đó test cứng sẽ tiến hành test tích hợp các module và toàn bộ hệ

thống, không quan tâm nhều tới logic của hệ thống, chủ yếu tập trung

free test dể tìm ra lỗi một cách random (system test).

Nếu tiếp tục tìm ra bug sẽ đưa lại cho dev để fix lại, khi fix xong sẽ

deliver sản phẩm cho khách hàng

Trong quá trình phát triển sản phẩm, tester sẽ lập test report báo cáo kết

quả thực hiện test của mình trong tuần.

IV. Các phần mềm hỗ trợ quá trình kiểm thử và bảo trì

Hiện tại công ty đang nghiên cứu về các test tool để ứng dụng cho tương

lai, còn hiện tại chưa sử dụng phần mềm nào hỗ trợ quá trình này.

Trong thời gian qua chúng em đã tìm hiểu được các Tool test đã và đang

được phát triển sau:

STT Tên chương Mã Mô tả OS Phân loại

Page 42: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

trình nguồn1 Slower Miễn

phíLàm chậm một chương trình khác, khiến cho chương trình khác chạy như rùa. Nguyên lý: khiến chương trình bị hại phải delay định kỳ. Sau khi chạy, Slow sẻ quét Task Manager để user chọn 1 chương trình trong số đó. Sau đó, user chọn 2 tham số: thời gian làm chậm-suspend time và thời gian giữa 2 lần làm chậm-resume time.

Win Stress

2 SysTrayTimer

Miễn phí

Định kỳ kích hoạt một chương trình khác.

Win Attack

3 TestLink Export

Tự phát triển

Đọc database của site quản lý testcase TestLink, sau đó xuất ra báo cáo Excel theo template của AI&T. Chương trình sẽ chạy trên máy Client của QA, sau đó nhập đường dẫn... vào file cấu hình và chạy. Yêu cầu phải có JRE

Win & Linux

Export

4 Source Monitor

Miễn phí

Mở một dự án, thống kê xem các hàm sử dụng, tính số dòng code, comment, độ phức tạp của hàm, số lệnh rẽ nhan... xuất ra dạng biểu đồ, daskboard, rất là trực quan.

Win Analysis

5 Bound Checker

Thương mại

Kiểm tra truy cập bộ nhớ, phân tích hiệu xuất sử dụng function, kiểm tra khi đang chạy runtime. Được cài đặt thành một Add-ins trong Visual Studio, tương thích với VS2005 và VS6.

Win Analysis

6 Packet Tracer

Miễn phí

Giả lập tất cả các thiết bị mạng của Cisco, chính xác và cực kì chi tiết, như thật. Được Cisco hỗ trợ phát triển để làm công cụ giảng dạy và thi cử. Cho phép tạo môi trường mạng ảo, cấu hình mạng ảo và xem các gói tin di chuyển trên mạng.

Win Simulation

7 Intel Thread Thương Kiểm tra các vấn đề khi chạy Multi Win & Analysis

Page 43: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Checker mại Thread như truy cập bộ nhớ, không đồng bộ, deadlock, etc.

Linux

8 HTML Tidy Miễn phí

Kiểm tra HTML để phát hiện lỗi cú pháp, thông báo và tự sửa lỗi. Bao gồm gói giao diện và gói chương trình độc lập nhau. Có thể sử dụng trực tiếp gói chương trình bằng command-line.

Win Analysis

9 Max CPU Miễn phí

Khiến cho CPU Load tăng 100%, nhưng không làm giảm hiệu năng. Chương trình sẽ khiến cho 1 cpu core tăng tối đa, tức là nếu PC dùng chip single core thì chỉ cho phép cpu=0 hoặc 100%. Nếu PC là dure core thì sẽ cpu=0%, 50%, 100%. Tuy nhiên với trường hợp 50%, đây là giá trị trung bình, thực tế là luôn có 1 core = 100% còn 1 core = 0%

Win Stress

10 CPU Killer 3

Thương mại

Khiến cho CPU Load tăng 100%, và làm giảm hiệu năng xử lý. Nếu CPU Load = 100% thì PC chạy như treo. Độ hiệu chỉnh thay đổi ở mức 1% nhưng thực tế lệch nhiều.

Win Stress

11 Quick Test Thương mại

  Win Automation

12 WinRunner Thương mại

  Win Automation

13 Window Tester

Thương mại

for Swing, SWT java apps    

14 QF-Test Thương mại

for Swing, SWT java apps    

15 XML Viwer Miễn phí

Xem, sửa file XML, tổ chức dữ liệu dạng tree. Nhưng không cho copy

Win Analysis

16 Tgrab Thương mại

Chụp ảnh màn hỉnh định kỳ hoặc bằng tay. Có thể dùng để theo dõi màn hình của chương trình chạy stability

Win Others

Page 44: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

17 Win Errors Miễn phí

Hiển thị chi tiết các lỗi do Windows thông báo. Các thông báo lỗi Windows chỉ có mỗi ID. Chương trình này sẽ cho biết ID đó cụ thể là lỗi về cái gì. Error Code từ 0-->658. OLE Error có 896 lỗi

Win Library

18 Error Message for Windows

Miễn phí

Hiển thị chi tiết các lỗi do Windows thông báo. Các thông báo lỗi Windows chỉ có mỗi ID. Chương trình này sẽ cho biết ID đó cụ thể là lỗi về cái gì. Error Code từ 0 --> 10112.

Win Library

19 Fast Fake Miễn phí

Tạo các link, các lệnh thực hiện một yêu cầu nào đó trong OS. Ví dụ, 1 link ứng với 1 lệnh mở notepad, enable chức năng screensaver, đóng tất cả cửa sổ trên màn hình, hibernate PC, tắt PC… Rất tốt để test máy tính, gọi một phần mềm nào đó định thời

Win Others

20 Mib Browser

Miễn phí

Đọc, hiện thị và tìm kiếm thông tin trong mib file dưới dạng cây. Các MIB file dùng để quản lý OID trong giao thức SNMP. Sau khi người dùng tải các file mib liên quan tới thiết bị được yêu cầu về, sử dụng chương trình này để hiện thì các thông tin bên trong

Win Management

21 Net Profile Switch

Thương mại

Quản lý nhiều cấu hình mạng trên cùng một máy tính. Thông thường, một máy tính có thể dùng để giả lập các máy khác nhau, Mỗi máy có 1 cấu hình mạng khác nhau. Thay vì phải nhập đi nhập lại, sử dụng tool này sẽ lưu các cấu hình mong muốn thành một file. Mỗi khi người dùng muốn chuyển từ cấu hình này sang cấu hình khác, chỉ cần bấm vào icon tương ứng để chuyển cấu hình mạng. Các thông

Win Management

Page 45: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

số thay đổi được như Proxy, card mạng, địa chỉ IP, subnet, máy in mạng mặc định, VPN, smtp, server address... Ứng dụng cho giả lập máy PTE của Photonic.

22 Net Set Man Miễn phí

Tương tự Net Profile Switch nhưng chỉ quản lý được 6 nhóm thông tin cấu hình mạng.

Win Management

23 Project Diff Thương mại

So sánh 2 file plain text, có chức năng loại bỏ so sánh dấu trắng, dấu tab, comment, tùy theo loại ngôn ngữ. Cho phép ghi xóa sửa ngay trong lúc comment. Ngoài ra, có nút bấm để merge nội dung từ file này sang file kia,. Có bôi màu xanh đỏ, trực quan. Sử dụng để review tài liệu.

Win Analysis

24 Virtual Serial Port

Thương mại

Tạo driver cổng com ảo, để có thể chạy 2 chương trình giao tiếp cổng com với nhau trên cùng một máy tính. Sử dụng để test giao tiếp cổng com trên cùng một máy, không phải dùng thêm thiết bị ngoài. Com ảo trong suốt với người dùng, với người lập trình. Có 2 loại com ảo: tạo 1 com ảo tự nối localhost với RxD=TxD, tạo 2 cặp com ảo bắt chéo tín hiệu với nhau.

Win Simulation

25 ireasoning Miễn phí

Đọc, hiện thị và tìm kiếm thông tin trong mib file dưới dạng cây. Các MIB file dùng để quản lý OID trong giao thức SNMP. Sau khi người dùng tải các file mib liên quan tới thiết bị được yêu cầu về, sử dụng chương trình này để hiện thì các thông tin bên trong. Khả năng tìm kiếm OID mạnh hơn Mib Browser, thêm đó là chức năng quan trọng Bookmark các OID cần thiết

Win & Linux

Management

Page 46: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

26 AutoIT        27 Doxygen        28 InstallJamm

erMiễn phí

Tạo chương trình cài đặt giao diện đồ họa cho nhiều OS khác nhau (có Linux). Hỗ trợ ngôn ngữ TCL

Win & Linux

Others

29 Screen Miễn phí

Tạo Terminal ảo trên Linux giúp log lại các thao tác trên terminal.

Linux Others

Page 47: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

PHẦN IV: VẬN DỤNG VÀO VIỆC KIỂM THỬ

GAME CỜ TƯỚNG

I. TỔNG QUAN HỆ THỐNG VÀ MODULE KIỂM THỬ

1. Mô tả bài toánCờ tướng hay còn gọi là cờ Trung Quốc, vì nó có nguồn gốc từ Trung

Quốc ( Nhưng theo người phương tây thì nó có nguồn gốc Ấn Độ). Đây là

một trò chơi trí tuệ dành cho hai người, phổ biến trên thế giới cùng với cờ

vua. Người ta thường chơi cờ tướng là quân gỗ hoặc nhựa.

Ngày nay, bộ cờ bằng gỗ hay nhựa cũng không còn tiện dụng để mang

đến văn phòng làm việc chơi, đồng thời công nghệ thông tin phát triển. Bài

toán đặt ra là xây dựng trò chơi cờ tướng dành cho hai người chơi với nhau

trong một máy, trong mạng LAN và phát triển chơi trên mạng Internet.

Vì đây là bài tập lớn Môn Đồ họa nên chúng em mới chỉ xây dựng

được game cờ tướng dành cho hai người cùng chơi với nhau trong cùng một

máy.

2. Mô tả hệ thốngChế độ chơi: Game cờ tướng dành cho 2 người chơi, có thể chọn chế

độ Chấp cờ để chấp cờ cho đối phương, có thể chọn Tính thời gian hoặc

không Tính thời gian. Nếu tính thời gian, cả 2 người chơi sẽ được giới hạn

tổng thời gian suy nghĩ và đi của tất cả các nước, nếu ai hết thời gian trước

thì xem như người đó thua.

Page 48: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Cách chơi: Dùng chuột để click chọn quân cờ và click vào vị trí

muốn đi đến để di chuyển quân cờ. Trong suốt quá trình chơi, người chơi có

thể dùng chứ năng Undo để xin đi lại nước cờ vừa đi. Người chơi có thể lưu

lại ván cờ đang chơi, mở ván cờ đã lưu để chơi tiếp, tùy chỉnh tiếng động,

nhạc nền.

3. Các thành phần chính

Cấu trúc game được chia làm 4 phần chính:

- Nhóm class giao diện tương tác : Gồm có các form ChessBoard,

NewGame, Open, Sound_Options, FlashScreen dùng để tương tác trực tiếp

với người chơi.

- Nhóm class lưu trữ dữ liệu : Gồm có lớp BanCo dùng để ghi nhận trạng

thái của bàn cờ và lớp NguoiChoi dùng để lưu thông tin, trạng thái các quân

cờ của người chơi.

- Nhóm class quân cờ : Gồm có Tuong, Sy, Tinh, Xe, Phao, Ma, Chot, là các

lớp dẫn xuất từ lớp QuanCo, chứa các thuộc tính thiết lập thông tin về quân

cờ và các phương thức của quân cờ đó.

- Class quản lý chung : là class VanCo chứa các thuộc tính được static, thiết

lập thông số cho một ván cờ như bộ đếm thời gian mỗi nước đi, âm thanh…

và các phương thức kiểm tra, thông báo các trạng thái của ván cờ như chiếu

tướng, kiểm tra hết cờ…

Page 49: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

4. Mô hình thiết kế tổng thể

A. Nhóm lưu trữ dữ liệu:

1. Lớp BanCo: Các thuộc tính của lớp BanCo được khai báo static để tiện xử lý

trong các lớp khác

Thuộc tínhstruct Oco chứa các thông tin của 1 ô cờ, gồm

có: Hàng, Cột, Trống, Phe, Tên,

Thứ tự, picturebox CanMove(dùng

Page 50: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

để thông báo quân cờ có thể đi đến

vị trí này được không, nếu đi được

=> CanMove.Visible=True)

static OCo[,] ViTri = new OCo[10, 9]

Mảng lưu 90 vị trí, tương ứng với

[10x9] vị trí trên bàn cờ, mỗi phần

tử của mảng là 1 Oco

Phương thứcstatic BanCo() Constructor khởi tạo bàn cờ trống

public static void ResetBanCo() Trả lại bàn cờ trống

public static void ResetCanMove()Tắt thông báo những vị trí mà quân

cờ có thể di chuyển đến

2. Lớp NguoiChoi:

Thuộc tính

public int PheXác định phe của người chơi

(0 hoặc 1)

public Tuong qTuong = new Tuong()

Tạo thể hiện qTuong từ lớp

Tuong(quân Tướng của người

chơi)

public Sy[] qSy = new Sy[2]Tạo thể hiện qSy[0] và qSy[1] từ

lớp Sy(2 quân Sỹ của người chơi)

public Tinh[] qTinh = new Tinh[2]

Tạo thể hiện qTinh[0] và qTinh[1]

từ lớp Tinh(2 quân Tịnh của người

chơi)

public Xe[] qXe = new Xe[2]Tạo thể hiện qXe[0] và qXe[1] từ

lớp Xe(2 quân Xe của người chơi)public Phao[] qPhao = new Phao[2] Tạo thể hiên qPhao[0] và qPhao[1]

từ lớp Pháo(2 quân Pháo của người

Page 51: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

chơi)

public Ma[] qMa = new Ma[2]Tạo thể hiện qMa[0] và qMa[1] từ

lớp Ma(2 quân Mã của người chơi)

public Chot[] qChot = new Chot[5]

Tạo thể hiện qChot[0] đến

qChot[4] từ lớp Chot(5 quân Chốt

của người chơi)

Phương thức

public NguoiChoi(int x)

Constructor khởi tạo người chơi

với Phe=x và đặt vị trí ban đầu cho

các quân cờ tương ứng với Phe

B. Nhóm class quân cờ:

1. Lớp cơ sở QuanCo:

Thuộc tínhpublic int Hang Giá trị Hàng của quân cờ

public int Cot Giá trị Cột của quân cờ

public string Ten Tên quân cờ

public int Phe Phe 0 hoặc 1

public string ThuTu

Thứ tự Trái hoặc Phải(vd: Pháo

trái, Pháo phải), đối với chốt thì

Thứ Tự sẽ là 0 đến 4

public int TrangThai

Trạng thái của quân cờ (còn

sống => TrangThai=1, đã bị ăn

=> TrangThai=0)

public PictureBox picQuanCo = new PictureBox()PictureBox chứa hình ảnh của

quân cờpublic bool Khoa Thuộc tính Khóa, không cho

Page 52: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

người dùng tương tác vào quân

cờ để di chuyển (Khoa=false =>

quân cờ có thể di chuyển được)

Phương thức

public QuanCo()

Constructor thiết lập các giá trị

mặc định khi quân cờ được tạo ra:

Hang=10,Cot=10(vị trí [10x10]

không có trên bàn cờ), Ten=” ”,

Phe=2(ngoài 2 giá trị 0,1),

ThuTu=” ”, TrangThai=0,

Khoa=True

public void KhoiTao(int phe, string name, string thutu,

int stt, bool khoa, int x, int y)

Khởi tạo quân cờ với các giá trị

tương ứng

public void draw()Phương thức vẽ quân cờ vào vị trí

[Hang,Cot]

public virtual int KiemTra(int i,int j)

Kiểm tra quân cờ có thể di

chuyển đến vị trí [i,j] theo đúng

luật mà 2 tướng không đối mặt

nhau hay không, trả về 0 nếu

không đi được, trả về 1 nếu có thể

đi, phương thức này sẽ được

Override lại ở các lớp quân cờ

dẫn xuất cụ thể

public virtual int TuongAnToan(int i, int j)

Kiểm tra nếu quân cờ di chuyển

đến vị trí [i,j] thì tướng phe mình

có an toàn không(không bị chiếu)

private void picQuanCo_MouseClick(Object sender,

MouseEventArgs e)

Thao tác click chuột chọn quân

cờ để đi

Page 53: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

2. Các lớp dẫn xuất từ lớp QuanCo:

Gồm có lớp Tuong, Sy, Tinh, Xe, Phao, Ma, Chot với phương thức

KiemTra(i,j) và TuongAnToan(i,j) được override lại tương ứng với đặc điểm di

chuyển của từng loại quân.

C. Class quản lý chung:

Lớp VanCo: Các thuộc tính của lớp VanCo được khai báo static để tiện xử lý

trong các lớp khác

Thuộc tính

public static NguoiChoi[] NguoiChoi=new

NguoiChoi[2]

Tạo ra 2 người chơi: NguoiChoi[0] và

NguoiChoi[1]

public static string TenNguoiChoi1 Tên NguoiChoi[0]

public static string TenNguoiChoi2 Tên NguoiChoi[1]

public static bool DangChoiTrạng thái của ván cờ: Ván cờ đang

được chơi => DangChoi=True

public static PictureBox ThongBaoChieuTuong =

new PictureBox()

PictureBox chứa picture thông báo

tướng đang bị chiếu

public static Panel ChieuBi = new Panel()

Panel thông báo nước chiếu bí, bao gồm

2 picturebox con có nhiệm vụ như 2

button là DiLai(xin đi lại) và

ChiuThua(chịu thua)

public static Panel KetQua = new Panel()

Panel thông báo kết quả của ván cờ, bao

gồm Label NguoiThang ghi tên của

người thắng, 2 picturebox con có nhiệm

vụ như 2 button là ChoiLai(Chơi lại) và

Thoat(thoát)public static Panel ChapCo = new Panel(); Panel hiển thị thông báo chọn quân cờ

Page 54: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

muốn chấp (trong trường hợp người

chơi chọn chấp cờ), gồm có 1

picturebox con có nhiệm vụ như 1

button là ChapXong(bắt đầu chơi khi

người chơi chấp xong)

public static bool Marked

Xác định đã có quân cờ nào được click

chọn để đi chưa(quân cờ được click =>

Marked=True)

public static QuanCo DanhDauQuân cờ DanhDau tham chiếu đến quân

cờ được chọn để đi

public static int LuotDi

Kiểm tra đến lượt đi của NguoiChoi[0]

hay NguoiChoi[1](lượt đi của

NguoiChoi[0] => LuotDi=0)

public static int winner

Xác định người thắng ván cờ

(NguoiChoi[0] thắng => winner=0,

NguoiChoi[1] thắng => winner=1), nếu

chưa có người nào thắng thì winner=2

public static NuocDi[] GameLog;

Mảng GameLog, nhật ký các nước đi,

phục vụ cho chức năng Undo, với mỗi

phần tử là một nước đi (struct NuocDi

gồm có vị trí đầu, vị trí cuối, và các

quân cờ tương ứng với vị trí đầu, cuối)

public static QuanBiAn[] QuanDoBiAn

public static QuanBiAn[] QuanDenBiAn

Mảng lưu các quân cờ đã bị ăn của 2

người chơi (struct QuanBiAn bao gồm

hàng, cột, tên của quân bị ăn)

public static bool ChapXác định có mở chức năng chấp cờ hay

không(chấp => Chap=True)public static bool AmThanh Trạng thái của tùy chọn tiếng động khi

Page 55: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

di chuyển quân cờ

public static bool NhacNenBật, tắt nhạc nền (bật =>

NhacNen=true)

public static bool TinhThoiGianThiết lập chức năng tính thời gian cho

ván cờ (TinhThoiGian=True)

Phương thức

static VanCo()Constructor khởi tạo 2 người chơi và

các giá trị ban đầu

public static void NewGame()

Tạo ván cờ mới, vẽ các quân cờ lên bàn

cờ trong lần chơi đầu tiên, đưa các quân

cờ về vị trí ban đầu trong những lần

chơi sau…

public static void DoiLuotDi()

Đổi lượt đi của người chơi bằng cách

Khóa tất cả các quân cờ của phe vừa đi,

mở Khóa tất cả các quân cờ của phe

chuẩn bị đi

public static void Undo()Thực hiện thao tác Undo lại nước cờ

gần nhất trong ván cờ đó

public static void Save()

Lưu ván cờ vào file bằng cách kiểm tra

tất cả các vị trí của bàn cờ, nếu

Trong=false thì lấy dữ liệu của quân cờ

tại vị trí đó ghi vào file

public static void Open()Mở lại ván cờ đã lưu bằng cách đọc

thông tin từ file

public static void OCoTrong(int i, int j)Trả về ô cờ trống cho vị trí [i,j] bằng

cách reset các giá trị của struct Ocopublic static void DatQuanCo(Object sender,

QuanCo q, int i, int j)Đặt quân cờ q vào vị trí [i,j]

public static bool ChieuTuong(QuanCo tuong) Kiểm tra quân Tướng được đưa vào làm

Page 56: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

tham số có bị chiếu không bằng cách

kiểm tra từng quân cờ của đối phương

có di chuyển đến vị trí của quân tướng

được không, trả về True nếu bị chiếu,

trả về False nếu không bị chiếu

public static void KiemTraChieuTuong()Kiểm tra và thông báo quân tướng phe

nào bị chiếu nếu là nước đi chiếu tướng

public static void AnQuanCo(QuanCo q)

Thiết lập quân cờ q thành quân cờ đã bị

ăn(TrangThai=0) và đưa vào mảng các

quân cờ bị ăn

public static void KiemTraChieuBi()

Kiểm tra và thông báo nếu là nước đi

chiếu bí bằng cách duyệt lần lượt các

quân cờ của phe bị chiếu xem có quân

cờ nào còn nước đi hợp lệ không(đúng

luật đi của loại quân đó, không chống

tướng, nước đi không dâng tướng cho

đối phương)

public static void ClickSound(string s)Phát ra tiếng động khi quân cờ di

chuyển hoặc ăn quân đối phương

public static void PlayNhacNen(bool nhacnen)

Kiểm tra giá trị của nhacnen,

nhacnen=True => play nhạc nền,

nhacnen=False => stop nhạc nền

D. Nhóm giao diện tương tác

1. Form ChessBoard: Form chính, dùng cho 2 người chơi tương tác với game

như các menu để thực hiện các chức năng NewGame, Undo, Save, Open,

Page 57: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Options, Exit, hiển thị tên người chơi, thời gian còn lại của từng người chơi,

các quân cờ bị ăn…

2. Form NewGame: Form lấy thông tin cho một ván cờ mới, gồm có tên 2 người

chơi, tùy chọn tính thời gian, chấp cờ. Khi form được submit thì các giá trị

tương ứng với thông tin sẽ truyền cho các thuộc tính static tương ứng trong lớp

VanCo để quản lý ván cờ đó.

3. Form Open: Khi form đươc gọi thì tương ứng, phương thức Open của lớp

VanCo được thực thi, phương thức này sẽ thực hiện thao tác duyệt các file

trong thư mục Save và đưa vào 1 listbox để người chơi chọn và chơi tiếp, sau

khi người chơi chọn và click Chơi, thì file tương ứng với phần tử được chọn

trong listbox sẽ được lấy thông tin và đưa vào các thuộc tính của lớp VanCo và

lớp BanCo.

4. Form Sound_Options: Form lấy thông tin về tùy chọn âm thanh của người

chơi. Gồm có tiếng động và nhạc nền. Khi form được Submit thì các giá trị

tương ứng với các thông tin này sẽ được truyền vào thuộc tính tương ứng trong

lớp ván cờ là VanCo.AmThanh và VanCo.Nhacnen.

II. TIẾN HÀNH KIỂM THỬ

1. Mục đíchKiểm tra các chức năng của đối tượng có đúng yêu cầu không, xem

giao diện có đúng thiết kế hay không.

2. Yêu cầu giao diện

STT Yêu cầu kiểm thử Yêu cầu kết quả KQ

1 Chức năng xếp bàn cờ Khi bắt đầu ván cờ, bàn cờ phải

được xếp đúng theo luật.

ok

Page 58: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

2 Các quân cờ đi đúng luật Các quân cờ chỉ được đi theo các

luật đã định, không được đến các vị

trí nó không được phép

3 Chức năng lưu/ Mở lại ván cờ Lưu lại ván cờ đã đánh dở dang, lần

sau mở lại nó tiếp tục trạng thái lúc

lưu

4 Chức năng tùy chỉnh âm thanh Có thể bật/tắt nhạc nền, tiếng động

5 Chức năng xin đi lại Quay lại trạng thái của ván cờ trước

lúc đi quân vừa rồi

6 Chức năng báo thắng/thua Khi có một người thắng, thông báo

vãn cờ kết thúc đồng thời thông báo

người thắng người thua

7 Chức năng đếm thời gian Giới hạn thời gian đi một quân cờ

8 Chức năng gợi ý Khi một quân cờ được chọn để đi thì

xuất hiện các gợi ý các vị trí có thể

đi

9 Chức năng Reset Có thể chơi lại ván cờ từ đầu

10 Chức năng giới hạn thời gian

chơi một ván cờ

Bạn có thể giới hnaj thời gian chơi

một ván cờ, khi thời gian kết thúc

mà vãn cờ chưa kết thúc thì có

thông báo

3. Tình huống kiểm thử và kết quảTình huống Dữ liệu kiểm thử Yêu cầu kết quả KQ

Kiểm tra bước đi

của từng quân cờ

Kiểm tra tất cả cac

bước đi của các quân

Đi đúng luật OK

Page 59: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

cờ

Tạo mới ván cờ Nhấn vào nút Tạo

mới ván cờ

Các quân cờ xanh đỏ

được xếp mới theo

đúng quy định, trạng

thái người chơi được

bắt đầu tính

Ok

Lưu ván cờ Khi ván cờ mới được

tạo, nhấn lưu ván cờ

Ván cờ không được

lưu

Bug:Thông

báo ván cờ

được lưu.

Lưu ván cờ Khi ván cờ đang

được chơi dở dang,

nhấn lưu ván cờ

Ván cờ được lưu vào OK

Thoát Khi ván cờ chưa lưu,

nhấn thoát

Hiện thông báo có lưu

ván cờ hay không

ok

Thoát Khi ván cờ vừa lưu,

nhấn thoát

Thoát, không hiện

thông báo

Bug: Hiện

thông báo

có lưu ván

cờ hiện tại

không

Mở ván cờ đã lưu Khi khởi chạy

chương trình, nhấn

mở ván cờ đã lưu

Mở lại ván cờ đúng

trạng thái lúc lưu

OK

Đổi nhạc nền Nhấn Setting, chọn/

bỏ chọn Nhạc nền,

chọn đường dẫn đến

file nhạc

Khởi chạy chương

trình sẽ có nhạc nền

bật/ tắt.

ok

Xin đi lại nước Khi mới mở ván cờ, Thông báo không Bug:

Page 60: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

nhấn nút xin đi lại

nước

thành công Thông báo

đi lại thành

công

Xin đi lại nước Khi đang chơi ván

cờ, người chơi có thể

xin đi lại nước

Thông báo thành công OK

Không nhập tên

người chơi

Khi tạo ván cờ mới,

không nhập tên

người chơi

Thông báo nhập tên Ok

Cờ chấp Khi khởi tạo ván mới

có chức năng chọn

Cờ chấp, chọn các

con cờ muốn chấp

Các con cờ được chấp biến mất khỏi bàn cờ

ok

Tính thời gian Khi khởi tạo ván mới

có chức năng tính

thời gian, sau

hết thời gian quy định

có thông báo

Ok

Chức năng chiếu bí Hai người đang chơi,

khi có một người

chiếu tướng hết cờ

Xuất hiện thông báo

“Chiếu bí” với hai

chức năng Xin hang –

Xin đi lại

ok

Chức năng kiểm tra

chiếu tướng

Khi một quân được

chọn để di chuyển

Nó phải được xét xem

khi nó di chuyển bàn

cờ có rơi vào trạng

thái chiếu tướng hay

không

ok

Chức năng kiểm tra

chiếu bí

Khi một quân cờ di

chuyển

Nó được kiểm tra xem

ván cờ có rơi vào thế

Ok

Page 61: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

chiếu bí hay không ,

nếu có hiện thông báo

Page 62: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

PHÂN CÔNG CÔNG VIỆC TRONG NHÓM

STT Họ và tên Công việc cần làm Đánh giá

1 Nguyễn Lan Anh Tìm hiểu quy trình kiểm thử tại công ty

Vận dụng vào việc kiểm thử game Cờ tướng

Đã hoàn thành nhưng còn thiếu sót

2 Bùi Văn Trường Tìm hiểu các kỹ thuật kiểm thử phần mềm

Đã hoàn thành nhưng còn thiếu sót

3 Ngô Đăng Trung Tìm hiểu về kỹ thuật kiểm thử game

Đã hoàn thành nhưng còn thiếu sót

Page 63: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

PHẦN IV: TỔNG KẾTKiểm thử phần mềm là bước không thể thiếu trong quá trình sản xuất phần

mềm, đặc biệt với một game thì việc kiểm thử được đặt lên hang đầu và phải rất

coi trọng trước khi giao cho khách hang hay trước khi phổ biến người dung. Trong

việc xây dựng phần mềm không thể nào tránh được lỗi, việc Kiểm thử không phải

chỉ là để tìm lỗi mà nó có mục đích nâng cao chất lượng phần mềm, giảm thiểu tối

đa các lỗi có thể mắc.

Bài báo cáo chúng em đã tìm hiểu về vai trò, chức năng và các kỹ thuật kiểm

thử phần mềm, kiểm thử game trong công nghiệp. Áp dụng vào kiểm thử game Cờ

tướng – Bài tập lớn môn Đồ họa. Chúng em đã cố gắng hết sức nhưng vẫn còn

nhiều sai sót, mong cô thông cảm và góp ý để bài tập lớn của chúng em hoàn thiện

hơn.

Page 64: Tìm hiểu về kỹ thuật Kiểm thử phần mềm

Các tài liệu tham khảo

1. Sommerville I., Software engineering - 4th, Addison Wesley, 1995.

2. Lê Đức Trung, Công nghệ phần mềm, Nhà xuất bản Khoa học và Kỹ

thuật, 2002.

3. Tài liệu nhập môn công nghệ phần mềm (ebook tại

http://www.slideshare.net/vn.zinki/gt-cng-ngh-phn-mm-se5)

4. File mô tả qui trình kiểm thử của công ty VTC Moblie