Object-Oriented Analysis and Design Using UML 翻译与学习 (M-C)

来源:互联网 发布:企鹅聊天软件 编辑:程序博客网 时间:2024/06/07 23:38

测试软件解决方案


目标

完成这个章节(模块),你应该可以:

1、定义三种主要的系统测试类型

2、基于用例开发一个功能性测试计划


进程图



定义系统测试

The  test  workflow  is  meant  to  “ verify  that  the  system  correctly implements  its  specification .” 

                                                                                    (Jacobson,  Booch,  and  Rumbaugh page 55)

测试工作流意味着验证系统是否正确地实现了它的说明书。

                                                                              ----Jacobson,  Booch,  and  Rumbaugh 第55页


有大量的测试可以采取:

1、单元(测试)

2、集成(测试)

3、功能(测试)

4、回归(测试)

5、压力(测试)

6、边界条件(测试)

7、可用性(测试)


单位测试

“ A test written from the perspective of the programmer .”        (Beck page 179)

一个测试,是从程序员的视角被写下来。 ---- Beck 第179页


1、单元测试验证独立组件的行为。

2、单元测试经常被程序员所写。


集成测试

“ Integration testing tests multiple components that have each received prior and separate unit testing .”

                                                                                                                                (Whittaker page 77)

集成测试测试多个组件,这些组件相互有被认为标准的优先级和分割单元测试。

                                                                                                         ----Whittaker 第77页

1、集成测试验证组件,子系统,完整系统的之间的行为

2、集成测试经常被测试专家或开发团队所写

3、集成测试应该逐渐随着系统逐渐被建而被建


功能测试

“ Most  functional  tests  are  written  as  black  box  tests  working  off  a functional specification. ”    (Chillarege page 3)

大多数功能测试是被写作黑盒测试,工作(基于)为功能说明书。   ----Chillarege 第3页


1、功能测试从用户的视角验证系统的行为

2、功能测试应该被测试专家联合用户团体所写

3、功能测试基于用例系统用例加上丰富多样的场景


开发一个功能测试

一个功能测试是基于系统用例所写的

1、为测试基于用例场景声明的输入定义输入

2、说明测试的结果

3、说明在什么样条件的条件下测试

4、写多样的测试去检查失败处理,边界条件等等


定义功能输入

功能测试输入包括所有要从用户界面输入到系统的数据

例子:(E1:创建预定)

1、旅馆预定软件和Santa Cruz的床还有早餐一起运行

2、预定的开始和结束的日期分别是从2002年1月31日到2002年2月5日

3、需要的房间类型是双人

4、房间搜索时选择蓝色的房间

5、客户搜索时输入Jane Googol

6、输入合法的信用卡号码


定义功能测试结果

功能测试结果包括任何系统产生输出和任何系统的持久状态改变

例子:(E1:创建预定)

1、一个为Jane Googol出现的新预定

2、预定的状态为“已确认”

3、预定和蓝色房间有关联(进蓝色房间)

4、预定的支付实体记录正确的信用卡号


定义功能测试条件

功能测试条件包括在数据库中明确存在的实体和外部系统已经存在的存根及数据。

例子:(E1:创建预定)

1、数据库包含Santa Cruz的床和早餐特性,并且和双人的蓝色房间关联在一起

2、Jane Googol在数据库是一个合法的顾客

3、对于外部信用卡授权的带有数据的系统的有一个存根存在,用例测试信用卡

4、没有其他并发测试和那张信用卡账户交互


创建功能测试变体

测试变体是基于一个用例场景和探索系统的状态空间

例子:(E1:创建预定)

1、包括一个变体,有多个顾客包含同一个名字,如Jhon Smith

2、包括一个变体,有房间搜索产生没有空房

3、包括一个变体,顾客信用卡没有授权,然后顾客提供第二张信用卡


记录测试用例

1、所有的测试用例都应该被保存在测试计划文档中

2、每一个功能测试应该追踪回到SRS文档中的用例

3、如果系统大,那么测试文档被分裂成独立的文档--一个对应一个主要的系统增量

4、测试计划应该被顾客认可

5、其他类型测试(例如负载和可用性测试)通常被分开记录


总结

1、测试对软件工程的成功至关重要

2、除了单元测试和集成测试以外,没有其他测试被开发团队开发和执行

3、功能测试由系统用例场景开发而来

4、功能性变体被创建去测试边界条件和系统鲁棒性




//2017年4月15日20:30:42 一天一章,时间不等人


//另外,鄙人从事软件开发,英语过6级,求兼职
//联系我,邮箱:bourne_w@sina.com

交个朋友吧



0 0