Tải bản đầy đủ (.pdf) (4 trang)

DSpace at VNU: Tìm hiểu, nghiên cứu các kỹ thuật cho kiểm thử miền và cải tiến các kỹ thuật đó

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (203.05 KB, 4 trang )

Tìm hiểu, nghiên cứu các kỹ thuật cho kiểm thử
miền và cải tiến các kỹ thuật đó
Trần Văn Trọng
Trường Đại học Công nghệ
Luận văn Thạc sĩ ngành: Kỹ thuật phần mềm; Mã số: 60 48 01 03
Người hướng dẫn: TS. Đặng Văn Hưng
Năm bảo vệ: 2014
Keywords. Kỹ thuật phần mềm; Kỹ thuật kiểm thử; Kiểm thử miền
Content
Cơ sở khoa học và thực tiễn của đề tài
Ngày nay, cùng với xu hướng công nghệ thông tin toàn cầu hóa, không chỉ trên thế giới mà
ngay tại trong nước, việc xuất hiện các công ty sản xuất phần mềm đã không còn xa lạ. Tuy
nhiên có thể đánh giá một cách khách quan rằng thị trường công nghệ phần mềm trong nước ta
còn chưa cao, hệ thống phần mềm được xây dựng trong nước đã khá phong phú nhưng hầu như
chỉ tập trung ở việc phục vụ những nhu cầu dịch vụ vừa và nhỏ cho hoạt động xã hội. Lý do rất
đơn giản là sản phầm của chúng ta chưa thực sự đạt được chất lượng cũng như độ tin cậy cho
khách hàng, một phần lớn cho lý do này chính là ở việc các phần mềm được sản xuất ồ ạt tuy
nhiên đều bị coi nhẹ khâu kiểm thử.
Tại nước ngoài, trong quá trình sản xuất phần mềm họ luôn coi trọng khâu kiểm thử, có
những phần mềm quan trọng chi phí cho việc kiểm thử có thể tăng lên gấp đôi gấp ba so với chi
phí cho việc thiết kế xây dựng phần mềm.
Một nghiên cứu được tiến hành bởi NIST trong năm 2002 cho biết rằng các lỗi phần mềm
gây tổn thất cho nền kinh tế Mỹ 59,5 tỷ đô mỗi năm, hơn một phần ba chi phí này có thể tránh
được nếu việc kiểm thử phần mềm được thực hiện tốt hơn. [4]
Đứng trước thực trạng như hiện nay, việc cần làm nhất để cải thiện chất lượng phần mềm
trong nước là phải chú trọng hơn vào khâu kiểm thử phần mềm. Tuy nhiên việc đào tạo về kiểm
thử phần mềm trong nước còn chưa thực sự được quan tâm.
Theo IEEE (Institute of Electrical and Electronics Engineers): kiểm thử là tiến trình vận
hành hệ thống hoặc thành phần dưới những điều kiện xác định, quan sát hoặc ghi nhận kết quả và
đưa ra đánh giá về hệ thống hoặc thành phần đó.
Tuy nhiên một trong những vấn đề với kiểm thử phần mềm là thực tế nó không thể đạt được


việc kiểm thử trọn vẹn hoặc toàn diện trên mọi khía cạnh. Việc kiểm thử toàn diện hoặc trọn vẹn
là không thể vì:
- Miền của đầu vào có thể là quá lớn.
- Có quá nhiều nhánh để kiểm tra trong chương trình.


- Có quá nhiều sự kết hợp của dữ liệu để kiểm tra.
- Cõ lỗi giao diện người sử dụng, cấu hình và khả năng tương thích thất bại, và nhiều kích

thước khác nhau của việc phân tích.
Kiểm thử hiện nay vô cùng đa dạng cả về phương pháp kiểm thử cũng như mức kiểm thử.
Xét về phương diện mức kiểm thử cũng bao gồm nhiều mức khác nhau: kiểm thử đơn vị, kiểm
thử tích hợp, kiểm thử hệ thống và kiểm thử mức chấp nhận. Trong đó khâu kiểm thử đơn vị
đóng vai trò vô cùng quan trọng và là khâu đầu tiên trong quá trình kiểm thử.
Kiểm thử đơn vị hay còn được gọi là kiểm thử thành phần, đề cập đến việc kiểm thử chức
năng từng phần của mã, thường ở mức độ chức năng. Trong một môi trường hướng về đối tượng
thì điều này thường là cấp độ lớp, và các kiểm thử đơn vị tối thiểu bao gồm hàm dựng và hàm
hủy. Nhiều loại kiểm thử được viết bởi các nhà phát triển như họ làm việc trong mã (kiểu hộp
trắng) để đảm bảo rằng từng hàm riêng biệt hoạt động đúng như kỳ vọng. Một hàm có thể có
nhiều kiểm thử từ đó giúp nắm bắt được các trường hợp góc hoặc các nhánh trong mã nguồn.
Kiểm thử đơn vị một mình không thể đảm bảo hết được từng chức năng của từng bộ phận trong
phần phềm nhưng nó được sử dụng để đảm bảo rằng các khối kiến trúc của phần mềm hoạt động
độc lập với nhau.
Kiểm thử đơn vị là một quá trình phát triển phần mềm có liên quan đến ứng dụng đồng bộ
của một loạt các chiến lược phòng ngừa phát hiện lỗi và để giảm thiểu rủi ro, thời gian và chi
phí. Nó được thực hiện bởi kỹ sư hay nhà phát triển trong suốt giai đoạn xây dựng của vòng đời
phát triển phần mềm. Không chỉ tập trung vào việc đảm bảo chất lượng truyền thống mà phải gia
tăng nó lên vì thế kiểm thử đơn vị có mục đích loại bỏ những lỗi cấu trúc trước khi mã hóa rồi
mới thúc đẩy việc quản lý chất lượng. Chiến lược này nhằm nâng cao chất lượng cũng như hiệu
quả của phần mềm trong tiến trình quản lý và phát triển chung.

Hai phương pháp phổ biến nhất áp dụng trong mức kiểm thử đơn vị là kiểm thử dòng điều
khiển và kiểm thử dòng dữ liệu, tuy nhiên hai phương pháp này không xác định các kiểu của lỗi
một cách rõ ràng để xem xét và phát hiện. Một phương pháp khá phổ biến khác cũng áp dụng
cho mức kiểm thử đơn vị là kiểm thử miền, trong kiểm thử miền có cơ chế kiểm thử khá chi tiết,
một loại lỗi được gọi là lỗi miền được định nghĩa và sau đó dữ liệu kiểm tra được xác định để bắt
những lỗi đó. Hiện nay kỹ thuật kiểm thử miền trên thế giới được nghiên cứu khá nhiều, còn tại
VN thì hầu như chưa có công trình chính thức nào nghiên cứu về kỹ thuật này.
Kiểm thử miền lần đầu tiên được đề xuất bởi White và Cohen vào năm 1978, sau đó nó đã
được phân tích và mở rộng theo nhiều cách. Năm 1982, Clarke, Hassell, và Richardson [3] đưa
ra một số lỗi không bị phát hiện bởi chiến lược của White và Cohen. Sau đó họ đề xuất một
chiến lược có tên là chiến lược V × V để cải thiện kiểm thử miền, trong đó nếu một ranh giới
miền được xem xét bao gồm V đỉnh thì chiến lược V × V chọn V điểm ON và V điểm OFF.
Bên cạnh đó cũng có một số công trình nghiên cứu xoay quanh việc phân tích các vị từ đề
tìm ra phương pháp kiểm thử hiệu quả thông qua các kỹ thuật lựa chọn điểm ON và điểm OFF
hợp lý cho từng trường hợp cụ thể.
Tại hội nghị VISTACON tổ chức vào năm 2010, kiểm thử miền cũng được giới thiệu ở Việt
Nam chính thức qua bài giới thiệu tổng quan của Cem Kaner [6]. Tuy nhiên tại hội nghị cũng chỉ
đề cập đến những vấn đề rất chung chung trong kiểm thử miền chứ chưa đi vào phân tích chi tiết
và các kỹ thuật để nâng cao hiệu quả cũng như đơn giản hóa trong quá trình tiến hành kiểm thử.
Mục tiêu luận văn
Khái niệm cơ bản về kiểm thử miền là bạn có một miền giá trị rất lớn có thể có cho một biến
của một chương trình, do đó bạn cần chia nhỏ nó ra thành các tập con tương đương theo nghĩa
mỗi miền tương ứng với một nhánh của chương trình. Các miền này được biểu diễn như các


miền giới hạn bởi các đồ thị của các hàm số trong không gian n chiều. Việc biểu diễn sai các
hàm này dẫn đến lỗi miền, tức là dữ liệu trong miền không tương ứng với nhánh chương trình
mong muốn của miền. Tìm các ca kiểm thử để phát hiện các lỗi miền là nhiệm vụ của kiểm thử
miền.
Mục tiêu nghiên cứu:

- Đề tài tập trung vào việc nghiên cứu các kỹ thuật chia nhỏ miền giá trị cho các biến số
đầu vào của chương trình và tìm các ca kiểm thử đối với các lỗi miền hay gặp.
- Tìm hiểu, nghiên cứu các kỹ thuật sinh ca kiểm thử cho kiểm thử miền
- Từ các kỹ thuật đã có và được nghiên cứu, tìm hiểu đánh giá và cái tiến trong các kỹ
thuật phục vụ cho việc sinh ca kiểm thử tối ưu hơn.
- Đề xuất ra chiến lược phù hợp giúp đơn giản hóa kiểm thử miền và nâng cao hiệu quả áp
dụng kiểm thử miền trong quá trình kiểm thử
- Quá trình nghiên cứu hy vọng sẽ là một tài liệu tốt hỗ trợ cho việc đào tạo về kiểm thử
miền trong nước.
Phương pháp và phạm vi nghiên cứu của luận văn
Với tính chất luận văn là một đề tài thiên về nghiên cứu các kỹ thuật mới trong kiểm thử.
Luận văn sẽ tìm hiểu các kỹ thuật cơ bản nhất trong kiểm thử miền được đề xuất từ các công
trình nghiên cứu trên thế giới. Từ đó trích rút để xây dựng thành bộ tài liệu tiếng việt cho người
việt.
Bên cạnh đó cần tìm hiểu các kỹ thuật để giúp cải tiến chất lượng các ca kiểm thử được tìm
ra nhằm nâng cao khả năng ứng dụng của mỗi ca kiểm thử. Ngoài ra luận văn cũng cần phải xây
dựng được chiến lược mới áp dụng kết hợp với kiểm thử miền giúp giải quyết các trường hợp
phúc tạp của chương trình.
Dựa vào số lượng các biến quan hệ trong một vị từ là một biến, hai biến hay ba biến mà ta
quy việc xác định các miền cho chương trình trong không gian một chiều, hai chiều hay ba
chiều. Tuy nhiên khi số biến quan hệ nhau gia tăng lên đến hơn 4 biến và các vị từ là các hàm
phi tuyến tình thì việc xác định miền trở nên phức tạp hơn trong không gian 4 chiều, năm chiều...
Do đó để đảm bảo chất lượng luận văn nên các trường hợp này không đề cập đến.
Luận văn nghiên cứu nên sau quá trình tìm hiểu cần xây dựng các ví dụ chương trình cụ thể
ở mức cơ bản áp dụng lý thuyết để đảm bảo tính chất nắm vững kỹ thuật giúp cho người đọc dễ
hình dung tổng thể về kiểm thử miền.
Nội dung luận văn
Luận văn cần toát lên được mục tiêu của nó, lý do lựa chọn hướng nghiên cứu và kết quả đã
đạt được. Nội dung bao gồm:
- Mở đầu: đặt vấn đề, đưa ra mục tiêu và các kết quả mong muốn cần đạt được sau quá

trình nghiên cứu.
- Chương 1: Lý thuyết về kiểm thử miền: giới thiệu tổng quan về kiểm thử đơn vị và tóm
tắt ba phương pháp kiểm thử đơn vị động. Nghiên cứu về các lý thuyết kiểm thử miền
cơ bản.
- Chương 2: Các kỹ thuật cải tiến kiểm thử miền: nghiên cứu các cải tiến cho kiểm thử
miền nhằm nâng cao chất lượng của các ca kiểm thử cũng như đơn giản hóa việc kiểm
thử miền trong các trường hợp phát sinh phức tạp.
- Chương 3: Thực nghiệm kiểm thử miền: xây dựng ví dụ áp dụng các kỹ thuật đã nghiên
cứu về kiểm thử miền, và chứng minh thực nghiệm về hiệu quả của các ca kiểm thử.


- Kết luận và định hướng: Tổng kết lại nội dung đã nghiên cứu. Đưa ra hướng phát triển
trong tương lai.

References
Tiếng việt
[1] Phạm Ngọc Hùng, Trương Anh Hoàng và Đặng Văn Hưng (2014). Giáo trình kiểm thử phần
mềm. Trường Đại học Công nghệ, ĐHQG.
Tiếng Anh
[2] K. Naik and P. Tripathy (2008), “Software Testing and Quality Assurance- Theory and
Practice”, Sagar Naik, University of Waterloo, Piyu Tripathy, Wiley.
[3] L. Clarke, H. Hassell, and D. Richardson (July 1982). A Close Look at Domain Testing. IEEE
Transactions on Software Engineering, pp. 380–392.
[4] NIST report (2002), Software errors cost U.S. economy $59.5 billion annually.
[5] W. E. Howden (September 1976). Reliability of the Path Analysis Testing Strategy. IEEE
Transactions on Software Engineering, pp. 208–215.
[6] Cem Kaner, Sowmya Padmanabhan (September, 2010). An introduction to the theory and
practice of domain testing. VISTACON HCMC, VIETNAM




×