Mục tiêu & outcome • Cung cấp kiến thức cơ bản về thiết lập và cài đặt một hệ thống chất lượng - qui trình kiểm soát chất lượng hiện hành trong công nghệ phần mềm.. Mô tả đồ án tt – G
Trang 1Đảm bảo chất lượng phần mềm
Software Quality Assurance
Giới thiệu môn học
PGS TS Trần Cao Đệ
Bộ môn Công nghệ Thông tin
Trang 3Mục tiêu & outcome
• Cung cấp kiến thức cơ bản về thiết lập và cài đặt một hệ thống chất
lượng
- qui trình kiểm soát chất lượng hiện hành trong công nghệ phần
mềm
- tổ chức thực hiện và đánh giá chất lượng phần mềm
- kiến thức cập nhật về các chuẩn hiện hành trong CNPM
Trang 4Thời lượng môn học
Trang 6Mô tả đồ án
kiếm nhà trọ nhằm mục tiêu giúp người dùng có thể tìm kiếm được nhà trọ một cách dễ dàng và tiện lợi đồng thời cũng giúp chủ nhà trọ quảng bá nhà trọ bằng từ
Một chủ nhà trọ khi được cấp tài khoản được đăng thông tin
về nhà trọ lên web site bao gồm tin tức và hình ảnh
• Quản lí danh sách thành viên
Trang 7Mô tả đồ án (tt)
• Người dùng có thể truy cập web site tự do nhưng những người dùng có đăng kí thành viên sẽ được cung cấp thông tin mới qua email khi có thông tin nhà trọ phù hợp với yêu cầu
– Chủ nhà trọ :
• có thể cập nhật thông tin nhà trọ và thông tin cá nhân về tài khoản của họ (email, số điện thoại,…)
• có thể đăng kí thành viên để tham gia diễn đàn
– Khách tự do: bất bỳ ai truy cập web site
• Tìm kiếm nhà trọ
– Thành viên: những người có đăng kí thành viên
• Gửi ý kiến đóng góp, đánh giá nhà trọ
• Tham gia diễn đàn
Trang 8Mô tả đồ án (tt)
– Giao diện đẹp
– Dùng một framework nào đó để phát triển web
– Tin tức mới phải được hiển thị nổi bật
– Diễn đàn phải có quản lí tin tức theo chủ đề
– Chạy được trên các trình duyệt thông dụng
– Mức độ hoàn thiện các yêu cầu đồ án và của web site
– Mục tiêu (ý đồ) chất lượng và mức độ đạt được của chất lượng
– Mức độ tương thích của web site với các môi trường khác nhau (dựa trên báo cáo)
Trang 9Nội dung môn học
• Chương 1: Giới thiệu về quản lí CNPM và quản lí chất
lượng phần mềm
• Chương 2: Quản lí chất lượng phần mềm
• Chương 3: Các chuẩn chất lượng phần mềm
• Chương 4: Các độ đo chất lượng
• Chương 5: Đảm bảo chất lượng và kiểm soát chất lượng
Trang 10Lịch học SQA HK 1 năm 2014 – 15
Ngày Tuần Nội dung Phòng yêu cầu phải nộp để chấm điểm
8-Aug-14 1 LT: Giới thiệu môn học + Chia nhóm đồ án 303/C1
29-Aug-14 4 TH : Viết đặc tả phần mềm-duyệt đặc tả làm rõ các y/c chất lượng 303/C1
5-Sep-14 5 LT: Chương 2 303/C1 Nộp kết quả TH 1: đặc tả PM, chấm 10% 12-Sep-14 6 TH : Thiết kế phần mềm-duyệt thiết kế và xem xét chất lượng TK 303/C1
Trang 11Một số qui định
• Đồ án: điểm theo nhóm : 8-10 SV
– Không có đăng kí nhóm: 0 điểm đồ án
– Không tham gia đồ án: 0 điểm đồ án
– Không nộp báo cáo viết/viết không đúng yêu cầu: không chấm điểm thực hành
• Thi :
– Vắng quá 20% giờ LT: cấm thi
– Thi trắc nghiệm: mang theo viết chì 2B
– Ghi/tô sai SBD: -1 điểm bài thi
– Không ghi/tô Mã đề: 0 điểm thi
Trang 12Mẫu phiếu trắc nghiệm
Trang 13Qui định về thang điểm
Thang điểm 10 Điểm chữ
Trang 14Tài liệu tham khảo
1 Daniel Galin, Software Quality Assurance, Addition Wesley, 2004
2 M Pezzè, M Young, Software Testing and Analysis: Process,
Principles, and Techniques, Wiley, 2008
Trang 15Thông tin về giảng viên
TS Trần Cao Đệ
Bộ môn Công nghệ TT
Khoa CNTT & TT – Đại học Cần Thơ
tcde@cit.ctu.edu.vn
**Các email sẽ được trả lời trong thời gian 3 ngày
• Địa chỉ: Số 1 – Lý Tự Trọng, Ninh Kiều, Cần Thơ
• Phone: 0710.38.31.301
Trang 16Website Khoa CNTT&TT
www.cit.ctu.edu.vn/~tcde
Để cập nhật thông tin về môn học
Trang 17Đại diện các nhóm SV
Trang 18PGS TS Trần Cao Đệ
Bộ môn Công nghệ phần mềm Khoa CNTT&TT – Đại học Cần Thơ Năm 2013
Đảm bảo chất lượng phần mềm
Software Quality Assurance
VẤN ĐỀ QUẢN LÍ CHẤT LƯỢNG
TRONG CÔNG NGHỆ PHẦN MỀM
Trang 19CÔNG NGHỆ PHẦN MỀM là gì?
Trang 20PHẦN MỀM
- Là hệ thống gồm có chương trình máy tính, tài liệu, dữ
liệu và qui trình vận hành các chương trình đó để vận hành hệ thống máy tính
- Phần mềm không chỉ là các chương trình máy tính mà
còn bao gồm cả các tài liệu cần thiết cho việc phát triển
và bảo trì các chương trình đó
- Ngày nay các phần mềm là phần không thể thiếu trong
hệ thống tác nghiệp tại các cơ quan, xí nghiệp
- Phần mềm có mặt khắp nơi: điện thoại di động, máy
lạnh, máy giặt, đồ chơi,…
chất lượng có tác hại gì?
Trang 21Lỗi phần mềm
Trang 22Lỗi phần mềm (tt)
• Hình ảnh tên lửa Ariane 5 nổ tung ngày 4/6/1996 sau vài giây được phóng lên, thiệt hại 500.000.000$US
• Image source: European Space Agency
Trang 23bệnh nhân
Trang 24Lỗi phần mềm (tt)
System) đã làm cho hệ thống chậm tiến độ 16 tháng,
thiệt hại mỗi ngày 1.000.000 $US
hại lên đến hơn 3G $US
Trang 25Lỗi phần mềm (tt)
- Chưa nghe nói có phần mềm nào kém chất lượng
Trang 26Tại sao phần mềm kém chất lượng?
Trang 27Các nguyên nhân gây lỗi phần mềm
• Faulty requirement definition
• Client-developer communication failures
• Deliberate deviations from software requirements
• Logical design errors
• Coding errors
• Non-compliance with documentation and coding instructions
• Shortcomings of the testing process
• User interface and procedure errors
Trang 28đúng đắn để thu được phần mềm một cách kinh tế nhất
và chạy hiệu quả trên các máy thật [NATO68]
Trang 29CÔNG NGHỆ PHẦN MỀM (tt)
yêu cầu cao về chất lượng
để phát triển phần mềm chuyên nghiệp
- Làm việc có tổ chức khoa học
- Đội ngũ KS/lập trình viên đông, chuyên môn hóa
- Tác phong chuyên nghiệp
- Sản phẩm trí tuệ
Trang 32Qui trình phần mềm
• Qui trình phần mềm
- Các bước tiến hành một phần mềm
- Mô hình tiến trình
• Các bước chính trong tiến trình phát triển phần mềm
- Tìm hiểu yêu cầu
Trang 33Kế hoạch về nhân sự/nhân lực
xác định yêu cầu, 10%
đặc tả, 10%
thiết kế, 15%
cài đặt, 20%
kiểm thử, 45%
Trang 34Đặc tả yêu cầu phần mềm
• Các yêu cầu của người dùng về hệ thống tương lai
- Chỉ tập trung vào what và bỏ qua how
- Là hợp đồng (contract) giữa khách hàng và nhà phát triển
- Phải bao gồm các ràng buộc mà sản phẩm phải đáp ứng
• Nội dung đặc tả
- Yêu cầu chức năng
- Yêu cầu không chức năng: hiệu quả của hệ thống, độ tin cậy, tài liệu
người dùng, tập huấn, giá thành,…
• Kết quả của đặc tả: tài liệu đặc tả yêu cầu
- Phản ánh sự hiểu biết chung về vấn đề cần giải quyết giữa người
phân tích và khách hàng
- Cơ sở để nghiên cứu khả thi
- Cơ sở để kiểm thử-chấp nhận
Trang 35Ba bước trong đặc tả yêu cầu
Trang 36Phân tích (Analyze)
- Giai đoạn cuối của đặc tả
- Giai đoạn đầu của thiết kế
- Làm rõ thêm các yêu cầu
- Trình bày các yêu cầu bằng các mô hình phân tích
- Định nghĩa rõ các thuật ngữ (từ điển dữ liệu)
- State diagram…
Trang 37Kết quả của quá trình phân tích yêu cầu
Một ví dụ: kết quả theo phân tích truyền thống
Mô hình thực thể quan hệ
Trang 38- Có thể không phải duy nhất
YÊU CẦU ĐỐI LẬP NHAU
Design pattern:
dùng lại ý tưởng
& các mẫu thiết kế
Trang 39Thiết kế kiến trúc
Requirements (from customer)
Req 1 Req 2
… Req n
Trang 40Thiết kế chi tiết
Trang 42- Sử dụng thư viện / Nguồn mở
- Hình thức chuẩn của code
- Refactoring
Cải tiến thiết kế và code đã có một cách an toàn
Viết lại source code để cải tiến thiết kế và tính dễ đọc
Trang 43Kiểm thử
của chương trình bằng một tập hợp hữu hạn
các trường hợp (test case) để xác nhận hành vi mong muốn đã được đặc tả
- Verification: do right things
- Validation: do things right
Trang 44Kiểm thử # chạy thử
trên test
nguyên nhân gây lỗi
- Hiệu quả của test
- Hiệu quả của lập trình viên
- Hiệu quả của dự án – chất lượng phần mềm
Trang 45Các loại kiểm thử
• Unit Test: test từng thành phần đơn vị để chỉ ra nó thỏa mãn
chức năng đặc tả và/hoặc để chỉ ra cấu trúc của nó phù hợp với cấu trúc thiết kế
• Integration Test: test để chỉ ra các mảnh/ thành phần của phần
mềm được kết nối nhau đúng đắn để tạo ra thành phần lớn hơn
• System Test: test toàn bộ hệ thống trong môi trường hoạt động
của nó
• Acceptance Test : test toàn bộ hệ thống và tập trung vào yêu cầu
Trang 46Kiểm thử hình chữ V
Trang 47Hết chương!
Liên hệ:
TS Trần Cao Đệ
Bộ môn Công nghệ Phần mềm Khoa CNTT và TT – ĐH Cần Thơ Email: tcde@cit.ctu.edu.vn
Trang 48Yêu cầu đồ án
Xây dựng phần mềm: ứng dụng web hỗ trợ quản lí và tìm kiếm nhà trọ
- Quản lí danh mục các nhà trọ (ở nhiều tỉnh thành)
- Admin, Chủ nhà trọ: Đăng kí thành viên, cập nhật thông tin về nhà trọ (tên, địa chỉ, sđt, hình ảnh,…)
- Admin, chủ nhà trọ: cập nhật thông tin trạng thái phòng trọ (trạng thái, giá cả, hình ảnh)
- Tìm kiếm nhà trọ
- Người dùng có thể nêu các yêu cầu: địa bàn, giá, loại phòng (số người), điều kiện khác (nấu ăn, nhà VS,…)
- Quản lí yêu cầu tìm chỗ trọ
- Người dùng có thể đăng kí như là thành viên và gởi yêu cầu tìm chỗ trọ tới cho admin Admin tìm chỗ trọ và cung câp thông tin cho người dùng (có trả phí qua tài khoản)
- Người dùng trả phí qua tài khoản NH và thông báo cho admin (việc này ngoài
hệ thống) Admin sau khi nhận được sẽ cung câp thông tin nhà trọ cho người
Trang 49Công việc cần thực hiện
Trang 50PGS TS Trần Cao Đệ
Bộ môn Công nghệ phần mềm Khoa CNTT&TT – Đại học Cần Thơ Năm 2013
Đảm bảo chất lượng phần mềm
Software Quality Assurance
Chương 2: Quản lí chất
lượng phần mềm
Trang 51Đảm bảo chất lượng: thiết lập một tập hợp các họat động
có chủ đích và có hệ thống nhằm mang lại sự tin tưởng
sẽ đạt được chất lượng đòi hỏi
“SQA is a systematic, planned set of actions necessary
to provide adequate confidence that the software
development process or the maintenance process of a software system product conforms to established
functional technical requirements as well as with the
managerial requirements of keeping the schedule and
Trang 52Đảm bảo chất lượng phần mềm
phần mềm sẽ hoàn thành đúng đặc tả, theo chuẩn
mực định trước và các chức năng đòi hỏi, không có hỏng hóc và các vấn đề tiềm ẩn
phần mềm ngay từ khi dự án bắt đầu Nó có tác dụng
“phòng ngừa” cái xấu, cái kém chất lượng
(costumer satisfaction)
– Thời gian
– Ngân sách
– Chất lượng
Trang 53Thuật ngữ
• Error: là sự không nhất quán giữa giá trị đầu ra của
phần mềm so với giá trị đúng tương ứng với một đầu
vào
• Fault
một trạng thái là nguyên nhân làm cho hệ thống hỏng
khi thực hiện chức năng nào đó
• Failure
Trang 54Mục tiêu hoạt động ĐBCL trong PTPM
chức năng đòi hỏi
các yêu cầu về quản lí và ngân sách
phát triển phần mềm và các hoạt động ĐBCL
Trang 55Đảm bảo chất lượng # testing
Đảm bảo chất lượng bao gồm một chuỗi các hoạt động
nhằm ngăn ngừa lỗi (defect prevention)
Test: Các hoạt động nhằm phát hiện lỗi (bug) trong
chương trình thông qua một tập hợp các test case
Test có thể chỉ ra lỗi chứ không thể chứng minh là chương trình không có lỗi
Trang 56Các khía cạnh trong SQA
• Kế hoạch ĐBCL
– Mô tả chất lượng mong muốn, thiết lập các tiêu chuẩn chất lượng và cách đánh giá (đo) các thuộc tính chất lượng
– Định rõ qui trình đánh giá chất lượng
– Định rõ các chuẩn mực về quản lí (dùng chuẩn có sẳn/thiếp lập mới)
• Kiểm soát chất lượng (Quality control)
Bao gồm chuỗi các hoạt động: thanh tra, kiểm duyệt, kiểm thử để đảm bảo sản phẩm tuân thủ các đặc tả
• Đảm bảo chất lượng (Quality assurance)
Xác nhận (auditing) và báo cáo (reporting) về qui trình để cung cấp
thông tin quản lí và ra quyết định
Trang 57Yêu cầu chung của SQA
phát triển các tiêu chí chất lượng và dẫn dắt quá trình kỹ nghệ
tả), phần mềm phải tuân thủ các đặc tả không tường
minh như dễ dùng, dễ bảo trì, tin cậy
Trang 58Tiến trình ĐBCL
Trang 59Làm thế nào để đảm bảo chất lượng
Nguyên tắc 1 : bài bản
– Chỉ rõ cách thức tiến hành ĐBCL – Cách thức kiểm tra, giám sát ĐBCL
– Tài liệu về mọi hoạt động trong qui trình pm – Tài liệu, số liệu kiểm tra giám sát
– Tài liệu đánh giá chất lượng: kế hoạch, số liệu
Trang 60Làm thế nào để đảm bảo chất lượng
Nguyên tắc 2: không ngừng cải tiến
– Kế hoạch – Thực hiện – Kiểm tra – Cải tiến
Costumer satisfaction
Kế hoạch Cải tiến
Kiểm tra Thực hiện
Trang 61Hoạt động của nhóm SQA
chuẩn mực đã được xác định cho qui trình
tài liệu hóa và được kiểm soát
Trang 62Các cách tiếp cận trong SQA
1 Chứng minh đúng đắn (logic Hoare)
2 Thống kê chất lượng
– Thông tin về hỏng hóc (defects) được thu thập và phân loại
– Xác định nguyên nhân hỏng hóc
– Áp dụng nguyên lý Pareto (80% of the defects can be traced to 20%
of the causes) để cô lập nguyên nhân hỏng hóc
3 Cleanroom: tổ hợp hai điểm trên
– Phát triển theo mô hình tăng trưởng (Incremental)
– Đặc tả hình thức
– Kiểm tra tĩnh bằng cách dùng các lí lẽ đúng đắn
– Kiểm tra động (testing) để xác nhận độ tin cậy
– Ngăn ngừa hỏng hóc (defect prevention) hơn là loại bỏ lỗi (defect
removal)
Trang 63Cleanroom process
Trang 64Chất lượng và công tác đảm bảo chất lượng
Trang 65Thảo luận
Liệt kê các yếu tố chất lượng của phần mềm
Trang 66Các yếu tố chất lượng
McCall’s quality factor model
11 yếu tố chất lượng, nhóm theo 3 nhóm:
• Vận hành sản phẩm: Correctness, Efficiency, Integrity, Usability
• Xem xét lại sản phẩm: Maintainability, Flexibility, Testability
• Chuyển giao sản phẩm: Portability, Reusability, Interoperability
Trang 67McCall Quality Factors
Trang 68Product operation factors
Correctness
Xác định một danh sách các output được đòi hỏi
Ví dụ:
• The output mission (e.g red alarms when temperature rises to 100 °C)
• Required accuracy of the output (e.g non-accurate output will not exceed 1%)
• Completeness of the output info (e.g probability of missing data less than 1%)
• The up-to-dateness of the info (e.g it will take no more than 1s for the
Trang 69Product operation factors
Reliability
trình máy tính trong một đơn vị thời gian hoặc tần suất xuất hiện lỗi cao nhất trong một đơn vị thời gian
– Có thể đo bằng dữ liệu quá khứ và dữ liệu thu thập trong quá trình phát triển
– Có thể cho toàn bộ hệ thống hoặc cho 1 chức năng trong
hệ thống
Tần suất xuất hiện lỗi của bộ điều khiển nhịp tim là 1/20
Trang 70Product operation factors
Efficiency & Integrity
tài nguyên cần thiết (thời gian, bộ nhớ, lưu trữ) để vận hành nhằm đáp ứng các yêu cầu
– Khả năng ngăn chặn truy cập trái phép
– Khả năng phục hồi nguyên trạng dữ liệu, trạng thái của hệ thống sau một tác vụ không thành công
Trang 71Product operation factors
Trang 72Product revision factors
Maintainability
mềm, sửa chữa và kiểm chứng sửa chữa thành công
phần mềm và công tác tài liệu hóa
Trang 73Product revision factors
Flexibility & Testability
– Công sức bỏ ra để làm thích ứng phần mềm với một yêu cầu mới
– Ví dụ: man-days required to adapt a software package to
a variety of customers of the same trade
– Khả năng có thể khám nghiệm tự động hoặc ghi nhận lỗi
tự động (log files) – Ví dụ: a standard test must be run every morning before
Trang 74Product transition factors
Portability & Reusability
Công sức bỏ ra để làm thích ứng hệ thống trong môi
trường mới (hardwares, OS,…)
– Khả năng dùng lại của code, modun, tài liệu
– Nhắm vào các yếu tố: tiết kiệm tài nguyên phát triển, rút ngắn thời gian, tăng chất lượng các modun
– Ví dụ: GUI của Java hoặc NET
Trang 75Product transition factors
Interoperability
Tính tương tác: tập trung vào phát triển giao diện với
các hệ thống khác hoặc với các thiết bị
Ví dụ: a laboratory equipment is required to process its
results (output) according to a standard data structure, which the laboratory information system can then use as an input
Trang 76Hệ thống đảm bảo chất lượng
Mục tiêu:
– Tối thiểu hóa số lỗi phần mềm
– Đạt được mức chất lượng đòi hỏi
6 thành phần trong hệ thống ĐBCL:
1 Tiền dự án (Pre-project components)
2 Đánh giá các hoạt động trong vòng đời dự án (Components of project life cycle activities
5 Thành phần chuẩn hóa, chứng nhận và đánh giá hệ thống ĐBCL (Components of
standardization, certification, and SQA system assessment)
6 Thành phần tổ chức nhân sự cho ĐBCL (Organizing for SQA-the human component)