Mô tả các phương pháp thiết kế test case trong kiểm thử hộp đen và ứng dụng vào phần mềm cụ thể. Tạo ra các ca kiểm thử để test các trường hợp có thể xảy ra của phần mềm Ứng dụng của kiểm thử hộp đen trong thực tế Thực thi test, báo cáo test
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
HƯNG YÊN -2016
Trang 3MỤC LỤC
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 7
DANH MỤC CÁC KÝ TỰ, CÁC TỪ VIẾT TẮT 8
CHƯƠNG 1: TỔNG QUAN VỀ QUY TRÌNH PHÁT TRIỂN PHẦN MỀM 9
1.Giai đoạn thu thập yêu cầu 9
2.Giai đoạn thiết kế 9
3.Giai đoạn Coding 9
3.1Giới thiệu về Unit Test 9
4.Giai đoạn kiểm thử phần mềm 10
4.1Khái niệm kiểm thử chức năng 10
4.2Mục đích của test chức năng 10
4.3Các kỹ thuật kiểm thử chức năng 10
5.Giai đoạn bảo trì 11
CHƯƠNG 2: QUY TRÌNH KIỂM THỬ PHẦN MỀM 12
1.Phân tích yêu cầu 12
2.Lập kế hoạch test 12
3.Phát triển test 12
4.Thực thi test 12
5.Báo cáo test 12
CHƯƠNG 3: KIỂM THỬ HỘP ĐEN 13
1.Tổng quan về kiểm thử hộp đen 13
2.Các mục tiêu chính của kiểm thử hộp đen 13
3.Các loại kiểm thử hộp đen 13
4.Các phương pháp kiểm thử hộp đen 14
5.Ưu nhược điểm của kiểm thử hộp đen 14
Trang 4CHƯƠNG 4: PHƯƠNG PHÁP THIẾT KẾ TEST CASE TRONG KIỂM THỬ HỘP
ĐEN 15
CHƯƠNG 5: GIỚI THIỆU VỀ PHẦN MỀM QUẢN LÝ TRƯỜNG TRUNG HỌC SSM 23
I.Tổng quan về phần mềm 23
II.Yêu cầu phần mềm 23
1.Chuẩn bị các công việc đầu năm mới 23
2.Các công việc trong học kì 25
3.Các công việc kết thúc năm học 25
CHƯƠNG 6: TEST DEMO 26
1.Test plan 26
2.Phân tích yêu cầu 26
3.Thực thi test 27
4.Báo cáo test 28
Trang 5NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Trang 6
Hưng Yên, ngày tháng năm 20
(Ký và ghi rõ họ tên)
DANH MỤC CÁC KÝ TỰ, CÁC TỪ VIẾT TẮT
Từ viết tắt Từ đầy đủ Giải thích
CSDL Cơ sở dữ liệu
Trang 7CHƯƠNG 1: TỔNG QUAN VỀ QUY TRÌNH PHÁT TRIỂN PHẦN MỀM
1 Giai đoạn thu thập yêu cầu
- Giai đoạn này thu thập càng nhiều yêu cầu càng tốt về tất cả các yêu cầu cụ thể về
kĩ thuật, logic, giao diện, mục đích sử dụng và các mong muốn khác
- Kiểm thử bắt đầu từ giai đoạn này người kiểm thử phải làm rõ tất cả những gì còn
mơ hồ, chưa rõ ràng về chức năng của hệ thống và những ràng buộc khi vận hành
hệ thống
2 Giai đoạn thiết kế
- Từ yêu cầu của giai đoạn 1 Lập kế hoạch cho các ngôn ngữ lập trình như java, php,…Cơ sở dữ liệu như SQL Server, MySQL….Để đáp ứng đầy đủ các yêu cầu chức năng cũng như yêu cầu kĩ thuật cho những chức năng hiện tại cũng như yêu cầu cho tương lai có thể giải quyết được
- Giai đoạn này các kiểm thử viên xác định lựa chọn tool và cài đặt môi trường thích hợp để kiểm thử phần mềm
3 Giai đoạn Coding
- Sau khi đã có thiết , đội ngũ developer sẽ thực hiện xây dựng phần mềm đựa trên các đặc tả thiết kế
- Giai đoạn này kiểm thử viện thường ít tham gia mã để developer tự Unit test cho kiểm thử
3.1 Giới thiệu về Unit Test
- Unit Test là một đoạn code để kiểm tra các hàm Unit test được thực hiện bởi lập trình viên
- Một Unit là một thành phần PM nhỏ nhất mà ta có thể kiểm tra được Theo định nghĩa này, các hàm (Function), thủ tục (Procedure), lớp (Class), hoặc các phương thức (Method) đều có thể được xem là Unit.Vì Unit được chọn để kiểm tra thường
có kích thước nhỏ và chức năng hoạt động đơn giản, chúng ta không khó khăn gì trong việc tổ chức, kiểm tra, ghi nhận và phân tích kết quả kiểm tra Nếu phát hiện lỗi, việc xác định nguyên nhân và khắc phục cũng tương đối dễ dàng vì chỉ khoanhvùng trong một đơn thể Unit đang kiểm tra Một nguyên lý đúc kết từ thực tiễn: thời gian tốn cho Unit Test sẽ được đền bù bằng việc tiết kiệm rất nhiều thời gian
và chi phí cho việc kiểm tra và sửa lỗi ở các mức kiểm tra sau đó
- Unit Test thường do lập trình viên thực hiện Công đoạn này cần được thực hiện càng sớm càng tốt trong giai đoạn viết code và xuyên suốt chu kỳ PTPM Thông thường, Unit Test đòi hỏi kiểm tra viên có kiến thức về thiết kế và code của
chương trình
Trang 8- Mục đích của Unit Test là bảo đảm thông tin được xử lý và xuất (khỏi Unit) là chính xác, trong mối tương quan với dữ liệu nhập và chức năng của Unit Điều nàythường đòi hỏi tất cả các nhánh bên trong Unit đều phải được kiểm tra để phát hiện nhánh phát sinh lỗi Một nhánh thường là một chuỗi các lệnh được thực thi trong một Unit, ví dụ: chuỗi các lệnh sau điều kiện If và nằm giữa then … else là một nhánh
4 Giai đoạn kiểm thử phần mềm
Kiểm tra các chức năng được xây dựng có phù hợp với yêu cầu của khách hàng không Còn gọi là giai đoạn càn quét lỗi
4.1 Khái niệm kiểm thử chức năng
- Kiểm thử chức năng là kiểm tra xem các thành phần chức năng của hệ thống hoạtđộng có đúng đắn hay không, có đúng với mục đích của người sử dụng hay không,đảm bảo cho các thông số kỹ thuật, các dữ liệu đầu ra, đầu vào, chức năng trong
hệ thống hoạt động đúng qui tắc nghiệp vụ và chính xác.
4.2 Mục đích của test chức năng
- Đảm bảo mục tiêu đúng đắn của từng chức năng, của mỗi ứng dụng bao gồm địnhhướng, dữ liệu đầu vào, xử lý và dữ liệu nhận được
4.3 Các kỹ thuật kiểm thử chức năng
a Kiểm thử hộp đen
- Là 1 phương pháp mà người kiểm thử xem phần mềm như 1 hộp đen, không quan tâm đến cách thức làm việc, cấu trúc, hành vi bên trong của hệ thống mà dựa vào thông tin duy nhất là các đặc tả về yêu cầu chức năng của thành phần phần mềm tương ứng
- Đây là chiến lược kiểm thử theo góc nhìn từ ngoài vào, các người tham gia kiểm thử hộp đen không cần có kiến thức nào về thông tin hiện thực thành phần phần mềm cần kiểm thử (mã nguồn của thành phần phần mềm, thuật giải được dùng, các dữ liệu được xử lý…) Người kiểm thử chi quan tâm đến việc tìm ra hiện tượng mà phần mềm không xử lý theo đúng đặc tả của nó và vì thế dữ liệu kiểm thử sẽ xuất phát từ đặc tả
- Đối tượng được kiểm thử là 1 thành phần phần mềm Thành phần phần mềm có thể là 1 hàm chức năng, 1 module chức năng, 1 phân hệ chức năng… Nói chung, chiến lược kiểm thử hộp đen thích hợp cho mọi cấp độ kiểm thử từ kiểm thử đơn
vị, kiểm thử tích hợp, kiểm thử hệ thống, kiếm thử độ chấp nhận của người dùng
b Kiểm thử hộp xám
- Kiểm thử hộp xám là sự kết hợp giữa kiểm thử hộp đen và kiểm thử hộp trắng.Mục đích của việc kiểm thử này là tìm ra những nhược điểm có liên quan tới lỗithiết kế, hoặc lỗi thi hành của hệ thống
Trang 9- Trong kiểm thử hộp xám, người kiểm thử cần phải có những hiểu biết về hệ thống
và thiết kế các testcase hoặc dữ liệu kiểm thử dựa trên những kiến thức về hệthống
5 Giai đoạn bảo trì
- Một khi sản phẩm đã hoàn thành việc bảo trì nâng cấp để giải quyết các vấn đề nảy sinh hoặc yêu cấu mới từ khách hàng
- Kiểm thử phần mềm ở giai đoạn này thực hiện việc báo cáo kết quả kiểm thử, đánh giá mức độ thân thiện
Trang 10CHƯƠNG 2: QUY TRÌNH KIỂM THỬ PHẦN MỀM
1 Phân tích yêu cầu
- Việc kiểm thử thường sẽ bắt đầu từ pha lấy yêu cầu trong quy trình phát triển phầnmềm Trong pha thiết kế, các tester làm việc với DEV để xác định phần nào của thiết kế có thể test và các thông số mà test sẽ làm việc
2 Lập kế hoạch test
- Mô tả nhiều việc như chiến lược test, test plan, tạo test case,…
- Khi có nhiều hoạt động sẽ thực hiện trong lúc test thì cần phải có kế hoạch
5 Báo cáo test
- Khi việc kiểm thử kết thúc , các tester sẽ điền kết quả test vào các test case và tạo báo cáo kết quả kết quả test và cho biết phần mềm đã test có sẵn sàng cho phát hành hay chưa
Trang 11CHƯƠNG 3: KIỂM THỬ HỘP ĐEN
1 Tổng quan về kiểm thử hộp đen
- Là 1 phương pháp mà người kiểm thử xem phần mềm như 1 hộp đen, không quan tâm đến cách thức làm việc, cấu trúc, hành vi bên trong của hệ thống mà dựa vào thông tin duy nhất là các đặc tả về yêu cầu chức năng của thành phần phần mềm tương ứng
- Đây là chiến lược kiểm thử theo góc nhìn từ ngoài vào, các người tham gia kiểm thử hộp đen không cần có kiến thức nào về thông tin hiện thực thành phần phần mềm cần kiểm thử (mã nguồn của thành phần phần mềm, thuật giải được dùng, các dữ liệu được xử lý…) Người kiểm thử chi quan tâm đến việc tìm ra hiện tượng mà phần mềm không xử lý theo đúng đặc tả của nó và vì thế dữ liệu kiểm thử sẽ xuất phát từ đặc tả
- Đối tượng được kiểm thử là 1 thành phần phần mềm Thành phần phần mềm có thể là 1 hàm chức năng, 1 module chức năng, 1 phân hệ chức năng… Nói chung, chiến lược kiểm thử hộp đen thích hợp cho mọi cấp độ kiểm thử từ kiểm thử đơn
vị, kiểm thử tích hợp, kiểm thử hệ thống, kiếm thử độ chấp nhận của người dùng
2 Các mục tiêu chính của kiểm thử hộp đen
Kiểm thử hộp đen cố gắng tìm ra các lỗi:
Các chức năng thiếu hoặc không đúng
Các lỗi giao diện: vào, ra, đủ, phù hợp, đúng, tiện lợi
Các lỗi cấu trúc dữ liệu trong việc truy cập cơ sở dữ liệu bên ngoài
Các lỗi thi hành, các lỗi khởi tạo hoặc kết thúc
3 Các loại kiểm thử hộp đen
Kiểm thử tích hợp (Integration test)
Kiểm thử chức năng (Funtional test): Chỉ chú trọng đến chức năng của mình
mà không quan tâm đến cấu trúc bên trong, chỉ khảo sát chức năng của mình thêo yêu cầu kĩ thuật
Kiểm thử hiệu năng (Performance test): Kiểm thử việc vận hành của hệ thống
Kiểm thử khả năng chịu tải (Stress test): Kiểm thử các giới hạn của hệ thốngKiểm thử hệ thống
Trang 12 Kiểm thử chức năng (Funtional test): Bảo đảm các hành vi của hệ thống đúng yêu cầu thiết kế
Kiểm thử hiệu năng (Performance test): Bảo đảm tối ưu phân bổ tài nguyên hệthống nhằm đạt các chỉ tiêu như thời gian xử lý hay đáp ứng câu truy vấn
Kiểm thử khả năng chịu tải: Bảo đảm hệ thống vận hành đúng dưới áp lực cao
Kiểm thử cấu hình (Configuration test)
Kiểm thử bảo mật (Security test): bảo đảm tính toàn vẹn bảo mật cảu hệ thống
Kiểm thử khả năng phục hồi (Recovery test): Bảo đảm hệ thống có khả năng khôi phục trạng thái trước đó trong tình huống mất tài nguyên hoặc dữ liệu
4 Các phương pháp kiểm thử hộp đen
Phân chia lớp tương đương (Equivalence Class Partition)
Phân tích giá trị biên (Boundary Value Analysis)
Đồ thị nguyên nhân - kết quả (Cause – Effect )
5 Ưu nhược điểm của kiểm thử hộp đen
Ưu điểm
Kỹ sư kiểm thử có thể không phải IT chuyên nghiệp
Hệ thống thực hiện với toàn bộ yêi cầu của nó được kiểm thử chính xác
Thiết kế kịch bản kiểm thử khá nhanh, ngay khi mà các yêu cầu chức năng được xác đinh
Nhược điểm
Dữ liệu đầu vào yêu cầu một khối lượng mẫu (sample) khá lớn
Khó viết kịch bản kiểm thử do cần xác định tất cả các yếu tố đầu vào, và thiếu
cả thời gian cho việc tập hợp này
Khả năng để bản thân kỹ sư lạc lối trong khi kiểm thử là khá cao
Trang 13CHƯƠNG 4: PHƯƠNG PHÁP THIẾT KẾ TEST CASE
TRONG KIỂM THỬ HỘP ĐEN
1 Phân chia lớp tương đương(Equivalence Class Partition)
a) Định nghĩa
- Phân lớp tương đương là một phương pháp kiểm thử hộp đen chia các điều kiện đầu vào thành những vùng tương đương nhau Tất cả các giá trị trong một vùng tương đương sẽ cho một kết quả đầu ra giống nhau Vì vậy chúng
ta có thể test một giá trị đại diện trong vùng tương đương
- Thiết kế ca kiểm thử cho phân lớp tương đương dựa trên sự đánh giá về các lớp tương đương với một điều kiện vào Lớp tương đương biểu thị cho tập các trạng thái hợp lệ hay không hợp lệ đối với điều kiện vào
- Một cách xác định tập con này là để nhận ra rằng 1 ca kiểm thử được lựa chọn tốt cũng nên có 2 đặc tính khác:
Giảm thiểu số lượng các ca kiểm thử khác mà phải được phát triển để hoànthành mục tiêu đã định của kiểm thử “hợp lý”
Bao phủ một tập rất lớn các ca kiểm thử có thể khác Tức là, nó nói chochúng ta một thứ gì đó về sự có mặt hay vắng mặt của những lỗi qua tập giátrị đầu vào cụ thể
- Thiết kế Test-case bằng phân lớp tương đương tiến hành theo 2 bước:
Xác định các lớp tương đương
Xác định các ca kiểm thử
Trang 14 Nếu dữ liệu vào là điều kiện ràng buộc, xây dựng:
- Một lớp với ràng buộc được thỏa mãn
- Một lớp với ràng buộc không được thỏa mãn
c) Cách xác định
- Các lớp tương đương được xác định bằng bằng cách lấy mỗi trạng thái đầu vào
(thường là 1 câu hay 1 cụm từ trong đặc tả) và phân chia nó thành 2 hay nhiều nhóm
Mẫu liệt kê các lớp tương đương:
- Điều kiện đầu vào là một giá trị đặc biệt, mảng số hay chuỗi, tập hợp hay điều
kiện đúng sai
- Các lớp tương đương hợp lệ là mô tả các đầu vào hợp lệ của chương trình
- Các lớp tương đương không hợp lệ là mô tả các trạng thái khác của chương
trình như: sai, thiếu, không đúng…
Trang 15Cho bài toán như sau:
Nhập vào trường hợp không hợp lệ thứ nhất: nhập 5 ký tự
Nhập vào trường hợp không hợp lệ thứ hai: nhập vào 21 ký tự
Trường hợp đặc biệt: không nhập gì vào ô text đó (để trống)
Lập bảng các lớp tương đương:
Điều kiện đầu
vào
Các lớp tương đươnghợp lệ
Các lớp tương đương không hợp lệ
- Vì mỗi vùng tương đương ta chỉ cần test trên các phần tử đại diện nên số lượng
test case được giảm đi khá nhiều Nhờ đó, mà thời gian thực hiện test cũng giảm đáng kể
f)Nhược điểm
Trang 16- Không phải bất kỳ bài toán nào đều có thể áp dụng được kỹ thuật này Có thể bị
thiếu lỗi ở biên nếu chỉ chọn giá trị ở khoảng giữa của miền tương đương Vì vậy việc kết hợp linh hoạt giữa kỹ thuật phân vùng tương đương và phân tích giá trị biên dưới đây sẽ mang lại hiệu quả cao hơn để vừa tối ưu số lượng test case và vẫn đảm bảo được chất lượng phần mềm
2 Phân tích giá trị biên (Boundary Value Analysis)
a) Định nghĩa
- Phân tích giá trị biên (BVA) là kỹ thuật thiết kế test case và hoàn thành phân
vùng tương đương
- Mục tiêu là lựa chọn các test case để thực thi giá trị biên.
- Phân tích giá trị biên là trường hợp đặc biệt của phân vùng tương đương, dựa
trên những phân vùng tương đương tester sẽ xác định giá trị biên giữa những phân vùng này và lựa chọn test case phù hợp
- Kiểm thử các dữ liệu vào bao gồm:
- Nếu giá trị đầu vào xác định là một mảng có biên là a và b(a < b) thì có thể
thiết kế được các test case như sau:
Biên a
Biên b
Giá trị nhỏ hơn biên a
Giá trị lớn hơn biên b
Trang 17 Một giá trị nằm giữa a và b.
c) Phân loại
- Điểm trên biên (Boundary point).
- Điểm cực biên (Extreme point).
- Điểm ngoài biên (Off point).
- Điểm trong biên (Interior point.)
d) Ví dụ
Cho bài toán như sau:
User:
Password:
- Yêu cầu: Thiết kế test case sao cho khi người dùng nhập vào ô text box user chỉ
cho nhập ký tự chữ với độ dài trong khoảng [6 – 20]
- Nếu nhập giá trị với số ký tự không nằm trong khoảng [6-20] => hiển thị lỗi
Phân vùng 2: Nhập giá trị không hợp lệ <6 ký tự
Phân vùng 3: Nhập giá trị không hợp lệ > 20 ký tự
Phân vùng 4: Trường hợp để trống không nhập gì hay nhập ký tự không phải dạng chữ
- Áp dụng kỹ thuật phân tích giá trị biên ta chọn được các case sau:
Case 1: Nhập giá trị với 5 ký tự => Hiển thị lỗi” Bạn chỉ được phép nhập chuỗi từ 6 => 20 ký tự”
Trang 18 Case 2: Nhập giá trị với 6 ký tự => pass
Case 3: Nhập giá trị với 20 ký tự => pass
Case 4: Nhập với 21 ký tự => Hiển thị lỗi “ Bạn chỉ được phép nhập chuỗi
từ 6 => 20 ký tự
Case 5: Để trống không nhập gì hay nhập ký tự không phải dạng chữ => Hiển thị lỗi “ Tên người dùng chưa hợp lệ! Vui lòng nhập ký tự chữ”
e) Ưu điểm
- Thay vì phải test hết toàn bộ các giá trị trong vùng tương đương, kỹ thuật phân
tích giá trị biên tập trung vào việc kiểm thử các giá trị biên của miền giá trị inputs để thiết kế test case do “lỗi thường tiềm ẩn tại các ngõ ngách và tập hợp tại các biên”
- Tiết kiệm thời gian thiết kế testcase và thực hiện test
f) Nhược điểm
- Phương pháp này chỉ hiệu quả trong trường hợp các đối số đầu vào(input
variables) độc lập với nhau và mỗi đối số đều có một miền giá trị hữu hạn
3 Đồ thị nguyên nhân – kết quả( Cause - Effect)
a) Định nghĩa
- Đồ thị nguyên nhân – kết quả hỗ trợ trong việc lựa chọn một cách có hệ thống
tập các ca kiểm thử có hiệu quả cao Nó có tác động có lợi ảnh hưởng tới việc chỉ ra tình trạng chưa đầy đủ và nhập nhằng trong đặc tả Nó cung cấp cả cách biểu diễn chính xác cho các điều kiện logic và hành động tương ứng
- Kỹ thuật gồm có 4 bước:
Xác định điều kiện vào và hành động cho mỗi module cần kiểm định
Xác định đồ thị nguyên nhân – kết quả
Đồ thị được chuyển thành bảng quyết định
Những phần trong bảng quyết định được chuyển thành test case