Font size
WorksheetsTestCNPM- Phân tích đặc tả, Thiết kế, kiểm thử
Total questions: 100
Worksheet time: 53mins
Mục tiêu chính của giai đoạn phân tích yêu cầu là gì?
Thiết kế giao diện người dùng
Xác định các dịch vụ và ràng buộc của hệ thống
Lập trình các mô-đun chính
Viết tài liệu hướng dẫn sử dụng
Yêu cầu chức năng mô tả điều gì?
Cách thức cài đặt hệ thống
Dữ liệu cần lưu trữ
Các hoạt động hoặc dịch vụ mà hệ thống cần cung cấp
Kiến trúc phần mềm
Yêu cầu phi chức năng không bao gồm yếu tố nào sau đây?
Tính tin cậy
Tốc độ phản hồi
Cấu trúc module
Giới hạn phần cứng
Trong phân tích yêu cầu, “stakeholder” là ai?
Người dùng cuối của phần mềm
Bất kỳ cá nhân hoặc tổ chức nào có lợi ích liên quan đến hệ thống
Lập trình viên
Người kiểm thử
Biểu đồ luồng dữ liệu (DFD) mô tả điều gì?
Cách tổ chức giao diện
Cách dữ liệu di chuyển và được xử lý trong hệ thống
Cách phân chia chức năng cho từng lập trình viên
Giao tiếp giữa các module
Trong DFD, “Tác nhân ngoài” thể hiện điều gì?
Luồng dữ liệu
Kho dữ liệu
Nguồn hoặc đích của thông tin bên ngoài hệ thống
Tiến trình xử lý
DFD mức 0 còn được gọi là gì?
Biểu đồ ngữ cảnh
Biểu đồ phân rã
Biểu đồ chi tiết
Trong biểu đồ thực thể – mối quan hệ (ERD), mối quan hệ được biểu diễn bằng:
Hình chữ nhật
Hình thoi
Hình tròn
Đường kẻ
Một thực thể trong ERD được biểu diễn bằng:
Hình elip
Hình chữ nhật
Hình thoi
Hình tam giác
Trong mô hình ER, “(1,1)” và “(0,m)” biểu thị điều gì?
Quan hệ cha – con
Lực lượng tham gia (cardinality)
Dữ liệu đầu ra
Khóa chính
Biểu đồ phân rã chức năng (FDD) được dùng để làm gì?
Mô tả các module chương trình
Phân chia chức năng hệ thống thành các mức chi tiết
Xác định cấu trúc dữ liệu
Thể hiện giao diện đồ họa
Khi mô hình hóa bằng DFD, không được phép có:
Luồng dữ liệu trực tiếp giữa hai kho dữ liệu
Luồng dữ liệu đi vào tiến trình
Luồng dữ liệu đi ra tiến trình
Tiến trình có nhiều luồng
Yêu cầu về hành vi mô tả điều gì?
Cách hệ thống phản ứng với các sự kiện
Giao diện đồ họa
Dữ liệu lưu trữ
Kiến trúc vật lý
Đặc tả phi hình thức là gì?
Sử dụng ký hiệu toán học
Dạng văn bản hoặc ngôn ngữ tự nhiên
Sử dụng ngôn ngữ lập trình
Dạng mã giả
Đặc tả hình thức được viết bằng:
Ngôn ngữ tự nhiên
Ngôn ngữ có cú pháp và ngữ nghĩa chặt chẽ
Lưu đồ chương trình
Biểu đồ tổ chức
Một ví dụ của đặc tả hình thức là:
Lưu đồ
ERD
Ngôn ngữ Z
Gantt Chart
Trong đặc tả hình thức, phần “Signature” dùng để:
Mô tả cú pháp và tham số của thao tác
Mô tả ngữ nghĩa của thao tác
Giới thiệu các kiểu dữ liệu
Mô tả quá trình thực thi
Trong đặc tả hành vi hệ thống, ký hiệu “?” và “!” mang nghĩa gì?
“?” là đầu ra, “!” là đầu vào
“?” là input, “!” là output
Cả hai là đầu ra
Không có ý nghĩa đặc biệt
Một yêu cầu tốt không nên có đặc điểm nào sau đây?
Cụ thể và đo lường được
Có thể kiểm chứng
Mâu thuẫn và mơ hồ
Dễ hiểu với người dùng
Tài liệu đặc tả yêu cầu (SRS) được sử dụng trong giai đoạn nào?
Phân tích và thiết kế
Kiểm thử
Lập trình
Thẩm định yêu cầu nhằm mục đích:
Phát hiện lỗi lập trình
Kiểm tra tính đúng đắn, đầy đủ và khả thi của yêu cầu
Kiểm tra tốc độ xử lý
Tạo dữ liệu kiểm thử
Trong DFD, kho dữ liệu được biểu diễn bằng:
Hình elip
Hai đường song song
Hình thoi
Hình chữ nhật
Mối quan hệ giữa hai thực thể trong ERD thể hiện:
Quan hệ chức năng
Quan hệ dữ liệu hoặc nghiệp vụ
Quan hệ nhân quả
Quan hệ thời gian
Mục đích của phân rã DFD là:
Làm biểu đồ đẹp hơn
Tăng mức chi tiết để hiểu hệ thống rõ hơn
Giảm số lượng tiến trình
Tách dữ liệu
Một yêu cầu “phi chức năng” ví dụ là:
Hệ thống cho phép người dùng đăng nhập
Hệ thống phải phản hồi trong vòng 2 giây
Hệ thống lưu dữ liệu khách hàng
Hệ thống in hóa đơn
Thiết kế kiến trúc phần mềm là gì?
Là quá trình tạo giao diện người dùng
Là quá trình xác định các hệ thống con và cơ cấu tổ chức giữa chúng
Là giai đoạn lập trình mã nguồn
Là quá trình cài đặt phần mềm
Trong thiết kế kiến trúc, mô hình cấu trúc hệ thống dùng để:
Xác định cách điều khiển hệ thống
Biểu diễn cách tổ chức các hệ thống con
Xác định các sự kiện tương tác
Mô tả giao diện người dùng
Kiến trúc dữ liệu tập trung (Data-Centered Architecture) có ưu điểm nào sau đây?
Khó chia sẻ dữ liệu
Các phân hệ độc lập hoàn toàn
Thuận tiện chia sẻ dữ liệu lớn
Dễ thay đổi cấu trúc dữ liệu
Nhược điểm của kiến trúc dữ liệu tập trung là gì?
Không hỗ trợ giao tiếp giữa các hệ thống con
Khó thay đổi cấu trúc dữ liệu và chính sách riêng của phân hệ
Quá tốn kém chi phí phần cứng
Không có tính mở rộng
Kiến trúc khách – dịch vụ (Client–Server Architecture) bao gồm:
Các client, server và mạng kết nối chúng
Chỉ các client độc lập
Chỉ server trung tâm
Các tiến trình song song
Ưu điểm của kiến trúc Client–Server là gì?
Khó mở rộng
Đòi hỏi thiết bị đắt tiền
Dễ mở rộng và thêm dịch vụ mới
Không hỗ trợ bảo mật
Kiến trúc phân tầng (Layered Architecture) phù hợp khi:
Các tầng có thể hoạt động độc lập
Hệ thống dễ dàng chia theo các mức dịch vụ
Hệ thống chỉ có một tầng điều khiển
Không có sự phụ thuộc giữa các tầng
Ưu điểm của kiến trúc phân tầng là:
Dễ bảo trì và mở rộng
Giảm hiệu năng
Không thể thay đổi từng tầng riêng
Kiến trúc gọi và trả lại (Call and Return Architecture) dùng cho:
Các hệ thống song song
Các hệ thống hướng sự kiện
Các hệ thống tuần tự
Các hệ thống phân tán
Kiến trúc xử lý hướng sự kiện (Event-driven Architecture) có mấy mô hình chính?
1
2
3
4
Trong mô hình phân rã mô đun, mô hình đối tượng thể hiện:
Các tiến trình xử lý dữ liệu
Tập hợp các đối tượng tương tác thông qua giao diện
Cấu trúc file dữ liệu
Dòng điều khiển tuần tự
Mô hình luồng dữ liệu (data flow model) tương tự với:
Mô hình lớp
Mô hình pipe-filter trong Unix
Mô hình state machine
Mô hình client-server
Mục tiêu của thiết kế kiến trúc là:
Tạo ra kiến trúc được phân hoạch rõ ràng
Thiết kế giao diện đẹp
Tăng tốc độ lập trình
Viết tài liệu hướng dẫn
Phân hoạch kiến trúc gồm có:
Phân hoạch logic và vật lý
Phân hoạch ngang và dọc
Phân hoạch chính và phụ
Phân hoạch cấu trúc và dữ liệu
Phân hoạch ngang trong thiết kế kiến trúc là:
Phân tách module theo tầng điều khiển và thao tác
Xác định các nhánh chức năng độc lập
Phân chia theo tiến trình xử lý dữ liệu
Phân chia theo lớp người dùng
Phân hoạch dọc là:
Phân chia các module ra quyết định và thao tác theo tầng
Phân chia theo dữ liệu
Phân chia theo tiến trình
Phân chia theo giao diện
Trong phương pháp chuyển đổi kiến trúc, bước đầu tiên là:
Viết tài liệu thiết kế
Cố lập và xác định biên của các module vào/ra
Thêm module điều khiển
Tối ưu hóa dữ liệu
Thiết kế giao diện người dùng (UI Design) hướng đến:
Người dùng cuối
Lập trình viên
Quản trị viên hệ thống
Người kiểm thử
Giao diện người dùng quyết định:
Tốc độ xử lý của CPU
Hiệu năng và sự thành công của hệ thống
Cấu trúc dữ liệu nội bộ
Khả năng lưu trữ
Tiến trình thiết kế giao diện bắt đầu bằng:
Tạo bản mẫu động
Phân tích hoạt động của người dùng
Đánh giá giao diện
Viết mã HTML
Một giao diện tốt cần đảm bảo:
Dễ sử dụng và hiệu quả
Nhiều màu sắc
Phức tạp và chi tiết
Trong thiết kế giao diện, tính “phục lỗi” nghĩa là:
Giao diện không bao giờ lỗi
Cho phép người dùng khôi phục trạng thái trước đó khi có lỗi
Giao diện cảnh báo khi sắp lỗi
Lưu log lỗi hệ thống
Tính “thân thiện người dùng” trong thiết kế giao diện nghĩa là:
Sử dụng thuật ngữ quen thuộc, dễ hiểu
Càng ít thông tin càng tốt
Dùng nhiều từ chuyên ngành
Không cần hướng dẫn
Giao diện dòng lệnh (CLI) là:
Giao diện đồ họa
Giao diện nhập lệnh từ bàn phím
Giao diện bằng giọng nói
Giao diện cảm ứng
Ưu điểm của giao diện dòng lệnh là:
Dễ cài đặt, tiết kiệm tài nguyên hệ thống
Yêu cầu phần cứng mạnh
Thực hiện chậm hơn GUI
Khó tự động hóa
Mục đích của xác minh (Verification) là gì?
Kiểm tra hệ thống có đáp ứng yêu cầu người dùng hay không
Kiểm tra hệ thống có đúng với đặc tả và thiết kế hay không
Kiểm tra tốc độ phản hồi của hệ thống
Kiểm tra khả năng phục hồi sau lỗi
Thẩm định (Validation) nhằm:
Phát hiện lỗi lập trình
Đảm bảo sản phẩm đáp ứng nhu cầu người dùng
Phát hiện lỗi tài liệu
Đánh giá hiệu năng mạng
Xác minh và thẩm định thường được viết tắt là:
T&T
D&D
V&V
T&D
Thẩm định/xác minh tĩnh là:
Chạy chương trình với dữ liệu đầu vào
Không thực hiện chương trình, chỉ xem xét tài liệu và mã nguồn
Đánh giá bằng mô phỏng
Thực hiện kiểm thử hiệu năng
Thẩm định/xác minh động là:
Kiểm tra tài liệu
Thực thi chương trình để tìm lỗi
Đọc đặc tả yêu cầu
Đánh giá mô hình dữ liệu
Kiểm thử phần mềm được tiến hành nhằm:
Đảm bảo hệ thống không bao giờ lỗi
Xác định phần mềm có đáp ứng yêu cầu và hoạt động đúng không
Giảm thời gian phát triển
Loại bỏ các yêu cầu thừa
Kiểm thử phần mềm được tiến hành ở:
Chỉ giai đoạn cuối
Mọi công đoạn phát triển
Chỉ khi viết mã xong
Chỉ trong thiết kế
Tính lặp lại trong kiểm thử có nghĩa là:
Mỗi lỗi chỉ cần sửa một lần
Có thể lặp lại quá trình kiểm thử để xác minh lỗi đã được sửa
Không cần chạy lại test
Mỗi lần test cho kết quả khác nhau
Tính hệ thống trong kiểm thử nhằm đảm bảo:
Chạy thử ngẫu nhiên
Kiểm tra hết các trường hợp có thể
Chạy test nhanh nhất
Kiểm thử đơn vị (Unit Test) dựa trên:
Thiết kế chi tiết
Thiết kế tổng thể
Đặc tả yêu cầu phần mềm
Nghiệp vụ khách hàng
Kiểm thử tích hợp (Integration Test) nhằm:
Kiểm tra từng module độc lập
Kiểm tra sự tương tác giữa các module
Kiểm tra tốc độ mạng
Kiểm tra tài liệu hướng dẫn
Kiểm thử hệ thống (System Test) dựa vào:
Thiết kế chi tiết
Đặc tả yêu cầu phần mềm
Yêu cầu khách hàng
Cấu trúc dữ liệu
Kiểm thử chấp nhận (Acceptance Test) được thực hiện bởi:
Nhóm phát triển
Người kiểm thử
Khách hàng
Quản trị hệ thống
Kiểm thử alpha được tiến hành ở đâu?
Môi trường người dùng cuối
Môi trường của khách hàng với sự tham gia của nhóm phát triển
Môi trường mạng nội bộ
Trên thiết bị di động
Kiểm thử beta là:
Kiểm thử cuối cùng do người dùng thực hiện không có giám sát
Kiểm thử trong phòng thí nghiệm
Kiểm thử đơn vị
Kiểm thử bảo mật
Kiểm thử hệ thống thông tin (Information System Testing) thường kiểm tra thêm các yếu tố:
Tính ổn định phần cứng
Hiệu năng, độ an toàn, khả năng phục hồi sau lỗi
Giao diện đồ hoạ
Dữ liệu mạng
Kiểm thử hộp đen (Black-box testing) dựa trên:
Cấu trúc mã nguồn
Đặc tả yêu cầu và đầu ra mong muốn
Trình biên dịch
Mô hình lớp
Kiểm thử hộp trắng (White-box testing) quan tâm đến:
Cấu trúc nội tại của chương trình
Yêu cầu người dùng
Giao diện
Cơ sở dữ liệu
Kiểm thử hộp xám (Gray-box testing) kết hợp:
Black-box và White-box
Alpha và Beta test
Chức năng và phi chức năng
Tự động và thủ công
Kiểm thử chức năng (Functional testing) thuộc loại:
White-box
Black-box
Gray-box
Random testing
Kiểm thử cấu trúc (Structured testing) thuộc loại:
White-box
Black-box
Gray-box
Acceptance test
Trong tổ chức kiểm thử, ai là người chịu trách nhiệm chính?
Test leader
Tester
Công việc không thuộc trách nhiệm của Tester là:
Lập kế hoạch test
Lập trình module mới
Báo cáo kết quả test
Thực hiện test
Test case mô tả:
Một bước xử lý trong hệ thống
Một kịch bản kiểm thử với đầu vào, điều kiện và kết quả mong đợi
Một giao diện
Một đoạn mã
“Test procedure” là gì?
Dữ liệu test
Trình tự thực hiện các test case
Môi trường chạy thử
Báo cáo lỗi
“Test script” là:
Mã tự động hóa kiểm thử
Báo cáo kết quả test
Kế hoạch test
Cơ sở dữ liệu
Trong quá trình kiểm thử, “Test data” dùng để:
Đánh giá mã nguồn
Cung cấp dữ liệu đầu vào cho test case
Ghi lại log hệ thống
Kiểm tra mạng
“Test environment” bao gồm:
Chỉ phần mềm
Phần mềm, phần cứng và các điều kiện liên quan
Mã nguồn và dữ liệu
Giao diện người dùng
Giai đoạn “Lập kế hoạch test” xác định điều gì?
Test cái gì, khi nào, ai làm, và bằng cách nào
Viết mã test
Xây dựng phần mềm
Cấu hình mạng
Trong lập kế hoạch test, yếu tố quan trọng cần xác định là:
Rủi ro và mức độ ưu tiên test
Mã nguồn
Hệ điều hành
Tên project
Mục tiêu của thiết kế test là:
Xây dựng và tổ chức các test case, test procedure
Viết tài liệu hướng dẫn
Viết mã nguồn
Triển khai phần mềm
Kiểm thử được xem là thành công khi:
Không phát hiện lỗi nào
Phát hiện được lỗi tiềm ẩn để cải thiện chất lượng
Phần mềm chạy nhanh hơn
Người dùng hài lòng
Trong chiến lược kiểm thử tích hợp, mục tiêu là:
Xác minh tương tác giữa các module sau khi hợp nhất
Tăng tốc độ xử lý
Giảm chi phí bảo trì
Nâng cấp phần cứng
Kiểm thử hồi quy (Regression Testing) nhằm:
Đảm bảo phần mềm không bị ảnh hưởng sau khi sửa lỗi
Kiểm tra tốc độ mạng
Tăng hiệu năng
Thay đổi cấu trúc dữ liệu
Kiểm thử hệ thống tập trung vào:
Từng module riêng lẻ
Toàn bộ phần mềm như một thể thống nhất
Kiểm tra giao diện
Trong quy trình kiểm thử, bước cuối cùng là:
Viết test case
Tổng hợp, báo cáo và đánh giá kết quả
Chuẩn bị dữ liệu
Thiết kế test
Mục tiêu của việc báo cáo kết quả kiểm thử là:
Ghi nhận lỗi và đề xuất hướng khắc phục
Ghi lại lịch làm việc
Lưu thông tin khách hàng
Xây dựng module mới
Trong hoạt động kiểm thử, “Termination” nghĩa là:
Kết thúc quy trình test
Xóa dữ liệu cũ
Cài đặt phần mềm
Ghi nhận log hệ thống
“Transition” trong quy trình kiểm thử có nghĩa là:
Triển khai phần mềm cho người dùng cuối
Xóa bản test
Sao lưu dữ liệu
Đánh giá nhân viên
Trong quản lý chất lượng, hoạt động kiểm thử thuộc giai đoạn nào của vòng đời phần mềm?
Thiết kế
Xây dựng
Thử nghiệm (Testing)
Triển khai
Quy trình phát triển phần mềm bao gồm bao nhiêu giai đoạn cơ bản?
2
3
4
5
Mục tiêu của kỹ nghệ phần mềm là gì?
Viết phần mềm thật nhanh
Phát triển phần mềm chất lượng cao, đúng hạn và tiết kiệm chi phí
Thiết kế giao diện đẹp
Giảm số lượng nhân viên lập trình
Trong mô hình thác nước (Waterfall Model), giai đoạn kiểm thử diễn ra khi nào?
Song song với phân tích
Sau khi lập trình xong
Trước khi lập trình
Sau khi cài đặt hoàn thiện
Trong mô hình lặp (Iterative Model), đặc điểm nổi bật là:
Làm một lần duy nhất
Phát triển dần qua nhiều vòng lặp có kiểm tra và hiệu chỉnh
Không cần kiểm thử
Bỏ qua giai đoạn phân tích
Tài liệu SRS (Software Requirement Specification) được dùng chủ yếu trong giai đoạn nào?
Thiết kế
Phân tích yêu cầu
Kiểm thử
Triển khai
Thiết kế tốt cần đảm bảo nguyên tắc nào sau đây?
Liên kết lỏng lẻo giữa các module, kết nối mạnh bên trong
Kết nối chặt chẽ giữa các module
Không cần tài liệu hóa
Mỗi module phải biết chi tiết của module khác
Trong quá trình phát triển phần mềm, việc “review” thường được thực hiện ở giai đoạn nào?
A. Trước khi nộp sản phẩm
B. Ở tất cả các giai đoạn
C. Chỉ ở cuối dự án
D. Chỉ ở kiểm thử
Mối liên hệ giữa phân tích – thiết kế – kiểm thử là gì?
Kết quả của phân tích làm đầu vào cho thiết kế, và kết quả thiết kế làm cơ sở cho kiểm thử
Kiểm thử diễn ra trước phân tích
Kết quả của phân tích làm đầu vào cho thiết kế, và kết quả thiết kế làm cơ sở cho kiểm thử
Kiểm thử diễn ra trước phân tích
Thiết kế không phụ thuộc yêu cầu
Khi phát hiện lỗi trong kiểm thử, việc đầu tiên cần làm là:
Xóa chương trình
Ghi nhận và báo cáo lỗi
Dừng toàn bộ quy trình
Thay đổi yêu cầu người dùng
