Kiểm thử Game và cách tạo Testcases/Checklist

1. Sơ lược về Kiểm thử Game

Kiểm thử Game là một trong những phần quan trọng nhất trong quá trình phát triển Game, và cũng là quá trình kiểm thử khá phức tạp và cần được xử lý đúng cách, đúng quy trình như bất kỳ loại kiểm thử nào khác.

Công việc kiểm thử Game không dành cho những người không có chuyên môn, mặc dù có một quá trình dành cho thử nghiệm người dùng trực tiếp, hay alpha, beta test. Người sử dụng đóng vài trò như một người chơi Game thực thụ, và sẽ gửi thông tin hoặc báo cáo khi có bất kỳ vấn đề hay lỗi nào xảy ra. Tuy nhiên việc giảm thiểu quá trình kiểm thử Game bằng những thứ đơn giản hơn như chỉ chơi Game và xem nếu có bất kỳ vấn đề gì hay không sẽ làm suy giảm nghiêm trọng chất lượng trò chơi.

2. Các kỹ thuật kiểm thử Game

Sau đây là một số kỹ thuật kiểm thử Game, mà có mối liên quan tới thử nghiệm phần mềm di động:

  • Combinatorial Testing: Đây là một phương pháp thiết kế trải nghiệm đã được sử dụng cho kiểm thử các phần mềm thương mại và dùng để sinh ra các test cases. Áp dụng Combinatorial Testing để kiểm thử Game làm tăng hiệu quả thực thi, cung cấp chất lượng, giảm chi phí và giúp cho việc ngăn chặn rủi ro tốt hơn.

  • Clean Room Testing: Đây là quá trình nhằm phát triển mức độ đáng tin cậy trong Game.

  • Functionality Testing: Phương pháp nhằm xác định các bugs hoặc errors trong Game mà có thể gây ảnh hưởng tới trải nghiệm người dùng.

  • Compatibility Testing: Được sử dụng để tìm xem trò chơi có hoạt động bình thường hay không, và có liên quan đến cấu hình phần cứng, đồ hoạ và phần mềm mà thiết bị sử dụng. Đây là một trong những loại kiểm thử phần mềm di động thiết yếu nhất, và sẽ kiểm tra nếu như tiêu đề Game có thể chạy trên những thiết bị cụ thể hay không. Các ứng dụng điện thoại yêu cầu thêm rất nhiều quan điểm test mà không dựa vào chức năng. Ví dụ như ứng dụng này tiêu tốn bao nhiêu dữ liệu? Pin? Và ứng dụng có hoạt động khác đi nếu pin yếu không? Nó thải ra bao nhiêu dữ liệu rác? Và cách xử lý dữ liệu rác như thế nào?... đều là những quan điểm cần thêm vào khi thực hiện kiểm thử.

  • Tree Testing: Loại kiểm thử này khá giống với usability testing, được dùng để sắp xếp tổ chức các test cases. Nó cũng giúp để lựa chọn các thiết lập thích hợp cho những phần thay đổi code.

  • Regression Testing: Kiểm thử hồi quy được thực hiện để kiểm tra lại các phần không thay đổi của ứng dụng. Sẽ tiến hành phân tích chức năng khác của ứng dụng có hoạt động tốt hay không và những thay đổi sẽ không gây ra bất kỳ lỗi hoặc lỗ hổng mới nào.

  • Ad hoc Testing: Đây là một phương pháp thử nghiệm không thường xuyên được sử dụng để phá vỡ hệ thống. Người kiểm thử sẽ ngẫu nhiên kiểm tra ứng dụng mà không có các testcases hoặc bất kỳ tài liệu nào.

  • Load Testing: là thử nghiệm hiệu suất để xác định hiệu suất của một hệ thống theo thời gian thực. Thử nghiệm tải cho thấy phản ứng của ứng dụng khi nhiều người dùng cùng sử dụng ứng dụng đồng thời.

  • Play Testing: là phương pháp thử nghiệm trò chơi bằng cách chơi trò chơi để phân tích các tính năng không hoạt động như các yếu tố vui nhộn, độ khó, cân bằng, vv Ở đây một nhóm người dùng được chọn sẽ chơi các phiên bản chưa hoàn thành của trò chơi nhằm kiểm tra các luồng cũng như tính năng.

3. Tạo Testcases/ Checklist cho kiểm thử Game

Testcases hay Checklist cho kiểm thử Game cũng cần có những thành phần chính giống như một Testcases thông thường.

  • View point: Quan điểm test.
  • Expected results: Tuỳ theo yêu cầu và tài liệu đặc tả của Game, mà viết kết quả mong muốn tương ứng.
  • Actual results: Kết quả sau khi đã tiến hành kiểm thử.

Dưới đây là ví dụ Testcases hay Checklist đơn giản cho kiểm thử Game

ID View Point Description
1 Check for background music and sound effects ON/OFF sound & background music
2 Receive the call and check
3 Verify if sound effects are in sync with action
4 ON/OFF device sound(native sound) and check
5 Check for vibration effect if present
6 User Interface Check in Landscape/Portrait mode
7 Check for animation, movement of character, graphics, Zoom In/Out (all gestures) etc
8 There should not be any clipping (cutted background)
9 Test whether one object overlaps with another
10 Verify if loading indicator is displayed wherever required
11 Character should not move out of the screen/specified area
12 Test for enable and disable images/icons/buttons etc
13 Check for screen title
14 Check for message title, message description, label (should be appropriate)
15 Check scrolling
16 Font displayed (color, size etc)
17 Check other objects too (ex -if its a car race- you need to look at road, people, other objects like buildings etc)
18 Performance Check the loading time of a game
19 Make sure that any action is not taking considerable time, game flow should be fast
20 Score Score calculation
21 Verify leaderboards General/All time/Weekly/local etc
22 Check the score registration functionality
23 Check the format (whether, comma is required in score etc ideally if customer is a foriegner coma should be in millions not in thousands )
24 Check for level completion syncs with the score
25 Time Out Check for time out
26 Do the actions when time-out yet to happen
27 Multitasking Switch b/w different apps and play game , check for sound, score, UI, time-out etc
28 Pause Check if game is paused when call received or multitasking or sleep mode
29 Save Settings Turn off and on device, check if settings are saved
30 Log out /On , check same
31 User should not loose his game in above conditions
32 User profile Put a all types of images in Player profile and check
33 Put special character, numbers,space in username and check
34 Password should be in masked
35 Chat feature Check the profile images
36 Max limit of chat description
37 Enter empty string, special character and check
38 For a opponent , there should be a notification that he has received a message
39 Functionality Check game area, game logic
40 Play till last level
41 Get the cheat codes from development team and check all the levels
42 Check for the features that will be unlocked level-wise
43 Check for bonus score
44 Check the score hike when level gets increased
45 Check for multi-tap action (example in a car race we hold accelerator and left/right turn button simultaneously)
46 Menu options
47 Different game modes/location
48 Help & About Screen Should be in easily understandable format
49 free from spelling mistakes
50 URL should be hyperlinked (depends)
51 Multiplayer game Session expiry check
52 login/log out
53 Registration (Sign Up)
54 Verify account (receive verification mail)
55 login with registered but not verified account (without clicking verification link)
56 Forgot password checks (many cases here)
57 Game flow
58 Check for WIN/lost/Draw
59 Check user statistics graph
60 Challenge/Decline challenge/receive challenge
61 Check for forfeit
62 Check when player 2’s turn is on Player 1 is not able to do actions (should not be able to forfeit also)
63 Check for pass turn
64 Check for time-out (for one player)
65 Check the score for both the players till game ends
66 Memory leak Check the game when device memory is low
67 Network (n/w) check N/w messages if n/w is not present
68 Check if what happens when n/w not present and user plays a move (whether score submitted for that move etc)
69 Check for localization Should be Support of different languages
70 Check for time format Change the device time , format etc
71 Size User wont like if your game takes lot of device space, so keep one eye on game file size
72 Device , OS Check in supported screen sizes and os versions (basicaly depend on Client requirement)
73 Depends on platform Sometime we need to check as per OS guidliness as well. For ex in Wp7 we need to check in 2 background (light/dark).
74 Check Share options Post score via mail/FB/Twitter
75 Check the posted/sent messages in FB/Twitter/Mail. Check links are hyperlinked and application icon is displayed in the post (depends)
76 If twitter integration is a manual ( custom UI developed by developer), check what happens when u enter more than 140 chars (as twitter limit is 140)
77 Music playing during app launch If music player running and we start installing any game app, music player should pauses without prompting for the user permission.
Steps for checking this:
1. Play a music file.
2. Launch the application.
3. Verify that while the application loads, it does not pause, resume or stop the actively playing music.
78 Interuption If app(game) is in running mode, then Check the behaviour of interuption like like Bluetooth, Infra red and CALL/SMS/MMS.
79 Battery effect What if Battery goes down/switched of the cell while playing, Wheter the score wil get saved?
80 Check the downloads/upgrade the Game Download Game when device has enough free space
81 Download Game when device dose not have enough free space
82 Install Game
83 Delete then re-install game
84 Upgrade of Games to the latest version and while migration all data should persist