1. Quy trình nào giúp xác định và ưu tiên các tính năng cần thiết cho ứng dụng di động dựa trên giá trị mà chúng mang lại cho người dùng và nỗ lực cần thiết để phát triển?
A. Lập kế hoạch dự án
B. Quản lý rủi ro
C. Ưu tiên hóa tính năng
D. Phân tích đối thủ cạnh tranh
2. Loại kiểm thử nào tập trung vào việc xác minh các yêu cầu phi chức năng của ứng dụng di động, chẳng hạn như hiệu suất, khả năng sử dụng và bảo mật?
A. Kiểm thử đơn vị (Unit testing)
B. Kiểm thử tích hợp (Integration testing)
C. Kiểm thử hệ thống (System testing)
D. Kiểm thử phi chức năng (Non-functional testing)
3. Kỹ thuật nào giúp bảo vệ mã nguồn của ứng dụng di động khỏi bị dịch ngược và phân tích, ngăn chặn hành vi sao chép hoặc sửa đổi trái phép?
A. Mã hóa dữ liệu (Data encryption)
B. Xác thực hai yếu tố (Two-factor authentication)
C. Obfuscation (Làm rối mã)
D. Kiểm soát truy cập (Access control)
4. Loại tấn công nào lợi dụng các lỗ hổng trong API để truy cập trái phép vào dữ liệu nhạy cảm của ứng dụng di động?
A. SQL injection
B. Cross-site scripting (XSS)
C. API injection
D. Man-in-the-middle attack
5. Trong phát triển ứng dụng di động, `deep linking` dùng để chỉ điều gì?
A. Liên kết đến trang chủ của ứng dụng.
B. Liên kết đến một vị trí cụ thể bên trong ứng dụng từ một nguồn bên ngoài.
C. Liên kết giữa các ứng dụng khác nhau trên cùng một thiết bị.
D. Liên kết đến các trang web bên ngoài từ bên trong ứng dụng.
6. Phương pháp nào sau đây giúp đảm bảo ứng dụng di động hoạt động tốt trên nhiều loại thiết bị với kích thước và độ phân giải màn hình khác nhau?
A. Thiết kế đáp ứng (Responsive design)
B. Thiết kế cố định (Fixed design)
C. Thiết kế tuyến tính (Linear design)
D. Thiết kế song song (Parallel design)
7. Loại cơ sở dữ liệu nào thường được sử dụng cho ứng dụng di động để lưu trữ dữ liệu cục bộ trên thiết bị?
A. MySQL
B. PostgreSQL
C. SQLite
D. Oracle
8. Trong ngữ cảnh phát triển ứng dụng di động, `code signing` (ký mã) dùng để chỉ điều gì?
A. Việc viết mã nguồn rõ ràng và dễ đọc.
B. Việc sử dụng các công cụ tự động để kiểm tra lỗi mã nguồn.
C. Việc thêm chữ ký số vào ứng dụng để xác minh tính xác thực và toàn vẹn của ứng dụng.
D. Việc tối ưu hóa mã nguồn để cải thiện hiệu suất của ứng dụng.
9. Yếu tố nào sau đây quan trọng nhất để thành công khi phát hành ứng dụng di động trên thị trường?
A. Ứng dụng có nhiều tính năng độc đáo
B. Ứng dụng được thiết kế đẹp mắt
C. Ứng dụng giải quyết một vấn đề cụ thể cho người dùng và có chiến lược marketing hiệu quả
D. Ứng dụng được phát triển bằng công nghệ mới nhất
10. Yếu tố nào sau đây quan trọng nhất để tạo ra trải nghiệm người dùng (UX) tốt cho ứng dụng di động?
A. Thiết kế giao diện đẹp mắt
B. Tốc độ tải nhanh
C. Tính năng phong phú
D. Dễ sử dụng và trực quan
11. Trong ngữ cảnh phát triển ứng dụng di động, `technical debt` (nợ kỹ thuật) đề cập đến điều gì?
A. Chi phí bảo trì ứng dụng sau khi phát hành.
B. Việc sử dụng các thư viện và framework của bên thứ ba.
C. Hậu quả của việc đưa ra các quyết định thiết kế hoặc mã hóa không tối ưu trong ngắn hạn để đạt được mục tiêu nhanh hơn.
D. Số tiền cần thiết để thuê các nhà phát triển có kinh nghiệm.
12. Nguyên tắc SOLID nào trong thiết kế hướng đối tượng giúp giảm sự phụ thuộc giữa các module trong ứng dụng di động, từ đó tăng khả năng tái sử dụng và bảo trì?
A. Single Responsibility Principle (SRP)
B. Open/Closed Principle (OCP)
C. Liskov Substitution Principle (LSP)
D. Dependency Inversion Principle (DIP)
13. Loại giấy phép (license) nào cho phép người dùng sử dụng, sửa đổi và phân phối lại mã nguồn của ứng dụng di động một cách tự do?
A. Proprietary license (Giấy phép độc quyền)
B. Commercial license (Giấy phép thương mại)
C. Open-source license (Giấy phép mã nguồn mở)
D. Trial license (Giấy phép dùng thử)
14. SDK (Software Development Kit) cung cấp cho nhà phát triển ứng dụng di động những gì?
A. Một môi trường để thiết kế giao diện người dùng.
B. Các công cụ, thư viện, tài liệu và mẫu mã cần thiết để phát triển ứng dụng cho một nền tảng cụ thể.
C. Một nền tảng để triển khai và phân phối ứng dụng.
D. Một dịch vụ để quản lý cơ sở dữ liệu của ứng dụng.
15. Lợi ích chính của việc sử dụng kiến trúc microservices trong phát triển ứng dụng di động là gì?
A. Giảm chi phí phát triển.
B. Tăng tốc độ phát triển ban đầu.
C. Tăng khả năng mở rộng, linh hoạt và độc lập trong triển khai các thành phần của ứng dụng.
D. Đơn giản hóa việc quản lý cơ sở dữ liệu.
16. Công cụ nào sau đây được sử dụng để quản lý và theo dõi các lỗi (bugs) trong quá trình phát triển ứng dụng di động?
A. IDE (Integrated Development Environment)
B. Version control system (Hệ thống quản lý phiên bản)
C. Bug tracking system (Hệ thống theo dõi lỗi)
D. CI/CD (Continuous Integration/Continuous Delivery)
17. Phương pháp nào giúp cải thiện khả năng tiếp cận (accessibility) của ứng dụng di động cho người dùng khuyết tật?
A. Sử dụng màu sắc tương phản
B. Cung cấp văn bản thay thế cho hình ảnh
C. Hỗ trợ điều hướng bằng giọng nói
D. Tất cả các đáp án trên
18. Công cụ nào sau đây được sử dụng để tự động hóa việc xây dựng, kiểm thử và triển khai ứng dụng di động, giúp tăng tốc quá trình phát triển và giảm thiểu lỗi?
A. IDE (Integrated Development Environment)
B. CI/CD (Continuous Integration/Continuous Delivery)
C. DBMS (Database Management System)
D. API (Application Programming Interface)
19. Phương pháp nào giúp thu thập dữ liệu về hành vi người dùng trong ứng dụng di động, từ đó cải thiện trải nghiệm người dùng và tối ưu hóa các tính năng?
A. A/B testing
B. Phân tích ứng dụng (App analytics)
C. Khảo sát người dùng (User surveys)
D. Phỏng vấn người dùng (User interviews)
20. Hình thức kiếm tiền nào phổ biến cho ứng dụng di động miễn phí, trong đó nhà phát triển thu lợi nhuận từ quảng cáo hiển thị trong ứng dụng?
A. Bán ứng dụng trả phí
B. Mua trong ứng dụng (In-app purchases)
C. Quảng cáo trong ứng dụng (In-app advertising)
D. Mô hình đăng ký (Subscription model)
21. Công nghệ nào cho phép phát triển ứng dụng di động chạy trên nhiều nền tảng (iOS, Android) từ một codebase duy nhất?
A. Native development
B. Cross-platform development
C. Web development
D. Backend development
22. Phương pháp nào giúp cải thiện hiệu suất của ứng dụng di động bằng cách lưu trữ dữ liệu thường xuyên được truy cập trên thiết bị, giảm thiểu số lượng yêu cầu đến máy chủ?
A. Tối ưu hóa cơ sở dữ liệu
B. Caching
C. Load balancing
D. Code obfuscation
23. Trong phát triển ứng dụng di động, thuật ngữ `API throttling` đề cập đến điều gì?
A. Việc tối ưu hóa hiệu suất của API.
B. Việc giới hạn số lượng yêu cầu mà một người dùng có thể gửi đến API trong một khoảng thời gian nhất định.
C. Việc mã hóa dữ liệu được truyền qua API.
D. Việc ghi lại tất cả các yêu cầu được gửi đến API.
24. Loại kiểm thử nào tập trung vào việc đảm bảo ứng dụng di động hoạt động ổn định và không bị crash khi chịu tải lớn hoặc sử dụng trong thời gian dài?
A. Kiểm thử chức năng (Functional testing)
B. Kiểm thử hiệu năng (Performance testing)
C. Kiểm thử bảo mật (Security testing)
D. Kiểm thử khả năng sử dụng (Usability testing)
25. Phương pháp phát triển ứng dụng di động nào tập trung vào việc tạo ra một sản phẩm tối thiểu (MVP) để thu thập phản hồi từ người dùng và lặp lại để cải thiện sản phẩm?
A. Waterfall
B. Agile
C. Spiral
D. Lean Startup
26. Kiến trúc ứng dụng di động nào thường được sử dụng để tách biệt logic giao diện người dùng, logic nghiệp vụ và dữ liệu, giúp cải thiện khả năng kiểm thử và bảo trì?
A. Singleton
B. Factory
C. MVC (Model-View-Controller)
D. Builder
27. Phương pháp nào giúp giảm kích thước của ứng dụng di động, giúp người dùng tải xuống và cài đặt ứng dụng nhanh hơn?
A. Tối ưu hóa hình ảnh và tài nguyên
B. Sử dụng nhiều thư viện của bên thứ ba
C. Thêm nhiều tính năng không cần thiết
D. Sử dụng mã nguồn phức tạp
28. Công nghệ nào cho phép ứng dụng di động gửi thông báo đến người dùng ngay cả khi ứng dụng không hoạt động?
A. GPS
B. Bluetooth
C. Push notifications
D. Wi-Fi
29. Framework nào của Google được sử dụng để xây dựng giao diện người dùng (UI) cho ứng dụng di động trên nhiều nền tảng từ một codebase duy nhất?
A. React Native
B. Xamarin
C. Flutter
D. Ionic
30. Tiêu chí nào sau đây quan trọng nhất khi chọn ngôn ngữ lập trình để phát triển ứng dụng di động?
A. Độ phổ biến của ngôn ngữ
B. Hiệu suất của ngôn ngữ trên thiết bị di động
C. Sự dễ học của ngôn ngữ
D. Chi phí sử dụng ngôn ngữ