about summary refs log tree commit diff
path: root/usth/ICT2.7/P4L2 Black-Box Testing Subtitles/13 - Partition Testing Example - lang_en_vs4.srt
blob: 6738346b8cf5b35743b156cf0197fcae1c62d349 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
1
00:00:00,120 --> 00:00:02,969
So let's look at how this will work with an example.

2
00:00:02,969 --> 00:00:06,210
I'm going to use this simple program that takes two inputs. The

3
00:00:06,210 --> 00:00:08,790
first input is a string, str, and the second one is

4
00:00:08,790 --> 00:00:11,575
an integer, size. And the problem is called split. And as

5
00:00:11,575 --> 00:00:14,363
the name says what it does is to take this string,

6
00:00:14,363 --> 00:00:17,491
str, and split it into sub string, into chunks of size

7
00:00:17,491 --> 00:00:21,550
characters each. So how do we identify some possible partitions for

8
00:00:21,550 --> 00:00:25,620
this program? If we consider the input size, we can identify

9
00:00:25,620 --> 00:00:29,630
three neutral partitions which are size less than 0. For example,

10
00:00:29,630 --> 00:00:32,259
we want to test how the program behaves. But if we pass an

11
00:00:32,259 --> 00:00:36,100
incorrect size, size equal to 0, which is also a partition. In

12
00:00:36,100 --> 00:00:39,390
this case, a partition with a single element. And the third case

13
00:00:39,390 --> 00:00:42,540
is size greater than 0, which I will consider to be

14
00:00:42,540 --> 00:00:44,960
kind of the standard case. And actually let me do a, you

15
00:00:44,960 --> 00:00:48,220
know, slight aggression so when I was talking about designer bias. So

16
00:00:48,220 --> 00:00:50,630
this is a case in which designer bias might not make you

17
00:00:50,630 --> 00:00:53,050
think of using size less than 0 because you read the

18
00:00:53,050 --> 00:00:56,210
spec. And you sort of assume that the size will be positive.

19
00:00:56,210 --> 00:00:58,556
Whereas the right thing to do when we test is to consider

20
00:00:58,556 --> 00:01:01,700
the complete domain rather than just parts of it. So now let's

21
00:01:01,700 --> 00:01:04,760
look at string, str, and let's see what kind of sub

22
00:01:04,760 --> 00:01:06,538
domains we could identify for this

23
00:01:06,538 --> 00:01:08,670
parameter. And notice another important aspect

24
00:01:08,670 --> 00:01:12,290
here is that we treat each different part of the input independently,

25
00:01:12,290 --> 00:01:15,760
which also helps breaking down the problem. One interesting sub domain is

26
00:01:15,760 --> 00:01:18,980
the domain that includes all the strings whose length is less than

27
00:01:18,980 --> 00:01:22,310
size. So all the strings that will not be displayed. Another subdomain

28
00:01:22,310 --> 00:01:25,000
is all the strings with length which is between the value of

29
00:01:25,000 --> 00:01:28,350
size and twice the value of size. A third subdomain is the one

30
00:01:28,350 --> 00:01:31,820
including all the strings whose length is greater than twice the value

31
00:01:31,820 --> 00:01:35,140
of size. And we can continue and identify more and more subdomain.

32
00:01:35,140 --> 00:01:38,350
The key thing here is that we have to do that based

33
00:01:38,350 --> 00:01:41,180
on the domain. So we need to adapt what we just did here

34
00:01:41,180 --> 00:01:44,620
based on, on the specific domain involved and on the type

35
00:01:44,620 --> 00:01:47,190
of data in this domain. So at this point we said that

36
00:01:47,190 --> 00:01:49,630
there were two steps. One was to identify the subdomains and

37
00:01:49,630 --> 00:01:52,990
the second one was to pick values in this subdomain. The values

38
00:01:52,990 --> 00:01:55,320
that we'll actually use for the testing. In this case, we

39
00:01:55,320 --> 00:01:58,218
do not want to just pick any value. Rather we want to

40
00:01:58,218 --> 00:01:59,871
pick values that are particularly

41
00:01:59,871 --> 00:02:02,710
interesting, particularly representative. So what does

42
00:02:02,710 --> 00:02:05,800
that mean? Well, we're going to do that based on an intuitive idea.