Chương 1: Tổng quát về đảm bảo và kiểm soát chất lượng phần mềm. Chương này giúp người học nắm bắt được những nội dung cơ bản như: Chất lượng là gì? Khái niệm về phần mềm, đặc trưng của phần mềm, chất lượng phần mềm – Theo ISO 9126,... Mời các bạn cùng tham khảo.
Trang 1ĐẢM BẢO VÀ KIỂM SOÁT
Trang 2Chất lượng là gì?
được các đặc trưng hay những thuộc
tính nào đó của nó Chẳng hạn:
Chất lượng thiết kế (cấu trúc)
Sự hoàn thiện (tính năng, kiểu dáng…)
Sự lâu bền (thời gian dùng, tính khấu
hao…)
phù hợp với đặc tả của nó
Trang 4Khái niệm về phần mềm
dụng:
Chương trình thực thi được trên máy tính
hoặc các thiết bị chuyên dụng khác
Nhằm hỗ trợ cho các nhà chuyên môn
hiện tốt hơn các thao tác nghiệp vụ củamình
Trang 5 Cần được xây dựng để thực hiện theo
Trang 6nghệ, môi trường, nghiệp vụ và nguồn lực (thiết bị và con người)
Trang 12Chất lượng phần mềm
Trang 13 Tính bảo mật/an toàn (Security)
Tính tin cậy (Reability)
Tính hoàn thiện (Maturity)
Khả năng chịu lỗi (Fault tolerant)
Khả năng phục hồi (Recoverability)
Tính hiệu quả (Efficiency)
Đáp ứng thời gian (Time behavior)
Sử dụng tài nguyên (Utilization)
Khả năng bảo trì (Maintainability)
Khả năng phân tích (Analysability)
Khả năng thay đổi được (Changeability)
Tính ổn định (Stability)
Khả năng kiểm thử được (Testability)
Tính khả chuyển (Portability)
Khả năng thích nghi (Adaptability)
Khả năng cài đặt (Installability)
Khả năng chung sống (Co-existence)
Khả năng thay thế được (Replaceability)
Trang 14Chất lượng phần mềm Tính chức năng (Functionality)
Nội dung:
Khả năng của phần mềm cung cấp các chức năng đáp ứng
được nhu cầu sử dụng khi phần mềm làm việc trong điều kiện cụ thể
Bao gồm:
Tính phù hợp: là khả năng của một phần mềm có thể cung
cấp một tập các chức năng thích hợp cho công việc cụ thể phục vụ mục đích của người sử dụng.
Tính chính xác: là khả năng của phần mềm có thể cung
cấp các kết quả hay hiệu quả đúng đắn hoặc chấp nhận được với độ chính xác cần thiết.
Khả năng tương tác: khả năng tương tác với một hoặc một
vài hệ thống cụ thể của phần mềm.
Tính bảo mật/an toàn: khả năng bảo vệ thông tin và dữ liệu
của sản phẩm phần mềm, sao cho người, hệ thống không được phép thì không thể truy cập, đọc hay chỉnh sửa chúng.
Trang 15Chất lượng phần mềm Tính tin cậy (Reability)
Nội dung:
Là khả năng của phần mềm có thể hoạt động ổn định trong những điều kiện cụ thể
Bao gồm:
Tính hoàn thiện: khả năng tránh các kết quả sai
Khả năng chịu lỗi: khả năng của phần mềm hoạt
động ổn định tại một mức độ cả trong trường hợp
có lỗi xảy ra ở phần mềm hoặc có những vi phạm trong giao diện.
Khả năng phục hồi: khả năng của phần mềm có
thể tái thiết lại hoạt động tại một mức xác định và khôi phục lại những dữ liệu có liên quan trực tiếp đến lỗi.
Trang 16Chất lượng phần mềm Tính khả dụng (Usability)
Nội dung:
Là khả năng của phần mềm có thể hiểu được, học được, sử dụng được và hấp dẫn người sử dụng trong từng trường hợp sử dụng cụ thể
Bao gồm:
Có thể hiểu được: người dùng có thể hiểu được
xem phần mềm có hợp với họ không và và sử dụng chúng thế nào cho những công việc cụ thể.
Có thể học được: người sử dụng có thể học các
ứng dụng của phần mềm.
Có thể sử dụng được: khả năng của phần mềm
cho phép người dùng sử dụng và điều khiển nó.
Tính hấp dẫn: khả năng hấp dẫn người sử dụng
của phần mềm
Trang 17Chất lượng phần mềm Tính hiệu quả (Efficiency)
Đáp ứng thời gian: khả năng của phần mềm có
thể đưa ra một trả lời, một thời gian xử lý và một tốc độ thông lượng hợp lý khi nó thực hiện công việc của mình, dưới một điều kiện làm việc xác định.
Sử dụng tài nguyên: khả năng của phần mềm có
thể sử dụng một lượng, một loại tài nguyên hợp lý
để thực hiện công việc trong những điều kiện cụ thể
Trang 18Chất lượng phần mềm Khả năng bảo trì (Maintainability)
Nội dung:
Là khả năng của phần mềm có thể chỉnh sửa Việc
chỉnh sửa bao gồm: sửa lại cho đúng, cải tiến và làm phần mềm thích nghi được với những thay đổi của môi trường, của yêu cầu và của chức năng xác định
Bao gồm:
Có thể phân tích được: phần mềm có thể được chẩn
đoán để tìm những thiếu sót hay những nguyên nhân gây lỗi hoặc để xác định những phần cần sửa.
Có thể thay đổi được: phần mềm có thể chấp nhận
một số thay đổi cụ thể trong quá trình triển khai.
Tính ổn định: khả năng tránh những tác động không
mong muốn khi chỉnh sửa phần mềm.
Có thể kiểm tra được: khả năng cho phép đánh giá
được phần mềm chỉnh sửa.
Trang 19Chất lượng phần mềm Tính khả chuyển (Portability)
Nội dung:
Là khả năng của phần mềm cho phép nó có thể được chuyển từ môi trường này sang môi trường khác
Bao gồm:
Khả năng thích nghi: khả năng của phần mềm có thể
thích nghi với nhiều môi trường khác nhau mà không cần phải thay đổi.
Có thể cài đặt được: phần mềm có thể cài đặt được
trên những môi trường cụ thể.
Khả năng cùng tồn tại: phần mềm có thể cùng tồn tại
với những phần mềm độc lập khác trong một môi trường chung, cùng chia sẻ những tài nguyên chung.
Khả năng thay thế: phần mềm có thể dùng thay thế
cho một phần mềm khác, với cùng mục đích và trong cùng môi trường.
Trang 20CHUYỆN VUI: VÒNG ĐỜI CHẤT
LƯỢNG
1 Lập trình viên đưa ra đoạn mã mà anh ta
lỗi
phòng Thử nghiệm sản phẩm về 10 "vấn đề" còn lại mà anh ta nhất định cho rằng không
phải là lỗi
4 Phòng thử nghiệm sản phẩm e-mail lại rằng
5 trong số 10 đoạn sửa lỗi không hoạt động và
Trang 21CHUYỆN VUI: VÒNG ĐỜI CHẤT
LƯỢNG
5 Phòng tiếp thị gởi thông báo rằng họ đã
hoàn tất khâu quảng bá cho sản phẩm Giámđốc gọi điện xuống hỏi về tiến độ công việc và củng cố tinh thần "chiến sỹ" Phòng phát hành
cử nhân viên đến nhận đĩa nguồn phần mềm Phòng tiếp thị thông báo trên truyền hình và báo chí về việc hoãn lại ngày phát hành sản
phẩm vài tuần
6 Ơn trời! Cuối cùng sản phẩm cũng được
phát hành
Trang 22CHUYỆN VUI: VÒNG ĐỜI CHẤT
LƯỢNG
8 Lập trình viên phụ trách phát triển sản phẩm
đã xin nghỉ phép.
9 Một nhóm "cứu nạn" gồm nhiều lập trình viên
kỳ cựu được thành lập khẩn cấp Sau một tuần
làm việc cật lực, họ đã "thanh toán" hết 137 lỗi, nhưng lại được thông báo về 456 lỗi mới.
10 Mọi người tổng kết được 783 lỗi trong chương trình.
11 Giám đốc ngồi tại bàn giấy xem xét các báo cáo và quyết định thuê một lập trình viên mới
toanh để xây dựng lại phần mềm từ đống đổ nát ban đầu.
12 NEW Lập trình viên mới đưa ra đoạn mã mà anh ta tin rằng không hề có lỗi.
Trang 23Khủng hoảng phần mềm
Giai đoạn từ giữa 1960 đến giữa 1970: Số lượng các phần mềm tăng vọt (do sự phát triển của phần cứng: tăng khả năng, giá thành hạ)
Có quá nhiều khuyết điểm trong các phần mềm được dùng trong xã hội:
Thiếu tiêu chuẩn đánh giá sản phẩm
Thiếu qui trình quản lý
Trang 24Khủng hoảng phần mềm
quy trình tiến hành xây dựng phần mềm:
• Cảm tính : mỗi người theo một phương pháp riêng
• Thô sơ, đơn giản : chỉ tập trung vào việc lập trình mà ít quan tâm đến các công việc cần làm khác (khảo sát hiện trạng, phân tích yêu cầu, thiết kế…)
• Thủ công : còn thiếu các công cụ hỗ trợ quy trình phát triển
Trang 25Khủng hoảng phần mềm
(1982) trên nhiều dự án với tổng vốn
Trang 26Khủng hoảng phần mềm
Trang 27Cấu trúc tổ chức trong dự án
phần mềm hiện đại
Quản lý dự án (Project Manager)
Phân tích viên (Business Analyst#1)
…
Trưởng nhóm kiểm soát chất lượng (QC Lead)
Kiểm soát chất lượng (QC#1)
…
Trưởng nhóm (Team lead#1)
Lập trình viên Developer#1
…
Team lead#2
…
…
Đảm bảo chất lượng (Quality Assurance)
Trang 28Rắc rối tên gọi và chức năng
4 tên gọi được sử dụng nhiều
biệt kỹ sư đảm bảo và kỹ sư
kiểm soát dựa hoạt động của
họ trong dự án
Trang 29QA&QC trong quy trình phát triển
phần mềm
QA
QC
Trang 30Những nhiệm vụ chính của QC
mềm (PM) thỏa mãn các yêu cầu về
Trang 31Qui trình kiểm thử phần mềm
Lập kế
hoạch test
Thiết kế test
So sánh kết quả test với test case
Chuẩn bị dữ liệu test
Chạy ứng dụng với bộ dữ liệu test
Test Report
Test Results
Test Data Test Case
Test plan
Trang 32Những công việc cụ thể của QC
Lên kế hoạch kiểm thử
Chuẩn bị môi trường test
Windows XP, 2000, 2003
Linux
IE, FireFox, Netscape, Mozilla
Test Database, Test data
Viết test case
Thực hiện test các test case trong từng môi trường khác nhau
Mô tả Bug và chi tiết các bước để tạo ra bug
Theo dõi quá trình Fix Bug
Báo cáo kết quả test
Trang 33Những công cụ cần thiết cho
QC
StyleCop…
gian đáp ứng…
Pro, Selenium…
Trang 34Những nhiệm vụ chính của QA
Giám sát để bảo đảm các tiêu chuẩn và
quy trình sản xuất phần mềm được định
nghĩa và tuân thủ nghiêm túc
Công việc của QA liên quan đến quy trình
(process).
Ví dụ: Kiểm tra để bảo đảm các Yêu cầu
khách hàng được xem xét cẩn thận và mọi người hiểu giống nhau, các tài liệu đi kèm
được kiểm tra trước khi gửi cho khách
hàng, đúng quy trình của công ty…
Trang 35Những nhiệm vụ chính của QA
(tt)
Trang 36QA vs QC
Trang 37hỗ trợ cho việc kiểm thử
như: các công cụ test tự
động (Quick Test Pro,
Autoit, Selenium…), công
cụ quản lý lỗi (bugzilla,
Jira)…
Một ít kiến thức về lập
trình
Trang 38Bạn có thích hợp làm QC
không?
Khả năng giao tiếp (nói và viết) của
bạn như thế nào?
Bạn có nhạy cảm với lỗi hay ko?
Khi nhìn nhận sự việc, bạn có hay giả
sử không?
Khả năng lắng nghe, thuyết phục
người khác, đánh giá của bạn như thế nào?
Bạn là người nguyên tắc, nói có sách
mách có chứng hay thích suy diễn?
Bạn follow up 1 sự kiện có tốt không?
Trang 39 Đem đến sự yên tâm (Sự tự tin)
Kiểm thử phần mềm tạo cho bạn cơ hội liên tục tiếp cận những điều tốt nhất và mới nhất
Kiểm thử phần mềm đòi hỏi cao về tư duy, phân tích và sáng tạo
Nhiều người có thể làm, nhưng rất ít
người có thể làm tốt
Trang 40đánh giá được nhữngvấn đề đang và sẽ xảyra
Trang 41Những chứng nhận quốc tế của
QA & QC
http://www.softwarecertifications.org/qai_csqa.htm http://www.istqb.org/
Trang 42ĐẢM BẢO VÀ KIỂM SOÁT
CHẤT LƯỢNG
42 1/4/2016
Trang 43Chương tiếp theo