Chia sẻ đề thi FE SWT301 SU25 Đại học FPT kèm đáp án, lời giải chi tiết, mẹo nhớ nhanh và mở rộng câu hỏi, giúp bạn ôn tập hiệu quả, dễ hiểu nhất.

Thi xong môn Software Testing (SWT301) lần 1 tại Đại học FPT, chắc hẳn nhiều anh em sinh viên IT tụi mình đang trong tình trạng “50 sắc thái”: Người thì tiếc nuối vì thiếu xíu điểm qua môn, người thì qua rồi nhưng vẫn muốn "phục thù" một lần nữa cho điểm thật cao, "sang chảnh" hơn chút để nhìn đẹp cái bảng điểm sau này. Thấu hiểu tâm trạng vừa đau thương vừa quyết tâm ấy, hôm nay TruongDevs quyết định chia sẻ luôn bộ đề thi FE SWT301 SU25 Đại học FPT chính thức vừa rồi, kèm luôn đáp án SWT301 được mình giải thích cực kỳ chi tiết. Chưa hết, mình bonus thêm một loạt mẹo nhớ nhanh, tips vui nhộn đặc biệt dành riêng cho dân IT tụi mình, và mở rộng thêm các câu hỏi liên quan giúp anh em nắm thật vững kiến thức Software Testing trước khi bước vào phòng thi lần 2.
Dẫu bạn thuộc phe nào, "team thi lại lần nữa vì điểm cao hơn" hay "team thi lại vì... rớt", thì cũng hãy tạm gác lại quá khứ đau thương, bật ngay chế độ nghiêm túc, lấy giấy bút ra note lại kinh nghiệm thi FE quý báu từ TruongDevs nhé! Giờ thì cùng mình vào bài thôi nào anh em!
Đề thi FE SWT301 SU25 Đại học FPT lần 1 đầy đủ có đáp án
Bây giờ thì khỏi vòng vo nữa nhé anh em. Dưới đây là full bộ đề thi chính thức môn Software Testing (SWT301), kỳ SU25 Đại học FPT lần 1 vừa qua. Mình đã mất nguyên buổi để note lại kỹ càng từng câu hỏi và giải thích thật rõ ràng cho từng đáp án để các bạn tiện theo dõi.
Trước khi kéo xuống xem đáp án chi tiết và mẹo nhớ nhanh, anh em thử tự làm nhanh một lượt coi thử mình "nhớ được nhiêu, quên mất bao nhiêu", từ đó xác định rõ điểm mạnh, điểm yếu nha. Ai "auto qua môn" lần trước cũng đừng chủ quan nhé, thử thách lần này là nâng điểm cao hơn để bảng điểm FE đẹp hơn nữa nè!
Cùng bắt đầu thôi nào các tester tương lai!
Question 1:
When we test or review a product, what are we looking for?
A. We are looking for errors and fixing them.
B. We are looking for defects in the product and thus are critical of it.
C. We are looking for difference between the system and the requirement.
D. We are looking for the mistakes of the requirement.
Ý chính cần nhớ:
Mục tiêu chính của kiểm thử phần mềm (Testing): So sánh sản phẩm thực tế với yêu cầu (Requirement) để tìm ra sự khác biệt (differences).
Testing không phải chủ yếu để sửa lỗi, chỉ trích sản phẩm hoặc bắt lỗi yêu cầu.
Đáp án chuẩn: C – Looking for difference between the system and the requirement.
Mẹo nhớ nhanh:
Câu thần chú: Kiểm thử = So sánh Thực tế với Yêu cầu
Các từ khóa cần chú ý:
Compare, Difference, Requirement → thường là đáp án đúng.
Fixing, Critical of it, Mistakes of requirement → gây nhiễu, không đúng định nghĩa mục tiêu chính của testing.
Mở rộng các câu hỏi cùng chủ đề:
Which of the following statements best describes the purpose of testing?
A. To prove that the software is bug-free.
B. To verify whether the software meets its requirements and identify defects.
C. To validate that all errors are fixed.
D. To make sure users are satisfied.
Đáp án: B (theo ISTQB Foundation Level Syllabus 2018, mục "Objectives of Testing").
What is the main purpose of software testing?
A. To demonstrate that the software works perfectly.
B. To find differences between expected and actual results.
C. To guarantee zero defects in production.
D. To ensure developers write better code.
Đáp án: B (tham khảo: Software Testing Fundamentals – Purpose of Testing).
Which statement is true about testing and fixing defects?
A. Testing should focus mainly on fixing defects.
B. Testing should focus on detecting deviations from requirements, fixing is a separate activity.
C. Testing ensures that all mistakes of requirements are corrected.
D. Testing only proves correctness of code.
Đáp án: B (tham khảo: TutorialsPoint – Software Testing Overview).
Question 2:
What does the term 'failure' mean in the context of testing?
A. A mistake made by a developer.
B. A defect in the software that is found during testing.
C. An incorrect behavior of the system in operation.
D. A missed requirement during design.
Ý chính cần nhớ:
Failure = Hành vi không đúng (incorrect behavior) của hệ thống khi đang hoạt động, gây ra do defect (lỗi) trong phần mềm hoặc do điều kiện môi trường.
Đáp án chuẩn: C – An incorrect behavior of the system in operation.
(Nguồn: ISTQB Glossary, ISTQB FL Syllabus 2018, mục "Failure")
Mẹo nhớ nhanh:
Câu thần chú: Failure = Lỗi biểu hiện ra khi chạy hệ thống.
Mistake = lỗi của con người → thường không đúng đáp án.
Defect found during testing = defect, chưa chắc gây failure.
Missed requirement = lỗi tài liệu, không phải failure.
Mở rộng – Các câu hỏi tương tự:
Which option best describes the relationship between defect and failure?
A defect may cause a failure, but not all defects lead to failures.
(Nguồn: ISTQB Glossary)
Failure occurs when:
A. A human makes a mistake.
B. A defect is executed in a certain condition leading to incorrect behavior.
Đáp án: B.
(Nguồn: SoftwareTestingFundamentals – “Defect, Error, Failure”)
Which of the following is NOT a cause of failure?
A. Defects in code.
B. Environmental conditions.
C. Human error during operation.
D. Testing process itself.
Đáp án: D.
(Nguồn: TutorialsPoint – Software Testing Basics)
Question 3:
Independent testing – who is a tester? Choose the correct sentence.
A. Tests by the person who wrote the item under test.
B. Tests by a person from a different organizational group, such as an independent test team.
C. Tests by another person within the same team, such as another programmer.
D. Tests by the person who wrote the source code.
Ý chính cần nhớ:
Independent testing = kiểm thử được thực hiện bởi người hoặc nhóm khác biệt với nhóm phát triển để giảm thiên vị và tăng khách quan.
Đáp án chuẩn: B – Tests by a person from a different organizational group.
(Nguồn: ISTQB Syllabus 2018, Chương 1.4 "Independent Testing")
Mẹo nhớ nhanh:
Câu thần chú: Independent = "Khác nhóm phát triển".
Đáp án chứa Different organizational group gần như luôn đúng.
Mở rộng – Các câu hỏi tương tự:
Which of the following is an advantage of independent testing?
Better detection of defects due to unbiased view.
(Nguồn: ISTQB Foundation Level Sample Exam)
At which level is independent testing most beneficial?
A. Unit testing.
B. System testing and acceptance testing.
Đáp án: B.
(Nguồn: Guru99 – ISTQB Foundation MCQ)
Who can perform independent testing?
External test team.
QA team separate from developers.
(Nguồn: TutorialsPoint – Independent Testing)
Question 4:
What is the significance of context in testing according to the principle?
A. It is irrelevant since all testing follows the same standard.
B. It is critical as testing approaches should vary based on the specific context.
C. It suggests that testing should always follow the same international standards.
D. Context is only important in large, complex systems.
Ý chính cần nhớ:
Nguyên tắc kiểm thử: Testing is context dependent – cách kiểm thử cần thay đổi theo từng ngữ cảnh dự án, không có một phương pháp chung cho tất cả.
Đáp án chuẩn: B – It is critical as testing approaches should vary based on the specific context.
(Nguồn: ISTQB Syllabus 2018, Chương 1.3 "Seven Testing Principles")
Mẹo nhớ nhanh:
Câu thần chú: Không có one-size-fits-all cho testing.
Từ khóa: critical, vary based on context.
Mở rộng – Các câu hỏi tương tự:
Which principle states that there is no single universal approach to testing?
Answer: Testing is context dependent.
(Nguồn: ISTQB Principles of Testing)
Why can't we apply the same test process to all software projects?
Because project type, risk, business domain, safety level vary.
(Nguồn: TutorialsPoint – Principles of Testing)
Which factor does NOT affect context in testing?
A. Business domain.
B. Safety-critical nature.
C. Time-to-market constraints.
D. International testing standard.
Đáp án: D.
(Nguồn: SoftwareTestingFundamentals – Testing Principles)
Question 5:
Find the explanation of “Testing shows presence of defects”:
A. Testing can show that defects are present, but cannot prove that there are no defects. Testing reduces the probability of undiscovered defects remaining in the software but, even if no defects are found, it is not a proof of correctness.
B. Testing concepts state that errors should be found as early as possible in the software or system development life cycle and should be based on defined objectives.
C. Finding and fixing defects does not help if the system built is unusable and does not fulfill the users’ needs and expectations.
D. Testing is done differently in different contexts. For example, safety-critical software is tested differently from an e-commerce site.
Ý chính cần nhớ:
Đây là Nguyên tắc số 2 trong 7 nguyên tắc kiểm thử (ISTQB): Testing shows presence of defects, not their absence – Testing giúp phát hiện các lỗi tồn tại, nhưng không thể chứng minh phần mềm hoàn toàn không có lỗi.
Đáp án chuẩn: A – Testing can show that defects are present, but cannot prove that there are no defects.
(Nguồn: ISTQB Syllabus 2018 – Principles of Testing)
Mẹo nhớ nhanh:
Câu thần chú: Testing = Chứng minh Có Lỗi, Không chứng minh Không Lỗi.
Nếu câu trả lời chứa các từ khóa: cannot prove there are no defects, presence of defects, not a proof of correctness → chọn ngay.
Các đáp án khác:
B → Nguyên tắc "Early testing saves time and cost".
C → Nguyên tắc "Absence-of-errors fallacy".
D → Nguyên tắc "Testing is context dependent".
Mở rộng – Các câu hỏi tương tự:
Testing can only prove that software has defects, not that it is defect-free. Which principle is this?
Answer: Testing shows presence of defects, not their absence.
(Nguồn: ISTQB Foundation Level – 7 Principles of Testing)
Why can't testing guarantee that software is 100% defect-free?
Because exhaustive testing is impossible, and testing only samples possible inputs and paths.
(Nguồn: SoftwareTestingFundamentals – Testing Principles)
Which statement is TRUE about testing?
A. Testing proves software correctness.
B. Testing reduces risk but cannot eliminate it completely.
Đáp án: B.
(Nguồn: TutorialsPoint – Principles of Testing)
Question 6:
What types of defects are typically found more effectively during static testing than dynamic testing?
A. Performance-related defects
B. Defects in user interface design
C. Missing requirements or design defects
D. Runtime errors and exceptions
Ý chính cần nhớ:
Static testing = kiểm tra phần mềm mà không cần chạy chương trình (ví dụ: Review tài liệu, Code inspection, Walkthrough).
Static testing thường phát hiện tốt:
Thiếu sót hoặc lỗi trong tài liệu yêu cầu.
Lỗi trong thiết kế hoặc coding standard.
Đáp án chuẩn: C – Missing requirements or design defects.
(Nguồn: ISTQB Syllabus 2018 – Static Testing vs Dynamic Testing)
Mẹo nhớ nhanh:
Câu thần chú: Static = Lỗi trên giấy, Dynamic = Lỗi khi chạy.
Từ khóa đúng trong câu hỏi: Missing requirements, Design defects → static test phát hiện tốt.
Các lựa chọn còn lại:
A và D → chỉ phát hiện khi chạy chương trình (dynamic).
B → liên quan UI, thường test khi chạy thực tế.
Mở rộng – Các câu hỏi tương tự:
Which of the following is a benefit of static testing?
Detect defects early before execution.
(Nguồn: ISTQB Foundation Level – Static Techniques)
Which defect is LEAST likely to be found by static testing?
A. Missing requirements.
B. Incorrect algorithm implementation.
Answer: B. (Cần chạy code mới thấy).
(Nguồn: SoftwareTestingFundamentals)
What is a main advantage of static techniques over dynamic testing?
They help detect defects early, reducing cost of fixing later in SDLC.
(Nguồn: TutorialsPoint – Static Testing)
Question 7:
What is a key reason that software testing is necessary?
A. To increase software complexity
B. To identify defects in software
C. To reduce software features
D. To speed up software development
Ý chính cần nhớ:
Mục tiêu chính của kiểm thử:
Phát hiện và xác định lỗi (defects) trong phần mềm để đảm bảo chất lượng, giảm rủi ro khi phần mềm được đưa vào sử dụng.
Testing không làm phần mềm phức tạp hơn, không giảm số lượng tính năng, và không trực tiếp tăng tốc phát triển (mặc dù phát hiện lỗi sớm có thể tiết kiệm thời gian).
Đáp án chuẩn: B – To identify defects in software.
(Nguồn: ISTQB Foundation Level Syllabus 2018 – Why is Testing Necessary?)
Mẹo nhớ nhanh:
Câu thần chú: Testing = Tìm lỗi trước khi người dùng gặp lỗi.
Nhớ từ khóa trong đáp án đúng: Identify defects.
Các lựa chọn còn lại:
A → Không đúng, testing không tăng độ phức tạp.
C → Testing không liên quan việc giảm tính năng.
D → Testing không nhằm mục đích tăng tốc độ phát triển, dù có thể giúp tiết kiệm chi phí và thời gian gián tiếp.
Mở rộng – Các câu hỏi tương tự:
Main purpose of testing is:
A. Prove that the software works correctly.
B. Identify defects to improve quality and reduce risk.
Answer: B.
(Nguồn: ISTQB Glossary)
Why do we need software testing?
To gain confidence in product quality, detect defects early, avoid costly failures after release.
(Nguồn: Guru99 – Software Testing Basics)
Which is NOT an objective of testing?
A. Prevent defects.
B. Guarantee that software is 100% error-free.
Answer: B.
(Nguồn: TutorialsPoint – Testing Objectives)
Question 8:
How much testing is enough?
A. Exhaustive testing is possible.
B. Testing everything (all combinations of inputs and preconditions).
C. We use risks and priorities to focus testing efforts.
D. Full testing.
Ý chính cần nhớ:
Nguyên lý kiểm thử: Không thể thực hiện kiểm thử toàn diện (exhaustive testing) vì số lượng trường hợp kiểm thử là vô hạn.
Do đó, chúng ta sử dụng phân tích rủi ro (risk-based testing) và ưu tiên (prioritization) để quyết định mức độ kiểm thử cần thiết.
Đáp án chuẩn: C – We use risks and priorities to focus testing efforts.
(Nguồn: ISTQB Foundation Level Syllabus – Testing Principles, Principle 2: Exhaustive testing is impossible.)
Mẹo nhớ nhanh:
Câu thần chú: Không thể test hết → Dùng rủi ro và ưu tiên để chọn.
Khi gặp câu hỏi "how much testing is enough":
Nhìn các từ khóa risk, priority → đáp án đúng.
Các lựa chọn như exhaustive, full testing, everything → gây nhiễu, vì ISTQB khẳng định test toàn diện là không thể.
Mở rộng – Các câu hỏi tương tự:
Why is exhaustive testing not feasible?
Vì có vô số tổ hợp dữ liệu, điều kiện đầu vào và đường dẫn chương trình.
(Nguồn: Software Testing Help – Principles of Testing)
How do testers decide what to test first?
Dựa vào risk analysis (tính nghiêm trọng + khả năng xảy ra lỗi).
(Nguồn: Guru99 – Risk-based Testing)
Which principle states that it’s impossible to test everything?
Principle 2: Exhaustive testing is impossible, testing must be prioritized.
(Nguồn: ISTQB Foundation Level Glossary)
Question 9:
What is an effect of poor communication between testers and developers?
A. It enhances the efficiency of the development and testing processes.
B. It may lead to misunderstandings and reduced software quality.
C. It improves the independence of the testing function.
D. It has no effect as long as testing is done independently.
Ý chính cần nhớ:
Giao tiếp kém giữa tester và developer gây ra:
Hiểu sai yêu cầu hoặc lỗi bị bỏ sót.
Thiếu thông tin quan trọng để tái tạo và sửa lỗi.
Chất lượng phần mềm giảm, tăng chi phí sửa lỗi.
Đáp án chuẩn: B – It may lead to misunderstandings and reduced software quality.
(Nguồn: ISTQB Foundation Level Syllabus – The Psychology of Testing)
Mẹo nhớ nhanh:
Câu thần chú: Thiếu giao tiếp = Hiểu nhầm = Chất lượng kém.
Khi thấy đáp án liên quan đến negative effect (misunderstanding, quality reduced) → chọn.
Các đáp án kiểu enhances efficiency, improves independence, no effect chỉ gây nhiễu, không đúng với thực tế.
Mở rộng – Các câu hỏi tương tự:
What is the importance of communication in testing?
Giao tiếp hiệu quả giúp chia sẻ thông tin lỗi nhanh, tránh hiểu sai yêu cầu, và cải thiện chất lượng phần mềm.
(Nguồn: Guru99 – Psychology of Testing)
What can help improve tester–developer communication?
Daily stand-up meetings (Scrum).
Sử dụng các công cụ quản lý bug (JIRA, Bugzilla) với mô tả rõ ràng, tái tạo được lỗi.
(Nguồn: ISTQB Glossary – Defect Lifecycle)
What is a risk of poor defect documentation?
Developer không hiểu hoặc không thể tái tạo lỗi, dẫn đến lỗi tồn đọng.
(Nguồn: Software Testing Help – Defect Reporting)
Question 10:
Which of the following strategies can help minimize psychological conflict between testers and developers? (Select all that apply)
A. Fostering mutual respect between roles.
B. Ensuring clear objectives for testing.
C. Feedback belittles the coder with errors found.
D. Encouraging collaboration on defect resolution.
Ý chính cần nhớ:
Mục tiêu: Giảm thiểu xung đột tâm lý giữa tester và developer, xây dựng môi trường hợp tác tích cực và hiệu quả.
Các yếu tố quan trọng:
A – Mutual respect: Tôn trọng vai trò của nhau giúp tăng tinh thần làm việc nhóm.
B – Clear objectives: Đặt mục tiêu rõ ràng cho testing để tránh hiểu nhầm và giảm tranh cãi.
D – Collaboration: Khuyến khích hợp tác khi xử lý lỗi, tập trung giải quyết vấn đề thay vì đổ lỗi.
C – Feedback tiêu cực (belittles) gây căng thẳng, giảm động lực làm việc và ảnh hưởng chất lượng phần mềm.
Đáp án chuẩn: A, B, D.
(Nguồn: ISTQB Foundation Level Syllabus – Psychology of Testing)
Mẹo nhớ nhanh:
Câu thần chú: Respect – Clear Goals – Work Together
Nếu đáp án chứa Respect, Clear objectives, Collaboration → Chọn
Nếu đáp án chứa Belittles, Criticism, Blame → Loại bỏ
Mở rộng – Câu hỏi liên quan:
Why are psychological factors important in software testing?
A. They have no impact on software quality.
B. Poor communication may lead to misunderstandings and reduced quality.
C. Testing is only technical, psychology is irrelevant.
D. Developers always accept tester feedback positively.
Đáp án: B (Nguồn: Guru99 – Psychology of Testing)
How can test leaders reduce tester-developer conflicts?
Bằng cách xây dựng văn hóa không đổ lỗi, khuyến khích giao tiếp tích cực, và đưa ra quy trình phản hồi chuyên nghiệp, tôn trọng.
(Nguồn: Software Testing Help – Tester-Developer Relationship)
Question 11:
What should integration testing primarily focus on?
A. Testing the database and data processing.
B. Ensuring that software modules work together.
C. Checking that the system is ready for live deployment.
D. Evaluating user satisfaction with the product.
Ý chính cần nhớ:
Integration Testing tập trung kiểm tra tương tác và giao tiếp giữa các module hoặc thành phần phần mềm.
Mục tiêu: Đảm bảo các module hoạt động đúng khi kết nối với nhau, dữ liệu truyền đúng, xử lý chính xác.
Không nhầm lẫn với:
A: Database riêng lẻ → thuộc Unit/System Testing.
C: Đánh giá trước triển khai → thuộc Acceptance Testing.
D: Sự hài lòng người dùng → thuộc User Acceptance Testing (UAT).
Đáp án chuẩn: B – Ensuring that software modules work together.
(Nguồn: ISTQB Glossary)
Mẹo nhớ nhanh:
Câu thần chú: Integration = Kiểm tra kết nối giữa các module.
Từ khóa đúng thường xuất hiện: Modules work together, Interfaces, Interaction.
Loại bỏ các đáp án liên quan đến database riêng lẻ, user satisfaction, hoặc deployment readiness.
Mở rộng – Câu hỏi liên quan:
Levels of Testing:
Unit: Kiểm tra từng module riêng lẻ.
Integration: Kiểm tra giao tiếp giữa các module.
System: Kiểm tra toàn bộ hệ thống end-to-end.
Acceptance: Kiểm tra hệ thống đáp ứng yêu cầu người dùng.
(Nguồn: ISTQB Glossary)
Types of Integration Testing:
Big Bang
Top-down
Bottom-up
Hybrid (Sandwich)
(Nguồn: Guru99 – Types of Integration Testing)
Question 12:
How does stress testing differ from load testing?
A. Stress testing examines system performance under peak loads, while load testing focuses on typical conditions.
B. Stress testing is concerned with usability under stress, while load testing measures performance thresholds.
C. Stress testing evaluates system behavior beyond normal operational capacity, while load testing verifies normal usage conditions.
Ý chính cần nhớ:
Load Testing:
Kiểm tra khả năng đáp ứng của hệ thống dưới tải bình thường hoặc tải dự kiến.
Mục tiêu: Đảm bảo hệ thống hoạt động ổn định và đáp ứng đúng yêu cầu hiệu năng đã đề ra.
Stress Testing:
Kiểm tra hành vi của hệ thống khi tải vượt ngưỡng vận hành bình thường (quá tải).
Mục tiêu: Xác định giới hạn chịu tải của hệ thống, quan sát lỗi tiềm ẩn và khả năng phục hồi sau sự cố.
Đáp án chuẩn: C – Stress testing evaluates system behavior beyond normal operational capacity, while load testing verifies normal usage conditions.
(Nguồn: ISTQB Foundation Level Syllabus 2018, mục Non-functional Testing)
Mẹo nhớ nhanh:
Load = Bình thường (tải dự kiến).
Stress = Quá tải (vượt khả năng vận hành).
Nếu câu hỏi chứa cụm "beyond normal capacity", câu trả lời thường là Stress Testing.
Mở rộng các câu hỏi cùng chủ đề:
Which of the following best defines stress testing?
A. Testing the system under expected user load.
B. Testing beyond normal operational capacity to identify breaking points.
C. Testing response time under average conditions.
D. Testing only hardware performance.
Đáp án: B (Nguồn: ISTQB Foundation Level Syllabus 2018, mục Non-functional Testing).
Which type of performance testing focuses on determining the system’s behavior under expected conditions?
A. Spike Testing
B. Load Testing
C. Stress Testing
D. Endurance Testing
Đáp án: B (Nguồn: TutorialsPoint – Performance Testing Types).
What is the primary goal of stress testing?
A. To ensure the system performs optimally under normal workload.
B. To guarantee zero failures.
C. To find the point at which the system fails due to extreme workload.
D. To improve user interface usability.
Đáp án: C (Nguồn: Guru99 – Difference Between Load and Stress Testing).
Question 13:
What is the main advantage of using the V-model in software development?
A. It eliminates the need for testing.
B. It integrates testing throughout the development phases.
C. It is less costly and time-consuming compared to other models.
D. It focuses on post-development testing only.
Ý chính cần nhớ:
V-Model là một mô hình phát triển phần mềm nhấn mạnh sự kết hợp kiểm thử trong từng giai đoạn phát triển (song song với mỗi hoạt động thiết kế).
Mục tiêu chính: Phát hiện lỗi sớm, giảm thiểu chi phí sửa lỗi và rủi ro phát sinh do sai sót không được kiểm tra ngay từ đầu.
Đáp án chuẩn: B – It integrates testing throughout the development phases.
(Nguồn: ISTQB Foundation Level Syllabus – Software Development Models)
Mẹo nhớ nhanh:
Câu thần chú: V-model = Verify + Validate song song với Dev
Từ khóa cần chú ý:
Integrates testing, throughout development, parallel with design → thường là đáp án đúng.
Eliminates testing hoặc focus post-only → gây nhiễu, loại bỏ.
Mở rộng các câu hỏi cùng chủ đề:
What does each branch of the V-model represent?
Left side: Các giai đoạn phát triển (Requirement, Design, Implementation).
Right side: Các giai đoạn kiểm thử tương ứng (Unit, Integration, System, Acceptance Testing).
Đáp án: Mô hình V thể hiện mối liên kết chặt chẽ giữa Dev và Test.
(Nguồn: ISTQB, SoftwareTestingFundamentals)
What is the main benefit of early testing in the V-model?
A. Reduce total cost of defect fixing.
B. Testing can be skipped in early phases.
C. Testing occurs only at the end of development.
D. Improves developer productivity only.
Đáp án: A – Vì lỗi được phát hiện càng sớm càng ít tốn chi phí và công sức sửa chữa (theo nguyên lý "Shift Left Testing").
(Nguồn: ISTQB)
Which model emphasizes testing activities in parallel with development?
A. Waterfall
B. V-Model
C. Spiral
D. Big Bang
Đáp án: B – V-Model.
(Nguồn: ISTQB)
Question 14:
What is the purpose of unit testing in software development?
A. To test the entire system as a whole.
B. To test individual units or components in isolation.
C. To validate the software against user requirements.
D. To perform performance testing.
Ý chính cần nhớ:
Unit Testing là mức kiểm thử thấp nhất trong quy trình kiểm thử phần mềm, tập trung vào kiểm tra từng đơn vị (unit) của phần mềm một cách độc lập (ví dụ: một hàm, một module hoặc một lớp).
Mục tiêu chính:
Xác minh rằng từng phần tử nhỏ nhất hoạt động đúng như thiết kế kỹ thuật (không phải toàn bộ hệ thống).
Phát hiện lỗi sớm ở mức đơn vị, giảm chi phí sửa chữa khi phát triển.
Đáp án chuẩn: B – To test individual units or components in isolation.
(Nguồn: ISTQB Foundation Level Syllabus – Levels of Testing)
Mẹo nhớ nhanh:
Câu thần chú: Unit Testing = Test từng mảnh, từng đơn vị, độc lập
Từ khóa thường xuất hiện trong đáp án đúng: Individual Units, Components, Isolation.
Loại bỏ các lựa chọn gây nhiễu:
A → Thuộc System Testing (kiểm tra toàn bộ hệ thống).
C → Thuộc Acceptance Testing (kiểm tra yêu cầu người dùng).
D → Thuộc Performance Testing (không phải Unit).
Mở rộng các câu hỏi cùng chủ đề:
Which of the following is the main focus of unit testing?
A. Testing interfaces between integrated modules.
B. Testing individual functions or methods for correctness.
C. Validating user stories end-to-end.
D. Measuring system performance under load.
Đáp án: B.
(Nguồn: ISTQB, TutorialsPoint)
Who usually performs unit testing?
A. End users.
B. Independent testing team only.
C. Developers (thường dùng framework hỗ trợ như JUnit, NUnit).
D. Project managers.
Đáp án: C – Unit testing thường do lập trình viên thực hiện ngay sau khi viết code.
(Nguồn: ISTQB)
Which statement best describes unit testing?
A. It is performed after system testing.
B. It validates the smallest testable parts of the application.
C. It ensures entire workflows meet user expectations.
D. It requires actual production environment data.
Đáp án: B.
(Nguồn: ISTQB)
Question 15:
What is a characteristic of non-functional testing?
A. It is always performed after functional testing.
B. It focuses on how well the system performs certain actions.
C. It is concerned solely with what the system does.
D. It does not include performance testing.
Ý chính cần nhớ:
Non-functional Testing tập trung vào chất lượng của hệ thống (How well), không chỉ là tính đúng đắn về chức năng (What).
Mục tiêu chính:
Đánh giá các thuộc tính như hiệu năng, khả năng mở rộng, bảo mật, tính khả dụng, độ tin cậy, khả năng chịu tải, v.v.
Khác với Functional Testing – chỉ kiểm tra hệ thống có làm đúng chức năng yêu cầu hay không.
Đáp án chuẩn: B – It focuses on how well the system performs certain actions.
(Nguồn: ISTQB Foundation Level Syllabus – 2.4.2 Non-functional Testing)
Mẹo nhớ nhanh:
Câu thần chú: Non-functional = How well, Functional = What
Từ khóa xuất hiện trong đáp án đúng: How well, Performance, Quality attributes.
Loại bỏ các lựa chọn gây nhiễu:
A: Non-functional testing có thể thực hiện song song hoặc sau functional testing, không bắt buộc luôn sau.
C: Đây là functional testing (What system does).
D: Ngược lại, performance testing là một phần của non-functional testing, nên lựa chọn này sai.
Mở rộng các câu hỏi cùng chủ đề:
Which of the following is NOT an example of non-functional testing?
A. Load testing
B. Stress testing
C. Security testing
D. Unit testing
Đáp án: D (Unit testing là functional testing).
(Nguồn: ISTQB, Guru99)
What types of attributes are evaluated during non-functional testing?
A. Performance, Reliability, Usability, Scalability.
B. Only correctness of functionality.
Đáp án: A.
(Nguồn: ISTQB)
Which testing ensures the system performs optimally under expected workloads?
A. Functional testing
B. Performance testing (thuộc Non-functional testing)
C. System testing
D. Unit testing
Đáp án: B.
(Nguồn: ISTQB)
Question 16:
What is not a test type?
A. Structural testing
B. Functional testing
C. Non-functional testing
D. Performance testing
E. Change-related testing
Ý chính cần nhớ:
Theo định nghĩa ISTQB, có 4 loại test type chính:
Functional testing – kiểm tra chức năng của hệ thống (What the system does).
Non-functional testing – kiểm tra thuộc tính chất lượng (How well the system works).
Structural testing – kiểm tra cấu trúc bên trong (code, logic).
Change-related testing – bao gồm retesting và regression testing, thực hiện sau khi có thay đổi hoặc sửa lỗi.
Performance testing không được xem là một “test type” độc lập trong phân loại chính thức, mà thuộc Non-functional testing.
Đáp án chuẩn: D – Performance testing.
(Nguồn: ISTQB Foundation Level Syllabus – 2.4 Test Types)
Mẹo nhớ nhanh:
Câu thần chú: 4 loại chính: Functional – Non-functional – Structural – Change-related.
Nếu gặp câu hỏi liệt kê, kiểm tra xem tùy chọn đó có nằm trong 4 nhóm này hay không.
Performance testing = một phần của Non-functional, không phải test type riêng biệt.
Mở rộng các câu hỏi cùng chủ đề:
Which of the following is NOT a recognized test type in ISTQB Foundation syllabus?
A. Structural testing
B. Regression testing
C. Performance testing
D. Functional testing
Đáp án: C.
(Nguồn: ISTQB)
Regression testing belongs to which test type?
A. Functional testing
B. Change-related testing
C. Structural testing
D. Non-functional testing
Đáp án: B.
(Nguồn: ISTQB)
Which test type verifies system attributes like speed, scalability, and reliability?
A. Functional testing
B. Non-functional testing
C. Structural testing
D. Change-related testing
Đáp án: B.
(Nguồn: ISTQB)
Question 17:
What is the role of performance testing in system testing?
A. To verify that the system behaves correctly under load
B. To ensure that the system meets functional requirements
C. To check the accuracy of data processing
D. To confirm that the system is bug free
Ý chính cần nhớ:
Performance testing là một dạng Non-functional testing, mục tiêu chính:
Đánh giá hiệu suất của hệ thống dưới các điều kiện tải (load, stress).
Đảm bảo hệ thống vẫn hoạt động ổn định, nhanh và đáp ứng yêu cầu về thời gian xử lý khi có nhiều người dùng đồng thời.
Các lựa chọn khác không chính xác:
B: Kiểm tra yêu cầu chức năng → thuộc Functional testing.
C: Kiểm tra độ chính xác dữ liệu → liên quan đến Functional/Validation testing.
D: Đảm bảo không có bug → không thể khẳng định hoàn toàn, không phải mục tiêu chính của performance testing.
Đáp án chuẩn: A – To verify that the system behaves correctly under load.
(Nguồn: ISTQB Foundation Level Syllabus – 2.4.2 Non-functional Testing)
Mẹo nhớ nhanh:
Câu thần chú: Performance = kiểm tra hệ thống khi chịu tải.
Các từ khóa thường gặp: load, response time, scalability, stability.
Không nhầm với functional testing hoặc bug-free claim.
Mở rộng – Các câu hỏi liên quan:
Which of the following is NOT part of performance testing?
A. Load testing
B. Stress testing
C. Security testing
D. Volume testing
Đáp án: C (Security testing là dạng non-functional khác).
(Nguồn: ISTQB)
What is the main goal of stress testing?
A. To test beyond normal load conditions to observe system limits.
B. To check functional accuracy under typical use.
C. To find all functional defects.
D. To verify usability.
Đáp án: A.
(Nguồn: ISTQB)
Performance testing focuses on which attributes?
A. Speed, scalability, stability, response time.
B. Functional correctness only.
C. Accuracy of algorithms.
D. User interface compatibility.
Đáp án: A.
(Nguồn: ISTQB)
Question 18:
What does the term "Big bang model" imply about the approach to software development?
A. Detailed and extensive planning.
B. Integration of all components at once without prior testing.
C. Regular testing from the beginning of the project.
D. User involvement is mandatory.
Ý chính cần nhớ:
Big Bang Model là mô hình phát triển phần mềm trong đó tất cả các thành phần được tích hợp cùng lúc, và hầu như không có kế hoạch hoặc kiểm thử sớm trước khi ghép nối hệ thống.
Mô hình này thường tiềm ẩn nhiều rủi ro vì lỗi chỉ được phát hiện muộn khi hệ thống được tích hợp hoàn chỉnh.
Đáp án chuẩn: B – Integration of all components at once without prior testing.
(Nguồn: ISTQB Foundation Level, Software Testing Fundamentals – Development Models)
Mẹo nhớ nhanh:
Câu thần chú: Big Bang = Tích hợp tất cả một lần, ít hoặc không kiểm thử sớm.
Từ khóa gợi nhớ: all at once, no prior testing, no planning → thường là dấu hiệu của Big Bang model.
Loại bỏ các đáp án nói về planning hoặc regular testing vì trái ngược với bản chất của Big Bang.
Mở rộng các câu hỏi cùng chủ đề:
Which is a major drawback of Big Bang model?
A. Requires heavy documentation.
B. Defects are found late, making them expensive to fix.
C. Needs constant user involvement.
D. It guarantees zero defects.
Đáp án: B – Lỗi xuất hiện muộn sau khi tích hợp toàn bộ.
(Nguồn: TutorialsPoint, Guru99, ISTQB)
In Big Bang model, when is testing typically started?
A. From the very first coding activity.
B. After all modules are developed and integrated.
C. After each unit is completed.
D. Continuously in parallel with development.
Đáp án: B – Testing thường diễn ra muộn sau khi tất cả module được tích hợp.
(Nguồn: TutorialsPoint)
What kind of project is sometimes suitable for Big Bang model?
A. Large, critical systems with strict requirements.
B. Small projects or academic experiments with unclear requirements.
C. Projects requiring continuous delivery.
D. Safety-critical real-time software.
Đáp án: B – Vì Big Bang chỉ phù hợp khi quy mô nhỏ, yêu cầu không rõ ràng và rủi ro thấp.
(Nguồn: Guru99)
Question 19:
What is the typical sequence of testing activities in the Waterfall model?
A. System testing, integration testing, acceptance testing.
B. Acceptance testing, system testing, integration testing.
C. Integration testing, system testing, acceptance testing.
D. Component testing, system testing, integration testing.
Ý chính cần nhớ:
Mô hình Waterfall là quá trình phát triển phần mềm tuần tự, trong đó hoạt động kiểm thử cũng theo một trình tự rõ ràng từ mức thấp đến mức cao.
Thứ tự kiểm thử điển hình: Integration Testing → System Testing → Acceptance Testing.
Đáp án chuẩn: C – Integration testing, system testing, acceptance testing.
(Nguồn: ISTQB Foundation Level Syllabus 2018 – Software Development Life Cycle Models)
Mẹo nhớ nhanh:
Câu thần chú: Tích hợp → Hệ thống → Chấp nhận (Integration → System → Acceptance).
Từ khóa gợi nhớ:
Integration = kiểm tra sự kết nối giữa các module.
System = kiểm thử toàn bộ hệ thống.
Acceptance = kiểm thử do khách hàng/người dùng thực hiện trước khi bàn giao.
Mở rộng các câu hỏi cùng chủ đề:
Which level of testing is performed first after individual units are completed?
A. System testing.
B. Integration testing.
C. Acceptance testing.
D. Regression testing.
Đáp án: B – Vì cần kiểm thử cách các module hoạt động cùng nhau trước khi kiểm thử toàn hệ thống.
(Nguồn: ISTQB)
In the Waterfall model, which testing level is primarily conducted by end-users or clients?
A. Unit testing.
B. System testing.
C. Acceptance testing.
D. Integration testing.
Đáp án: C – Acceptance testing được khách hàng thực hiện để xác nhận sản phẩm đáp ứng yêu cầu.
(Nguồn: ISTQB)
Which testing level verifies that the entire software meets the specified requirements?
A. Unit testing.
B. System testing.
C. Integration testing.
D. Component testing.
Đáp án: B – System testing kiểm tra toàn bộ hệ thống dựa trên yêu cầu định nghĩa ban đầu.
(Nguồn: ISTQB)
Question 20:
In which testing level would you test for defects in the interfaces and interaction between integrated components?
A. Component testing
B. Integration testing
C. System testing
D. Acceptance testing
Ý chính cần nhớ:
Mục tiêu của Integration Testing là kiểm tra sự kết nối (interfaces) và tương tác giữa các module hay thành phần đã được tích hợp.
Component testing chỉ kiểm tra từng đơn vị (unit/module) độc lập, chưa kiểm tra sự kết nối.
System testing và Acceptance testing kiểm tra toàn hệ thống hoặc mức người dùng cuối, không đi sâu vào giao diện giữa các module.
Đáp án chuẩn: B – Integration testing.
(Nguồn: ISTQB Foundation Level Syllabus 2018 – Testing Levels)
Mẹo nhớ nhanh:
Câu thần chú: Integration = Interface (Kiểm thử tích hợp = Kiểm thử giao diện giữa các module).
Từ khóa quan trọng: interface, interaction, components → chính là phạm vi của Integration testing.
Mở rộng các câu hỏi cùng chủ đề:
What is the main focus of Integration testing?
A. To verify individual units are working correctly.
B. To ensure modules or components work together as intended.
C. To validate the software meets all requirements.
D. To test usability for end-users.
Đáp án: B – Integration testing kiểm tra sự phối hợp giữa các module.
(Nguồn: TutorialsPoint, Guru99, ISTQB)
At which level are interface defects most likely to be found?
A. Component level.
B. Integration level.
C. System level.
D. Acceptance level.
Đáp án: B – Vì các lỗi giao tiếp giữa module chỉ xuất hiện khi tích hợp.
(Nguồn: ISTQB)
Which testing level comes immediately after unit testing in a typical SDLC?
A. System testing.
B. Integration testing.
C. Acceptance testing.
D. Regression testing.
Đáp án: B – Sau khi kiểm thử đơn vị, ta kết hợp các module và kiểm thử tích hợp.
(Nguồn: ISTQB)
Question 21:
What is dynamic testing?
A. Software work products are examined manually, or with a set of tools, but not executed.
B. Software is executed using a set of input values and its output is then examined and compared to what is expected.
C. Testing can start early in the life cycle, early feedback on quality issues can be established.
D. Testing can start early validation of user requirements and not just late in the life cycle during acceptance testing.
Ý chính cần nhớ:
Dynamic Testing là phương pháp kiểm thử trong đó phần mềm được thực thi (executed) với dữ liệu đầu vào và kết quả thực tế được so sánh với kết quả mong đợi.
Ngược lại, Static Testing (đáp án A) là kiểm tra sản phẩm công việc (work products) mà không chạy chương trình (ví dụ: review, walkthrough).
Đáp án chuẩn: B – Software is executed using a set of input values and its output is then examined and compared to what is expected.
(Nguồn: ISTQB Foundation Level Syllabus 2018 – Static and Dynamic Testing)
Mẹo nhớ nhanh:
Câu thần chú: Dynamic = Execute (Kiểm thử động = Chạy chương trình).
Từ khóa quan trọng: executed, input values, output compared → luôn gắn với dynamic testing.
Mở rộng các câu hỏi cùng chủ đề:
Which of the following is NOT an example of dynamic testing?
A. Code walkthrough.
B. Functional testing.
C. Integration testing.
D. System testing.
Đáp án: A – Walkthrough là static testing vì không chạy phần mềm.
(Nguồn: TutorialsPoint, SoftwareTestingFundamentals)
What is the key difference between static and dynamic testing?
A. Static testing detects defects by executing the code.
B. Dynamic testing reviews documents manually.
C. Static testing checks without execution, dynamic testing requires execution of code.
D. Both are executed with test data.
Đáp án: C – Phân biệt dựa vào việc có chạy phần mềm hay không.
(Nguồn: TutorialsPoint)
Which testing types are considered dynamic testing?
A. Unit testing, Integration testing, System testing.
B. Reviews, Inspections, Walkthroughs.
C. Code analysis, Document analysis.
D. None of the above.
Đáp án: A – Vì tất cả đều cần chạy phần mềm.
(Nguồn: SoftwareTestingFundamentals)