SSS ae là một phiên bản rất sớm được thiết kế cho phân phối hạn chế đến một số khách hàng quan trọng và cho marketing để mục đích trình diễn. Đây là giai đoạn đầu tiên trong quá trình phát triển phần mềm, khi mà sản phẩm vẫn còn nhiều lỗi và chưa được hoàn thiện. Các phiên bản này thường được sử dụng để thu thập phản hồi từ khách hàng và để thử nghiệm các tính năng mới. Trong trường hợp này, SSS ae được mô tả là một phiên bản được thiết kế cho phân phối hạn chế, cho thấy nó không phải là một phiên bản hoàn chỉnh và đã được thử nghiệm kỹ lưỡng.
Để đạt được 100% quyết định trong việc kiểm thử, chúng ta cần xem xét các quyết định trong đoạn mã đã cho. Đoạn mã này có thể được viết bằng ngôn ngữ lập trình nào đó, nhưng chúng ta sẽ giả định nó là Java. Đoạn mã có thể như sau:
Lời giải
if(x >5){
System.out.println("x lớn hơn 5");} else {
System.out.println("x nhỏ hơn hoặc bằng 5");}
Trong đoạn mã này, có hai quyết định: x lớn hơn 5 và x nhỏ hơn hoặc bằng 5. Để đạt được 100% quyết định, chúng ta cần có ít nhất hai test case: một test case để x lớn hơn 5 và một test case để x nhỏ hơn hoặc bằng 5. Tuy nhiên, có thể có một số trường hợp khác, chẳng hạn như x bằng 5, mà chúng ta cũng cần phải xem xét. Vì vậy, tổng số test case cần thiết để đạt được 100% quyết định là 3.
Nếu một thí sinh được cho một bài kiểm tra 40 câu hỏi, cần đạt 25 điểm để đạt yêu cầu (61%) và cần đạt 80% để đạt điểm danh dự. Để tìm lớp tương đương, chúng ta cần xác định các điểm số mà thí sinh đạt được để đạt được điểm danh dự và điểm yêu cầu. Lớp tương đương là tập hợp các điểm số mà thí sinh đạt được để đạt được điểm danh dự hoặc điểm yêu cầu. Trong trường hợp này, các điểm số 23, 24 và 25 là lớp tương đương vì thí sinh đạt được 61% điểm số trong cả ba trường hợp này.
Đáp án đúng: "Breadth Test and Depth Test". Kiểm thử bảo trì (maintenance testing) diễn ra khi hệ thống đang vận hành bị sửa đổi, nâng cấp, chuyển môi trường hoặc gỡ bỏ. Cách tiếp cận của nó gồm hai chiều: kiểm thử theo chiều sâu (depth test) để kiểm kỹ chính phần vừa thay đổi, và kiểm thử theo chiều rộng (breadth test) để rà hồi quy trên các phần khác của hệ thống xem thay đổi có gây ảnh hưởng ngoài ý muốn hay không, phạm vi được quyết định qua phân tích tác động (impact analysis). "Re-testing" chỉ là việc chạy lại ca kiểm thử đã thất bại sau khi lỗi được sửa, là một hoạt động nằm bên trong chứ không phải phương pháp tổng thể. "Confirmation Testing" là tên gọi khác của re-testing, nên cũng chỉ là một phần của chiều sâu. "Sanity Testing" là phép kiểm nhanh xem bản dựng có đủ ổn định để kiểm tiếp hay không, không phải phương pháp riêng của kiểm thử bảo trì.
Strategy tích hợp là một phần quan trọng trong quản lý dự án. Có nhiều phương pháp tích hợp khác nhau, bao gồm cả Design based, Big-bang, Bottom-up và Top-down. Tuy nhiên, Design based không phải là một phương pháp tích hợp. Thay vào đó, nó là một phương pháp thiết kế, được sử dụng để tạo ra một bản thiết kế chi tiết cho dự án trước khi bắt đầu triển khai. Big-bang, Bottom-up và Top-down là các phương pháp tích hợp khác nhau, mỗi phương pháp đều có ưu và nhược điểm riêng. Big-bang là một phương pháp tích hợp toàn diện, trong đó tất cả các phần của dự án được tích hợp cùng một lúc. Bottom-up là một phương pháp tích hợp từ dưới lên, trong đó các phần nhỏ của dự án được tích hợp trước và sau đó được kết hợp lại. Top-down là một phương pháp tích hợp từ trên xuống, trong đó các phần lớn của dự án được tích hợp trước và sau đó được chia nhỏ hơn.
Đáp án đúng: "Test data.". ISTQB nói lượng kiểm thử cần làm (how much testing is enough) phụ thuộc vào mức độ rủi ro, gồm rủi ro kỹ thuật, an toàn và kinh doanh, cùng các ràng buộc của dự án như thời gian, ngân sách và yêu cầu hợp đồng, pháp lý. Dữ liệu kiểm thử chỉ là đầu vào dùng để chạy các ca kiểm thử đã quyết định làm, nó được chuẩn bị theo khối lượng kiểm thử chứ không quyết định khối lượng đó. "Risks involved" là yếu tố quyết định quan trọng nhất: chỗ rủi ro cao phải kiểm thử kỹ hơn. "Contractual requirements" quyết định lượng kiểm thử vì hợp đồng có thể ấn định mức độ phủ hay loại kiểm thử bắt buộc. "Legal requirements" cũng vậy: các quy định pháp lý, ví dụ trong ngành y tế, hàng không, buộc phải đạt mức kiểm thử nhất định.
BFirm about insisting that a bug is not a 'feature' if it should be fixed
CDiplomatic, sensitive to the way they may react to criticism
DAll of the others
Lời giải
Khi báo cáo lỗi phát hiện cho các nhà phát triển, các kiểm thử viên nên thể hiện sự tôn trọng và chuyên nghiệp. Điều này có nghĩa là họ nên trình bày các lỗi một cách rõ ràng, cụ thể và hữu ích. Họ nên tránh sử dụng ngôn ngữ tiêu cực hoặc gây phẫn nộ, mà thay vào đó, họ nên tập trung vào việc giải quyết vấn đề. Điều này sẽ giúp các nhà phát triển hiểu rõ hơn về lỗi và có thể giải quyết nó một cách hiệu quả hơn. Ngoài ra, các kiểm thử viên cũng nên tránh việc tranh cãi hoặc gây mâu thuẫn với các nhà phát triển, vì điều này có thể gây ra sự bất đồng và làm chậm quá trình phát triển.
Để xây dựng một kế hoạch kiểm tra, các đầu vào quan trọng được lấy từ kế hoạch dự án. Kế hoạch dự án cung cấp thông tin chi tiết về mục tiêu, phạm vi, thời gian và ngân sách của dự án. Điều này giúp cho việc xây dựng kế hoạch kiểm tra trở nên rõ ràng và hiệu quả hơn. Ngoài ra, kế hoạch dự án cũng cung cấp thông tin về các yêu cầu chức năng và không chức năng của dự án, giúp cho việc xác định các trường hợp kiểm tra trở nên dễ dàng hơn. Vì vậy, kế hoạch dự án là nguồn thông tin quan trọng để xây dựng kế hoạch kiểm tra.
CWhen all high and medium priority tests are complete.
DWhen all statements have been executed
Lời giải
Đáp án đúng: "When the test completion criteria are met.". Tiêu chí hoàn thành kiểm thử (test completion criteria) được thống nhất khi lập kế hoạch và kết hợp nhiều thước đo như độ phủ, số khiếm khuyết còn mở, rủi ro còn lại, ràng buộc thời gian và chi phí; đạt được chúng là căn cứ khách quan để dừng kiểm thử. "When the specified number of faults are found" sai vì không ai biết trước phần mềm có bao nhiêu khiếm khuyết, dừng theo số lỗi đã tìm không nói gì về số lỗi còn lại. "When all high and medium priority tests are complete." chỉ là một điều kiện có thể nằm trong tiêu chí, tự nó chưa đủ vì chưa xét kết quả và khiếm khuyết còn mở. "When all statements have been executed" là phủ câu lệnh 100%, cũng chỉ là một thước đo có thể dùng trong tiêu chí, không chứng minh được hành vi đã đúng.
SSSR (Software System Safety and Reliability) Impact Analysis là một phương pháp giúp đánh giá tác động của thay đổi trong hệ thống phần mềm. Nó giúp xác định mức độ ảnh hưởng của thay đổi này đến các phần khác của hệ thống. Trong quá trình này, SSSR Impact Analysis giúp quyết định mức độ kiểm tra lặp lại (regression testing) cần thực hiện. Điều này bao gồm việc xác định số lượng kiểm tra lặp lại cần thực hiện để đảm bảo rằng hệ thống vẫn hoạt động đúng sau khi thay đổi. Vì vậy, câu trả lời đúng cho câu hỏi này là "How much regression testing should be done."
ATo identify potential application failures by use of a test specification.
BTo identify defects in any software work product.
CTo identify spelling mistakes in a requirements specification.
DTo identify standards inconsistencies in the code.
Lời giải
Khi đánh giá một sản phẩm phần mềm, mục tiêu chính là xác định các lỗi hoặc sai sót trong sản phẩm đó. Điều này bao gồm việc kiểm tra các tài liệu, mã nguồn và các sản phẩm khác liên quan đến phần mềm để đảm bảo chúng đáp ứng được các yêu cầu và tiêu chuẩn đã được đặt ra. Mục tiêu này giúp phát hiện ra các vấn đề tiềm ẩn và cải thiện chất lượng của phần mềm. Việc xác định các lỗi hoặc sai sót cũng giúp cho việc sửa chữa và cải thiện phần mềm trở nên hiệu quả hơn.
ACitibank card member, holding Silver room A- Don't offer any upgrade. B - Don't offer any upgrade
BNon Citibank-member, holding a Platinum room A- Don't offer any upgrade. B - Offer upgrade to Gold.
CA- Offer upgrade to Gold. B - Don't offer any upgrade.
DA- Offer upgrade to Silver. B - Offer upgrade to Silver.
Lời giải
Để trả lời câu hỏi này, chúng ta cần xem xét các điều kiện và hành động liên quan đến việc nâng cấp phòng. Thứ nhất, chúng ta cần xác định loại thành viên và loại phòng mà khách hàng đang sở hữu. Trong trường hợp này, chúng ta có hai loại thành viên: thành viên Citibank và thành viên không phải là thành viên Citibank. Loại phòng cũng có hai loại: Silver và Platinum.
Tiếp theo, chúng ta cần xem xét các hành động liên quan đến việc nâng cấp phòng. Đối với thành viên Citibank sở hữu phòng Silver, chúng ta không thể nâng cấp phòng. Đối với thành viên không phải là thành viên Citibank sở hữu phòng Platinum, chúng ta có thể nâng cấp phòng lên Gold. Đối với thành viên Citibank sở hữu phòng Platinum, chúng ta không thể nâng cấp phòng. Đối với thành viên không phải là thành viên Citibank sở hữu phòng Silver, chúng ta không thể nâng cấp phòng.
Tóm lại, để trả lời câu hỏi này, chúng ta cần xem xét các điều kiện và hành động liên quan đến việc nâng cấp phòng và dựa trên đó đưa ra quyết định phù hợp.
Theo ISTQB Glossary, rủi ro liên quan đến những hậu quả tiêu cực có thể xảy ra. Trong quá trình kiểm thử, rủi ro thường được định nghĩa là những hậu quả tiêu cực có thể xảy ra trong quá trình kiểm thử hoặc sau khi kiểm thử. Điều này giúp cho các nhà kiểm thử có thể dự đoán và chuẩn bị cho những tình huống xấu có thể xảy ra. Ví dụ, rủi ro có thể bao gồm việc mất dữ liệu quan trọng, lỗi hệ thống hoặc chậm trễ trong quá trình triển khai. Việc nhận biết và đánh giá rủi ro là một phần quan trọng trong quá trình kiểm thử để đảm bảo rằng các sản phẩm hoặc dịch vụ được kiểm thử một cách đầy đủ và hiệu quả.
BReplaying inputs according to a programmed script
CComparison of expected outcomes with actual outcomes
DRecording test inputs
EReading test values from a data file
Lời giải
Đáp án đúng: "Generating expected outputs". Câu hỏi dạng EXCEPT: cần tìm việc mà công cụ thực thi kiểm thử thương mại thông thường không làm được. Công cụ thực thi chạy và đối chiếu, nhưng kết quả mong đợi phải đến từ một nguồn hiểu đặc tả, tức test oracle như yêu cầu, người kiểm thử hay hệ thống tham chiếu; công cụ không tự biết đầu ra đúng là gì, đó là bài toán oracle. Các phát biểu kia đều là năng lực điển hình của công cụ nên không được chọn. "Replaying inputs according to a programmed script" đúng vì chạy lại kịch bản đã lập trình là chức năng cốt lõi. "Comparison of expected outcomes with actual outcomes" đúng vì công cụ so kết quả thực tế với kết quả mong đợi đã được cung cấp sẵn. "Recording test inputs" đúng vì kiểu record/playback ghi lại thao tác đầu vào. "Reading test values from a data file" đúng vì kiểm thử hướng dữ liệu (data-driven) đọc giá trị từ tệp dữ liệu.
Đáp án đúng: "ISO 9126". ISO 9126 là chuẩn quốc tế về chất lượng sản phẩm phần mềm, định nghĩa mô hình sáu đặc tính chất lượng (chức năng, độ tin cậy, khả dụng, hiệu suất, khả năng bảo trì, khả chuyển) kèm các đặc tính con và số đo; sau này nó được thay bằng bộ ISO 25000 (SQuaRE). Các con số ở phương án nhiễu gợi tới những chuẩn IEEE khác chứ không phải chuẩn chất lượng sản phẩm. "ISO 829" mang số của IEEE 829, chuẩn về tài liệu kiểm thử phần mềm như kế hoạch, đặc tả và báo cáo kiểm thử. "ISO 1012" mang số của IEEE 1012, chuẩn về kiểm chứng và thẩm định (verification and validation). "ISO 1028" mang số của IEEE 1028, chuẩn về rà soát phần mềm như thanh tra, walkthrough, rà soát kỹ thuật. Không con số nào trong ba con số này là chuẩn chất lượng sản phẩm phần mềm.
Một người có độ tuổi từ 1 đến 99, chúng ta cần sử dụng BVA (Binary Variable Association) để xác định giá trị phù hợp. BVA là một kỹ thuật thống kê giúp phân tích mối quan hệ giữa các biến số. Trong trường hợp này, chúng ta cần tìm giá trị phù hợp cho độ tuổi của người đó. Giá trị 0 không phải là độ tuổi hợp lệ, vì vậy chúng ta cần loại bỏ nó. Giá trị 100 không phải là độ tuổi hợp lệ, vì độ tuổi chỉ có thể từ 1 đến 99. Do đó, giá trị phù hợp cho độ tuổi của người đó là 1, 2, 99.
BCreating a test case which does not reveal a fault
CMasking a fault by developer
DMasking a fault by a tester
Lời giải
SSSR Fault Masking là một kỹ thuật trong lĩnh vực kiểm thử phần mềm, liên quan đến việc che giấu hoặc che đậy lỗi trong chương trình. Nói một cách đơn giản, SSSR Fault Masking là quá trình che giấu một lỗi khác một lỗi khác. Ví dụ, nếu một chương trình có lỗi về việc không thể kết nối đến cơ sở dữ liệu, một lỗi khác có thể được tạo ra để che giấu lỗi này. Điều này có thể giúp phát hiện ra lỗi khác, nhưng cũng có thể khiến việc phát hiện ra lỗi ban đầu trở nên khó khăn hơn. SSSR Fault Masking thường được sử dụng trong các trường hợp khi lỗi không thể được phát hiện bằng các phương pháp kiểm thử thông thường.
Sự chuyển giao tài liệu kiểm thử (SSSR Handover of Testware) là một phần của giai đoạn phân tích và thiết kế kiểm thử. Trong giai đoạn này, các kỹ sư kiểm thử sẽ phân tích yêu cầu của sản phẩm, xác định các trường hợp kiểm thử và thiết kế kế hoạch kiểm thử. Sự chuyển giao tài liệu kiểm thử là một phần quan trọng của giai đoạn này, vì nó giúp đảm bảo rằng tất cả các bên liên quan đều hiểu rõ về kế hoạch kiểm thử và tài liệu liên quan. Điều này giúp giảm thiểu sự nhầm lẫn và đảm bảo rằng kiểm thử được thực hiện một cách hiệu quả.
Đáp án đúng: "(2) Record/Playback". Kiểm thử hồi quy (regression testing) là chạy lại các ca kiểm thử đã có sau mỗi thay đổi để chắc rằng phần chưa sửa không bị ảnh hưởng; vì bộ ca này lặp lại nhiều lần với cùng các bước, công cụ ghi và phát lại (record/playback), một dạng công cụ thực thi kiểm thử tự động, là lựa chọn điển hình: ghi thao tác một lần rồi phát lại ở mỗi bản dựng mới và so kết quả. "(1) Performance" là công cụ đo hiệu năng, mô phỏng tải và thời gian đáp ứng, phục vụ kiểm thử phi chức năng chứ không nhằm xác nhận chức năng cũ còn chạy đúng. "Both of (1) and (2)" sai vì công cụ hiệu năng không phải loại công cụ dành cho hồi quy chức năng. "None of (1) nor (2)" sai vì record/playback chính là loại công cụ được dùng phổ biến nhất cho kiểm thử hồi quy.
Đáp án đúng: "A test management tool". Công cụ quản lý kiểm thử (test management tool) hỗ trợ quản lý toàn bộ hoạt động kiểm thử: lưu yêu cầu và ca kiểm thử cùng liên kết truy vết (traceability) giữa chúng, lên lịch chạy kiểm thử, ghi kết quả và sự cố, báo cáo tiến độ; cả ba chức năng câu hỏi nêu đều thuộc nhóm này. "A dynamic analysis tool" theo dõi chương trình lúc chạy để phát hiện rò rỉ bộ nhớ, con trỏ hỏng. "A test execution tool" chạy kịch bản kiểm thử tự động và so sánh kết quả, không quản lý truy vết hay lịch. "A debugging tool" giúp lập trình viên chạy từng bước, xem giá trị biến để tìm nguyên nhân lỗi. "A configuration management tool" quản lý phiên bản và baseline của phần mềm cùng testware, không ghi sự cố hay lên lịch kiểm thử.