CHƯƠNG 4. KIỂM THỬ VÀ CHUYỂN KHAI HỆ THỐNG

4.2. Triển khai hệ thống

4.1. Kiểm thử phần mềm

4.2.1. Lập kế hoạch cài đặt

4.1.1. Khái niệm kiểm thử

4.2.2. Biến đổi dữ liệu

4.1.2. Quy trình kiểm thử

4.2.3. Đào tạo người sử dụng

4.1.3. Thiết kế ca kiểm thử

4.2.4. Biên soạn tài liệu hệ thống

4.2.5. Bảo trì phần mềm

9/5/22

Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020

161

4.1.1. Khái niệm

§ Kiểm thử là tiến trình xem xét, kiểm tra lại đặc tả, phân tích, thiết kế và mã hoá nhằm phát hiện lỗi phần mềm: xác minh phần mềm có đúng đặc tả, thiết kế; có đáp ứng nhu cầu người dùng; có hoạt động hiệu quả không (không thực hiện bất cứ thứ gì không mong muốn).

§ Kiểm thử thành công khi phát hiện ra lỗi, kiểm thử không

phát hiện ra lỗi là kiểm thử dở.

4.1.1. Khái niệm

§ Hai mục đích chính của hoạt động kiểm thử:

— Kiểm tra xem phần mềm làm ra có đúng đặc tả (yêu cầu, phân tích, thiết

kế) hay không.

§ Đây chính là 2 hoạt động cốt yếu để đảm bảo chất lượng phần mềm,

diễn ra trong suốt quá trình phát triển phần mềm.

— Kiểm tra xem phần mềm có đáp ứng yêu cầu người dùng hay không.

Các mức kiểm thử

§ Phân loại theo mức độ chi tiết của các thành phần hợp thành

hệ thống — Kiểm thử đơn vị (Unit testing): mỗi mô đun — Kiểm thử tích hợp( Integration Testing) : nhiều mô đun/ hệ con — Kiểm thử hệ thống (System Testing) : phần cứng/ phần mềm, yêu

cầu hệ thống

hệ thống

— Kiểm thử chấp nhận( Acceptance Testing) : yêu cầu người dùng

The V-model of development

Service

Requirement specification

System Specification

Acceptance test

Acceptance test plan

System design

System integration test

System integration test plan

Detail design

Syb-system integration test

Syb-system integration test plan

Module, unit code and test

Kiểm thử đơn vị

§ Unit Testing là việc kiểm thử ở mức độ thấp nhất là các phương thức (Method), hàm (Function), lớp (Class) trong mã nguồn. Nhằm đảm bảo các thành phần trên hoạt động đúng như yêu cầu;

trong quá trình mã hóa (Coding, Implement);

§ Việc kiểm tra ở mức độ này thường do chính các lập trình viên (Developer) thực hiện

kiểm thử (Test-Driven Development):

§ Một mô hình thường được ứng dụng với Unit Testing là Phát triển theo định hướng

— Các Unit Test viết trước dựa theo yêu cầu kết quả trả về ban đầu là sai (False);

— Mã nguồn sẽ được viết sau và được kiểm tra tự động bằng các Unit Test;

9/5/22

Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020

166

— Việc phát triển được hoàn thành khi các Unit Test trả về kết quả đúng (True).

Kiểm thử đơn vị

§ Người tiến hành kiểm thử thông thường là người lập trình mô đun đó hoặc lập trình viên cùng

§ Kiểm thử riêng biệt từng đơn vị phần mềm;

§ Số lượng nhiều nhưng đơn giản;

§ Xuyên suốt thời gian lập trình và cả chu kỳ phần mềm;

§

nhóm;

§ Thường là được thực hiện bới nhà phát triển trước khi các môđun được tích hợp với các mô đun

Là mức thấp nhất trong tiến trình kiểm thử, thường là áp dụng phương pháp kiểm thử hộp trắng;

§ Kết quả của kiểm thử đơn vị thường tìm ra khoảng 20% lỗi trong tất cả cá lỗi của dự án.

9/5/22

Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020

167

khác;

Kiểm thử tích hợp

§ Là một kỹ thuật có tính hệ thống để xây dựng cấu trúc chương trình ngay khi đang tiến hành kiểm thử để phát hiện sai liên kết với giao diện.

§ Phải kiểm thử tích hợp vì:

— Dữ liệu có thể bị mất khi đi qua một giao diện;

— Một mô đun có thể có một hiệu ứng bất lợi vô tình lên các mô đun khác;

muốn;

— Các chức năng phụ khi kết hợp lại có thể không sinh ra chức năng chính mong

được;

— Các điều không chính xác riêng rẽ có thể bị phóng đại đến mức không chấp nhận

9/5/22

Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020

168

— Các cấu trúc dữ liệu toàn cục có thể để lộ ra các vấn đề…

Kiểm thử tích hợp (t)

§ Thường sử dung phương pháp kiểm thử gia tăng (Incremental integration testing), thực hiện kiểm thử bằng cách nối dần các mô đun có liên quan logic và kiểm tra chức năng thích hợp.

— Top-down integration:

khung tổng thể của hệ thống được phát triển trước

các thành phần được thêm vào dần.

— Bottom-up integration:

tích hợp các thành phần cung cấp các dịch vụ chung trước, e.g., dịch vụ mạng, cơ sở dữ liệu

Tích hợp dần các thành phần chức năng

Kiểm thử tích hợp ( t)

§ Chương trình giả : không thực hiện toàn bộ logic lập trình của mô

đun phần mềm, chỉ mô phỏng giao tiếp dữ liệu — Driver: Gọi mô đun để được kiểm thử — Stub: Được gọi bởi mô đun kiểm thử

9/5/22

Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020

170

Kiểm thử hệ thống

§ Là mức độ kiểm thử toàn bộ các chức năng của hệ thống, bao gồm

tất cả các thành phần tương tác với nhau, và hoạt động trong môi

trường giống như môi trường thực tế như hệ điều hành, cơ sở dữ liệu,

kết nối mạng, khả năng tương thích với các phần mềm khác, …

§ Kiểm thử hệ thống cũng chú ý đến vấn đề bảo mật, thân thiện, khả

năng đáp ứng, tốc độ thực hiện của hệ thống phần mềm.

9/5/22

Bộ môn Công nghệ thông tin - Bài giảng điện tử 2020

171

Kiểm thử chấp nhận

triển.

§ Mức độ này được thực hiện bởi phía người dùng với một nhóm độc lập với nhóm phát

cầu của người dùng đã đề ra hay không? Có thể triển khai cho công việc thực tế của

người dùng hay không;

§ Mục đích của giai đoạn này là kiểm tra, đánh giá phần mềm có đáp ứng được các yêu

mở ra giai đoạn triển khai, bảo trì và nâng cấp phần mềm.

§ Việc được người dùng chấp nhận sẽ đánh dấu cho sự kết thúc của giai đoạn phát triển,

§ Các loại kiểm thử chấp nhận sản phẩm:

— Kiểm thử Alpha (Alpha Testing): Do người dùng thực hiện;Trong môi trường được quản lý. — Kiểm thử Beta (Beta Testing): Do người dùng thực hiện; Trong môi trường thực.

4.1.2. Quy trình kiểm thử

Bắt đầu

ƒ

Kế hoạch kiểm thử

Lập kế hoạch Kiểm thử

ƒ

Thiết kế Kiểm thử

Mẫu kiểm thử Các thủ tục kiểm



Cài đặt và chuẩn bị Kiểm thử

Mã nguồn kiểm thử Dữ liệu kiểm thử Môi trường

Kiểm thử đơn vị

ƒ



Xem xét và Đánh giá kết quả Kiểm thử

Báo cáo kết quả kiểm thử , đề xuất giải pháp

Lỗi Biên bản kiểm thử

Kiểm thử tích hợp- hệ thống- chấp nhận

ƒ

Tổng hợp, báo cáo

Hồ sơ báo cáo tổng hợp kiểm thử

Kết thúc

4.1.3. Thiết kế ca kiểm thử

§ Một phép thử được gọi là thành công nếu nó phát hiện ra khiếm khuyết của phần mềm. Kiểm thử chỉ chứng minh được sự tồn tại của lỗi trong hệ thống chứ không chứng minh được hệ thống không có lỗi. Một phép kiểm thử (ca kiểm thử) bao gồm: — tên của mô đun kiểm thử — dữ liệu vào — dữ liệu ra mong muốn (kết quả đúng) — dữ liệu ra thực tế (khi đã tiến hành kiểm thử)

§ Các ca kiểm thử nên được thiết kế khi chúng ta tạo các tài liệu phân tích và

thiết kế, chứ không phải là khi đã viết xong mã nguồn.

4.1.3. Thiết kế ca kiểm thử

§ Tạo ra bộ kiểm thử hiệu quả

§ Hai cách tiếp cận:

đương)

— Phân nhóm dữ liệu đầu vào (equivalence partitions – phân hoạch tương

trong mô đun)

— Xác định các đường đi trong mô đun (path testing – kiểm thử theo đường đi

Phân nhóm dữ liệu đầu vào

§ Dữ liệu vào, ra được phân chia theo nhóm/lớp.

§ Mỗi nhóm/lớp là một phân hoạch/miền tương đương

§ Hành vi của hệ thống là như nhau khi sử dụng các thành viên trong

cùng nhóm.

§ Các trường hợp kiểm thử nên được lựa chọn từ các thành viên trong

nhóm.

Phân nhóm dữ liệu đầu vào

Phân nhóm dữ liệu đầu vào

Xác định các đường đi trong mô đun

§ Mọi đường thực hiện của chương trình được kiểm thử ít

nhất một lần

§ Đồ thị luồng chương trình (program flow graph)

— Nodes: các quyết định, rẽ nhánh

— Arcs: các luồng điều khiển.

program flow graph

Các đường đi trong chương trình được kiểm thử

§ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14 § 1, 2, 3, 4, 5, 14 § 1, 2, 3, 4, 5, 6, 7, 11, 12, 5, … § 1, 2, 3, 4, 6, 7, 2, 11, 13, 5, … § Các ca kiểm thử nên chứa tất cả các đường đi cần kiểm thử § Công cụ hỗ trợ: dynamic program analyser

4.2. Triển khai hệ thống

Quy trình

Œ Cài đặt

 Biến đổi dữ liệu

Ž Huấn luyện

 Cài đặt

 Biên soạn tài liệu về hệ thống

4.2. Triển khai hệ thống

§ Từ HTTT cũ sang HTTT mới, cần phải:

— Chuyển đổi phần cứng — Chuyển đổi phần mềm — Chuyển đổi cơ sở dữ liệu — Chuyển đổi công nghệ quản lý — Chuyển đổi hệ thống biểu mẫu (thông dụng) — Chuyển đổi các phương pháp truyền đạt thông tin — Chuyển đổi các phương thức lưu trữ dữ liệu, thông tin — Chuyển đổi tác phong của lãnh đạo và các nhân viên

183

4.2.1. Cài đặt hệ thống

§ Trong quá trình lập kế hoạch cài đặt, việc chuyển đổi kỹ thuật tương đối đơn giản. Tuy nhiên, việc chuyển đổi về con người tương đối phức tạp và kéo dài do sức ỳ và tâm lý ngại thay đổi của người sử dụng.

èVì vậy, phải lập kế hoạch chuyển đổi tỷ mỷ, bao quát tất cả các lĩnh

vực của hệ thống thông tin.

184

4.2.1.1. Lắp đặt phần cứng và hệ thống mạng

Lập dự trù về thiết bị: § Dự kiến:

(Online

— Khối lượng dữ liệu lưu trữ — Các dạng làm việc với máy tính (máy đơn, máy mạng), xử lý trực tuyến

— Số lượng người dùng tối thiểu và tối đa của hệ thống — Khối lượng thông tin cần thu thập — Khối lượng thông tin cần kết xuất, cần in ra giấy — Thiết bị ngoại vi đặc biệt như: Scanner, máy vẽ, máy cắt

§ Điều kiện mua và lắp đặt:

— Nên chọn nhà cung cấp nào, chi phí vận chuyển. — Mua nguyên bộ, mua rời — Sơ đồ lắp đặt mức sơ bộ.

185

4.2.1.2. Phương pháp cài đặt hệ thống

§ Sử dụng một trong 4 phương pháp — Phương pháp chuyển đổi trực tiếp — Phương pháp hoạt động song song — Phương pháp chuyển đổi từng bước thí điểm — Phương pháp chuyển đổi bộ phận

186

Chuyển đổi trực tiếp

§ Sử dụng phương pháp này chúng ta cần tính đến các yếu tố

sau : — Mức độ gắn bó của các thành viên với hệ thống mới — Mức độ mạo hiểm của hệ thống xử lý mới sẽ cao vì hệ thống mới có

thể có lỗi dẫn đến việc hệ thống ngừng hoạt động.

— Phải kiểm tra chặt chẽ phần cứng và phần mềm của hệ thống mới. — Chỉ nên áp dụng đối với các hệ thống thông tin không lớn lắm với

độ phức tạp vừa phải.

187

Chuyển đổi trực tiếp

§ Phương pháp này chỉ nên áp dụng trong các trường hợp thật sự

cần thiết. Các thao tác cần tiến hành: — Kiểm tra hệ thống một cách thật chặt chẽ — Trù tính khả năng khôi phục lại dữ liệu — Chuẩn bị thật kỹ lưỡng cho từng giai đoạn cài đặt hệ thống — Chuẩn bị phương án xử lý thủ công phòng trường hợp xấu nhất vẫn có

thể duy trì hoạt động của hệ thống.

— Huấn luyện chu đáo tất cả những người tham gia vào hệ thống — Có khả năng hỗ trợ đầy đủ các phương tiện như điện, đĩa từ ...

188

Hoạt động song song

§ Hoạt động song song cả hai hệ thống cũ và mới. Phương pháp

này cho mức độ rủi ro ít hơn, nhưng đòi hỏi nguồn tài chính cao. Các công việc cần tiến hành: — Xác định chu kỳ hoạt động song song — Xác định các thủ tục so sánh — Kiểm tra để tin chắc rằng đã có sự so sánh — Sắp xếp nhân sự — Thời gian hoạt động song song làm sao là ngắn nhất — Cả hai hệ thống cùng chạy trên phần cứng đã định một cách thận trọng

189

Chuyển đổi từng bước thí điểm

§ Đây là phương pháp trung gian của hai phương pháp trên. Các bước

cần thực hiện: — Đánh giá lựa chọn bộ phận nào làm thí điểm để áp dụng hệ thống xử lý

thông tin mới theo phương pháp trực tiếp hay song song.

— Kiểm tra xem hệ thống mới áp dụng vào các bộ phận này có được không. — Tiến hành sửa đổi. — Nhận xét so sánh.

190

Chuyển đổi bộ phận

§ Chọn ra một vài bộ phận có chức năng quan trọng có ảnh hưởng

đến cả hệ thống để tiến hành tin học hoá.

§ Sau đó đưa bộ phận đã thiết kế vào ứng dụng ngay, các bộ phận khác

thì vẫn hoạt động như cũ. Vừa làm vừa rút kinh nghiệm cho các bộ

phận còn lại

191

4.2.2. Biến đổi dữ liệu

§ Dữ liệu giữa hai hệ thống cũ và mới thường không tương thích với nhau về phương thức lưu trữ cũng như quy cách truy cập. Do đó rất dễ dẫn đến sai sót khi biến đổi dữ liệu.

Qúa trình biến đổi dữ liệu: § Xác định khối lượng và chất lượng của dữ liệu (độ chính xác, tính

đầy đủ và thứ tự).

§ Làm ổn định một bản dữ liệu và tổ chức những thay đổi cho phù

hợp.

192

4.2.2. Biến đổi dữ liệu

Qúa trình biến đổi dữ liệu: § Tổ chức và đào tạo đội ngũ thực hiện công việc biến đổi dữ

liệu.

§ Lập lịch thời gian của quá trình biến đổi dữ liệu. § Bắt đầu quá trình biến đổi dữ liệu dưới sự chỉ đạo thống nhất.

193

4.2.2. Biến đổi dữ liệu

§ Thực hiện những thay đổi

trong các tệp dữ liệu. Nếu trong hệ thống cũ có các tệp dữ liệu thì tốt nhất tổ chức biến đổi các tệp dữ liệu này trước, sau đó mới đến các tệp mới chuyển từ phương thức tổ chức thủ công sang.

§ Thực hiện bước kiểm chứng lần cuối cùng để đảm bảo các tệp dữ liệu đã biến đổi phù hợp với các yêu cầu của hệ thống quản lý mới.

194

4.2.3. Đào tạo người sử dụng

§ Lý do và và mục tiêu đào tạo:

— Giảm thời gian đi học các lớp chính quy về vấn đề liên quan — Cung cấp những kỹ xảo nghề nghiệp — Giảm tối thiểu các giám sát cần có — Tăng tính năng động của nhân sự — Đảm bảo sự hoạt động an toàn của hệ thống khi vắng cán bộ chủ chốt — Giảm sự dư thừa — Giảm chi phí — Tăng mức độ thích nghi với hệ thống mới và con người có thể hoạt

động trong hệ thống một cách hiệu quả

195

4.2.3. Đào tạo người sử dụng

§ Đối tượng đào tạo

§ Các lĩnh vực huấn luyện

— Những người sử dụng và cung cấp thông tin trong hệ thống.

— Giới thiệu tổng quan về hệ thống: hệ thống đang làm gì và những gì hệ thống có thể làm được, tương lai của hệ thống, những khía cạnh quản lý có tác động đến hệ thống.

sử dụng các thiết bị lưu trữ thứ cấp

— Làm quen với máy móc thiết bị : • Cung cấp các khái niệm cơ sở • Tham quan máy móc, thiết bị • Tư vấn về vấn đề chọn nhà cung cấp, cài đặt • Thực hành các kỹ xảo chuyên môn như sử dụng chương trình xử lý văn bản, quản lý và

— Thực hành các thao tác mới, làm quen hệ thống biểu mẫu mới, các thủ tục tra cứu tài liệu.

196

4.2.3. Đào tạo người sử dụng

Kế hoạch đào tạo: — Nhận biết về nhu cầu :

§

• Xác định các nhu cầu của công việc • Mức độ hoàn thiện cần đạt tới • Trình độ hiện thời của học viên

— Xác định các mục tiêu — Chuẩn bị các chuyên đề đào tạo:

• Chương trình đào tạo • Bố trí giảng viên • Lên thời khoá biểu đào tạo

— Kiểm tra và đánh giá kết quả đào tạo

197

4.2.4. Biên soạn tài liệu hệ thống

§ Một phần mềm khi được chuyển giao cho phía khách hàng (người sử

dụng) thường kèm theo 2 loại tài liệu sau: — Tài liệu hướng dẫn sử dụng, thông tin được thu thập từ các nguồn khác

nhau bao gồm các báo cáo xác định vấn đề, nghiên cứu tính thức thi, đề xuất hệ thống và

— Tài liệu kỹ thuật cho người lập trình và bảo trì hệ thống.

198

4.2.5. Bảo trì phần mềm

§ Là pha cuối cùng của vòng đời hệ thống § Các hoạt động cần thực hiện

— Quản lý hoạt động bảo trì — Chuẩn hóa hoạt động bảo trì (IEEE 840-1992)

199

Hoạt động bảo trì phần mềm

§ Các công việc cần thực hiện:

— Hiểu kĩ yêu cầu bảo trì — Phân loại yêu cầu: sửa đổi hay nâng cấp? — Thiết kế các sửa đổi được yêu cầu — Kế hoạch chuyển đổi từ thiết kế cũ — Đánh giá các ảnh hưởng của sửa đổi lên ứng dụng — Triển khai các sửa đổi — Thực hiện các kiểm thử đơn vị cho các phần thay đổi — Tiến hành kiểm thử tăng dần, thực hiện kiểm thử hệ thống với các khả

năng mới

— Cập nhật các tài liệu cấu hình, yêu cầu, thiết kế và

kiểm thử.

200