KIỂM THỬ CHỨC NĂNG Hiểu được kiểm thử chức năng là gì Nắm bắt được các dạng kiểm thử cũng như các kỹ thuật được sử dụng trong kiểm thử chức năng và ứng dụng trong kiểm thử web... K
Trang 1KIỂM CHỨNG
PHẦN MỀM
GVHD Th.s Nguyễn Công Hoan Lớp: SE208.D22
Trang 2GIỚI THIỆU VỀ NHÓM
Số thứ tự nhóm: 7
Các thành viên:
Trần Đạt 10520252 Phạm Văn Tú 10520254
Trang 3NỘI DUNG SEMINAR
“Testing Applications on the Web: Test Planning for Mobile and Internet-Based Systems Second Edition”
Chương 11: Functional Tests
Chương 13: Using Scripts to Test
Trang 4KIỂM THỬ
CHỨC NĂNG
Hiểu được kiểm thử chức năng là gì
Nắm bắt được các dạng kiểm thử cũng như các kỹ thuật được sử dụng trong kiểm thử chức năng và ứng
dụng trong kiểm thử web
Trang 5KIỂM THỬ CHỨC NĂNG
Khái niệm
◦ Kiểm thử chức năng (Functional test) một
dạng của kiểm thử hộp đen mà các test case của nó được thiết kế dựa trên các đặc tả của các thành phần chương trình cần kiểm thử.
◦ Kiểm thử chức năng kiểm tra các chức năng
bằng cách cung cấp các thông số đầu vào và kiểm tra các kết quả xuất ra
Trang 6Quy trình thực hiện chung
Trang 8FUNCTIONAL ACCEPTANCE SIMPLE TEST
Đại diện cho mức độ thứ hai của kiểm
thử chấp nhận (acceptance testing)
Kiểm tra các tính năng chính có thể truy cập và hoạt động đúng hay không
Bao gồm các bộ test case đơn giản
Không hỗ trợ kiểm thử mối kết hợp giữa các chức năng
Bản build có thể bị loại bỏ trong khi FAST
Trang 9FUNCTIONAL ACCEPTANCE SIMPLE TEST
Trang 10Cách thực hiện
◦ Phân rã chức năng xuống mức chỉ thị
◦ Áp dụng các test case để kiểm tra các chỉ thị
đã được phân rã
◦ Không quan tâm tới sự kết hợp của các chỉ thị, bối cảnh được tạo ra bởi sự kết hợp này hay kết quả cuối cùng của chức năng
FUNCTIONAL ACCEPTANCE SIMPLE TEST
Trang 11FAST trong kiểm thử UI
◦ Là một trong những mục tiêu của FAST
◦ Bao gồm:
Kiểm tra sự tồn tại của đối tượng UI
Kiểm tra trạng thái mặc định
Kiểm tra giá trị mặc định, chế độ lựa chọn
Kiểm tra tab order
Kiểm tra phím tắt, phím truy cập
FUNCTIONAL ACCEPTANCE SIMPLE TEST
Trang 12FAST trong kiểm thử Web
◦ Kiểm tra Link: content link, thumbnail link,
bitmap link
◦ Kiểm tra các điều khiển cơ bản: điều hướng
back/forward, zoom, làm mới nội dung
◦ Kiểm tra hành động: thêm, xoá sửa dữ liệu;
tạo tài khoản/hồ sơ người dùng
◦ Các tính năng khác: Đăng nhập/đăng xuất,
thông báo qua email, tìm kiếm
FUNCTIONAL ACCEPTANCE SIMPLE TEST
Trang 13TASK-ORIENTED FUNCTIONAL TEST
Kiểm tra các tác vụ mà chức năng thực hiện, đảm bảo các tác vụ đó thực hiện chính xác
Chứa các test case ‘tích cực’
So sánh với đặc tả, tài liệu yêu cầu phần mềm hoặc kỳ vọng của người dùng
Trang 14TASK-ORIENTED FUNCTIONAL TEST
Trang 15TOFT test case xây dựng dựa trên
◦ Danh sách các chức năng, tính năng cần được
test
◦ Các yêu cầu phi chức năng
Mỗi chức năng cần xét
◦ Tính hợp lệ của các tác vụ mà nó thực hiện
◦ Tính toàn vẹn của kết quả cuối cùng
◦ Tính toàn vẹn của tính năng khi sử dụng kết
hợp với các tính năng khác
TASK-ORIENTED FUNCTIONAL TEST
Trang 16Các bước thực hiện
◦ Xây dựng danh sách các tính năng cần kiểm
thử (bao gồm mọi chức năng, tính năng)
◦ Thiết kế test case dựa trên mỗi mục của danh
sách được lập, kiểm tra với các đặc tả của chức năng hoặc trong tài liệu yêu cầu hệ thống, hướng dẫn người dùng (nếu có)
◦ Tiến hành kiểm thử và đánh giá kết quả
TASK-ORIENTED FUNCTIONAL TEST
Trang 17FORCED-ERROR TEST
Tìm ra tất cả các lỗi bằng cách cố ý đẩy phần mềm vào các điều kiện có thể gây lỗi
Chứa các test case ‘tiêu cực’
Thực hiện khi và chỉ khi các lỗi đã được
xử lý, thông điệp xuất ra đã được code
Ví dụ: FET trong textfield/textbox?
Trang 18Cách xây dựng danh sách lỗi
◦ Từ phía các deverloper
◦ Từ đặc tả
◦ Từ các tập tin tài nguyên
◦ Phân tích mỗi sự kiện dựa trên các trường
Trang 19Các bước thực hiện kiểm tra lỗi
◦ Đẩy chương trình vào điều kiện lỗi
◦ Kiểm tra logic phát hiện lỗi
◦ Kiểm tra logic xử lý lỗi
◦ Kiểm tra thông báo lỗi
◦ Kiểm tra các vấn đề khác
FORCED-ERROR TEST
Trang 20◦ Mỗi thành phần trong chuỗi có thể
không hoàn thành việc truyền lỗi tới thành phần kế tiếp
◦ Thông điệp thông báo cần dễ hiểu, đúng nội dung
FORCED-ERROR TEST
Trang 21BOUNDARY CONDITION TEST
Là mở rộng của TOFT và FET
Trang 22EXPLORATORY TESTING
Là việc kiểm thử các test cases
và tạo ra những test cases mới khác dựa trên thông tin nhận
được từ các lần kiểm thử trước đó
Còn được gọi là unstructured
testing hoặc ad hoc testing
Trang 23Các bước thực hiện
◦ Cài đặt môi trường
◦ Tạo ta dữ liệu đầu vào
Trang 24SOFTWARE ATTACK
“How to Break Software: A Practical Guide to Testing” - James A Whittaker
21 kiểu “tấn công” phần mềm
Trang 25Nhập đầu vào, buộc thông báo lỗi phải xuất hiện
Nhập đầu vào, buộc chương trình phải thiết lập giá trị mặc định
SOFTWARE ATTACK
Trên Windows ME, Powerpoint 2000
Chèn MSVSA Button Class Object
Thông qua menu Insert/Object
Word 2000, Insert/Index and
Tables/Table of Contents,
Chọn “Options” và Enter
Trang 26Khám phá các bộ ký tự và các kiểu dữ liệu cho phép
Làm tràn bộ đệm đầu vào
Tìm đầu vào, tương tác và kiểm chứng sự kết hợp
Nhập đầu vào hoặc chuỗi đầu vào liên tục
Buộc các đầu ra khác nhau cho mỗi đầu vào
…
SOFTWARE ATTACK
Trang 27ỨNG DỤNG SCRIPT
TRONG KIỂM CHỨNG
Trang 28NỘI DUNG
Giới Thi uệ
Batch, Shell Command
Batch File, Shell Script
Scripting Language
Ứng dụng của Script trong Kiểm chứng
Thói quen tốt: Làm việc với một Script Project
Thói quen tốt: Làm việc với Script
Trang 29GIỚI THIỆU
Test Script là một nhóm mã lệnh dạng đặc
tả dạng Script dùng để tự động hóa một trình tự kiểm tra, giúp cho việc kiểm tra nhanh hơn, hoặc cho những trường hợp
mà kiểm tra bằng tay sẽ rất khó khăn hoặc không khả thi
Test Script giúp chúng ta có thể bắt đầu test trước khi hoàn thành UI, ho c truy ặ
c p vào trực tiếp vào máy chủ của ứng ậdụng m t cánh đơn giản…ộ
Trang 30Hệ điều hành UNIX và Windows là môi trường thuận lợi để thực hiện việc thêm các script vào trong bài Test
Những câu lệnh đơn được đánh máy vào một giao diện dòng lệnh
Mổi dòng l nh thực hi n m t hành ệ ệ ộ
đ ng Khi cần thực hi n m t loạt các ộ ệ ộhành đ ng, chúng ta cần đ t chúng vào ộ ặ
m t t p tin văn bản và lưu lại nó như ộ ậ
m t script.ộ
BATCH, SHELL COMMAND
Trang 31M t số l nh cơ bản trong UNIXộ ệ
◦ cat: viết tắt của concatenate, hoặc hiển thị nội
dung của file ra màn hình
◦ cd: thay đổi thư mục
◦ chmod: thay đổi quyền truy cập tập tin
◦ cksum: kiểm tra dung lượng và đếm số byte
trong một tập tin
◦ cmp: so sánh hai tập tin, tương tự như diff,
nhưng hoạt động tốt hơn so với diff trên các tập tin nhị phân
◦ cp: sao chép
BATCH, SHELL COMMAND
Trang 32 M t số l nh cơ bản trong UNIX ộ ệ
◦ diff: so sánh sự khác nhau giữa hai tập tin
◦ echo: hiển thị một dòng văn bản
◦ find: tìm tập tin trong một thư mục
◦ grep, egrep, fgrep: in ra dòng chữ theo một định dạng
◦ head: in ra phần đầu của tập tin
◦ tail: in ra phần đuôi của tập tin
◦ ls: hiển thị nội dung của thư mục hiện tại
◦ ln: tạo liên kết giữa các tập tin
◦ mail: gửi và nhận email
BATCH, SHELL COMMAND
Trang 33 M t số l nh cơ bản trong UNIX ộ ệ
◦ man: cung cấp mô tả chi tiết của một lệnh cùng
với hướng dẫn sử dụng
◦ mkdir: tạo một thư mục
◦ more: đánh số trang của màn hình văn bản hiện tại
◦ mv: di chuyển, xóa hoặc đổi tên một tập tin
◦ ping: gửi yêu cầu đến máy khác nếu nó đang chạy
◦ ps: báo cáo tình trạng của quá trình
◦ pwd: in tên của thư mục hiện hành
◦ rm: loại bỏ một tập tin
◦ rmdir: loại bỏ một thư mục
BATCH, SHELL COMMAND
Trang 34M t số l nh cơ bản trong Windowộ ệ
◦ ATTRIB: thay đổi thu c tính fileộ
◦ CD: thay đổi đường dẫn
◦ COMP: so sánh 2 file
◦ COPY: sao chép m t ho t nhiều fileộ ặ
◦ DATE: hiển thị ho c thay đổi ngày h thốngặ ệ
◦ DEL: xóa m t ho c nhiều fileộ ặ
◦ DIR: Hi n danh sách file và folder con.ệ
Trang 35BATCH, SHELL COMMAND
M t số l nh cơ bản trong Windowộ ệ
◦ EXIT : kết thúc chương trình CMD
◦ IF : câu l nh điều ki nệ ệ
◦ MD : tạo folder mới
◦ MOVE : di chuyển file
◦ RD : xóa folder
Tìm hiểu thêm : http://ss64.com/nt/
Trang 36BATCH, SHELL COMMAND
Trang 37BATCH FILE, SHELL SCRIPT
Batch File và Shell Script là các t p tin chứa ậ các dòng l nh nhằm thực hi n công vi c ệ ệ ệ quản lý t p tin, cài đ t ho c sửa đổi cài ậ ặ ặ
Trang 38BATCH FILE, SHELL SCRIPT
Trang 39SCRIPTING LANGUAGE
Tại sao cần ngôn ngữ kịch bản? Tại sao chúng ta cần ngôn ngữ kịch bản mạnh mẽ hơn, cung cấp nhiều tính năng hơn, kiểm soát tốt hơn và linh hoạt hơn để thực hiện các nhiệm vụ phức tạp hơn?
Có rất nhiều ngôn ngữ kịch bản và m t số ộđang được tiếp tục phát triển
Một số ngôn ngữ kịch bản phổ biến : Perl, VBScript, Tcl, JavaScript, AWK, sed, Python…
Trang 40SCRIPTING LANGUAGE
Mổi ngôn ngữ được thiết kế để dễ dàng hơn trong vi c giải quyết m t vài vấn đề ệ ộnhất định, nên nhiều người thường sở hữu m t lúc vài ngôn ngữ khác nhau ộ
Ví dụ : Perl được biết đến với văn bản lớn, xử lý dữ liệu, và hỗ trợ các yêu cầu dịch vụ cho giao thức TCP/IP, đều này làm cho nó rất ti n lợi cho vi c kiểm thử các ệ ệứng dụng web
Trang 41ỨNG DỤNG CỦA SCRIPT
Sau đây là những ứng dụng của việc sử
dụng Test Script
◦ Sử dụng chúng cho công việc quản trị hệ thống
◦ Tìm hiểu thông tin về hệ thống
◦ Kiểm tra máy chủ trực tiếp
◦ Thực hiện yêu cầu hệ thống bỏ qua giao diện
người dùng
◦ Kiểm tra các bản ghi
◦ So sánh hai tập tin kết quả kiểm chứng
◦ Thực hiện kiểm chứng nhanh hơn và làm các
bài kiểm chứng không thể thực hiện bằng tay
Trang 42ỨNG DỤNG CỦA SCRIPT
Sử dụng chúng cho công việc quản trị hệ thống
Trang 43ỨNG DỤNG CỦA SCRIPT
Tìm hiểu thông tin về hệ thống
Trang 44ỨNG DỤNG CỦA SCRIPT
Kiểm chứng máy chủ trực tiếp
Trang 45LÀM VIỆC VỚI MỘT SCRIPT PROJECT
Để Script hiệu quả hơn và nâng cao vòng đời sử dụng của chúng
◦ Test Script là mã Khi bạn viết Script, bạn trở thành nhà phát triển.
◦ Nên xây dựng Test Script có thể tái sử dụng.
◦ Nên tải về những kịch bản mẫu nếu có thể.
◦ Xây dựng phong cách và quy ước chuẩn trước
khi bắt đầu viết kịch bản Việc này sẽ giúp các thành viên trong nhóm kiểm chứng dễ dàng hiểu được các kịch bản khác nhau đồng thời giúp cho chính bạn hiểu được kịch bản của bạn sau một thời gian dài không sử dụng.
Trang 46 Chuẩn hóa định dạng tiêu đề và nội dung cho tất cả Test Script Một số thông tin này
sẽ được chuẩn hóa bằng phần mềm quản lý:
◦ Tác giả
◦ Ngày
◦ Mục đích
◦ Các thông số
◦ Đầu vào, đầu ra dự kiến
◦ Dữ liệu hoặc các tập tin cần thiết khác
Thiết lập các hướng dẫn để xử lý lỗi của ứng dụng
LÀM VIỆC VỚI MỘT SCRIPT
Trang 47 Giữ kích thước của các Test Script ở mức tối
thiểu.
Mô tả chức năng, cụ thể là:
Cấu trúc Test Script phải dễ đọc, dễ viết, dễ bảo trì
Tránh sử dụng các giá trị cố định Nên sử dụng các
dữ liệu thực như tên đường dẫn, mã số người
dùng, mật khẩu, giá trị lớn nhất, dữ liệu văn bản.
Chú ý đến định dạng kết quả Đảm bảo đầu ra
Test Script dễ đọc và dễ hiểu.
LÀM VIỆC VỚI MỘT SCRIPT
Trang 48TỔNG KẾT
Trang 49TÀI LIỆU THAM KHẢO
“Testing Applications on the Web: Test Planning for Mobile and Internet-Based Systems Second Edition” - Hung Q
Nguyen, Bob Johnson, Michael Hackett
“How to Break Software: A Practical
Guide to Testing” - James A Whittaker
http://wikipedia.org/
http://sqa.fyicenter.com/
Trang 50KẾT THÚC