-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsect10.xml
More file actions
690 lines (643 loc) · 22.6 KB
/
Copy pathsect10.xml
File metadata and controls
690 lines (643 loc) · 22.6 KB
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
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
<?xml version="1.0" encoding="UTF-8"?>
<sect1 id="docbook-apply"><title>DocBook在实际中的应用</title>
<para>
本章我们通过几个实例,体会一下 DocBook 在软件开发和管理过程中的应用。但 DocBook的应用不仅限于此,更多的应用等待着我们去实践。
</para>
<sect2><title>测试用例</title>
<para>
测试人员一直背负着效率低下的恶名。在大多数公司中,他们是中最不受重视的一个角色,在出现软件危机时,也是最先要受到“株连”的。我的一位担任测试经理的朋友,对此是深有感触。下面是他的牢骚:
</para>
<itemizedlist>
<listitem>
<para>
给测试留的时间不充分,又期望过高;
</para>
</listitem>
<listitem>
<para>
屡犯错误的开发人员被调到测试部门“改造”,导致测试人员的自尊受到挫折;
</para>
</listitem>
<listitem>
<para>
测试的计划性不强,谁也说不清一个回归测试到底测试了多少测试用例;
</para>
</listitem>
<listitem>
<para>
测试用例完全不成体系,即使有某个可以参照,又往往是落后和过时的;
</para>
</listitem>
<listitem>
<para>
测试部门不能有效的开发和维护测试工具,也没有对测试用例文档版本控制(Word格式的测试用例,实在是难以版本控制、难以多人维护)。
</para>
</listitem>
</itemizedlist>
<para>
您是否也遇到了同样的问题呢?
</para>
<para>
我们来帮助他寻找一下问题的症结所在吧。是什么原因导致测试的工作没有得到足够的重视呢?是因为看不到测试工作的价值。这又是为什么呢?测试工作没有秩序的,难以及时发现问题,当软件产品抱着极大的期望值上市的时候,漏洞百出,人们当然习惯性的反推,为什么没有能够测试出来?进一步会问,到底测试了哪些功能?如果这时测试部门回答不出,那么可能就要有人要承担责任了。这当然不一定是测试的错。但是测试部门能够拿出一整套测试用例文档,告诉项目经理,这些都是我们测试通过的。那么问题的焦点就回到了分析测试用例上了。是不是有发现问题的测试用例?如果有,是哪个测试人员的疏忽导致问题没有找到?如果是测试用例没有覆盖到,那么就应该借这个代价昂贵的机进一步补充和完善测试用例,确保不会再出现类似问题。
</para>
<para>
如果以上的分析大致正确的话,测试用例文档的积累,是重树测试部门形象的良机。DocBook正好适合这种需要持续积累的技术文档的撰写,再配合版本控制软件,建立一套可行的测试用例撰写和维护规范应该不难。当我把DocBook介绍给我的这位担任测试经理的朋友之后,他真的用 DocBook 改进了他的工作,得到领导的赏识。这不能不说是一个奇迹。
</para>
<para>
下面是改进的测试部门的工作流程:
</para>
<itemizedlist>
<listitem>
<para>
一个回归测试周期的整个过程,都要以文档化的测试用例为基础。任何工作都体现在文档中,工作就做到了心中有数;
</para>
</listitem>
<listitem>
<para>
测试用例要有统一的编号,一次回归测试测试就是有这一系列测试用例组成的;
</para>
</listitem>
<listitem>
<para>
测试用例要由全体测试人员共同维护,随时随地更新,而这还需要版本控制系统的介入;
</para>
</listitem>
<listitem>
<para>
规范的测试用例格式,内容要涵盖测试方法、输入和输出,还要包括测试中用到的模拟数据、自动化脚本等等;
</para>
</listitem>
<listitem>
<para>
采用DocBook,撰写可以持续维护的测试用例文档,享受版本控制。
</para>
</listitem>
</itemizedlist>
<para>
如<link linkend="g-9-1">图9-1</link>,是一个DocBook撰写测试用例的示例,后面是其代码。
</para>
<mediaobject>
<imageobject>
<imagedata fileref="images/sample-testcase.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>测试用例</phrase>
</textobject>
<caption>
<para>
<anchor id="g-9-1"/>图9-1. 用DocBook编写可以持续维护的测试用例
</para>
</caption>
</mediaobject>
<para>
测试用例的 DocBook 源代码
</para>
<programlisting>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.2b1//EN" [
<!ENTITY compname "<ulink url='mailto:yourname@email.address'>某某公司</ulink>">
]>
<article>
<articleinfo>
<title>B2B网站测试用例汇总</title>
<author><firstname>测试部</firstname></author>
<revhistory>
<revision>
<revnumber>1.1</revnumber>
<date>2002/12/11</date>
<authorinitials>David</authorinitials>
<revremark>添加测试用例2</revremark>
</revision>
<revision>
<revnumber>1.0</revnumber>
<date>2002/12/10</date>
<authorinitials>Johnson</authorinitials>
<revremark>添加测试用例1</revremark>
</revision>
</revhistory>
<abstract>
<para>
本文档作为公司的测试部门的测试用例汇总,是测试部门测试工作中的参考。有任何补充和更改的需要,请用 CVS 从服务器中Checkout本文档的源代码,修改完毕后,提交 CVS 服务器。测试部门的内部网站会在每小时重新编译改动过的文档。
</para>
<para>
&compname;, $Revision$, $Date$
</para>
</abstract>
</articleinfo>
<sect1><title>TESTB2B-0001</title>
<informaltable frame='all'> <co id="co.sample.testcase.informaltbl"/>
<tgroup cols='8' align='left' colsep='1' rowsep='1'>
<colspec colname='c1'/>
<colspec colname='c2'/>
<colspec colname='c3'/>
<colspec colname='c4'/>
<colspec colname='c5'/>
<colspec colname='c6'/>
<colspec colname='c7'/>
<colspec colname='c8'/>
<tbody>
<row>
<entry>项目编号</entry>
<entry>B2B</entry>
<entry>项目名称</entry>
<entry>电子商务网站测试</entry>
<entry>测试日期</entry>
<entry></entry> <co id="co.sample.testcase.blank"/>
<entry>测试人员</entry>
<entry></entry>
</row>
<row>
<entry>测试用例编号</entry>
<entry>TESTB2B-0001</entry>
<entry>测试用例名称</entry>
<entry>用户登录测试</entry>
<entry>作者</entry>
<entry>Johnson</entry>
</row>
<row>
<entry>测试用例描述(方法和目的)</entry>
<entry namest="c2" nameend="c8">
<para>测试登录界面对不同浏览器的兼容性;</para>
<para>测试异常输入对CGI的影响;</para>
</entry>
</row>
<row>
<entry>测试环境设置</entry>
<entry namest="c2" nameend="c8">
<para>测试平台:Windows 98 + IE4.0;Windows 98 + IE5.0;Windows 98 + IE6.0;Windows 2000 + IE5.0;Linux + Mozilla</para>
</entry>
</row>
</tbody>
</tgroup>
</informaltable >
<table frame='topbot'><title>测试步骤</title>
<tgroup cols='4' align='left' colsep='1' rowsep='1'>
<colspec colwidth='1*'/>
<colspec colwidth='20*'/>
<colspec colwidth='10*'/>
<colspec colwidth='5*'/>
<thead>
<row>
<entry>序号</entry><entry>操作</entry><entry>预期结果</entry><entry>实际结果</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>
<para>Windows 98 + IE4.0登录开发服务器:"http://10.0.0.99/servlet/login";</para>
<para>输入用户名密码:test/test555</para>
</entry>
<entry>
<para>登录成功,进入用户自定义界面。</para>
</entry>
<entry>
</entry>
</row>
<row>
<entry>2</entry>
<entry>
<para>Windows 98 + IE5.0登录开发服务器:"http://10.0.0.99/servlet/login";</para>
<para>输入用户名密码:test/test555</para>
</entry>
<entry>
<para>登录成功,进入用户自定义界面。</para>
</entry>
<entry>
</entry>
</row>
<row>
<entry>...</entry>
<entry>
<para>...</para>
<para>...</para>
</entry>
<entry>
<para>...</para>
</entry>
<entry>
</entry>
</row>
</table>
<note>
<para>
其他注意事项:
</para>
</note>
</sect1>
<sect1><title>TESTB2B-0002</title> <co id="co.sample.testcase.next"/>
<para>
...
</para>
</sect1>
</article>
</programlisting>
<calloutlist>
<callout arearefs="co.sample.testcase.informaltbl">
<para>
不带标题行的表格。
</para>
</callout>
<callout arearefs="co.sample.testcase.blank">
<para>
作为模板,此项留空,在实际测试过程中,该表格打印,手工填写存档。
</para>
</callout>
<callout arearefs="co.sample.testcase.next">
<para>
以追加方式增加新的测试用例。
</para>
</callout>
</calloutlist>
</sect2>
<sect2><title>项目日志</title>
<para>
目前介绍软件工程和项目管理的书是越来越多了。遍历各家之说,体会最深的是两个字:“沟通”。没有沟通,开发人员单枪匹马,重复着“前辈们”走过的路,缓慢的成长着。没有沟通,测试和开发团队就在没完没了的争吵中迎接项目的延期。没有沟通,部门之间的鸿沟足可以吓退客户。没有沟通,公司的决策人还在期盼着项目的成功的那一天,而不知道危险已经临近。沟通是这么样的重要,而项目经理就是这些沟通途径的交汇点。
</para>
<para>
每个公司都会对项目经理有着这样或者那样的沟通上的要求,比如常见的周计划、月计划。它们是是项目经理分解任务以及向直接上级汇报工作的重要工具。自从南开大学毕业以来的几年间,我做得最多的职位就是项目经理,已经不记得写了多少计划。很长一段时间,一旦写完计划,发出邮件便了事,计划也就在本地磁盘中不知去向。后来,在做项目总结时,有些里程碑事件实在是想不起来,只是依稀记得在某个项目计划中曾经提到过。于是,从邮件的故纸堆中查找,经常是费了半天劲一无所获。从此就有了把项目总结和项目日志积累起来的习惯。最开始的文档管理手段是比较落后的,直接放到文件服务器中,对于项目日志,就是每天在 Word 文档后面追加,直到有一天,一个不留神把项目日志整个覆盖掉了,那是可真是后悔不迭。有什么技术,可以对文档像对代码一样的版本控制呢?我发现了 DocBook,从此便用 DocBook 开始我的新的项目日志。
</para>
<para>
项目日志的文件格式是以一周为一个章节,每章节分为两个部分,日志部分是每天的“流水账”(记录比较重要的事件),周计划部分,是上周的项目总结和下一个星期的工作计划。如<link linkend="g-9-2">图9-2</link>。用 DocBook 维护你的项目日志,让你的领导对你刮目相看。
</para>
<mediaobject>
<imageobject>
<imagedata fileref="images/sample-diary.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>项目日志</phrase>
</textobject>
<caption>
<para>
<anchor id="g-9-2"/>图9-2. 用DocBook编写项目日志
</para>
</caption>
</mediaobject>
<mediaobject>
<imageobject>
<imagedata fileref="images/sample-weekly.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>项目周计划</phrase>
</textobject>
<caption>
<para>
<anchor id="g-9-3"/>图9-3. 用DocBook编写项目周计划
</para>
</caption>
</mediaobject>
<para>
以下是DocBook 源代码:
</para>
<programlisting>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.2b1//EN" [
<!ENTITY yourname "<ulink url='mailto:yourname@email.address'>Your Name</ulink>">
]>
<article>
<articleinfo>
<title>项目日志</title>
<author><firstname>作者姓名</firstname></author>
<abstract>
<para>
项目日志和项目计划,为项目组同志提供参考。
</para>
<para>
&yourname;, $Revision$, $Date$
</para>
</abstract>
</articleinfo>
<sect1 id="w021028"><title>1028--1101</title> <co id="co.diary.w021028"/>
<sect2 id="daily021028"><title>日志</title>
<itemizedlist>
<listitem> <co id="co.diary.1030"/>
<para>
2002/10/30, 3
</para>
<orderedlist>
<listitem>
<para>
完成任务:******
</para>
<para>
David
</para>
</listitem>
<listitem>
<para>
完成任务:******
</para>
<para>
Johnson
</para>
</listitem>
</orderedlist>
</listitem>
<listitem>
<para>
2002/10/29, 2
</para>
<orderedlist>
<listitem>
<para>
Seminar: ******
</para>
<para>
yzw
</para>
</listitem>
</orderedlist>
</listitem>
<listitem>
<para>
2002/10/28, 1
</para>
<orderedlist>
<listitem>
<para>
讨论需求:******
</para>
<para>
Mahui
</para>
</listitem>
</orderedlist>
</listitem>
</itemizedlist>
</sect2>
<sect2 id="weekly021028"><title>周报</title> <co id="co.diary.weekly021028"/>
<segmentedlist>
<segtitle>填表日期</segtitle><segtitle>填表人</segtitle><segtitle>时 间</segtitle><segtitle>主要工作</segtitle>
<seglistitem>
<seg>2002/10/28</seg>
<seg>Johnson</seg>
<seg>2002/10/28-2002/11/01</seg>
<seg>******</seg>
</seglistitem>
</segmentedlist>
<orderedlist>
<listitem> <co id="co.diary.weekplan"/>
<table frame='all'><title>本周工作计划表</title>
<tgroup cols='2' align='left' colsep='1' rowsep='1'>
<colspec colname='c1' colwidth="300pt" >
<colspec colname='c2' colwidth="80pt" >
<thead>
<row>
<entry>本周工作任务</entry>
<entry>相关人员</entry>
</row>
</thead>
<tbody>
<row>
<entry>
<para>
工作任务1...
</para>
</entry>
<entry>
人员1
</entry>
</row>
<row>
<entry>
<para>
工作任务1...
</para>
</entry>
<entry>
人员2
</entry>
</row>
<row>
<entry>
工作任务3...
</entry>
<entry>
人员3
</entry>
</row>
</tbody>
</tgroup>
</table>
<note>
<title>备注</title>
<para>
</para>
</note>
</listitem>
<listitem> <co id="co.diary.weeksummery"/>
<table frame='all'><title>上周项目进展</title>
<tgroup cols='2' align='left' colsep='1' rowsep='1'>
<colspec colname='c1' colwidth="300pt" >
<colspec colname='c2' colwidth="80pt" >
<thead>
<row>
<entry>任务名称</entry>
<entry>负责人</entry>
</row>
</thead>
<tbody>
<row>
<entry>
完成上周任务1...
</entry>
<entry>
人员1
</entry>
</row>
<row>
<entry>
完成上周任务2...
</entry>
<entry>
人员2
</entry>
</row>
<row>
<entry>
完成上周任务3...
</entry>
<entry>
人员3
</entry>
</row>
</tbody>
</tgroup>
</table>
<note>
<title>备注</title>
<para>
</para>
</note>
</listitem>
</orderedlist>
</sect2>
</sect1>
<sect1 id="w021021"><title>1021--1025</title> <co id="co.diary.weeklast"/>
<sect2 id="daily021021"><title>日志</title>
<para>
...
<para>
</sect2>
<sect2 id="weekly021021"><title>周报</title>
<para>
...
<para>
</sect2>
</sect1>
</article>
</programlisting>
<calloutlist>
<callout arearefs="co.diary.w021028">
<para>
10月28日到11月1日的一个星期的日志和周计划。每周开始一个新的章节。
</para>
</callout>
<callout arearefs="co.diary.1030">
<para>
10月30日(星期三)的项目日志。最新的日期总是在最前。每天的项目日志只需要重复拷贝一下前一天日志的结构即可。
</para>
</callout>
<callout arearefs="co.diary.weekly021028">
<para>
周计划开始,包括本周计划和上周项目进展。
</para>
</callout>
<callout arearefs="co.diary.weekplan">
<para>
本周工作计划。
</para>
</callout>
<callout arearefs="co.diary.weeksummery">
<para>
上周项目进展。
</para>
</callout>
<callout arearefs="co.diary.weeksummery">
<para>
上周项目进展。
</para>
</callout>
<callout arearefs="co.diary.weeklast">
<para>
上一个星期的项目日志和工作计划。
</para>
</callout>
</calloutlist>
</sect2>
<sect2><title>版本变更说明</title>
<para>
版本变更说明,又叫做"Release Notes","Changes",经常伴随着软件产品一道发布,提供给最终用户。该文档也可以在开发小组内部的参考。该文档的维护,意味着开发工作在继续,否则意味着项目的终结。该文档的维护也反映了软件开发中配置管理的水平以及软件开发对市场、对BUG的响应能力。
</para>
<para>
同时,该文档的维护非常频繁,而且用户需要的格式也是五花八门,如常见的网页格式,纯文本格式,PDF格式等。如何尽量保证该文档的更新和产品版本提升保持同步,是困扰很多项目组的一个难题。使用 DocBook 不难作出国际水准的版本变更说明。
</para>
<para>
<link linkend="g-9-4">图9-4</link> 就是一个版本变更说明的范例。
</para>
<mediaobject>
<imageobject>
<imagedata fileref="images/sample-changes.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>版本变更说明</phrase>
</textobject>
<caption>
<para>
<anchor id="g-9-4"/>图9-4. 版本变更说明
</para>
</caption>
</mediaobject>
<para>
以下是DocBook 源代码:
</para>
<programlisting>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.2b1//EN" [
<!ENTITY yourname "<ulink url='mailto:yourname@email.address'>Your Name</ulink>">
]>
<article>
<articleinfo>
<title>Linktrust Cyberwall 2.4版本变更说明书</title>
<author><firstname>作者姓名</firstname></author>
<revhistory>
<revision>
<revnumber>1.4</revnumber>
<date>2002/11/29</date>
<authorinitials>caijm</authorinitials>
<revremark>
补充 2.4.0040版本更改记录;
</revremark>
</revision>
</revhistory>
<abstract>
<para>
记录当前版本号(build number)下,添加的新功能和修改的BUG。
</para>
<para>
&yourname;, $Revision$, $Date$
</para>
</abstract>
</articleinfo>
<sect1><title>Build 2.4.0040 Major changes</title>
<sect2><title>版本信息</title>
<segmentedlist><title>版本信息</title>
<segtitle>版本号</segtitle>
<segtitle>编译日期</segtitle>
<segtitle>Cyberwall Label</segtitle>
<segtitle>LTOS Tag</segtitle>
<segtitle>描述</segtitle>
<seglistitem>
<seg>2.4.0040</seg>
<seg>20021128</seg>
<seg>2.4.0040-last</seg>
<seg>LTOS24B_021128_DONTPANIC</seg>
<seg>collect crash data</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2><title>New features or changes since Build 2.4.0039</title>
<itemizedlist>
<listitem>
<para>
panic后把信息写到磁盘;[xucm]
</para>
</listitem>
<listitem>
<para>
加入了对Intel 82543/82544/82545 系列千兆卡的支持;[xucm]
</para>
</listitem>
<listitem>
<para>
change lt software dog timeout from 10 seconds to 8 seconds;[song]
</para>
</listitem>
<listitem>
<para>
修改tcp状态机算法;[song]
</para>
</listitem>
<listitem>
<para>
WEB界面ha增加心跳线设置;[wuzj]
</para>
</listitem>
</itemizedlist>
</sect2>
<sect2><title>Bugs fixed since Build 2.4.0039</title>
<itemizedlist>
<listitem>
<para>
fix vrrp interface number checking problem; [qianxb]
</para>
</listitem>
<listitem>
<para>
改正WEB界面“应用”后ie浏览器上方的显示调用情况的黑色地球标志一直转动的问题;[mahui]
</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
</article>
</programlisting>
</sect2>
</sect1>