You are on page 1of 37

Software Testing

Session 3
Test Design Techniques -2 kỹ
thuật kiểm thử
Lesson Objective

Get to know:
- White-box techniques
- Experience-based techniques
- Choosing test techniques
Categories of test case design
techniques
• Black-box techniques: based on an analysis of
the test basis documentation, including both
functional and non-functional aspect.
• White-box techniques: based on deriving test
case directly from the structure of a component
or system.
• Experience based (Ad hoc) techniques:
based on deriving test case from the tester’s
experience of similar system and general
experience of testing.
Categories of test case design
techniques
• Kỹ thuật hộp đen: dựa trên phân tích tài liệu cơ
sở thử nghiệm, bao gồm cả khía cạnh chức
năng và phi chức năng.
• Kỹ thuật hộp trắng: dựa trên việc suy ra trường
hợp kiểm thử trực tiếp từ cấu trúc của một thành
phần hoặc hệ thống.
• Kỹ thuật dựa trên kinh nghiệm (Đặc biệt): dựa
trên việc rút ra trường hợp thử nghiệm từ kinh
nghiệm của người thử nghiệm về hệ thống
tương tự và kinh nghiệm thử nghiệm chung.
White-box techniques
How to the structure of program
is presented? Cấu trúc của 1
chương trình được trình bày ntn
• To do white-box testing you must read and understand
the programs in codes or design documents. Để kiểm tra
được hộp trắng bạn phải đọc hiểu các chương trình
trong code và tài liệu thiết kế
• In design documents the structure of program is
presented by: trong tài liệu thiết kế cấu trúc của chương
trình trong
– Pseudo code/Code
– Flow charts
– Control Flow graphs
Pseudo code mã giả
• Pseudo code is a much more limited language than any
programming language but it enables designer to create all the main
control structures needed by programs là một ngôn ngữ hạn chế
hơn nhiều so với bất kỳ ngôn ngữ lập trình nào nhưng nó cho phép
người thiết kế tạo ra tất cả các cấu trúc điều khiển chính mà các
chương trình cần.
• Example:
1 X = 15
2 Count = 0
3 WHILE x < 20 DO
4 x = x + 1
5 count = count + 1
6 END DO
Program in Pseudo code
Flow charts
• Flow charts is using simple graphic symbol to present structure of
programs. sử dụng ký hiệu đồ họa đơn giản để trình bày cấu trúc
của chương trình.
• Example:
False
A>B
Read A True
Read B
C=A+B

Sequence program Selection structure


Flow charts (cont.)
• Example(cont.):

Loop structure
Program in
Flowchart
Control flow graphs kiểm soát
luồng đồ thị
• A control flow graph provides a method of
presenting the decision points and the flow
control within a piece of code.
• It just like a flow chart except that it only show
decisions.
• Biểu đồ luồng điều khiển cung cấp phương pháp trình bày các điểm quyết định và
điều khiển luồng trong một đoạn mã.Nó giống như một lưu đồ ngoại trừ việc nó chỉ
hiển thị các quyết định.
How do you perform White
Box Testing? Làm thế nào để bạn thực hiện Kiểm tra Hộp trắng?

1. UNDERSTAND THE SOURCE CODE


2. CREATE TEST CASES AND EXECUTE
thử nghiệm
White-box techniques kỹ thuật
kiểm thử hộp trắng
• Statement testing and coverage
• Paths through a program
• Decision testing and coverage
Statement testing and coverage
• Statement testing is testing aimed at exercising programming
statements.
• Kiểm thử câu lệnh là thử nghiệm nhằm thực hiện các câu lệnh lập
trình.
• If we aim to test every executable statement we call this full or 100
per cent statement coverage. If we exercise half the executable
statements this is 50 per cent statement coverage, and so on.
• Nếu chúng tôi muốn kiểm tra mọi câu lệnh có thể thực thi, chúng tôi
gọi đây là phạm vi toàn bộ hoặc 100% của câu lệnh. Nếu chúng ta
thực hiện một nửa các câu lệnh có thể thực thi thì đây là mức độ phù
hợp của câu lệnh là 50%, v.v.
Example
Example – Cont.
Convert to flowchart
help you easier than
to define test case.
Chuyển đổi sang sơ đồ giúp bạn dễ
xác định được trường hợp thử nghiệm

Test case define:


Review each statement one
by one to define test case.
Xem lại các câu lệnh để thực hiện
trường hợp thử nghiệm
Paths through a program Đường đẫn thông qua 1 chương trình

• Paths through a program help you defines


test cases based on the flows or logical path
that can be taken through the program.
• Paths through help you easier to define test
case on decision statement.
Exercise

How many test cases for this program?


Example
Test case define:
- Statement coverage:
a, b, c, d, e, f, g, h test case
you need to test.

- Paths through you have:


a, c, d, f, g, h -> 1 test case
a, c, d, e, h -> 1 test case
a, b, e, h -> 1 test case
a, b, f, g, h -> 1 test case
Decision testing and coverage
• Decision testing aims to ensure that the decisions
in a program are adequately exercised.
• Decisions, as you know, are part of selection and
iteration structures; we see them in IF THEN
ELSE constructs and in DO WHILE or REPEAT
UNTIL loops.
• To test a decision we need to exercise it when the
associated condition is true and when the
condition is false; this guarantees that both exits
from the decision are exercised.
Example
Example
- If you use Paths through 100
coverage you need
a,b,c,d,e,f,g,h,j total 10 test
case.
- But you can see that we have
three alternative routes
through the program – path
abhj, path acegij and path
acdfij. That needs three test
cases.
- abhj is age <18
- acegij is age>30
- acdfij is age from 18 to 30
Exercise
Other structure-based
techniques các kỹ thuật dựa
trên cấu trúc khác
• Control flow testing.
• Data flow testing.
• Branch testing. Kiểm tra lưu lượng kiểm
soát.Kiểm tra luồng dữ liệu.Thử nghiệm
nhánh.
Experience-based (ad hoc)
techniques Kỹ thuật dựa trên kinh nghiệm (đặc biệt)
• Experience-based techniques are those that you fall back on when there is no adequate
specification from which to derive specification-based test cases or no time to run the
full structured set of tests. Các kỹ thuật dựa trên kinh nghiệm là những kỹ thuật mà bạn
rơi vào tình trạng không có thông số kỹ thuật thích hợp để lấy các trường hợp kiểm thử
dựa trên đặc điểm kỹ thuật hoặc không có thời gian để chạy toàn bộ bộ kiểm tra có cấu
trúc .
• They use the users’ and the testers’ experience to determine the most
important areas of a system and to exercise these areas in ways that
are both consistent with expected use and likely to be the sites of
errors.
• Họ sử dụng trải nghiệm của người dùng và người thử nghiệm để xác
định các khu vực quan trọng nhất của hệ thống và thực hiện các khu
vực này theo những cách vừa phù hợp với nhu cầu sử dụng dự kiến,
vừa có khả năng là nơi có lỗi
Experience-based techniques
(cont.)
• Even when specifications are available it is worth
supplementing the structured tests with some that
you know by experience have found defects in
other similar systems.
• Ngay cả khi các thông số kỹ thuật có sẵn, bạn cũng nên bổ sung các bài kiểm
tra có cấu trúc với một số bài kiểm tra mà bạn biết bằng kinh nghiệm đã tìm
thấy các khiếm khuyết trong các hệ thống tương tự khác.
Experience-based techniques
(cont.)
• Error guessing đoán lỗi
• Exploratory testing thử nghiệm thăm dò
Error guessing
• Error guessing is a very simple technique that takes advantage of a
tester’s skill, intuition and experience with similar applications to
identify special tests that may not be easy to capture by the more
formal techniques. Đoán lỗi là một kỹ thuật rất đơn giản tận dụng kỹ năng,
trực giác và kinh nghiệm của người kiểm tra với các ứng dụng tương tự để
xác định các bài kiểm tra đặc biệt mà các kỹ thuật chính thức hơn có thể
không dễ nắm bắt được.
• When applied after systematic techniques, error guessing can add another
value in identifying and exercising test cases that target known or suspected
weaknesses or that simply address aspects of the application that have been
found to be problematical in the past.
• Khi được áp dụng sau các kỹ thuật hệ thống, việc đoán lỗi có thể thêm một
giá trị khác trong việc xác định và thực hiện các trường hợp kiểm thử nhắm
vào các điểm yếu đã biết hoặc nghi ngờ hoặc chỉ đơn giản là giải quyết các
khía cạnh của ứng dụng đã được phát hiện là có vấn đề trong quá khứ.
Popular Errors You can guess các
lỗi phổ biến bạn có thể đoán được

• Divide by zero
• Entering blank spaces in the text fields
• Pressing the submit button without
entering values.
• Uploading files exceeding maximum limits.
• Null pointer exception.
• Invalid parameters
• Chia cho số không
• Nhập dấu cách trống trong các trường
văn bản
• Nhấn nút gửi mà không cần nhập giá trị.
• Tải lên các tệp vượt quá giới hạn tối đa.
• Ngoại lệ con trỏ rỗng.
• thông số không hợp lệ
Exercise
• Use error guessing to test for facebook
login function. Sử dụng tính năng đoán lỗi
để kiểm tra chức năng đăng nhập
facebook.
Exploratory testing thử nghiệm thăm dò

• Exploratory testing is a technique that combines the


experience of testers with a structured approach to
testing where specifications are either missing or
inadequate and where there is severe time pressure.
• It exploits concurrent test design, test execution, test
logging and learning within time-boxes and is
structured around a test charter containing test
objectives.
• In this way exploratory testing maximises the amount
of testing that can be achieved within a limited time
frame, using test objectives to maintain focus on the
most important areas.
• Thử nghiệm thăm dò là một kỹ thuật kết hợp kinh nghiệm của người thử nghiệm với
phương pháp tiếp cận có cấu trúc để thử nghiệm khi các thông số kỹ thuật bị thiếu
hoặc không đầy đủ và ở nơi có áp lực thời gian nghiêm trọng.Nó khai thác đồng
thời thiết kế thử nghiệm, thực hiện thử nghiệm, ghi nhật ký thử nghiệm và học tập
trong các hộp thời gian và được cấu trúc xung quanh một điều lệ thử nghiệm có
chứa các mục tiêu thử nghiệm.
• Bằng cách này, thử nghiệm khám phá tối đa hóa số lượng thử nghiệm có thể đạt
được trong một khung thời gian giới hạn, sử dụng các mục tiêu thử nghiệm để duy
trì sự tập trung vào các lĩnh vực quan trọng nhất.
Exercise
• Use Exploratory testing to test for register
function of ecommerce site.
http://mobile.ddns.net/
Discussion

How to choose test techniques?


Q&A

You might also like