Các loại lỗi gặp phải khi thực hiện game testing
Bài đăng này đã không được cập nhật trong 3 năm
Như chúng ta đã biết, việc thực hiện game testing rất khác so với việc testing một ứng dụng thông thường, dù trên bất kỳ nền tảng nào.
Việc nghĩ ra và thực hiện đủ tất cả các test case nhiều khi là không thể với game testing. Việc kiểm tra và tìm ra tất cả các lỗi của game là điều rất khó thực hiện vì nhiều lý do khác nhau ngoài việc gameplay quá rộng, đó là deadline, quy trình của project, hay đơn giản hơn là khả năng kiểm thử của QA và kỹ năng của lập trình viên.
Chính vì vậy, chúng nên phân loại các kiểu bug sẽ gặp phải khi thực hiện kiểm thử game, và dựa trên các đặc tả của game để hiểu những loại bug nào sẽ gặp phải sẽ giúp chúng ta tìm ra nhiều bug nhất có thể và không để bỏ sót những lỗi nghiêm trọng.
1. Lỗi về âm thanh trong game
Tất cả các vấn đề liên quan đến âm thanh và chất lượng âm thanh của game đều được phân loại là lỗi về âm thanh.
Âm thanh (Audio): Các lỗi dẫn đến do việc tích hợp âm thanh vào trong game. Các lỗi này sẽ được sửa bởi lập trình viên. Ví dụ Bài hát bị cắt bởi một âm thanh khác, không chạy đủ, được phát sai chỗ hay âm thanh không lặp…
Chất lượng âm thanh (Sound Quality): Các vấn đề về chất lượng của từng file âm thanh chạy trong game đều được coi là lỗi về chất lượng của âm thanh. Các lỗi này phần lớn sẽ được sửa bởi người design ra âm thanh nhưng đôi khi lỗi gây ra là do quá trình tích hợp âm thanh gây nên, lúc này lỗi sẽ được sửa bởi lập trình viên(ví dụ: Bass của âm thanh quá to, file âm thanh chạy không hoàn chỉnh, file nhạc lặp không chính xác, hiệu ứng âm thanh bị rè, lag). Về chất lượng âm thanh, chúng ta nên kiểm tra bằng cách so sánh hai gói âm thanh một là gói âm thanh gốc và một gói là đã được chuyển đổi để tích hợp vào trong game.
2. Lỗi về điều khiển trong game
Điều khiển là tất cả các hành động thao tác vật lý của người chơi phải hoàn thành để thực hiện một hành động trong game (VD: Điều hướng menu trong game, điều khiển các nhân vật). Bất kỳ vấn đề nào liên quan đến cơ chế điều khiển và sự phối hợp trong game đều được coi là lỗi về điều khiển trong game.
Phản hồi (Responsiveness): Là lỗi khi có bất kỳ độ trễ nào vượt quá giới hạn cho phép. Thường các lỗi về độ phản hồi có độ nghiêm trọng là trung bình.
Chức năng (Functions): Là lỗi khi chức năng không có phản hồi như trong đặc tả đã quy định hoặc một phím nào đó trong game không có phản hồi.
3. Lỗi về hiển thị trong game
Lỗi hiển thị xảy ra bất cứ khi nào có sự méo mó hoặc một lỗi về hình ảnh được hiển thị trên màn hình, cũng như các hình ảnh bị thiếu hoặc không hiển thị trọn vẹn(fit) trên độ phân giải của màn hình.
Căn chỉnh(Alignment): Nếu có một item nào có vị trí không chính xác hoặc lệch so với các item còn lại, thì đó là lỗi về căn chỉnh. Các item này có thể là menu item, chữ(không được căn giữa) hoặc bất kỳ đối tượng nào của các nhân vật và môi trường trong game. Một ví dụ đó là một con đường trông không được liền mạch vì việc lặp các hình ảnh không chính xác.
Khả năng hiển thị văn bản(Text visibility): Các đoạn chữ hay văn bản phải được hiển thị rõ ràng trong game. Ví dụ như một đoạn chữ bị tràn khung(lề) hoặc bị đè lên các chữ khác. Lỗi về chữ quá tối hoặc quá sáng, chúng ta cũng có thể đặt lỗi ở loại lỗi về tương phản/ độ sáng, lỗi về căn lề chúng ta có thể để ở loại căn chỉnh.
Tương phản/Độ sáng(Contrast/lighting): Độ tối và sáng giữa các thành phần phải rõ ràng để người chơi có thể phân biệt được chúng. Thêm nữa, không nên có các độ tương phản quá lớn giữa các các thành phần, ví dụ trong một căn phòng không nên có độ tương phản giữa các đồ đạc quá lớn trừ khi đó là thứ mà user cần phải tìm kiếm.
Kết cấu(Texture): Là khi có vần đề về hiển thị dựng hình của một kết cấu. Nó áp dụng cho cả kết cấu 3D và 2D. Ví dụ dựng hình một cái cây mà có các thành phần kim loại hoặc ô tô được làm từ chất liệu giống như vải, sợi, núi đá lại có mặt phẳng như hồ nước…
Camera: Camera là cách nhìn của người chơi trong game, cụ thể là góc quay của màn hình. Camera phải tập trung vào một vật hoặc hành động của người chơi. Hầu hết trên các game, camera sẽ di chuyển theo nhân vật chính. Nhưng trong một số game khác ví dụ như bóng đá, thì camera sẽ di chuyển theo bóng.
Hoạt họa(Animations): Bất cứ khi nào có một item trên màn hình chuyển động, ví dụ như chạy hoặc đi bộ, đó được coi là một animation(hình ảnh động). Animation có thể là hành vi của nhân vật chính, NPC hoặc môi trường. Nếu một trong số chúng không tuân theo chuyển động(animation loop), đó có thể coi là một bug về animation.
Hình ảnh(Graphics): Lỗi này liên quan đến chất lượng và sự phù hợp của hình ảnh. Trong khi lỗi về căn chỉnh(Alignment) và hoạt họa(Animations) đề cập đến cách sử dụng một hình ảnh đồ họa thì lỗi về hình ảnh đề cập đến nội dung của chính hình ảnh đồ họa đó. Ví dụ đó là khi nhân vật chính di chuyển, hình ảnh các ngôi nhà xung quanh bị nhấp nháy(giây 00:20)
4. Lỗi về engine của game
Lỗi về engine liên quan đến code ngầm bên dưới ảnh hưởng đến sự ổn định và tạo ra các hiệu ứng của trò chơi.
Tốc độ khung hình(Frame rate): Là số khung hình của một chuyển động được hiển thị trên mỗi giây, được đo là số khung hình trên giây(frames per second - fps). Nếu số khung hình quá thấp, đó là lỗi về tốc độ khung hình.
Sự ổn định(Stability): Các lỗi khi trò chơi crash hoặc freeze là lỗi thuộc về sự ổn định của game.
Khả năng tương thích(Compatibility): Độ tương thích là khi cài đặt các game trên một thiết bị cụ thể để trò chơi có chạy được hay không.
5. Lỗi về gameplay của game
Nó liên quan đến các luật chơi hoặc cách điều khiển của game được thiết kế bởi game designer.
HUD: Là viết tắt của Heads Up Display, là phần hiển thị thông tin hữu ích như số điểm, cột máu, số item nhặt được… để người chơi có thể biết được trạng thái của game. Lỗi về HUD là lỗi về hiển thị các thông tin bị sai, không chính xác. Ví dụ khi nhân vật chính bị quái vật đánh, nhưng trên HUD không bị mất máu.
Hành vi của nhân vật chính(Main character behaviour): Nhân vật chính(Main Character - MC) là đối tượng mà người chơi điều khiển trong game. Nhân vật chính có thể thay đổi rất nhiều lần nếu đó là game thể thao, ví dụ: nhân vật chính sẽ là cầu thủ điều khiển trái bóng. Nhân vật chính cũng có thể không phải là người mà là một vật nào đó mà người chơi điều khiển. Nếu hành vi của nhân vật chính không đúng với thiết kế của game, đó là lỗi thuộc về loại này.
Hành vi của môi trường(Environment behaviour): Lỗi về hành vi của môi trường là lỗi khi nhân vật chính tương tác với các các yếu tố khác trong trò chơi ví dụ cửa, súng, cùng kích hoạt(nhiệm vụ)... Lỗi về sự va chạm(Collision) hoặc vật lý(Physics) cũng thuộc về lỗi hành vi của môi trường nhưng chúng thường hay gặp và khá phức tạp nên chúng ta sẽ đặt nó ở loại riêng.
Sự va chạm(Collision): Là lỗi mà các đối tượng trong game không tương tác chính xác với nhau, ví dụ, bóng đi xuyên qua người thủ môn, nhân vật chính đi xuyên qua bức tường…
Vật lý(Physics): Lỗi về vật lý là khi một đối tượng hoặc một nhân vật trong game không hành động theo đúng quy tắc vật lý thực tế. Ví dụ, khi đua xe, trong khi va chạm thì chiếc xe bay lên không trung
Hành vi của NPC(NPC behaviour): NPC là viết tắt của Non-Player Character, là các nhân vật không điều khiển được trong game ví dụ kẻ thù, người ngoài hành tinh hoặc nhân vật trung lập. Lỗi về hành vi của NPC liên quan đến cách mà NPC hành động.
Quy tắc chơi game(Game mechanics/rules): Quy tắc chơi game là các luật mà được tạo bởi spec hoặc người thiết kế game. Lỗi loại này là khi game không tuân theo các quy tắc đã được thiết kế. Ví dụ khi một cầu thủ bị thẻ đỏ nhưng vẫn có thể chơi bóng.
Thiết kế Level(Level design): Các lỗi này liên quan đến thiết kế của level. Có nghĩa là bố cục của level không hoạt động chính xác dẫn đến người chơi không thể vượt qua được level đó. Ví dụ, nhân vật phụ không nhận ra nhân vật chính đã đến check point để mở cánh cửa của level tiếp theo.
6. Lỗi về tiến trình của game
Nó liên quan đến cách trò chơi lưu và tải tiến trình của người chơi, điểm và các cài đặt của trò chơi
Checkpoints: Lỗi về checkpoint là các lỗi khi người chơi đến điểm có thể lưu game tạm thơi nhưng checkpoint đó không lưu game hoặc hoạt động không chính xác
Lưu và Tải game(Saving/loading): Là lỗi khi user lưu và chơi lại các trò chơi ở một điểm nào đó trong game nhưng dữ liệu của người chơi bị mất hoặc không thể tải lên được.
Dữ liệu người dùng(User data): Là các lỗi khi quay trở lại game nhưng người chơi bị mất một số item đã có trước đó như súng, vật phẩm qua bàn, đồ đạc trong game…
7. Làm gián đoạn(Interrupt) trong game
Đó là do các chức năng của thiết bị không bị dừng trong lúc chơi game có thể đè lên các chức năng của game.
Bên trong(Internal): Liên quan đến các thao tác ngắt của bản thân thiết bị đó, ví dụ như các phím bấm của thiết bị, báo thức, hết pin, pin yếu… Nó còn được gọi là offline interrupt.
Bên ngoài(External): Liên quan đến các thao tác ngắt bên ngoài các thao tác của thiết bị ví dụ như gọi điện, tin nhắn, MMS, Bluetooth… Nó còn được gọi là online interrupt.
8. Các lỗi về Menu
Có rất nhiều loại menu trong game. Đó là các menu bên ngoài phần chơi game(action phase) như menu chính(Main menu) và menu trong game(In-Game menu) truy cập khi bấm nut tạm dừng(pause). Cũng có menu bên trong game khác như cửa hàng(shop) nơi có thể mua các vật phẩm trong game. Các lỗi của menu liên quan đến các hành vi của menu khi có một tùy chọn được truy cập hoặc kích hoạt.
Điều hướng(Navigation): Nếu game không tuân theo các phân cấp điều hướng của menu. Ví dụ khi đang trong game, người chơi chọn ra ngoài main menu thì game phải điều hướng ra menu, nếu không chính xác, đó là lỗi.
Bố cục(Layout): Là lỗi khi thiếu một vài item của menu ví dụ như không có nút exit hoặc không có nút quay trở lại menu chính khi đang chơi game...
Thiết lập(Settings): Là bất kỳ lỗi nào liên quan đến các thiết lập trong menu chính hoặc menu trong game. Ví dụ như khi thiết lập các cài đặt của phần âm thanh gồm nhạc và hiệu ứng hoặc cách điều khiển trong các game hành động như đua xe, FPS(First Person Shooter).
9. Lỗi liên quan đến mạng
Kết nối và ngắt kết nối(Connect/disconnect): Là lỗi khi bất cứ khi nào người chơi gặp phải vấn đề kết nối ví dụ như người chơi không thể đăng nhập, không thể kết nối đến server của game...
Đồng bộ hóa(Synchronization): Liên quan đến các kết nối giữa các người chơi khi chơi chế độ đa người chơi(multiplayer) và các tùy chọn ảnh hưởng đến quá trình đông bộ hóa giữa các người chơi. Ví dụ như thứ tự xếp hạng khi đua xe giữa các người chơi có thể không chính xác hoặc các item trên từng máy của người chơi không giống nhau…
Kết nối mạng(Networking): Là lỗi liên quan đến các vấn đề xảy ra khi chơi game cần kết nối mạng. Nó bao gồm kết nối Bluetooth và Wifi.
10. Lỗi về các nội dung nhạy cảm
Tùy thuộc vào các game hướng đến các độ tuổi khác nhau mà lỗi này có thể xảy ra. Ví dụ khi đăng ký một trò chơi cho lứa tuổi 12 thì không được có những nội dung dưới đây:
Hình ảnh nhạy cảm(Offensive images): Là các hình ảnh chứa nội dung bạo lực, tình dục
Offensive sounds: Là các tiếng la hét, giết chóc hoặc về nội dung tình dục
Offensive text: Là các câu chữ chửi thề hoặc liên quan đến tình dục
Nếu như ký sai độ tuổi khi release lên chợ ứng dụng(Apple Store, Play Store...) thì game đó có thể bị từ chối.
11. Các lỗi liên quan đến văn bản
Ngữ pháp/đánh máy/chính tả(Grammar/typos/spelling): Là các lỗi khi các chữ, đoạn văn gặp phải các lỗi về chính tả, ngữ pháp và lỗi đánh máy. Các lỗi này thường là các lỗi nhỏ nhưng có thể gây ra các trải nghiệm không tốt cho người chơi.
Ngôn ngữ(Localization): Liên quan đến các lỗi về ngôn ngữ giữa các quốc gia. Nếu có từ ngữ nào mà không chính xác với các văn bản chuyển đổi ngôn ngữ đã cho, đó là lỗi của loại này. Thậm chí các văn bản dịch của các ngôn ngữ cũng có thể sai, nên những lỗi này thường là lỗi gợi ý(suggestion).
Nội dung(Content): Là lỗi về các cấu trúc câu không phù hợp với ngữ cảnh ví dụ như kẻ cướp(bandit) nói với cảnh sát(policeman) là “Hãy đầu hàng, bạn đã bị bắt!(Surrender! You are under arrest!)”
Tham Khảo
Tư liệu và hình ảnh được lấy từ các nguồn trên mạng khác nhau:
All rights reserved