SlideShare a Scribd company logo
1 of 186
ThinkBank International Software R&D Center




                     65 天测试工程师成功之路
                                  培训指导手册
                                              版本:<1.0>




Improving processes for better products
思远教育

2006 Oct.
浪潮软件版权所有。保留所有权利。
目             录

一、软件测试( SOFTWARE TEST) ......................................................................................................7
       1、前景(Future)...........................................................................................................................7
       2、岗位特性(Work speciality)....................................................................................................7
       3、软件测试(SoftWare Test).......................................................................................................8
         3.1 什么是软件测试(What is SoftWare Test).....................................................................8
         3.2 软件测试的目的(Objective)..........................................................................................8
         3.3 软件测试的原则(Test Principia)...................................................................................9
         3.4 软件测试的对象(Test Object).......................................................................................9
         3.5 软件测试方法(Method).................................................................................................9
二、 测试工作流程及规范 .......................................................................................................................11
       1、计划与设计阶段(Plan & Design)........................................................................................11
         1.1 成立测试团队(Team)...................................................................................................11
         1.2 测试预通知........................................................................................................................11
         1.3 召开测试启动会议...........................................................................................................11
         1.4 编写测试计划文档...........................................................................................................12
         1.5 设计测试用例...................................................................................................................12
       2、实施测试阶段...........................................................................................................................13
         2.1 实施测试用例()...........................................................................................................13
         2.2 提交报告(Bug Report).................................................................................................13
         2.3 回归测试(Regressive Test)..........................................................................................14
       3、总结阶段...................................................................................................................................14
         3.1 编写测试报告...................................................................................................................14
         3.2 测试工作总结...................................................................................................................15
         3.3 测试验收...........................................................................................................................15
         3.4 测试归档...........................................................................................................................15
       4、缺陷跟踪...................................................................................................................................16
       5、测试工作流程图.......................................................................................................................16
三、 缺陷() ............................................................................................................................................19
       1、Bug 管理 ..................................................................................................................................19
          1.1 错误(bug)跟踪管理系统.............................................................................................20
          1.2 软件错误的状态...............................................................................................................20
          1.3 Bug 管理的一般流程 ......................................................................................................20
          1.4 软件错误流程管理要点 .................................................................................................21
       2、Bug 生命周期 ..........................................................................................................................21
四、 WEB 应用程序测试方法和测试技术详述 .....................................................................................21
       1、界面测试 .................................................................................................................................22
       2、功能测试 .................................................................................................................................23
       3、负载压力测试(StressTest) ......................................................................................................25
       4、回归测试 (Regression Test) ....................................................................................................26
       5 、Alpha 和 Beta 测试 (Alpha and Beta Test): ...........................................................................26
       6、不同的测试技术区分 .............................................................................................................26
          6.1 覆盖测试技术 .................................................................................................................26
          6.2 白盒测试和黑盒测试技术 .............................................................................................26
          6.3 手工测试和自动化测试 .................................................................................................26
          6.4 根据 RUP 标准按阶段区分测试 ...................................................................................27
7.存在风险及解决方法 ................................................................................................................27
       8. 软件缺陷的原则 .......................................................................................................................27
       9.文档测试 ....................................................................................................................................27
五、系统测试 ..............................................................................................................................................28
       1、介绍...........................................................................................................................................28
       2、系统测试规程...........................................................................................................................29
       3、 实施建议.................................................................................................................................30
       4、系统测试的目标.......................................................................................................................31
       5、系统测试的方针.......................................................................................................................31
       6、系统测试的过程.......................................................................................................................31
六、 TEST DIRECTOR 7.6.........................................................................................................................32
       1、概述(Introduction)...............................................................................................................32
         1.1 测试管理过程(The Test Management Process)..........................................................32
         1.2 需求定义(Specify Requirements)................................................................................32
         1.3 测试计划(Planning Tests)............................................................................................33
         1.4 测试执行(Running Tests)............................................................................................34
         1.5 缺陷跟踪(Tracking Defects)........................................................................................35
         1.6 用户权限(User Privileges)...........................................................................................36
       2、开始(Getting Started)...........................................................................................................36
         2.1 启动 TestDirector(Starting TestDirector).....................................................................36
         2.2 TestDirector 窗口(The TestDirector Window)............................................................37
         2.3 TestDirector 工具栏(The TestDirector Toolbar)..........................................................39
         2.4 修改密码(Changing Passwords)..................................................................................39
         2.5 修改用户属性(Changing User Properties)..................................................................40
         2.6 清除历史记录(Clearing History)................................................................................40
       3、需求定义工作流.......................................................................................................................41
         3.1 定义测试范围(Defining the Testing Scope)...............................................................42
         3.2 创建测试需求大纲(Creat Requirements)...................................................................42
         3.3 定义需求(Detail Requirements)..................................................................................43
         3.4 分析需求定义(Analyz Requirements)........................................................................43
       4、需求模块一览...........................................................................................................................43
         4.1 需求模块(The Requirements Module).......................................................................43
         4.2 需求菜单栏(The Requirements Menu Bar)................................................................45
         4.3 需求工具栏(The Requirements Toolbar)....................................................................45
         4.4 需求树(Requirements Tree).........................................................................................46
       5、开发需求树(Developing Requirements Tree).....................................................................47
         5.1 创建需求树(Creating a Requirements Tree)...............................................................47
         5.2 查看关联缺陷(Viewing Associated Defects)..............................................................48
         5.3 从需求创建测试(Creating Tests from Requirements)................................................49
       6、测试计划工作流(The Test Plan Workflow)........................................................................53
         6.1 定义测试策略(Defining Testing Strategy)..................................................................54
         6.2 定义测试主题(Defining Test Subjects).......................................................................54
         6.3 设计测试(Planning Tests)............................................................................................54
         6.4 创建需求覆盖(Creating Requirements Coverage).....................................................54
         6.5 设计测试步骤(Designing Test Steps).........................................................................55
         6.6 自动测试(Automating Tests).......................................................................................55
         6.7 分析测试计划(Analyzing Your Test Plan)..................................................................55
       7、测试计划模块一览(The Test Plan Module at a Glance)....................................................56
         7.1 测试计划模块(The Test Plan Module)........................................................................56
         7.2 测试计划菜单栏(The Test Plan Menu Bar)................................................................57
7.3 测试计划工具栏(The Test Plan Toolbar)....................................................................57
       8、连接测试到需求(Linking Tests to Requirements)..............................................................60
          8.1 关于连接测试到需求(About Linking Tests to Requirements)...................................60
          8.2 连接需求到一个测试(Linking Requirements to a Test)............................................62
          8.3 连接测试到一个需求(Linking Tests to a Requirement)............................................64
          8.4 连接需求和测试覆盖(Linking Requirements and Tests Coverage)..........................66
       9、测试实验室工作流(Execute Tests).....................................................................................66
          9.1 创建测试集(Creating Tests Sets).................................................................................67
          9.2 制定测试运行安排(Scheduling Test Runs)................................................................67
          9.3 运行手动测试(Running Tests Manually)....................................................................67
          9.4 运行自动测试(Running Tests Automatically)............................................................67
          9.5 分析测试结果(Analyzing Test Results)......................................................................67
       10、Test Lab 模块一览...................................................................................................................68
          10.1 Test Lab 模块(The Test Lab Module)........................................................................68
          10.2 Test Lab 菜单栏(The Test Lab Menu Bar)................................................................69
          10.3 Test Lab 工具栏(The Test Lab Toolbars)..................................................................69
          10.4 执行网格(The Execution Grid).................................................................................70
          10.5 执行流程(The Execution Flow)................................................................................72
       11、缺陷..........................................................................................................................................75
          11.1 添加缺陷.........................................................................................................................75
          11.2 缺陷生命周期..................................................................................................................76
       12、TD 的备份...............................................................................................................................77
          1、DomsInfo 目录..................................................................................................................77
          2、域存储区...........................................................................................................................77
          3、数据库...............................................................................................................................77
七、黑盒测试 ..............................................................................................................................................78
       1、的测试用例设计方法...............................................................................................................78
         1.1 等价类划分.......................................................................................................................78
         1.2、边界值分析法................................................................................................................79
         1.3、错误推测法....................................................................................................................79
         1.4、因果图法........................................................................................................................80
         1.5、判定表驱动分析方法....................................................................................................80
       2、黑盒测试的优点.......................................................................................................................81
       3、黑盒测试的缺点.......................................................................................................................81
       4、黑盒测试(功能测试)工具的选择 .....................................................................................81
八、测试用例 ..............................................................................................................................................82
       1、如何写测试用例.......................................................................................................................82
         1.1 测试的来源,即测试的需求...........................................................................................82
         1.2 用例的组织方式...............................................................................................................82
         1.3 用例与其他材料的关联方式...........................................................................................83
         1.4 用例应包含的信息...........................................................................................................83
       2、测试用例模板和例子...............................................................................................................83
       3、测试用例设计的误区...............................................................................................................85
       4、测试用例在软件测试中的作用 .............................................................................................86
       5、试用例编号规则.......................................................................................................................87
九、集成测试 ..............................................................................................................................................87
       1、集成测试过程...........................................................................................................................89
       2、集成测试工作内容及其流程...................................................................................................89
       3、集成测试需求获取...................................................................................................................90
4、集成测试工作机制...................................................................................................................90
       5、集成测试产生的工件清单.......................................................................................................91
       6、集成测试常用方案选型...........................................................................................................91
         6.1 自底向上集成测试 ·......................................................................................................92
         6.2 核心系统先行集成测试·................................................................................................93
         6.3 高频集成测试...................................................................................................................93

        实例:集成测试计划书 模版......................................................................................................94
十、 JUNIT....................................................................................................................................................99
       1、JUnit 概论..................................................................................................................................99
       2.JUnit 框架................................................................................................................................100
          2.1 Test...................................................................................................................................101
          2.2 TestCase...........................................................................................................................101
          2.3 TestSuite..........................................................................................................................102
          2.4 Assert...............................................................................................................................103
          2.5 TestResult........................................................................................................................104
          2.6 TestRunner.......................................................................................................................105
       3.JUnit 实战................................................................................................................................105
          3.1 TestCase 生成及使用......................................................................................................105
          3.2 JUnit 的测试步骤............................................................................................................108
十一、 NUNIT............................................................................................................................................108
       1、简介.........................................................................................................................................108
       2、NUnit 的框架..........................................................................................................................109
       3、NUnit 的三大特征...................................................................................................................111
          3.1 TestFixtureAttribute.........................................................................................................111
          3.2 TestAttribute.....................................................................................................................111
          3.3 Assert...............................................................................................................................112
       4、NUnit 脚本编写和核心概念..................................................................................................114
       5、SetUP/TearDown 属性............................................................................................................115
       6、ExpectedException..................................................................................................................116
       7、Ignore 属性 ............................................................................................................................117
       8、TestFixtureSetUp/TestFixtureTearDown ................................................................................118
       9、Test Suite..................................................................................................................................119
       10、Explicit 属性..........................................................................................................................121
       11、Expected Exception 属性 ....................................................................................................122
十二、单元测试 ........................................................................................................................................123
       1、单元测试概述 .......................................................................................................................123
       2、单元测试的基本方法.............................................................................................................124
         2.1 单元测试任务.................................................................................................................124
         2.2 单元测试过程.................................................................................................................125
       3、测试代码编写.........................................................................................................................126
       4、测试用例.................................................................................................................................128
       5、白盒覆盖 ...............................................................................................................................129
       6、白盒测试中的六种覆盖方法.................................................................................................130
         6.1 语句覆盖.........................................................................................................................130
         6.2 判定覆盖.........................................................................................................................131
         6.3 条件覆盖.........................................................................................................................131
         6.4 判定/条件覆盖................................................................................................................132
         6.5 组合覆盖.........................................................................................................................132
         6.6 路径覆盖.........................................................................................................................133
十三、 WINRUNNER ...............................................................................................................................134
      1、 WinRunner 测试模式............................................................................................................134
      2、 WinRunner 测试过程............................................................................................................135
      3、WinRunner 框架......................................................................................................................136
      4、WinRunner 的脚本录制..........................................................................................................138
         4.1 选择录制模式.................................................................................................................138
         4.2 创建测试步骤.................................................................................................................139
         4.3 解决常见录制问题.........................................................................................................139
         4.4 模拟录制.........................................................................................................................140
         4.5 检查点.............................................................................................................................140
         4.6 数据驱动测试.................................................................................................................141
         4.7 同步点.............................................................................................................................141
         4.8 测试信息文档化.............................................................................................................141
十四、 LOADRUNNER.............................................................................................................................143
      1、LoadRunner 组件简介............................................................................................................144
      2、基本步骤.................................................................................................................................144
      3、安装 LoadRunner 中文版.......................................................................................................145
          3.1 系统要求.........................................................................................................................145
          3.2 安装过程.........................................................................................................................146
      4.项目背景介绍.........................................................................................................................148
          4.1 背景概述.........................................................................................................................148
          4.2 压力测试用例.................................................................................................................148
      5.使用 LoadRunner 进行负载/压力测试..................................................................................151
          5.1 录制基本的用户脚本.....................................................................................................151
          5.2 完善测试脚本.................................................................................................................153
          5.3 单机运行测试脚本.........................................................................................................161
      6 实施测试.....................................................................................................................................161
          6.1 选择脚本,创建虚拟用户.............................................................................................161
          6.2 添加 windows 资源监视窗口.........................................................................................164
          6.3 添加 windows 性能计数器.............................................................................................164
          6.4 执行脚本.........................................................................................................................166
          6.5 分析结果.........................................................................................................................166
      7、分析以及监视场景.................................................................................................................167
          7.1 Memory 相关...................................................................................................................168
          7.2 Processor 相关.................................................................................................................170
          7.3 网络吞吐量以及带宽.....................................................................................................173
          7.4 磁盘相关.........................................................................................................................173
          7.5 Web 应用程序.................................................................................................................174
          7.6 SQL Server......................................................................................................................176
          7.7 Network Delay.................................................................................................................178
      8 分析实时监视图表....................................................................................................................179
      9 经常遇到的问题........................................................................................................................179
          9.1 VuGen 的问题.................................................................................................................179
          9.2 Controller 的问题............................................................................................................180
          9.3 计数器的问题.................................................................................................................180
      10 结果分析..................................................................................................................................181
一、软件测试(Software Test)


1、前景(Future)

  根据有关职位统计资料显示,在国外大多数软件公司,1 个软件开发工程师就需要辅
有 2 个软件测试工程师。目前,软件测试自动化技术在我国则刚刚被少数业内专家所认知,
而这方面的专业技术人员在国内更是凤毛麟角。根据对近期网络招聘 IT 人才情况的了解,
许多正在招聘软件测试工程师的企业很少能够在招聘会上顺利招到合适的人才。
  随着中国 IT 行业的发展,产品的质量控制与质量管理正逐渐成为企业生存与发展的
核心。从软件、硬件到系统集成,几乎每个中大型 IT 企业的产品在发布前都需要大量的质
量控制、测试和文档工作,而这些工作必须依靠拥有娴熟技术的专业软件人才来完成。而软
件测试工程师就是其中之一,目前已成为各类科技企业紧急征召的重要对象。
  因此,在企业内部,软件测试工程师基本处于“双高”地位,即地位高、待遇高,有
的人月薪可高达 8000 元。可以说他们的职业前景非常广阔,从近期的企业人才需求和薪金
水平来看,软件测试工程师的年工资有逐年上升的明显迹象。测试工程师这个职位必将成
为 IT 就业的新亮点。


2、岗位特性(Work speciality)

1、工作起点高,发展空间大
  开始工作即进入大、中型软件企业,后期转行也容易。
  目前,单独设立测试部门、对测试工程师有强烈需求的企业大多是较大规模的软件企
业。因此,测试工程师并不像一般的软件工程师那样需要在小企业积累一定经验后方能获
得大企业的入门通行证。
  软件测试员、软件测试工程师,经过一至两年的工作实践后,还可以到 IT 企业应聘软
件测试主管、项目主管、行业专家、自动化测试专家、 需求分析师、
                        QA、    客户服务/支持等职位。
2、职业寿命长,越老越吃香
  使用专业测试工具,经验增加价值,软件测试工程师越老越吃香。
  质量是产品的灵魂,测试工作在软件开发过程中的地位将越来越重要。而专业的测试
人员,需要熟练运用专业的测试工具来提高测试工作的效率,随着测试经验的积累,“资
深” 的测试工程师会测得更快、测得更准、测得更全面,从而将越来越“值钱”。
  “软件测试工程师是一个越老越吃香的职业。”著名软件测试专家、清华大学教授郑人
杰如是说。他说软件测试工作是对质量的把关,其中包含技术及管理等方面的工作,工作
相对稳定,对年龄没有限制。而且随着项目经验的不断增长和对行业背景的深入了解,会
越老越吃香。
3、工作更稳定,不用频繁“跳”
  大型企业用人制度好,岗位难替代,不需要频繁跳槽。
  一般来说,大型企业在用人方面制度更加完善,劳动保障体系更加健全,员工的福利
待遇更有保障。在目前只有大中型软件企业有专门的测试部门的情况下,测试工程师比较
容易一开始就进入大中型企业工作,因此更有安全感和归属感,其工作也将更加稳定。另
一方面,测试工作由于要具备系统的测试知识、运用专业的测试工具,技术含量比较高,
因此测试 工程师不可能轻易地被替代,职业安全感高。
4、薪水待遇好 ,“钱”景被看涨
  软件质量的把关者,人才凤毛麟角,薪酬上升空间非常大。
  质量是企业的生命线,测试工程师作为软件质量的把关者,因为职位的重要而有较高
的待遇就顺理成章了。另外,“物以稀为贵” 的市场规律也使得当前极为紧俏的测试工程
师“钱景看好”。
  并且现在我国的软件测试职业还处于一个发展的阶段,随着软件行业对产品质量重视
程度的提高,受过系统培训、掌握先进测试技术的软件测试从业人员的薪酬上升空间大。从
近期的企业人才需求和薪金水平来看,软件测试工程师的年工资还有逐年上升的明显趋势。
5、性别无偏好,没有就业歧视
  不太依赖个人创新能力和工作强度,男女都能胜任。
  软件测试工程师对性别没有具体要求,不像许多 IT 职位那样,更加偏好于男性。在 IT 业,
竞争异常激烈,从业者往往要面对巨大的工作压力,而高强度的工作压力,则是对人们脑
力、体力的双项考验。因此,用人单位对许多职位的招聘更偏向于男性,软件测试工程师相
比之下,工作过程和结果不太依赖于个人创新能力和工作强度,更需要的是熟练程度、耐
心、责任心和自信心,所以说软件测试工作也比较适合女性的,很多的软件公司测试部门
女性占了一定比例的。对于女性要从事软件测试 IT 方面的职业,只要肯下功夫,软件测试
对她的发展有很大好处所以,对人才的性别也就没有什么特别的要求。


3、软件测试(SoftWare Test)


3.1 什么是软件测试(What is SoftWare Test)

  软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开
发之前所提出的一些要求。软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和
编码的最终复审,是软件质量保证的关键步骤。软件测试是为了发现错误而执行程序的过程。软
件测试在软件生存期中横跨两个阶段:通常在编写出每一个模块之后就对它做必要的测试(称
为单元测试)。编码和单元测试属于软件生存期中的同一个阶段。在结束这个阶段后对软件系统
还要进行各种综合测试,这是软件生存期的另一个独立阶段,即测试阶段。


3.2 软件测试的目的(Objective)

    软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情(Do
the right thing),另一方面是确认软件以正确的方式来做了这个事件(Do it right)。
    第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。
    第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。            如果一个软件产
品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的
第三个目的是保证整个软件开发过程是高质量的。
    软件质量是由几个方面来衡量的:一、在正确的时间用正确的的方法把一个工作做正确
(Doing the right things right at the right time.)。 符合一些应用标准的要求,比如不同国家的
                                                  二、
用户不同的操作习惯和要求,项目工程中的可维护性、                                 可测试性等要求。 质量本身就是软件三、
达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量(Quality is
defined as conformance to requirements, not as “goodness” or “elegance”.)。 质量也代表着它符
                                                                          四、
合客户的需要(Quality also means “meet customer needs”.)。              作为软件测试这个行业,最重要的
一件事就是从客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过
程中会遇到什么样的问题。只有这些问题都解决了,软件产品的质量才可以说是上去了。
    测试人员在软件开发过程中的任务:
                 1               、               寻              找           Bug       ;
        2    、     避      免       软      件      开   发     过      程     中   的    缺   陷 ;
           3       、         衡           量        软       件         的      品      质   ;
    4、关注用户的需求。
    总的目标是:确保软件的质量。


3.3 软件测试的原则(Test Principia)

   软件测试从不同的角度出发会派生出两种不同的测试原则,从用户的角度出发,就是希望
通过软件测试能充分暴露软件中存在的问题和缺陷,从而考虑是否可以接受该产品,从开发者
的角度出发,就是希望测试能表明软件产品不存在错误,已经正确地实现了用户的需求,确立
人们对软件质量的信心。
   为了达到上述的原则,那么需要注意以下几点:
   1.应当把“尽早和不断的测试”作为开发者的座右铭
   2.程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完。
   3.设计测试用例时应该考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况
要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。
   4.一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。
   5.对测试错误结果一定要有一个确认的过程,一般有 A 测试出来的错误,一定要有一个
B 来确认,严重的错误可以召开评审会进行讨论和分析。
   6.制定严格的测试计划,并把测试时间安排的尽量宽松,不要希望在极短的时间内完成
一个高水平的测试。
   7.回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多的错误出现的现
象并不少见。
   8.妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。


3.4 软件测试的对象(Test Object)

  软件测试并不等于程序测试。软件测试应该贯穿整个软件定义与开发整个期间。因此需求分
析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规
格说明、详细设计规格说明以及源程序,都应该是软件测试的对象。
  在对需求理解与表达的正确性、设计与表达的正确性、实现的正确性以及运行的正确性的验
证中,任何一个环节发生了问题都可能在软件测试中表现出来。


3.5 软件测试方法(Method)

1、按阶段划分:
1.1 单元测试
    单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动
态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。
因为单元测试需要知道内部程序设计和编码的细节知识,一般应由程序员而非测试员来完成,
往往需要开发测试驱动模块和桩模块来辅助完成单元测试。因此应用系统有一个设计很好的体
系结构就显得尤为重要。
     一个软件单元的正确性是相对于该单元的规约而言的。因此,单元测试以被测试单位的规
约为基准。单元测试的主要方法有控制流测试、数据流测试、排错测试、分域测试等等。
1.2 集成测试
     集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口
是否正确。它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运
行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶
向下和自底向上两种。
1.3 系统测试
     系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等
满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测
试的“先知者问题”。   因此,系统测试应该按照测试计划进行,其输入、输出和其他动态运行行
为应该与软件规约进行对比。   软件系统测试方法很多,主要有功能测试、性能测试、随机测试等
等。
1.4 验收测试
     验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系
统测试的测试数据的子集。所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至
是在软件安装使用的现场。这是软件在投入使用之前的最后测试。
1.5 回归测试
      回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行
的修改是否正确。这里,修改的正确性有两重含义:一是所作的修改达到了预定目的,如错误
得到改正,能够适应新的运行环境等等;二是不影响软件的其他功能的正确性。
1.6 Alpha 测试
     在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。这种测试
一 般 由最终 用户 或其他人员员完 成,不能 由程序 员或测试 员完成。
1.7 Beta 测试
     当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。这种
测试一般由最终用户或其他人员员完成,不能由程序员或测试员完成。

2、按测试方法划分:
2.1 白盒测试
   白盒测试也称结构测试或逻辑驱动测试,是指基于一个应用代码的内部逻辑知识,即基于
覆盖全部代码、  分支、路径、条件的测试,它是知道产品内部工作过程,可通过测试来检测产品
内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的
每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动 、
基路测试等,主要用于软件验证。
   “白盒”法全面了解程序内部逻辑结构、 对所有逻辑路径进行测试。          “白盒”法是穷举路径测
试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试
数据。  贯穿程序的独立路径数是天文数字。 但即使每条路径都测试了仍然可能有错误。          第一,穷
举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测
试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的
错误。
  白盒测试可以借助一些工具来完成如 Junit Framework,Jtest 等。
2.2 黑盒测试
    黑盒测试是指不基于内部设计和代码的任何知识,而基于需求和功能性的测试,黑盒测试
也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是
否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构
和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明
书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信
息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推
测等,主要用于软件确认测试。
  “黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。
“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查
出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还
要对那些不合法但是可能的输入进行测试。



二、 测试工作流程及规范


1、计划与设计阶段(Plan & Design)



1.1 成立测试团队(Team)

  在项目组成立的同时,测试组也将同时成立。团队成立的工作与责任如下:

 过程要点       详细说明
 输入条件       项目组成立(参与《项目计划书》的评审)
 工作内容       为测试组任命一名测试经理,同时确定测试组的构成人选。
 退出标准       测试组成立
 责任人        项目经理
                    图表 1


1.2 测试预通知

  在正式测试任务下达前,开发团队应提前一周左右向测试团队下达预通知,告之较为确切
的测试日期,提供当前最新的相关资料。测试组长可视具体情况决定是否需要调整人力。测试人
员可预先熟悉必要的背景资料,协助测试组长编写《测试计划书》初稿。

   过程要点     详细说明
 输入条件       项目进入软件实现阶段(编码)
 工作内容       项目经理邮件通知测试组长正式测试交接时间,测试规模预估等
 退出标准       预通知得到测试组长确认,并提交《测试计划书》初稿
 责任人        项目经理,测试组长
                    图表 2


1.3 召开测试启动会议

 过程要点       详细说明
输入条件      测试组长完成测试计划书初稿
          开发团队与测试团队交接测试内容,对测试目标达成一致,商讨测
工作内容
          试计划初稿的可行性,统一项目组的目标和测试的工作重点。
          明确测试内容与重点,项目方提交《测试任务书》,测试方提交《测
退出标准
          试计划书》正稿。
责任人       产品经理,测试组长
                  图表 3


1.4 编写测试计划文档

 需求分析文档确立后,测试组需要编写测试计划文档,为后续的测试工作提供直接的指导

过程要点      详细说明
输入条件      项目需求文档建立
          根据项目的需求文档,按照测试计划文档模板编写测试计划。测试
          计划中应该至少包括以下关键内容:
             测试需求——需要测试组测试的范围,估算出测试所花费的人
              力资源和各个测试需求的测试优先级
             测试方案——整体测试的测试方法和每个测试需求的测试方法
             测试资源——本次测试所需要用到的人力、硬件、软件、技术的
              资源
工作内容
             测试组角色——明确测试组内各个成员的角色和相关责任
             里程碑——明确标准项目过程中测试组应该关注的里程碑
             可交付工件——在测试组的工作中必须向项目组提交的产物,
              包括测试计划、测试报告等等
             风险管理——列举出测试工作所可能出现的风险
          测试计划编写完毕后,必须提交给项目组全体成员,并由项目组组
          中各个角色组联合评审。
           测试计划由项目组评审通过.
             在项目开发过程中,要适时的对测试计划进行跟踪,以评估此
退出标准
              计划的完整性、可行性,在项目结束时还要最后评估一下测试
            计划的质量
责任人       测试组长
                    图表 4


1.5 设计测试用例

 在需求分析文档确立基线以后,测试组需要针对项目的测试需求编写测试用例,在实际的
测试中,测试用例将是唯一实施标准。在用例的编写过程中,具体的任务和责任人如下:
 过程要点      详细说明
 输入条件      测试需求明确,测试计划明确
 工作内容      根据每一步测试计划编写全部的测试用例
 退出标准      测试用例需要覆盖所有的测试需求
 责任人       测试用例设计工程师(可由测试实施工程师或测试组长兼做)
                   图表 5


2、实施测试阶段


2.1 实施测试用例()

  实施测试用例将花费测试组绝大部分时间,这些工作都是建立在前期很多计划工作的基础
上。
 过程要点      详细描述
 输入条件      测试组长制前一工作日定出当日的测试计划,确定可用的测试用例。
           测试实施工程师根据测试计划中分配给自己的测试任务和提供的测
 工作内容
           试用例,实施相应的测试用例,并将记录实施用例的结果
 退出标准      测试用例中的所有任务被执行,结果被记录。
 责任人       测试实施工程师
                   图表 6


2.2 提交报告(Bug Report)

  在约定的测试周期完成之后,测试组长需要总结此测试的结果,编写测试报告

 过程要点      详细描述
 输入条件      测试组完成了预定周期的测试任务
 工作内容      测试组长根据此轮测试的结果,编写测试报告,主要应包含以下内
           容:
              测试报告的版本
              测试的人员和时间
              测试所覆盖的缺陷——测试组在这轮测试中所有处理的缺陷,
               报告了测试组长处理的缺陷和实施工程师验证的缺陷。不仅要
               写出覆盖缺陷的总数,还要写明这些缺陷的去向
              测试新发现的缺陷数量
              上一版本活动缺陷的数量
              经过此轮测试,所有活动缺陷的数量及其状态分类
              测试评估——写明在这一版本中,那些功能被实现了,那些还
没有实现,这里只需写明和上一版本不同之处即可
               急待解决的问题——写明当前项目组中面临的最优先的问题,
              可以重复提出
 退出标准       在每轮测试结束之后应尽快将符合标准的测试报告发给全项目组
 责任人        测试组长
                    图表 7


2.3 回归测试(Regressive Test)

 在每轮测试结束之后,由测试组重新拷贝修改后的最新版本,进行回归测试。

 过程要点       详细描述
 输入条件       在每轮测试中,按照现有的测试用例没有新的缺陷被发现,测试报
            告中全部的活动缺陷都被解决。
 工作内容       测试组将按照测试计划中对于回归测试的策略对产品进行回归测试,
            回归测试的用例属于测试用例的一部分或者是全部测试用例,但不
            能超出原先预定的测试用例的范围。
 退出标准       回归测试所运行的用例全部通过。
 责任人        测试实施工程师 (可由测试实施工程师或测试组长兼做)
                    图表 2


3、总结阶段

  测试工作结束或即将结束时,测试组就要开始着手准备进行总结的工作。


3.1 编写测试报告

  在回归测试结束之后,测试组长将要编写测试总结报告,对测试进行总结,并且提交给全
体项目组,为产品的后续工作提供重要的信息支持。

 过程要点       详细描述
 输入条件       测试组完成了所有的测试实施工作
 工作内容       测试组长根据测试的结果,按照测试报告的文档模板编写测试报告,
            测试报告必须包含以下重要内容:
               测试资源概述——多少人、多长时间
               测试结果摘要——分别描述各个测试需求的测试结果,产品实
                现了哪些功能点,哪些还没有实现
               缺陷分析——按照缺陷的属性分类进行分析
               测试需求覆盖率——原先列举的测试需求的测试覆盖率,可能
                一部分测试需求因为资源和优先级的因素没有进行测试,那么
在这里要进行说明
              测试评估——从总体对项目质量进行评估
            测试组建议——从测试组的角度为项目组提出工作建议
退出标准       测试组长完成了符合标准的测试报告,发送给全项目组。
责任人        测试组长


3.2 测试工作总结

  测试总结工作是在以上的工作全部结束以后,它的目的是评估本次测试工作,总结经验,
使下一次的工作做得更好。

过程要点       详细描述
输入条件       测试组长完成了符合标准的测试报告,发送给全项目组
工作内容       测试组长根据测试的结果,按照测试总结的文档模板编写测试总结,
退出标准       测试组长完成了符合标准的测试总结,发送给全测试组。
责任人        测试组长


3.3 测试验收

  测试验收工作是在以上工作全部结束后,对测试的过程,效果进行验收,宣布测试结束。
过程要点       详细描述
           测试组完成了所有的测试实施工作,测试组长完成符合标准的测试
输入条件
           总结文档
           由测启会上约定的验收组成员,对本测试收进行验收,验收内容包
           括:
              测试效果验收——测试是否达到预期目的
              测试文档验收——测试过程文档是否齐全,可信,符合标准
工作内容
              测试评估——从总体对测试的质量进行评估
              测试建议——对本次测试工作指出不足,需要在以后工作中改
               进的地方
            宣布测试结束——测试验收组成员签字宣布本次测试结束
退出标准       签发测试验收报告
责任人        产品经理


3.4 测试归档

测试归档是在测试验收结束宣布测试有效,结束测试后,对测试过程中涉及到各种标准文档
进行归类,存档。
过程要点       详细描述
输入条件       测试验收通过
工作内容       归类,存档测试过程涉及到的文档,主要包括以下文档(必须)
              测试任务书
              测试计划书
              测试用例书
              测试报告书
              测试总结书
            测试验收书
退出标准       全部文档归类完毕,版本号封存
责任人        测试组长


4、缺陷跟踪

  测试验收结束后,跟踪产品在试运行阶段暴露出来的新缺陷,以及已提交的缺陷是否再次
发生。

过程要点       详细描述
           测试组完成了所有的测试实施工作,测试验收通过,产品试运行、
输入条件
           运行。
            已发现缺陷是否再次发生
              是否有新发现的在测试中未发现的缺陷
              是否有新发现的在测试中已发现但未修改的缺陷
工作内容       定义:
               A 类:新发现的缺陷
               B 类:已发现的缺陷
             C 类:已发现未修改的缺陷
退出标准       缺陷跟踪报告
责任人        产品经理、项目实施经理


5、测试工作流程图

                 测试工作总体流程图
三、 缺陷()


1、Bug 管理

  软件测试的主要目的在于发现软件存在的错误(Bug),对于如何处理测试中发现的错误,
将直接影响到测试的效果。只有正确、迅速、准确地处理这些错误,才能消除软件错误,保证要
发布的软件符合需求设计的目标。在实际软件测试过程中,对于每个 Bug 都要经过测试、确认、
修复、验证等的管理过程,这是软件测试的重要环节。
1.1 错误(bug)跟踪管理系统

   为了正确跟踪每个软件错误的处理过程,通常将软件测试发现的每个错误作为一条条记录
输 入 制 定 的 错 误 跟 踪 管 理 系 统 。 目 前 已 有 的 缺 陷 跟 踪 管 理 软 件 包 括 Compuware 公 司 的
TrackRecord 软 件 ( 商 业 软 件 ) 、 Mozilla 公 司 的 Buzilla 软 件 ( 免 费 软 件 ) , MI (Mercury
Interactive)公司的 Test Director,以及国内的微创公司的 BMS 软件,这些软件在功能上各有特
点,可以根据实际情况选用。当然,也可以自己开发缺陷跟踪软件,例如基于 Notes 或是
ClearQuese 开发缺陷跟踪管理软件。
   作为一个缺陷跟踪管理系统,需要正确设计每个错误的包含信息的字段内容和记录错误的
处理信息的全部内容。字段内容可能包括测试软件名称,测试版本号,测试人名称,测试事件 ,
测试软件和硬件配置环境,发现软件错误的类型,错误的严重等级,详细步骤,必要的附图,
测试注释。处理信息包括处理者姓名,处理时间,处理步骤,错误记录的当前状态。正确的数据
库权限管理是错误跟踪管理系统的重要考虑要素,一般要保证对于添加的错误不能从数据库中
删除。


1.2 软件错误的状态

   新信息(New):测试中新报告的软件缺陷;
   打开 (Open):被确认并分配给相关开发人员处理;
   修正(Fixed):开发人员已完成修正,等待测试人员验证;
   拒绝(Declined):拒绝修改缺陷;
   延期(Deferred): 不在当前版本修复的错误,下一版修复
   关闭(Closed):错误已被修复;


1.3 Bug 管理的一般流程

  测试人员提交新的 Bug 入库,错误状态为 New。
   高级测试人员(测试经理)验证错误,如果确认是错误,分配给相应的开发人员,设置状
态为 Open。如果不是错误,则拒绝,设置为 Declined 状态。开发人员查询状态为 Open 的 Bug,
如果不是错误,则置状态为 Declined;如果是 Bug 则修复并置状态为 Fixed。不能解决的 Bug,
要留下文字说明及保持 Bug 为 Open 状态。对于不能解决和延期解决的 Bug,不能由开发人员自
己决定,一般要通过某种会议(评审会)通过才能认可。
   测试人员查询状态为 Fixed 的 Bug,然后验证 Bug 是否已解决,如解决置 Bug 的状态为
Closed,如没有解决置状态为 Reopen。
1.4 软件错误流程管理要点

  为了保证错误的正确性,需要有丰富测试经验的测试人员验证发现的错误是否是真正的错
误,书写的测试步骤是否准确,可以重复。每次对错误的处理都要保留处理信息,包括处理姓
名,时间,处理方法,处理意见,Bug 状态。拒绝或延期错误不能由程序员单方面决定,应该
由项目经理,测试经理和设计经理共同决定。
  错误修复后必须由报告错误的测试人员验证后,确认已经修复,才能关闭错误。加强测试
人员与程序员的交流,对于某些不能重复的错误,可以请测试人员补充详细的测试步骤和方法 ,
以及必要的测试用例。


2、Bug 生命周期

                                                   不是BUG
                缺陷评估   是bug    已有bug           是   链接已有bug
  经理




                                                                                     关闭
                                否                                                  (closed )
测试




                              公布缺陷
                              (open)


                                                                                     关闭
                                                             测试通过         是
  工程师




                                                                                   (closed)

        新建缺陷
测试




        (new)
                                                                      否             Reopen



                                           是        Fixed         (1)postponed
   程师




                                                                  (2)by design
                                                                  (3)wont fix
软件工




                                 是否修复                        否
 发经理




                       工作量评估      任务分派
开




                                       是                         评估
  经理




                                 修订决策                                              关闭
产品




                                                                                 (closed)
                                                             否




四 、 web 应 用 程 序 测 试 方 法 和 测 试 技 术 详

述

   随着 web 应用的增多,新的模式解决方案中以 web 为核心的应用也越来越多,很多公司
各种应用的架构都以 B/S 及 web 应用为主,但是有关 WEB 测试方面的内容并没有相应的总结,
所以我在这里对 web 的测试方法和采用的测试技术进行总结,便于内部交流。
  测试方法尽量涵盖 web 程序的各个方面,测试技术方面在继承传统测试技术的技术上结合
web 应用的特点。
  相关的测试和实现技术也有着很大的关系,由于本公司使用 J2EE 体系,也许例子中只有
JAVA 平台可以使用,.NET 平台测试技术暂时不涉及,如果你有请与我联系。
  一般的 web 测试和以往的应用程序的测试的侧重点不完全相同,基本包括以下几个方面。
  当然圆满的完成测试还要有好的团体和流程等的方方面面的支持,你同样应该对这些方面
进          行         注       意        。
  有些测试方法设计到了流程,哪些应该在你的测试团队建设中建立。


1、界面测试

  现在一般人都有使用浏览器浏览网页的经历,用户虽然不是专业人员但是对界面效果的印
象是很重要的。  如果你注重这方面的测试,那么验证应用程序是否易于使用就非常重要了。          很多
人认为这是测试中最不重要的部分,但是恰恰相反界面对不懂技术的客户来说那相当关键,慢
慢体会你会明白的。
  方法上可以根据设计文档,如果够专业的话可以专业美工人员,来确定整体风格页面风格 ,
然后根据这个可以页面人员可以生成静态的 HTML,CSS 等甚至生成几套不用的方案来讨论,
或者交给客户评审,最后形成统一的风格的页面/框架。注意不要靠程序员的美术素养形成你的
web 风格,那样可能会很糟糕。
  主要包括以下几个方面的内容:
  站点地图和导航条位置、    是否合理、 是否可以导航等内容布局布局是否合理,滚动条等简介
说 明 说 明 文 字 是 否 合 理 , 位 置 , 是 否 正 确
    背 景 / 色 调 是 否 正 确 、 美 观 , 是 否 符 合 用 户 需 求 ;
  页面在窗口中的显示是否正确、美观(在调整浏览器窗口大小时,屏幕刷新是否正确)表
单样式大小,格式,是否对提交数据进行验证(如果在页面部分进行验证的话)等
  连接连接的形式,位置,是否易于理解等
  web 测试的主要页面元素
    页 面 元 素 的 容 错 性 列 表 ( 如 输 入 框 、 时 间 列 表 或 日 历 )
  页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、            单选框、复选
框    、 列  表   框   、  超  连  接  、   输  入   框   等  等 )
        页   面   元   素  的   容   错   性   是   否   存  在
        页   面   元   素  的   容   错   性   是   否   正  确
  页面元素基本功能是否实现(如文字特效、动画特效、按钮、超连接)
  页面元素的外形、摆放位置(如按钮、列表框、核选框、输入框、超连接等)
    页 面 元 素 是 否 显 示 正 确 ( 主 要 针 对 文 字 、 图 形 、 签 章 )
       元  素   是   否  显  示  (  元   素  是   否   存  在 )
  页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、            单选框、复选
框、列表框、超连接、输入框等等)
  测试技术
  通过页面走查,浏览确定使用的页面是否符合需求。可以结合兼容性测试对不用分辨率下
页 面 显 示 效 果 , 如 果 有 影 响 应 该 交 给 设 计 人 员 提 出 解 决 方 案 。
    可 以 结 合 数 据 定 义 文 档 查 看 表 单 项 的 内 容 , 长 度 等 信 息 。
  对于动态生成的页面最好也能进行浏览查看。如 Servelet 部分可以结合编码规范,进行代
码走查。是否支持中文,如果数据用 XML 封装要做的工作会多一点等等。
              界      面     测      试      要      素     :
  符合标准和规范,灵活性,正确性,直观性,舒适性,实用性,一致性
  1.直观性:
  用户界面是否洁净,不唐突,不拥挤.界面不应该为用户制造障碍.所需功能或者期待的响应应
该明显,并在预期出现的地方.
  界面组织和布局合理吗?是否允许用户轻松地从一个功能转到另一个功能?下一步做什么明
显吗?任何时刻都可以决定放弃或者退回,退出吗?输入得到承认了吗?菜单或者窗口是否深藏不
露                          ?
有多余功能吗?软件整体抑或局部是否做得太多?是否有太多特性把工作复杂化了?是否感到信
息          太          庞           杂           ?
    如 果 其 他 所 有 努 力 失 败 , 帮 助 系 统 真 能 帮 忙 吗 ?

  2.一致性
    快 速 键 和 菜 单 选 项 . 在 Windows 中 按 F1 键 总 是 得 到 帮 助 信 息
  术语和命令.整个软件使用同样的术语吗?特性命名一致吗?例如,Find 是否一直叫 Find,而不
是         有           时          叫          Search?
  软件是否一直面向同一级别用户?带有花哨用户界面的趣味贺卡程序不应该显示泄露技术
机    密     的      错     误     提    示     信       息   .
  按钮位置和等价的按键.大家是否注意到对话框有 OK 按钮和 Cancle 按钮时,OK 按钮总是
在上方或者左方,而 Cancle 按钮总是在下方或右方?同样原因,Cancle 按钮的等价按键通常是 Esc,
而 选 中 按 钮 的 等 价 按 钮 通 常 是 Enter. 保 持 一 致 .

  3.灵活性
    状 态 跳 转 . 灵 活 的 软 件 实 现 同 一 任 务 有 多 种 选 择 方 式 .
    状 态 终 止 和 跳 过 , 具 有 容 错 处 理 能 力 .
  数据输入和输出.用户希望有多种方法输入数据和查看结果.例如,在写字板插入文字可用键
盘输入,粘贴,从 6 种文件格式读入,作为对象插入,或者用鼠标从其他程序拖动.
                  4.       舒       适        性
    恰 当 . 软 件 外 观 和 感 觉 应 该 与 所 做 的 工 作 和 使 用 者 相 符 .
  错误处理.程序应该在用户执行严重错误的操作之前提出警告,并允许用户恢复由于错误操
作 导 致 丢 失 的 数 据 . 如 大 家 认 为 undo /redo 是 当 然 的 .
  性能.快不见得是好事.要让用户看得清程序在做什么,它是有反应的.


2、功能测试

           对     功  能   测    试    是     测   试  中  的  重  点
          主     要  包  括    一    下     几   个  方  面  的 内  容
  连接这个连接和界面测试中的连接不同那里注重的是连接方式和位置,如是图像还是文字
放置的位置等,还是其他的方式。         这里的连接注重功能。       如是否有连接,连接的是否是说明的位
置等。
  表单提交应当模拟用户提交,验证是否完成功能,如注册信息,要测试这些程序,需要验
证服务器能正确保存这些数据,而且后台运行的程序能正确解释和使用这些信息。还有数据正
确性验证,异常处理等,最好结合易用性要求等。B/S 结构实现的功能可能主要的就在这里,
提交数据,处理数据等如果有固定的操作流程可以考虑自动化测试工具的录制功能,编写可重
复使用的脚本代码,可以在测试、回归测试时运行以便减轻测试人员工作量。
  Cookies 验证如果系统使用了 cookie,测试人员需要对它们进行检测。如果在 cookies 中保
存了注册信息,请确认该 cookie 能够正常工作而且已对这些信息已经加密。如果使用 cookie
来统计次数,需要验证次数累计正确。           关于 cookie 的使用可以参考浏览器的帮助信息。 如果使用
B/S 结构 cookies 中存放的信息更多。功能易用性测试完成了功能测试可以对应用性进行了解,
最好听听客户的反映,在可以的情况下对程序进行改进是很有必要的,和客户保持互动对系统
满意度也是很有帮助的。
  测试技术功能测试的测试技术可是很多的,我们可以结合实际环境选择使用
  白盒测试技术(White Box Testing) 深入到代码一级的测试,使用这种技术发现问题最早,
效果也是最好的。该技术主要的特征是测试对象进入了代码内部,根据开发人员对代码和对程序
的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对代码的理解和接触所
进行的软件测试叫做白盒测试。        这一阶段测试以软件开发人员为主,在 JAVA 平台使用 Xunit 系
列工具进行测试,Xunit 测试工具是类一级的测试工具对每一个类和该类的方法进行测试。
  黑盒测试技术(Black Box Testing)黑盒测试的内容主要有以下几个方面,但是主要还是
功能部分。主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,根据软件需求,设
计文档,模拟客户场景随系统进行实际的测试,这种测试技术是使用最多的测试技术涵盖了测
试的方方面面,可以考虑以下方面
  正确性 (Correctness):计算结果,命名等方面?
  可用性 (Usability):是否可以满足软件的需求说明。
  边界条件 (Boundary Condition)输入部分的边界值,就是使用一般书中说的等价类划分,试试
最大最小和非法数据等等.
  性能 (Performance) 正常使用的时间内系统完成一个任务需要的时间,多人同时使用的时候
响应时间,在可以接受范围内.J2EE 技术实现的系统在性能方面更是需要照顾的,一般原则是 3 秒
以下接受,3-5 秒可以接受,5 秒以上就影响易用性了. 如果在测试过程中发现性能问题,修复起
来是非常艰难的,因为这常常意味着程序的算法不好,结构不好,或者设计有问题。因此在产
品开发的开始阶段,就要考虑到软件的性能问题。
  压力测试 (Stress) 多用户情况可以考虑使用压力测试工具,建议将压力和性能测试结合起来
进行.如果有负载平衡的话还要在服务器端打开监测工具,查看服务器 CPU 使用率,内存占用情况,
如果有必要可以模拟大量数据输入,对硬盘的影响等等信息.如果有必要的话必须进行性能优化
(软硬件都可以).这里的压力测试针对的是某几项功能.
  错误恢复 (Error Recovery) 错误处理,页面数据验证,包括突然间断电,输入脏数据等.
安全性测试(Security)这个领域正在研究中,不过防火墙,补丁包.杀毒软件等的就不必说了,不过可
以考虑破坏性测试时任意.看了一些资料后得知,这里面设计到的知识内容可以写本书了,不是一
两句可以说清的,特别是一些商务网站,或者跟钱有关,或者和公司秘密有关的 web 更是,需要这方
面的测试,在外国有一种专门干这一行的人叫安全顾问,可以审核代码,提出安全建议,出现紧急事
件是的处理办法等,在国内没有听说哪里有专门搞安全技术测试的内容.
  兼容性 (Compatibility) 不同浏览器,不同应用程序版本在实现功能时的表现,不同的上网
方式,如果你测试的是一个公共网站的话.
            兼       容      性    测    试     内     容       详      述
                        硬          件         平            台
  浏览器软件和版本:浏览器插件,浏览器选项,视频分辨率和色深.文字大小,调制解调器速率.
  软件配置 (Configuration) 如 IE 浏览器的不用选项-安全设定最高,禁用脚本程序,等等,你们
的程序在各种不用的设置下表现如何.
             单      元       测    试    技     术      (Unit      Test):
  2.2.1 下面是对白盒测试和单元测试的区别的论述:
  单元测试和白盒测试是不同的,虽然单元测试和白盒测试都是关注功能虽然他们都需要代
码支持,但是级别不同,白盒测试关注的是类中一个方法的功能是更小的单位 ,但是完成一个单元
测试可能需要 N 多类,所以说作单元测试需要什么写驱动和稳定桩,比如查询单元是一个查询包
包 N 多的测试类,测试数据,运行他需要提供数据的部分,输入参数和发出命令的驱动等等.是比类
大的一个整体进行的.
  另一个明显的区别是白盒测试不会关注类接口,但是单元测试主要的内容就是类接口测试.
  不过很多时候是很少区分的,因为这两种技术实现起来有很多相互关联的部分.不过要看你
对质量的关注程度来决定.
    2.2.2     功 能 测 试 边 界 测 试  越 界 测 试 技 术 详 述
                        边          界         条            件
    边 界 条 件 是 指 软 件 计 划 的 操 作 界 限 所 在 的 边 缘 条 件 .
    如 果 软 件 测 试 问 题 包 含 确 定 的 边 界 , 那 么 数 据 类 型 可 能 是 :
         数   值   速     度   字   符   地  址   位   置   尺      寸   数       量
    同 时 , 考 虑 这 些 类 型 的 下 述 特 征                                        :
    第 一 个 / 最 后 一 个 最 小 值 / 最 大 值
            开      始     /    完    成    超    过      /     在      内
              空       /      满     最     短     /      最        长
            最      慢     /    最    快    最    早      /     最      迟
            最      大     /    最    小    最    高      /     最      低
                     相         邻       /       最            远
                        越          界         测            试
  通常是简单加 1 或者很小的数(对于最大值)和减少 1 或者很小的数(对于最小值),例如:
        第      一    个    减   1/    最   后   一   个    加     1
           开        始     减     1/    完    成     加     1
          空       了     再    减     /   满    了    再    加
          慢       上     加    慢     /   快    上    加    快
         最       大    数    加    1/   最   小    数    减     1
         最       小    值    减    1/   最   大    值    加     1
          刚       好     超    过     /   刚    好    在    内
          短       了     再    短     /   长    了    再    长
          早       了     更    早     /   晚    了    更    晚
  最高加 1/最低减 1
  另一些该注意的输入:默认,空白,空值,零值和无;非法,错误,不正确和垃圾数据.
           2.2.3          状     态    测     试    技     术

    软 件 可 能 进 入 的 每 一 种 独 立 状 态 ;
    从 一 种 状 态 转 入 另 一 种 状 态 所 需 的 输 入 和 条 件 ;
    进 入 或 退 出 某 种 状 态 时 的 设 置 条 件 及 输 入 结 果 .

         具  体   测   试  方 法 可   以   参    考   如  下   :
          每   种   状   态  至  少   访    问    一   次  ;
    测 试 看 起 来 最 常 见 最 普 遍 的 状 态 转 换 ;
         测  试   状  态  之  间 最  不   常    用   的  分  支
         测  试   所  有  错  误 状  态   及    其   返  回  值
  测试随机状态转换
  2.2.4 竞争条件测试技术
竞    争    条   件   典   型  情  形   参    考    如   下  :
    两 个 不 同 的 程 序 同 时 保 存 或 打 开 同 一 个 文 档
    共 享 同 一 台 打 印 机 , 通 信 端 口 或 者 其 他 外 围 设 备
    当 软 件 处 于 读 取 或 者 修 改 状 态 时 按 键 或 者 单 击 鼠 标
    同 时 关 闭 或 者 启 动 软 件 的 多 个 实 例
  同时使用不同的程序访问一个共同数据库


3、负载压力测试(StressTest)

  在这里的负载压力和功能测试中的不同,他是系统测试的内容,是基本功能已经通过后进行
的.可以在集成测试阶段,亦可以在系统测试阶段进行.
  使用负载测试工具进行,虚拟一定数量的用户看一看系统的表现,是否满足定义中的指标.
  负载测试一般使用工具完成,loadrunner,webload,was,ewl,e-test 等,主要的内容都是
编写出测试脚本,脚本中一般包括用户一般常用的功能,然后运行,得出报告。所以负载测试
包括的主要内容就不介绍了。
  负载测试技术在各种极限情况下对产品进行测试 (如很多人同时使用该软件,或者反复运
行该软件),以检查产品的长期稳定性。例如,使用压力测试工具对 web 服务器进行压力测试.
本项测试可以帮助找到一些大型的问题,如死机、      崩损、  内存泄漏等,因为有些存在内存泄漏问
题的程序,在运行一两次时可能不会出现问题,但是如果运行了成千上万次,内存泄漏得越来
越多,就会导致系统崩滑。用 J2EE 实现的系统很少但是并不是没有内存问题.
  无论什么工具基本的技术都是利用线程技术模仿和虚拟用户,在这里主要的难点在与测试
脚本的编写,每种工具使用的脚本都不一样,但是大多数工具都提供录制功能就算是不会编码
的测试人员同样可以测试。
  对负载工具的延伸使用可以进行系统稳定性测试,系统极限测试,如使用 100 的 Load Size
连续使用 24 小时,微软定义的通过准则是通过 72 小时测试的程序一般不会出现稳定性的问题。
4、回归测试 (Regression Test)

  过一段时间以后,再回过头来对以前修复过的 Bug 重新进行测试,看该 Bug 是否会重新
出现。
  回归测试技术可以在测试的各个阶段出现,无论是单元测试还是集成测试还是系统测试。
是对以前问题进行验证的过程。
  回归测试的目的就是保证以前已经修复的 Bug 不会再出现。实际上,许多 Bug 都是在回归
测试时发现的,在此阶段,我们首先要检查以前找到的 Bug 是否已经更正了。值得注意的是,
已经更正的 Bug 也可能又回来了,有的 Bug 经过修改之后可能又产生了新的 Bug。所以,回归
测试可保证已更正的 Bug 不再重现,不产生新的 Bug。


5 、Alpha 和 Beta 测试 (Alpha and Beta Test):

  在正式发布产品之前往往要先发布一些测试版,让用户能够反馈出相关信息,或者找到存
在的 Bug,以便在正式版中得到解决。
  特别是在有客户参加的情况下,对系统进行测试可能会出现一些我们没有考虑的情况,还
可以解决一些客户实际关心的问题


6、不同的测试技术区分

6.1 覆盖测试技术

  说明:测试覆盖率可以看出测试的完成度,在测试分析报告中可以作为量化指标的依据,测
试覆盖率越高效果越好。
  覆盖测试可以是程序代码的执行路径覆盖,亦可以是功能实现的步骤覆盖(可以理解成流
程图的路径覆盖)。
  该技术可以用在任何测试阶段,包括单元测坏死、集成测试、系统测试。
  使用该技术时可以使用以上的任何测试方法和测试技术。

6.2 白盒测试和黑盒测试技术

  白盒测试技术 (White Box Testing)该技术主要的特征是测试对象进入了代码内部,根据开发
人员对代码和对程序的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对
代码的理解和接触所进行的软件测试叫做白盒测试。这一阶段测试以软件开发人员为主,使用
Xunit 系列工具进行测试,可以包括很多方面如功能性能等。
  黑盒测试 (Black Box Testing)测试的主体部分黑盒测试的内容主要有以下几个方面,但是
主要还是功能部分。主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,包括的不同
测试类型请参考以上内容。

6.3 手工测试和自动化测试

  手工测试(Manual Testing):即依靠人力来查找 Bug。方法可以参考上边的测试,也可以
根据对实现技术及经验等进行不同的测试。
  自动测试(Automation Testing)使用有针对工具实行。可以作出自动化测试的计划,对可以
进行自动化测试的部分编写或者录制相应的脚本 ,可以加入功能,容错,表单提交等,可以参考
MI,Rational 或者其他类测试工具说明.
  根据权威的软件测试经验,手工测试还是主要的测试方法,自动测试不够灵活,在这里不
再详述。微软的测试过程 80%还是手工完成。
  自动测试永远也代替不了手工测试,但是手工测试的工作量很大是不争的事实。

6.4 根据 RUP 标准按阶段区分测试

  单元测试在上边有详细的叙述,还有针对单元测试和集成测试的论述,请参考。
  集成测试分为功能集成测试和系统集成测试,相互有调用的功能集成,在系统环境下功能
相互调用的影响等,使用方法可以任意选用上面的内容。注重功能方面。
  系统测试在功能实现的基础上,可以加入兼容性,易用性,性能等等
  验收测试可以包括 Alpha 和 Beta 测试,在这里就不再详述。


7.存在风险及解决方法

  说明:测试不能找出所有的问题,只是尽量将问题在开发阶段解决大多数的问题而已。
测试风险如下:

    软 硬 件 的 测 试 环 境 提 供 上 也 对 测 试 结 果 有 很 大 的 影 响 。
    测 试 团 队 的 水 平 , 经 验 , 合 作 效 果 等
    整 个 开 发 流 程 对 测 试 的 重 视 程 度 , 测 试 的 进 入 时 间 等
  由于测试环境操作系统,网络环境,带宽等情况可能产生的测试结果可能不同这是就需要
经验以及对测试环境的保护等方面下一些功夫。


8. 软件缺陷的原则

  软件缺陷区别于软件 bug,它是在测试过程中出现的对系统有影响的,但是在设计中没有的
或 者 对 修 改 后 的 bug 测 试 和 开 发 人 员 有 不 同 意 见 等
    软 件 未 达 到 产 品 说 明 书 标 明 的 功 能 。
    软 件 出 现 了 产 品 说 明 书 指 明 不 会 出 现 的 错 误 。
    软 件 功 能 超 出 产 品 说 明 书 指 明 范 围 。
    软 件 未 达 到 产 品 说 明 书 虽 未 指 出 但 应 达 到 的 目 标 。
  软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。


9.文档测试

          产   品   说    明   书   属    性    检    查   清   单
   完 整 .是否 有遗漏和丢失 ?完全吗?单独使 用是 否包含全部内容 ?
    准 确 . 既 定 解 决 方 案 正 确 吗 ? 目 标 明 确 吗 ? 有 没 有 错 误 ?
  精确,不含糊,清晰.描述是否一清二楚?还是自说自话?容易看懂和理解吗?
    一 致 . 产 品 功 能 能 描 述 是 否 自 相 矛 盾 , 与 其 他 功 能 有 没 有 冲 突 ?
  贴切.描述功能的陈述是否必要?有没有多余信息?功能是否原来的客户要求?
  合理.在特定的预算和进度下,以现有人力,物力和资源能否实现?
  代码无关.是否坚持定义产品,而不是定义其所信赖的软件设计,架构和代码?
  可测试性.特性能否测试?测试员建立验证操作的测试程序是否提供足够的信息?

  产品说明书用语检查清单
  说明对问题的描述通常表现为粉饰没有仔细考虑的功能 ----可归结于前文所述的属性.从产
品说明书上找出这样的用语,仔细审视它们在文中是怎样使用的.产品说明书可能会为其掩饰和
开脱,也可能含糊其词----无论是哪一种情况都可视为软件缺陷.
  总是,每一种,所有,没有,从不.如果看到此类绝对或肯定的,切实认定的叙述,软件测试员就可
以着手设计针锋相对的案例.
  当然,因此,明显,显然,必然.这些话意图诱使接受假定情况.不要中了圈套.
  某些,有时,常常,通常,惯常,经常,大多,几乎.这些话太过模糊."有时"发生作用的功能无法测试.

  等等,诸如此类,依此类推.以这样的词结束的功能清单无法测试.功能清单要绝对或者解释明
确,以免让人迷惑,不知如何推论.
  良好,迅速,廉价,高效,小,稳定.这些是不确定的说法,不可测试.如果在产品说明书中出现,就
必须进一步指明含义.
  已处理,已拒绝,已忽略,已消除.这些廉洁可能会隐藏大量需要说明的功能.
   如果...那么...(没有否则).找出有"如果...那么..."而缺少配套的"否则"结构的陈述.想一想"如
果"没有发生会怎样.



五、系统测试

  系统测试(System Test, ST)是将经过测试的子系统装配成一个完整系统
来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。

  系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足
产品需求并且遵循系统设计。

  系统测试过程域是 SPP 模型的重要组成部分。本规范阐述了系统测试的规程,
该规程的“目标”、“角色与职责”、  “启动准则”、“输入”、“主要步骤”、“输
出”、“完成准则”和“度量”均已定义。

1、介绍

  系统测试流程如图 1 所示。由于系统测试的目的是验证最终软件系统满足产品需求并且遵循
系统设计,所以当产品需求和系统设计文档完成之后,系统测试小组就可以提前开始制定测试
计划和设计测试用例,而不必等到“实现与测试”阶段结束。这样可以提高系统测试的效率。
  系统测试过程中发现的所有缺陷必须用统一的缺陷管理工具来管理,开发人员应当及时消
除缺陷(改错)。
图 1 系统测试流程图

  项目经理设法组建富有成效的系统测试小组。系统测试小组的成员主要来源于:
    · 机 构 独 立 的 测 试 小 组 ( 如 果 存 在 的 话 ) 。
    · 邀 请 其 它 项 目 的 开 发 人 员 参 与 系 统 测 试 。
      ·    本    项   目   的    部    分    开      发    人      员    。
  ·机构的质量保证人员。
  系统测试小组应当根据项目的特征确定测试内容。一般地,系统测试的主要内容包括:
  ·功能测试。即测试软件系统的功能是否正确,其依据是需求文档,如《产品需求规格说明
书》。由于正确性是软件最重要的质量因素,所以功能测试必不可少。
  ·健壮性测试。即测试软件系统在异常情况下能否正常运行的能力。健壮性有两层含义:一
是    容    错     能   力   ,    二   是    恢       复    能      力    。
  ·性能测试。即测试软件系统处理事务的速度,一是为了检验性能是否符合需求,二是为了
得 到 某 些 性 能 数 据 供 人 们 参 考 ( 例 如 用 于 宣 传 ) 。
   · 用 户 界 面 测 试 。 重 点 是 测 试 软 件 系 统 的 易 用 性 和 视 觉 效 果 等 。
  ·安全性(security)测试。是指测试软件系统防止非法入侵的能力。“安全”是相对而言的,
一般地,如果黑客为非法入侵花费的代价(考虑时间、          费用、危险等因素)高于得到的好处,那
么    这   样   的    系  统   可   以   认   为    是     安    全     的   。
  ·安装与反安装测试。
       系 统 测 试 过 程 域 产 生 的 主 要 文 档 有 :
    · 《 系 统 测 试 计 划 》 , 模 板 见               [SPP-TEMP-ST-PLAN] 。
    · 《 系 统 测 试 用 例 》 , 模 板 见            [SPP-TEMP-TEST-CASE] 。
    · 《 系 统 测 试 报 告 》 , 模 板 见          [SPP-TEMP-TEST-REPORT] 。
  ·《缺陷管理报告》,由缺陷管理工具自动生成。


2、系统测试规程

               1           、            目            的
  对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。
        2        、      角     色       与      职       责
   项 目 经 理 组 建 系 统 测 试 小 组 , 并 指 定 一 名 成 员 任 测 试 组 长 。
  系统测试小组各成员共同制定测试计划、      设计测试用例、 执行测试,并撰写相应的文档。    测试
组     长       管      理     上     述      事     务      。
  开发人员及时消除测试人员发现的缺陷。
          3        、       启       动        准        则
  产品需求和系统设计文档完成之后。
            4          、                  输          入
  产品需求和系统设计文档
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册
65天测试工程师成功之路指导手册

More Related Content

What's hot

Índice libro "Hacking Windows: Ataques a redes y sistemas Microsoft"
Índice libro "Hacking Windows: Ataques a redes y sistemas Microsoft"Índice libro "Hacking Windows: Ataques a redes y sistemas Microsoft"
Índice libro "Hacking Windows: Ataques a redes y sistemas Microsoft"Telefónica
 
"Общая психотерапия" - оглавление
"Общая психотерапия" - оглавление"Общая психотерапия" - оглавление
"Общая психотерапия" - оглавлениеинна ветрова
 
Adaptive Learning Environments & Educational Managment
Adaptive Learning Environments & Educational ManagmentAdaptive Learning Environments & Educational Managment
Adaptive Learning Environments & Educational ManagmentAndreas M. Papaderos
 
Status Ruby on Rails in China
Status Ruby on Rails in ChinaStatus Ruby on Rails in China
Status Ruby on Rails in ChinaJesse Cai
 
针对 Java程序员的 U M L概述
针对 Java程序员的 U M L概述针对 Java程序员的 U M L概述
针对 Java程序员的 U M L概述Shilong Sang
 
PBO - Lapres Enkapsulasi
PBO - Lapres EnkapsulasiPBO - Lapres Enkapsulasi
PBO - Lapres EnkapsulasiSiska Amelia
 
Portfolio Berenice K DA Web
Portfolio Berenice K DA WebPortfolio Berenice K DA Web
Portfolio Berenice K DA Webberenicek
 
B&F #614
B&F #614B&F #614
B&F #614BFM2015
 
Ficha lectura libro "El corazón y la espada".
Ficha lectura libro "El corazón y la espada".  Ficha lectura libro "El corazón y la espada".
Ficha lectura libro "El corazón y la espada". Almudena Alegría
 
Linux Wonderful Word Q & A
Linux Wonderful Word Q & ALinux Wonderful Word Q & A
Linux Wonderful Word Q & Ajbovha
 

What's hot (12)

Índice libro "Hacking Windows: Ataques a redes y sistemas Microsoft"
Índice libro "Hacking Windows: Ataques a redes y sistemas Microsoft"Índice libro "Hacking Windows: Ataques a redes y sistemas Microsoft"
Índice libro "Hacking Windows: Ataques a redes y sistemas Microsoft"
 
"Общая психотерапия" - оглавление
"Общая психотерапия" - оглавление"Общая психотерапия" - оглавление
"Общая психотерапия" - оглавление
 
Adaptive Learning Environments & Educational Managment
Adaptive Learning Environments & Educational ManagmentAdaptive Learning Environments & Educational Managment
Adaptive Learning Environments & Educational Managment
 
การเตรียมพร้อมรับภัยพิบัติน้ำท่วม มช
การเตรียมพร้อมรับภัยพิบัติน้ำท่วม มชการเตรียมพร้อมรับภัยพิบัติน้ำท่วม มช
การเตรียมพร้อมรับภัยพิบัติน้ำท่วม มช
 
Status Ruby on Rails in China
Status Ruby on Rails in ChinaStatus Ruby on Rails in China
Status Ruby on Rails in China
 
针对 Java程序员的 U M L概述
针对 Java程序员的 U M L概述针对 Java程序员的 U M L概述
针对 Java程序员的 U M L概述
 
chinese paper
chinese paperchinese paper
chinese paper
 
PBO - Lapres Enkapsulasi
PBO - Lapres EnkapsulasiPBO - Lapres Enkapsulasi
PBO - Lapres Enkapsulasi
 
Portfolio Berenice K DA Web
Portfolio Berenice K DA WebPortfolio Berenice K DA Web
Portfolio Berenice K DA Web
 
B&F #614
B&F #614B&F #614
B&F #614
 
Ficha lectura libro "El corazón y la espada".
Ficha lectura libro "El corazón y la espada".  Ficha lectura libro "El corazón y la espada".
Ficha lectura libro "El corazón y la espada".
 
Linux Wonderful Word Q & A
Linux Wonderful Word Q & ALinux Wonderful Word Q & A
Linux Wonderful Word Q & A
 

Viewers also liked

Mercury Testdirector8.0 Admin Slides
Mercury Testdirector8.0 Admin SlidesMercury Testdirector8.0 Admin Slides
Mercury Testdirector8.0 Admin Slidestelab
 
常识判断
常识判断常识判断
常识判断telab
 
常识判断
常识判断常识判断
常识判断telab
 
Use Cases A Comprehensive Look
Use Cases A Comprehensive LookUse Cases A Comprehensive Look
Use Cases A Comprehensive Looktelab
 
判断推理
判断推理判断推理
判断推理telab
 
言语理解表达
言语理解表达言语理解表达
言语理解表达telab
 
hp mercury training book
hp mercury training bookhp mercury training book
hp mercury training booktelab
 
手机软件测试
手机软件测试手机软件测试
手机软件测试telab
 
Mercury Testdirector8.0 using Slides
Mercury Testdirector8.0 using SlidesMercury Testdirector8.0 using Slides
Mercury Testdirector8.0 using Slidestelab
 
Advanced Load Runner
Advanced Load RunnerAdvanced Load Runner
Advanced Load Runnertelab
 
组网实践
组网实践组网实践
组网实践telab
 
组网与网络管理技术(第四章)
组网与网络管理技术(第四章)组网与网络管理技术(第四章)
组网与网络管理技术(第四章)telab
 
Test Requirements
Test RequirementsTest Requirements
Test Requirementstelab
 
Performance tesing coding standards & best practice guidelines v1
Performance tesing coding standards & best practice guidelines v1Performance tesing coding standards & best practice guidelines v1
Performance tesing coding standards & best practice guidelines v1Argos
 
Performance Testing for SAP Applications
Performance Testing for SAP ApplicationsPerformance Testing for SAP Applications
Performance Testing for SAP ApplicationsGlobe Testing
 
系统测试用例设计方法
系统测试用例设计方法系统测试用例设计方法
系统测试用例设计方法telab
 
Guias de practica clinica 2016 2a parte
Guias de practica clinica 2016 2a parteGuias de practica clinica 2016 2a parte
Guias de practica clinica 2016 2a parteCarlos Cuello
 
Testing SAP HANA applications with SAP LoadRunner by HP
Testing SAP HANA applications with SAP LoadRunner by HPTesting SAP HANA applications with SAP LoadRunner by HP
Testing SAP HANA applications with SAP LoadRunner by HPSAP Solution Extensions
 
Guias de practica clinica 2016 (3a parte)
Guias de practica clinica 2016 (3a parte)Guias de practica clinica 2016 (3a parte)
Guias de practica clinica 2016 (3a parte)Carlos Cuello
 
Hp Linux
Hp LinuxHp Linux
Hp Linuxtelab
 

Viewers also liked (20)

Mercury Testdirector8.0 Admin Slides
Mercury Testdirector8.0 Admin SlidesMercury Testdirector8.0 Admin Slides
Mercury Testdirector8.0 Admin Slides
 
常识判断
常识判断常识判断
常识判断
 
常识判断
常识判断常识判断
常识判断
 
Use Cases A Comprehensive Look
Use Cases A Comprehensive LookUse Cases A Comprehensive Look
Use Cases A Comprehensive Look
 
判断推理
判断推理判断推理
判断推理
 
言语理解表达
言语理解表达言语理解表达
言语理解表达
 
hp mercury training book
hp mercury training bookhp mercury training book
hp mercury training book
 
手机软件测试
手机软件测试手机软件测试
手机软件测试
 
Mercury Testdirector8.0 using Slides
Mercury Testdirector8.0 using SlidesMercury Testdirector8.0 using Slides
Mercury Testdirector8.0 using Slides
 
Advanced Load Runner
Advanced Load RunnerAdvanced Load Runner
Advanced Load Runner
 
组网实践
组网实践组网实践
组网实践
 
组网与网络管理技术(第四章)
组网与网络管理技术(第四章)组网与网络管理技术(第四章)
组网与网络管理技术(第四章)
 
Test Requirements
Test RequirementsTest Requirements
Test Requirements
 
Performance tesing coding standards & best practice guidelines v1
Performance tesing coding standards & best practice guidelines v1Performance tesing coding standards & best practice guidelines v1
Performance tesing coding standards & best practice guidelines v1
 
Performance Testing for SAP Applications
Performance Testing for SAP ApplicationsPerformance Testing for SAP Applications
Performance Testing for SAP Applications
 
系统测试用例设计方法
系统测试用例设计方法系统测试用例设计方法
系统测试用例设计方法
 
Guias de practica clinica 2016 2a parte
Guias de practica clinica 2016 2a parteGuias de practica clinica 2016 2a parte
Guias de practica clinica 2016 2a parte
 
Testing SAP HANA applications with SAP LoadRunner by HP
Testing SAP HANA applications with SAP LoadRunner by HPTesting SAP HANA applications with SAP LoadRunner by HP
Testing SAP HANA applications with SAP LoadRunner by HP
 
Guias de practica clinica 2016 (3a parte)
Guias de practica clinica 2016 (3a parte)Guias de practica clinica 2016 (3a parte)
Guias de practica clinica 2016 (3a parte)
 
Hp Linux
Hp LinuxHp Linux
Hp Linux
 

65天测试工程师成功之路指导手册

  • 1. ThinkBank International Software R&D Center 65 天测试工程师成功之路 培训指导手册 版本:<1.0> Improving processes for better products 思远教育 2006 Oct. 浪潮软件版权所有。保留所有权利。
  • 2. 录 一、软件测试( SOFTWARE TEST) ......................................................................................................7 1、前景(Future)...........................................................................................................................7 2、岗位特性(Work speciality)....................................................................................................7 3、软件测试(SoftWare Test).......................................................................................................8 3.1 什么是软件测试(What is SoftWare Test).....................................................................8 3.2 软件测试的目的(Objective)..........................................................................................8 3.3 软件测试的原则(Test Principia)...................................................................................9 3.4 软件测试的对象(Test Object).......................................................................................9 3.5 软件测试方法(Method).................................................................................................9 二、 测试工作流程及规范 .......................................................................................................................11 1、计划与设计阶段(Plan & Design)........................................................................................11 1.1 成立测试团队(Team)...................................................................................................11 1.2 测试预通知........................................................................................................................11 1.3 召开测试启动会议...........................................................................................................11 1.4 编写测试计划文档...........................................................................................................12 1.5 设计测试用例...................................................................................................................12 2、实施测试阶段...........................................................................................................................13 2.1 实施测试用例()...........................................................................................................13 2.2 提交报告(Bug Report).................................................................................................13 2.3 回归测试(Regressive Test)..........................................................................................14 3、总结阶段...................................................................................................................................14 3.1 编写测试报告...................................................................................................................14 3.2 测试工作总结...................................................................................................................15 3.3 测试验收...........................................................................................................................15 3.4 测试归档...........................................................................................................................15 4、缺陷跟踪...................................................................................................................................16 5、测试工作流程图.......................................................................................................................16 三、 缺陷() ............................................................................................................................................19 1、Bug 管理 ..................................................................................................................................19 1.1 错误(bug)跟踪管理系统.............................................................................................20 1.2 软件错误的状态...............................................................................................................20 1.3 Bug 管理的一般流程 ......................................................................................................20 1.4 软件错误流程管理要点 .................................................................................................21 2、Bug 生命周期 ..........................................................................................................................21 四、 WEB 应用程序测试方法和测试技术详述 .....................................................................................21 1、界面测试 .................................................................................................................................22 2、功能测试 .................................................................................................................................23 3、负载压力测试(StressTest) ......................................................................................................25 4、回归测试 (Regression Test) ....................................................................................................26 5 、Alpha 和 Beta 测试 (Alpha and Beta Test): ...........................................................................26 6、不同的测试技术区分 .............................................................................................................26 6.1 覆盖测试技术 .................................................................................................................26 6.2 白盒测试和黑盒测试技术 .............................................................................................26 6.3 手工测试和自动化测试 .................................................................................................26 6.4 根据 RUP 标准按阶段区分测试 ...................................................................................27
  • 3. 7.存在风险及解决方法 ................................................................................................................27 8. 软件缺陷的原则 .......................................................................................................................27 9.文档测试 ....................................................................................................................................27 五、系统测试 ..............................................................................................................................................28 1、介绍...........................................................................................................................................28 2、系统测试规程...........................................................................................................................29 3、 实施建议.................................................................................................................................30 4、系统测试的目标.......................................................................................................................31 5、系统测试的方针.......................................................................................................................31 6、系统测试的过程.......................................................................................................................31 六、 TEST DIRECTOR 7.6.........................................................................................................................32 1、概述(Introduction)...............................................................................................................32 1.1 测试管理过程(The Test Management Process)..........................................................32 1.2 需求定义(Specify Requirements)................................................................................32 1.3 测试计划(Planning Tests)............................................................................................33 1.4 测试执行(Running Tests)............................................................................................34 1.5 缺陷跟踪(Tracking Defects)........................................................................................35 1.6 用户权限(User Privileges)...........................................................................................36 2、开始(Getting Started)...........................................................................................................36 2.1 启动 TestDirector(Starting TestDirector).....................................................................36 2.2 TestDirector 窗口(The TestDirector Window)............................................................37 2.3 TestDirector 工具栏(The TestDirector Toolbar)..........................................................39 2.4 修改密码(Changing Passwords)..................................................................................39 2.5 修改用户属性(Changing User Properties)..................................................................40 2.6 清除历史记录(Clearing History)................................................................................40 3、需求定义工作流.......................................................................................................................41 3.1 定义测试范围(Defining the Testing Scope)...............................................................42 3.2 创建测试需求大纲(Creat Requirements)...................................................................42 3.3 定义需求(Detail Requirements)..................................................................................43 3.4 分析需求定义(Analyz Requirements)........................................................................43 4、需求模块一览...........................................................................................................................43 4.1 需求模块(The Requirements Module).......................................................................43 4.2 需求菜单栏(The Requirements Menu Bar)................................................................45 4.3 需求工具栏(The Requirements Toolbar)....................................................................45 4.4 需求树(Requirements Tree).........................................................................................46 5、开发需求树(Developing Requirements Tree).....................................................................47 5.1 创建需求树(Creating a Requirements Tree)...............................................................47 5.2 查看关联缺陷(Viewing Associated Defects)..............................................................48 5.3 从需求创建测试(Creating Tests from Requirements)................................................49 6、测试计划工作流(The Test Plan Workflow)........................................................................53 6.1 定义测试策略(Defining Testing Strategy)..................................................................54 6.2 定义测试主题(Defining Test Subjects).......................................................................54 6.3 设计测试(Planning Tests)............................................................................................54 6.4 创建需求覆盖(Creating Requirements Coverage).....................................................54 6.5 设计测试步骤(Designing Test Steps).........................................................................55 6.6 自动测试(Automating Tests).......................................................................................55 6.7 分析测试计划(Analyzing Your Test Plan)..................................................................55 7、测试计划模块一览(The Test Plan Module at a Glance)....................................................56 7.1 测试计划模块(The Test Plan Module)........................................................................56 7.2 测试计划菜单栏(The Test Plan Menu Bar)................................................................57
  • 4. 7.3 测试计划工具栏(The Test Plan Toolbar)....................................................................57 8、连接测试到需求(Linking Tests to Requirements)..............................................................60 8.1 关于连接测试到需求(About Linking Tests to Requirements)...................................60 8.2 连接需求到一个测试(Linking Requirements to a Test)............................................62 8.3 连接测试到一个需求(Linking Tests to a Requirement)............................................64 8.4 连接需求和测试覆盖(Linking Requirements and Tests Coverage)..........................66 9、测试实验室工作流(Execute Tests).....................................................................................66 9.1 创建测试集(Creating Tests Sets).................................................................................67 9.2 制定测试运行安排(Scheduling Test Runs)................................................................67 9.3 运行手动测试(Running Tests Manually)....................................................................67 9.4 运行自动测试(Running Tests Automatically)............................................................67 9.5 分析测试结果(Analyzing Test Results)......................................................................67 10、Test Lab 模块一览...................................................................................................................68 10.1 Test Lab 模块(The Test Lab Module)........................................................................68 10.2 Test Lab 菜单栏(The Test Lab Menu Bar)................................................................69 10.3 Test Lab 工具栏(The Test Lab Toolbars)..................................................................69 10.4 执行网格(The Execution Grid).................................................................................70 10.5 执行流程(The Execution Flow)................................................................................72 11、缺陷..........................................................................................................................................75 11.1 添加缺陷.........................................................................................................................75 11.2 缺陷生命周期..................................................................................................................76 12、TD 的备份...............................................................................................................................77 1、DomsInfo 目录..................................................................................................................77 2、域存储区...........................................................................................................................77 3、数据库...............................................................................................................................77 七、黑盒测试 ..............................................................................................................................................78 1、的测试用例设计方法...............................................................................................................78 1.1 等价类划分.......................................................................................................................78 1.2、边界值分析法................................................................................................................79 1.3、错误推测法....................................................................................................................79 1.4、因果图法........................................................................................................................80 1.5、判定表驱动分析方法....................................................................................................80 2、黑盒测试的优点.......................................................................................................................81 3、黑盒测试的缺点.......................................................................................................................81 4、黑盒测试(功能测试)工具的选择 .....................................................................................81 八、测试用例 ..............................................................................................................................................82 1、如何写测试用例.......................................................................................................................82 1.1 测试的来源,即测试的需求...........................................................................................82 1.2 用例的组织方式...............................................................................................................82 1.3 用例与其他材料的关联方式...........................................................................................83 1.4 用例应包含的信息...........................................................................................................83 2、测试用例模板和例子...............................................................................................................83 3、测试用例设计的误区...............................................................................................................85 4、测试用例在软件测试中的作用 .............................................................................................86 5、试用例编号规则.......................................................................................................................87 九、集成测试 ..............................................................................................................................................87 1、集成测试过程...........................................................................................................................89 2、集成测试工作内容及其流程...................................................................................................89 3、集成测试需求获取...................................................................................................................90
  • 5. 4、集成测试工作机制...................................................................................................................90 5、集成测试产生的工件清单.......................................................................................................91 6、集成测试常用方案选型...........................................................................................................91 6.1 自底向上集成测试 ·......................................................................................................92 6.2 核心系统先行集成测试·................................................................................................93 6.3 高频集成测试...................................................................................................................93 实例:集成测试计划书 模版......................................................................................................94 十、 JUNIT....................................................................................................................................................99 1、JUnit 概论..................................................................................................................................99 2.JUnit 框架................................................................................................................................100 2.1 Test...................................................................................................................................101 2.2 TestCase...........................................................................................................................101 2.3 TestSuite..........................................................................................................................102 2.4 Assert...............................................................................................................................103 2.5 TestResult........................................................................................................................104 2.6 TestRunner.......................................................................................................................105 3.JUnit 实战................................................................................................................................105 3.1 TestCase 生成及使用......................................................................................................105 3.2 JUnit 的测试步骤............................................................................................................108 十一、 NUNIT............................................................................................................................................108 1、简介.........................................................................................................................................108 2、NUnit 的框架..........................................................................................................................109 3、NUnit 的三大特征...................................................................................................................111 3.1 TestFixtureAttribute.........................................................................................................111 3.2 TestAttribute.....................................................................................................................111 3.3 Assert...............................................................................................................................112 4、NUnit 脚本编写和核心概念..................................................................................................114 5、SetUP/TearDown 属性............................................................................................................115 6、ExpectedException..................................................................................................................116 7、Ignore 属性 ............................................................................................................................117 8、TestFixtureSetUp/TestFixtureTearDown ................................................................................118 9、Test Suite..................................................................................................................................119 10、Explicit 属性..........................................................................................................................121 11、Expected Exception 属性 ....................................................................................................122 十二、单元测试 ........................................................................................................................................123 1、单元测试概述 .......................................................................................................................123 2、单元测试的基本方法.............................................................................................................124 2.1 单元测试任务.................................................................................................................124 2.2 单元测试过程.................................................................................................................125 3、测试代码编写.........................................................................................................................126 4、测试用例.................................................................................................................................128 5、白盒覆盖 ...............................................................................................................................129 6、白盒测试中的六种覆盖方法.................................................................................................130 6.1 语句覆盖.........................................................................................................................130 6.2 判定覆盖.........................................................................................................................131 6.3 条件覆盖.........................................................................................................................131 6.4 判定/条件覆盖................................................................................................................132 6.5 组合覆盖.........................................................................................................................132 6.6 路径覆盖.........................................................................................................................133
  • 6. 十三、 WINRUNNER ...............................................................................................................................134 1、 WinRunner 测试模式............................................................................................................134 2、 WinRunner 测试过程............................................................................................................135 3、WinRunner 框架......................................................................................................................136 4、WinRunner 的脚本录制..........................................................................................................138 4.1 选择录制模式.................................................................................................................138 4.2 创建测试步骤.................................................................................................................139 4.3 解决常见录制问题.........................................................................................................139 4.4 模拟录制.........................................................................................................................140 4.5 检查点.............................................................................................................................140 4.6 数据驱动测试.................................................................................................................141 4.7 同步点.............................................................................................................................141 4.8 测试信息文档化.............................................................................................................141 十四、 LOADRUNNER.............................................................................................................................143 1、LoadRunner 组件简介............................................................................................................144 2、基本步骤.................................................................................................................................144 3、安装 LoadRunner 中文版.......................................................................................................145 3.1 系统要求.........................................................................................................................145 3.2 安装过程.........................................................................................................................146 4.项目背景介绍.........................................................................................................................148 4.1 背景概述.........................................................................................................................148 4.2 压力测试用例.................................................................................................................148 5.使用 LoadRunner 进行负载/压力测试..................................................................................151 5.1 录制基本的用户脚本.....................................................................................................151 5.2 完善测试脚本.................................................................................................................153 5.3 单机运行测试脚本.........................................................................................................161 6 实施测试.....................................................................................................................................161 6.1 选择脚本,创建虚拟用户.............................................................................................161 6.2 添加 windows 资源监视窗口.........................................................................................164 6.3 添加 windows 性能计数器.............................................................................................164 6.4 执行脚本.........................................................................................................................166 6.5 分析结果.........................................................................................................................166 7、分析以及监视场景.................................................................................................................167 7.1 Memory 相关...................................................................................................................168 7.2 Processor 相关.................................................................................................................170 7.3 网络吞吐量以及带宽.....................................................................................................173 7.4 磁盘相关.........................................................................................................................173 7.5 Web 应用程序.................................................................................................................174 7.6 SQL Server......................................................................................................................176 7.7 Network Delay.................................................................................................................178 8 分析实时监视图表....................................................................................................................179 9 经常遇到的问题........................................................................................................................179 9.1 VuGen 的问题.................................................................................................................179 9.2 Controller 的问题............................................................................................................180 9.3 计数器的问题.................................................................................................................180 10 结果分析..................................................................................................................................181
  • 7. 一、软件测试(Software Test) 1、前景(Future) 根据有关职位统计资料显示,在国外大多数软件公司,1 个软件开发工程师就需要辅 有 2 个软件测试工程师。目前,软件测试自动化技术在我国则刚刚被少数业内专家所认知, 而这方面的专业技术人员在国内更是凤毛麟角。根据对近期网络招聘 IT 人才情况的了解, 许多正在招聘软件测试工程师的企业很少能够在招聘会上顺利招到合适的人才。   随着中国 IT 行业的发展,产品的质量控制与质量管理正逐渐成为企业生存与发展的 核心。从软件、硬件到系统集成,几乎每个中大型 IT 企业的产品在发布前都需要大量的质 量控制、测试和文档工作,而这些工作必须依靠拥有娴熟技术的专业软件人才来完成。而软 件测试工程师就是其中之一,目前已成为各类科技企业紧急征召的重要对象。   因此,在企业内部,软件测试工程师基本处于“双高”地位,即地位高、待遇高,有 的人月薪可高达 8000 元。可以说他们的职业前景非常广阔,从近期的企业人才需求和薪金 水平来看,软件测试工程师的年工资有逐年上升的明显迹象。测试工程师这个职位必将成 为 IT 就业的新亮点。 2、岗位特性(Work speciality) 1、工作起点高,发展空间大 开始工作即进入大、中型软件企业,后期转行也容易。 目前,单独设立测试部门、对测试工程师有强烈需求的企业大多是较大规模的软件企 业。因此,测试工程师并不像一般的软件工程师那样需要在小企业积累一定经验后方能获 得大企业的入门通行证。 软件测试员、软件测试工程师,经过一至两年的工作实践后,还可以到 IT 企业应聘软 件测试主管、项目主管、行业专家、自动化测试专家、 需求分析师、 QA、 客户服务/支持等职位。 2、职业寿命长,越老越吃香 使用专业测试工具,经验增加价值,软件测试工程师越老越吃香。 质量是产品的灵魂,测试工作在软件开发过程中的地位将越来越重要。而专业的测试 人员,需要熟练运用专业的测试工具来提高测试工作的效率,随着测试经验的积累,“资 深” 的测试工程师会测得更快、测得更准、测得更全面,从而将越来越“值钱”。 “软件测试工程师是一个越老越吃香的职业。”著名软件测试专家、清华大学教授郑人 杰如是说。他说软件测试工作是对质量的把关,其中包含技术及管理等方面的工作,工作 相对稳定,对年龄没有限制。而且随着项目经验的不断增长和对行业背景的深入了解,会 越老越吃香。 3、工作更稳定,不用频繁“跳” 大型企业用人制度好,岗位难替代,不需要频繁跳槽。 一般来说,大型企业在用人方面制度更加完善,劳动保障体系更加健全,员工的福利
  • 8. 待遇更有保障。在目前只有大中型软件企业有专门的测试部门的情况下,测试工程师比较 容易一开始就进入大中型企业工作,因此更有安全感和归属感,其工作也将更加稳定。另 一方面,测试工作由于要具备系统的测试知识、运用专业的测试工具,技术含量比较高, 因此测试 工程师不可能轻易地被替代,职业安全感高。 4、薪水待遇好 ,“钱”景被看涨 软件质量的把关者,人才凤毛麟角,薪酬上升空间非常大。 质量是企业的生命线,测试工程师作为软件质量的把关者,因为职位的重要而有较高 的待遇就顺理成章了。另外,“物以稀为贵” 的市场规律也使得当前极为紧俏的测试工程 师“钱景看好”。 并且现在我国的软件测试职业还处于一个发展的阶段,随着软件行业对产品质量重视 程度的提高,受过系统培训、掌握先进测试技术的软件测试从业人员的薪酬上升空间大。从 近期的企业人才需求和薪金水平来看,软件测试工程师的年工资还有逐年上升的明显趋势。 5、性别无偏好,没有就业歧视 不太依赖个人创新能力和工作强度,男女都能胜任。 软件测试工程师对性别没有具体要求,不像许多 IT 职位那样,更加偏好于男性。在 IT 业, 竞争异常激烈,从业者往往要面对巨大的工作压力,而高强度的工作压力,则是对人们脑 力、体力的双项考验。因此,用人单位对许多职位的招聘更偏向于男性,软件测试工程师相 比之下,工作过程和结果不太依赖于个人创新能力和工作强度,更需要的是熟练程度、耐 心、责任心和自信心,所以说软件测试工作也比较适合女性的,很多的软件公司测试部门 女性占了一定比例的。对于女性要从事软件测试 IT 方面的职业,只要肯下功夫,软件测试 对她的发展有很大好处所以,对人才的性别也就没有什么特别的要求。 3、软件测试(SoftWare Test) 3.1 什么是软件测试(What is SoftWare Test) 软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开 发之前所提出的一些要求。软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和 编码的最终复审,是软件质量保证的关键步骤。软件测试是为了发现错误而执行程序的过程。软 件测试在软件生存期中横跨两个阶段:通常在编写出每一个模块之后就对它做必要的测试(称 为单元测试)。编码和单元测试属于软件生存期中的同一个阶段。在结束这个阶段后对软件系统 还要进行各种综合测试,这是软件生存期的另一个独立阶段,即测试阶段。 3.2 软件测试的目的(Objective) 软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事件(Do it right)。 第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。 第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。 如果一个软件产 品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的 第三个目的是保证整个软件开发过程是高质量的。 软件质量是由几个方面来衡量的:一、在正确的时间用正确的的方法把一个工作做正确
  • 9. (Doing the right things right at the right time.)。 符合一些应用标准的要求,比如不同国家的 二、 用户不同的操作习惯和要求,项目工程中的可维护性、 可测试性等要求。 质量本身就是软件三、 达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量(Quality is defined as conformance to requirements, not as “goodness” or “elegance”.)。 质量也代表着它符 四、 合客户的需要(Quality also means “meet customer needs”.)。 作为软件测试这个行业,最重要的 一件事就是从客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过 程中会遇到什么样的问题。只有这些问题都解决了,软件产品的质量才可以说是上去了。 测试人员在软件开发过程中的任务: 1 、 寻 找 Bug ; 2 、 避 免 软 件 开 发 过 程 中 的 缺 陷 ; 3 、 衡 量 软 件 的 品 质 ; 4、关注用户的需求。 总的目标是:确保软件的质量。 3.3 软件测试的原则(Test Principia) 软件测试从不同的角度出发会派生出两种不同的测试原则,从用户的角度出发,就是希望 通过软件测试能充分暴露软件中存在的问题和缺陷,从而考虑是否可以接受该产品,从开发者 的角度出发,就是希望测试能表明软件产品不存在错误,已经正确地实现了用户的需求,确立 人们对软件质量的信心。 为了达到上述的原则,那么需要注意以下几点: 1.应当把“尽早和不断的测试”作为开发者的座右铭 2.程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完。 3.设计测试用例时应该考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况 要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。 4.一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。 5.对测试错误结果一定要有一个确认的过程,一般有 A 测试出来的错误,一定要有一个 B 来确认,严重的错误可以召开评审会进行讨论和分析。 6.制定严格的测试计划,并把测试时间安排的尽量宽松,不要希望在极短的时间内完成 一个高水平的测试。 7.回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多的错误出现的现 象并不少见。 8.妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。 3.4 软件测试的对象(Test Object)   软件测试并不等于程序测试。软件测试应该贯穿整个软件定义与开发整个期间。因此需求分 析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规 格说明、详细设计规格说明以及源程序,都应该是软件测试的对象。   在对需求理解与表达的正确性、设计与表达的正确性、实现的正确性以及运行的正确性的验 证中,任何一个环节发生了问题都可能在软件测试中表现出来。 3.5 软件测试方法(Method) 1、按阶段划分: 1.1 单元测试 单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动
  • 10. 态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。 因为单元测试需要知道内部程序设计和编码的细节知识,一般应由程序员而非测试员来完成, 往往需要开发测试驱动模块和桩模块来辅助完成单元测试。因此应用系统有一个设计很好的体 系结构就显得尤为重要。 一个软件单元的正确性是相对于该单元的规约而言的。因此,单元测试以被测试单位的规 约为基准。单元测试的主要方法有控制流测试、数据流测试、排错测试、分域测试等等。 1.2 集成测试 集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口 是否正确。它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运 行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶 向下和自底向上两种。 1.3 系统测试 系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等 满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测 试的“先知者问题”。 因此,系统测试应该按照测试计划进行,其输入、输出和其他动态运行行 为应该与软件规约进行对比。 软件系统测试方法很多,主要有功能测试、性能测试、随机测试等 等。 1.4 验收测试 验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系 统测试的测试数据的子集。所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至 是在软件安装使用的现场。这是软件在投入使用之前的最后测试。 1.5 回归测试 回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行 的修改是否正确。这里,修改的正确性有两重含义:一是所作的修改达到了预定目的,如错误 得到改正,能够适应新的运行环境等等;二是不影响软件的其他功能的正确性。 1.6 Alpha 测试 在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。这种测试 一 般 由最终 用户 或其他人员员完 成,不能 由程序 员或测试 员完成。 1.7 Beta 测试 当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。这种 测试一般由最终用户或其他人员员完成,不能由程序员或测试员完成。 2、按测试方法划分: 2.1 白盒测试 白盒测试也称结构测试或逻辑驱动测试,是指基于一个应用代码的内部逻辑知识,即基于 覆盖全部代码、 分支、路径、条件的测试,它是知道产品内部工作过程,可通过测试来检测产品 内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的 每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动 、 基路测试等,主要用于软件验证。 “白盒”法全面了解程序内部逻辑结构、 对所有逻辑路径进行测试。 “白盒”法是穷举路径测 试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试 数据。 贯穿程序的独立路径数是天文数字。 但即使每条路径都测试了仍然可能有错误。 第一,穷 举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测 试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的 错误。 白盒测试可以借助一些工具来完成如 Junit Framework,Jtest 等。 2.2 黑盒测试 黑盒测试是指不基于内部设计和代码的任何知识,而基于需求和功能性的测试,黑盒测试 也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是 否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构 和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明 书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信
  • 11. 息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推 测等,主要用于软件确认测试。 “黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。 “黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查 出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还 要对那些不合法但是可能的输入进行测试。 二、 测试工作流程及规范 1、计划与设计阶段(Plan & Design) 1.1 成立测试团队(Team) 在项目组成立的同时,测试组也将同时成立。团队成立的工作与责任如下: 过程要点 详细说明 输入条件 项目组成立(参与《项目计划书》的评审) 工作内容 为测试组任命一名测试经理,同时确定测试组的构成人选。 退出标准 测试组成立 责任人 项目经理 图表 1 1.2 测试预通知 在正式测试任务下达前,开发团队应提前一周左右向测试团队下达预通知,告之较为确切 的测试日期,提供当前最新的相关资料。测试组长可视具体情况决定是否需要调整人力。测试人 员可预先熟悉必要的背景资料,协助测试组长编写《测试计划书》初稿。 过程要点 详细说明 输入条件 项目进入软件实现阶段(编码) 工作内容 项目经理邮件通知测试组长正式测试交接时间,测试规模预估等 退出标准 预通知得到测试组长确认,并提交《测试计划书》初稿 责任人 项目经理,测试组长 图表 2 1.3 召开测试启动会议 过程要点 详细说明
  • 12. 输入条件 测试组长完成测试计划书初稿 开发团队与测试团队交接测试内容,对测试目标达成一致,商讨测 工作内容 试计划初稿的可行性,统一项目组的目标和测试的工作重点。 明确测试内容与重点,项目方提交《测试任务书》,测试方提交《测 退出标准 试计划书》正稿。 责任人 产品经理,测试组长 图表 3 1.4 编写测试计划文档 需求分析文档确立后,测试组需要编写测试计划文档,为后续的测试工作提供直接的指导 过程要点 详细说明 输入条件 项目需求文档建立 根据项目的需求文档,按照测试计划文档模板编写测试计划。测试 计划中应该至少包括以下关键内容:  测试需求——需要测试组测试的范围,估算出测试所花费的人 力资源和各个测试需求的测试优先级  测试方案——整体测试的测试方法和每个测试需求的测试方法  测试资源——本次测试所需要用到的人力、硬件、软件、技术的 资源 工作内容  测试组角色——明确测试组内各个成员的角色和相关责任  里程碑——明确标准项目过程中测试组应该关注的里程碑  可交付工件——在测试组的工作中必须向项目组提交的产物, 包括测试计划、测试报告等等  风险管理——列举出测试工作所可能出现的风险 测试计划编写完毕后,必须提交给项目组全体成员,并由项目组组 中各个角色组联合评审。  测试计划由项目组评审通过.  在项目开发过程中,要适时的对测试计划进行跟踪,以评估此 退出标准 计划的完整性、可行性,在项目结束时还要最后评估一下测试 计划的质量 责任人 测试组长 图表 4 1.5 设计测试用例 在需求分析文档确立基线以后,测试组需要针对项目的测试需求编写测试用例,在实际的
  • 13. 测试中,测试用例将是唯一实施标准。在用例的编写过程中,具体的任务和责任人如下: 过程要点 详细说明 输入条件 测试需求明确,测试计划明确 工作内容 根据每一步测试计划编写全部的测试用例 退出标准 测试用例需要覆盖所有的测试需求 责任人 测试用例设计工程师(可由测试实施工程师或测试组长兼做) 图表 5 2、实施测试阶段 2.1 实施测试用例() 实施测试用例将花费测试组绝大部分时间,这些工作都是建立在前期很多计划工作的基础 上。 过程要点 详细描述 输入条件 测试组长制前一工作日定出当日的测试计划,确定可用的测试用例。 测试实施工程师根据测试计划中分配给自己的测试任务和提供的测 工作内容 试用例,实施相应的测试用例,并将记录实施用例的结果 退出标准 测试用例中的所有任务被执行,结果被记录。 责任人 测试实施工程师 图表 6 2.2 提交报告(Bug Report) 在约定的测试周期完成之后,测试组长需要总结此测试的结果,编写测试报告 过程要点 详细描述 输入条件 测试组完成了预定周期的测试任务 工作内容 测试组长根据此轮测试的结果,编写测试报告,主要应包含以下内 容:  测试报告的版本  测试的人员和时间  测试所覆盖的缺陷——测试组在这轮测试中所有处理的缺陷, 报告了测试组长处理的缺陷和实施工程师验证的缺陷。不仅要 写出覆盖缺陷的总数,还要写明这些缺陷的去向  测试新发现的缺陷数量  上一版本活动缺陷的数量  经过此轮测试,所有活动缺陷的数量及其状态分类  测试评估——写明在这一版本中,那些功能被实现了,那些还
  • 14. 没有实现,这里只需写明和上一版本不同之处即可  急待解决的问题——写明当前项目组中面临的最优先的问题, 可以重复提出 退出标准 在每轮测试结束之后应尽快将符合标准的测试报告发给全项目组 责任人 测试组长 图表 7 2.3 回归测试(Regressive Test) 在每轮测试结束之后,由测试组重新拷贝修改后的最新版本,进行回归测试。 过程要点 详细描述 输入条件 在每轮测试中,按照现有的测试用例没有新的缺陷被发现,测试报 告中全部的活动缺陷都被解决。 工作内容 测试组将按照测试计划中对于回归测试的策略对产品进行回归测试, 回归测试的用例属于测试用例的一部分或者是全部测试用例,但不 能超出原先预定的测试用例的范围。 退出标准 回归测试所运行的用例全部通过。 责任人 测试实施工程师 (可由测试实施工程师或测试组长兼做) 图表 2 3、总结阶段 测试工作结束或即将结束时,测试组就要开始着手准备进行总结的工作。 3.1 编写测试报告 在回归测试结束之后,测试组长将要编写测试总结报告,对测试进行总结,并且提交给全 体项目组,为产品的后续工作提供重要的信息支持。 过程要点 详细描述 输入条件 测试组完成了所有的测试实施工作 工作内容 测试组长根据测试的结果,按照测试报告的文档模板编写测试报告, 测试报告必须包含以下重要内容:  测试资源概述——多少人、多长时间  测试结果摘要——分别描述各个测试需求的测试结果,产品实 现了哪些功能点,哪些还没有实现  缺陷分析——按照缺陷的属性分类进行分析  测试需求覆盖率——原先列举的测试需求的测试覆盖率,可能 一部分测试需求因为资源和优先级的因素没有进行测试,那么
  • 15. 在这里要进行说明  测试评估——从总体对项目质量进行评估  测试组建议——从测试组的角度为项目组提出工作建议 退出标准 测试组长完成了符合标准的测试报告,发送给全项目组。 责任人 测试组长 3.2 测试工作总结 测试总结工作是在以上的工作全部结束以后,它的目的是评估本次测试工作,总结经验, 使下一次的工作做得更好。 过程要点 详细描述 输入条件 测试组长完成了符合标准的测试报告,发送给全项目组 工作内容 测试组长根据测试的结果,按照测试总结的文档模板编写测试总结, 退出标准 测试组长完成了符合标准的测试总结,发送给全测试组。 责任人 测试组长 3.3 测试验收 测试验收工作是在以上工作全部结束后,对测试的过程,效果进行验收,宣布测试结束。 过程要点 详细描述 测试组完成了所有的测试实施工作,测试组长完成符合标准的测试 输入条件 总结文档 由测启会上约定的验收组成员,对本测试收进行验收,验收内容包 括:  测试效果验收——测试是否达到预期目的  测试文档验收——测试过程文档是否齐全,可信,符合标准 工作内容  测试评估——从总体对测试的质量进行评估  测试建议——对本次测试工作指出不足,需要在以后工作中改 进的地方  宣布测试结束——测试验收组成员签字宣布本次测试结束 退出标准 签发测试验收报告 责任人 产品经理 3.4 测试归档 测试归档是在测试验收结束宣布测试有效,结束测试后,对测试过程中涉及到各种标准文档 进行归类,存档。 过程要点 详细描述 输入条件 测试验收通过
  • 16. 工作内容 归类,存档测试过程涉及到的文档,主要包括以下文档(必须)  测试任务书  测试计划书  测试用例书  测试报告书  测试总结书  测试验收书 退出标准 全部文档归类完毕,版本号封存 责任人 测试组长 4、缺陷跟踪 测试验收结束后,跟踪产品在试运行阶段暴露出来的新缺陷,以及已提交的缺陷是否再次 发生。 过程要点 详细描述 测试组完成了所有的测试实施工作,测试验收通过,产品试运行、 输入条件 运行。  已发现缺陷是否再次发生  是否有新发现的在测试中未发现的缺陷  是否有新发现的在测试中已发现但未修改的缺陷 工作内容 定义: A 类:新发现的缺陷 B 类:已发现的缺陷 C 类:已发现未修改的缺陷 退出标准 缺陷跟踪报告 责任人 产品经理、项目实施经理 5、测试工作流程图 测试工作总体流程图
  • 17.
  • 18.
  • 19. 三、 缺陷() 1、Bug 管理 软件测试的主要目的在于发现软件存在的错误(Bug),对于如何处理测试中发现的错误, 将直接影响到测试的效果。只有正确、迅速、准确地处理这些错误,才能消除软件错误,保证要 发布的软件符合需求设计的目标。在实际软件测试过程中,对于每个 Bug 都要经过测试、确认、 修复、验证等的管理过程,这是软件测试的重要环节。
  • 20. 1.1 错误(bug)跟踪管理系统 为了正确跟踪每个软件错误的处理过程,通常将软件测试发现的每个错误作为一条条记录 输 入 制 定 的 错 误 跟 踪 管 理 系 统 。 目 前 已 有 的 缺 陷 跟 踪 管 理 软 件 包 括 Compuware 公 司 的 TrackRecord 软 件 ( 商 业 软 件 ) 、 Mozilla 公 司 的 Buzilla 软 件 ( 免 费 软 件 ) , MI (Mercury Interactive)公司的 Test Director,以及国内的微创公司的 BMS 软件,这些软件在功能上各有特 点,可以根据实际情况选用。当然,也可以自己开发缺陷跟踪软件,例如基于 Notes 或是 ClearQuese 开发缺陷跟踪管理软件。 作为一个缺陷跟踪管理系统,需要正确设计每个错误的包含信息的字段内容和记录错误的 处理信息的全部内容。字段内容可能包括测试软件名称,测试版本号,测试人名称,测试事件 , 测试软件和硬件配置环境,发现软件错误的类型,错误的严重等级,详细步骤,必要的附图, 测试注释。处理信息包括处理者姓名,处理时间,处理步骤,错误记录的当前状态。正确的数据 库权限管理是错误跟踪管理系统的重要考虑要素,一般要保证对于添加的错误不能从数据库中 删除。 1.2 软件错误的状态 新信息(New):测试中新报告的软件缺陷; 打开 (Open):被确认并分配给相关开发人员处理; 修正(Fixed):开发人员已完成修正,等待测试人员验证; 拒绝(Declined):拒绝修改缺陷; 延期(Deferred): 不在当前版本修复的错误,下一版修复 关闭(Closed):错误已被修复; 1.3 Bug 管理的一般流程   测试人员提交新的 Bug 入库,错误状态为 New。 高级测试人员(测试经理)验证错误,如果确认是错误,分配给相应的开发人员,设置状 态为 Open。如果不是错误,则拒绝,设置为 Declined 状态。开发人员查询状态为 Open 的 Bug, 如果不是错误,则置状态为 Declined;如果是 Bug 则修复并置状态为 Fixed。不能解决的 Bug, 要留下文字说明及保持 Bug 为 Open 状态。对于不能解决和延期解决的 Bug,不能由开发人员自 己决定,一般要通过某种会议(评审会)通过才能认可。 测试人员查询状态为 Fixed 的 Bug,然后验证 Bug 是否已解决,如解决置 Bug 的状态为 Closed,如没有解决置状态为 Reopen。
  • 21. 1.4 软件错误流程管理要点 为了保证错误的正确性,需要有丰富测试经验的测试人员验证发现的错误是否是真正的错 误,书写的测试步骤是否准确,可以重复。每次对错误的处理都要保留处理信息,包括处理姓 名,时间,处理方法,处理意见,Bug 状态。拒绝或延期错误不能由程序员单方面决定,应该 由项目经理,测试经理和设计经理共同决定。 错误修复后必须由报告错误的测试人员验证后,确认已经修复,才能关闭错误。加强测试 人员与程序员的交流,对于某些不能重复的错误,可以请测试人员补充详细的测试步骤和方法 , 以及必要的测试用例。 2、Bug 生命周期 不是BUG 缺陷评估 是bug 已有bug 是 链接已有bug 经理 关闭 否 (closed ) 测试 公布缺陷 (open) 关闭 测试通过 是 工程师 (closed) 新建缺陷 测试 (new) 否 Reopen 是 Fixed (1)postponed 程师 (2)by design (3)wont fix 软件工 是否修复 否 发经理 工作量评估 任务分派 开 是 评估 经理 修订决策 关闭 产品 (closed) 否 四 、 web 应 用 程 序 测 试 方 法 和 测 试 技 术 详 述    随着 web 应用的增多,新的模式解决方案中以 web 为核心的应用也越来越多,很多公司 各种应用的架构都以 B/S 及 web 应用为主,但是有关 WEB 测试方面的内容并没有相应的总结, 所以我在这里对 web 的测试方法和采用的测试技术进行总结,便于内部交流。   测试方法尽量涵盖 web 程序的各个方面,测试技术方面在继承传统测试技术的技术上结合 web 应用的特点。   相关的测试和实现技术也有着很大的关系,由于本公司使用 J2EE 体系,也许例子中只有
  • 22. JAVA 平台可以使用,.NET 平台测试技术暂时不涉及,如果你有请与我联系。   一般的 web 测试和以往的应用程序的测试的侧重点不完全相同,基本包括以下几个方面。   当然圆满的完成测试还要有好的团体和流程等的方方面面的支持,你同样应该对这些方面 进 行 注 意 。   有些测试方法设计到了流程,哪些应该在你的测试团队建设中建立。 1、界面测试   现在一般人都有使用浏览器浏览网页的经历,用户虽然不是专业人员但是对界面效果的印 象是很重要的。 如果你注重这方面的测试,那么验证应用程序是否易于使用就非常重要了。 很多 人认为这是测试中最不重要的部分,但是恰恰相反界面对不懂技术的客户来说那相当关键,慢 慢体会你会明白的。   方法上可以根据设计文档,如果够专业的话可以专业美工人员,来确定整体风格页面风格 , 然后根据这个可以页面人员可以生成静态的 HTML,CSS 等甚至生成几套不用的方案来讨论, 或者交给客户评审,最后形成统一的风格的页面/框架。注意不要靠程序员的美术素养形成你的 web 风格,那样可能会很糟糕。   主要包括以下几个方面的内容:   站点地图和导航条位置、 是否合理、 是否可以导航等内容布局布局是否合理,滚动条等简介 说 明 说 明 文 字 是 否 合 理 , 位 置 , 是 否 正 确     背 景 / 色 调 是 否 正 确 、 美 观 , 是 否 符 合 用 户 需 求 ;   页面在窗口中的显示是否正确、美观(在调整浏览器窗口大小时,屏幕刷新是否正确)表 单样式大小,格式,是否对提交数据进行验证(如果在页面部分进行验证的话)等   连接连接的形式,位置,是否易于理解等   web 测试的主要页面元素     页 面 元 素 的 容 错 性 列 表 ( 如 输 入 框 、 时 间 列 表 或 日 历 )   页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、 单选框、复选 框 、 列 表 框 、 超 连 接 、 输 入 框 等 等 )     页 面 元 素 的 容 错 性 是 否 存 在     页 面 元 素 的 容 错 性 是 否 正 确   页面元素基本功能是否实现(如文字特效、动画特效、按钮、超连接)   页面元素的外形、摆放位置(如按钮、列表框、核选框、输入框、超连接等)     页 面 元 素 是 否 显 示 正 确 ( 主 要 针 对 文 字 、 图 形 、 签 章 )     元 素 是 否 显 示 ( 元 素 是 否 存 在 )   页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、 单选框、复选 框、列表框、超连接、输入框等等)   测试技术   通过页面走查,浏览确定使用的页面是否符合需求。可以结合兼容性测试对不用分辨率下 页 面 显 示 效 果 , 如 果 有 影 响 应 该 交 给 设 计 人 员 提 出 解 决 方 案 。     可 以 结 合 数 据 定 义 文 档 查 看 表 单 项 的 内 容 , 长 度 等 信 息 。   对于动态生成的页面最好也能进行浏览查看。如 Servelet 部分可以结合编码规范,进行代 码走查。是否支持中文,如果数据用 XML 封装要做的工作会多一点等等。     界 面 测 试 要 素 :   符合标准和规范,灵活性,正确性,直观性,舒适性,实用性,一致性   1.直观性:   用户界面是否洁净,不唐突,不拥挤.界面不应该为用户制造障碍.所需功能或者期待的响应应 该明显,并在预期出现的地方.   界面组织和布局合理吗?是否允许用户轻松地从一个功能转到另一个功能?下一步做什么明 显吗?任何时刻都可以决定放弃或者退回,退出吗?输入得到承认了吗?菜单或者窗口是否深藏不 露 ? 有多余功能吗?软件整体抑或局部是否做得太多?是否有太多特性把工作复杂化了?是否感到信
  • 23. 太 庞 杂 ?     如 果 其 他 所 有 努 力 失 败 , 帮 助 系 统 真 能 帮 忙 吗 ?   2.一致性     快 速 键 和 菜 单 选 项 . 在 Windows 中 按 F1 键 总 是 得 到 帮 助 信 息   术语和命令.整个软件使用同样的术语吗?特性命名一致吗?例如,Find 是否一直叫 Find,而不 是 有 时 叫 Search?   软件是否一直面向同一级别用户?带有花哨用户界面的趣味贺卡程序不应该显示泄露技术 机 密 的 错 误 提 示 信 息 .   按钮位置和等价的按键.大家是否注意到对话框有 OK 按钮和 Cancle 按钮时,OK 按钮总是 在上方或者左方,而 Cancle 按钮总是在下方或右方?同样原因,Cancle 按钮的等价按键通常是 Esc, 而 选 中 按 钮 的 等 价 按 钮 通 常 是 Enter. 保 持 一 致 .   3.灵活性     状 态 跳 转 . 灵 活 的 软 件 实 现 同 一 任 务 有 多 种 选 择 方 式 .     状 态 终 止 和 跳 过 , 具 有 容 错 处 理 能 力 .   数据输入和输出.用户希望有多种方法输入数据和查看结果.例如,在写字板插入文字可用键 盘输入,粘贴,从 6 种文件格式读入,作为对象插入,或者用鼠标从其他程序拖动.     4. 舒 适 性     恰 当 . 软 件 外 观 和 感 觉 应 该 与 所 做 的 工 作 和 使 用 者 相 符 .   错误处理.程序应该在用户执行严重错误的操作之前提出警告,并允许用户恢复由于错误操 作 导 致 丢 失 的 数 据 . 如 大 家 认 为 undo /redo 是 当 然 的 .   性能.快不见得是好事.要让用户看得清程序在做什么,它是有反应的. 2、功能测试     对 功 能 测 试 是 测 试 中 的 重 点     主 要 包 括 一 下 几 个 方 面 的 内 容   连接这个连接和界面测试中的连接不同那里注重的是连接方式和位置,如是图像还是文字 放置的位置等,还是其他的方式。 这里的连接注重功能。 如是否有连接,连接的是否是说明的位 置等。   表单提交应当模拟用户提交,验证是否完成功能,如注册信息,要测试这些程序,需要验 证服务器能正确保存这些数据,而且后台运行的程序能正确解释和使用这些信息。还有数据正 确性验证,异常处理等,最好结合易用性要求等。B/S 结构实现的功能可能主要的就在这里, 提交数据,处理数据等如果有固定的操作流程可以考虑自动化测试工具的录制功能,编写可重 复使用的脚本代码,可以在测试、回归测试时运行以便减轻测试人员工作量。   Cookies 验证如果系统使用了 cookie,测试人员需要对它们进行检测。如果在 cookies 中保 存了注册信息,请确认该 cookie 能够正常工作而且已对这些信息已经加密。如果使用 cookie 来统计次数,需要验证次数累计正确。 关于 cookie 的使用可以参考浏览器的帮助信息。 如果使用 B/S 结构 cookies 中存放的信息更多。功能易用性测试完成了功能测试可以对应用性进行了解, 最好听听客户的反映,在可以的情况下对程序进行改进是很有必要的,和客户保持互动对系统 满意度也是很有帮助的。   测试技术功能测试的测试技术可是很多的,我们可以结合实际环境选择使用   白盒测试技术(White Box Testing) 深入到代码一级的测试,使用这种技术发现问题最早, 效果也是最好的。该技术主要的特征是测试对象进入了代码内部,根据开发人员对代码和对程序 的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对代码的理解和接触所 进行的软件测试叫做白盒测试。 这一阶段测试以软件开发人员为主,在 JAVA 平台使用 Xunit 系 列工具进行测试,Xunit 测试工具是类一级的测试工具对每一个类和该类的方法进行测试。   黑盒测试技术(Black Box Testing)黑盒测试的内容主要有以下几个方面,但是主要还是 功能部分。主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,根据软件需求,设
  • 24. 计文档,模拟客户场景随系统进行实际的测试,这种测试技术是使用最多的测试技术涵盖了测 试的方方面面,可以考虑以下方面   正确性 (Correctness):计算结果,命名等方面?   可用性 (Usability):是否可以满足软件的需求说明。   边界条件 (Boundary Condition)输入部分的边界值,就是使用一般书中说的等价类划分,试试 最大最小和非法数据等等.   性能 (Performance) 正常使用的时间内系统完成一个任务需要的时间,多人同时使用的时候 响应时间,在可以接受范围内.J2EE 技术实现的系统在性能方面更是需要照顾的,一般原则是 3 秒 以下接受,3-5 秒可以接受,5 秒以上就影响易用性了. 如果在测试过程中发现性能问题,修复起 来是非常艰难的,因为这常常意味着程序的算法不好,结构不好,或者设计有问题。因此在产 品开发的开始阶段,就要考虑到软件的性能问题。   压力测试 (Stress) 多用户情况可以考虑使用压力测试工具,建议将压力和性能测试结合起来 进行.如果有负载平衡的话还要在服务器端打开监测工具,查看服务器 CPU 使用率,内存占用情况, 如果有必要可以模拟大量数据输入,对硬盘的影响等等信息.如果有必要的话必须进行性能优化 (软硬件都可以).这里的压力测试针对的是某几项功能.   错误恢复 (Error Recovery) 错误处理,页面数据验证,包括突然间断电,输入脏数据等. 安全性测试(Security)这个领域正在研究中,不过防火墙,补丁包.杀毒软件等的就不必说了,不过可 以考虑破坏性测试时任意.看了一些资料后得知,这里面设计到的知识内容可以写本书了,不是一 两句可以说清的,特别是一些商务网站,或者跟钱有关,或者和公司秘密有关的 web 更是,需要这方 面的测试,在外国有一种专门干这一行的人叫安全顾问,可以审核代码,提出安全建议,出现紧急事 件是的处理办法等,在国内没有听说哪里有专门搞安全技术测试的内容.   兼容性 (Compatibility) 不同浏览器,不同应用程序版本在实现功能时的表现,不同的上网 方式,如果你测试的是一个公共网站的话.     兼 容 性 测 试 内 容 详 述     硬 件 平 台   浏览器软件和版本:浏览器插件,浏览器选项,视频分辨率和色深.文字大小,调制解调器速率.   软件配置 (Configuration) 如 IE 浏览器的不用选项-安全设定最高,禁用脚本程序,等等,你们 的程序在各种不用的设置下表现如何.     单 元 测 试 技 术 (Unit Test):   2.2.1 下面是对白盒测试和单元测试的区别的论述:   单元测试和白盒测试是不同的,虽然单元测试和白盒测试都是关注功能虽然他们都需要代 码支持,但是级别不同,白盒测试关注的是类中一个方法的功能是更小的单位 ,但是完成一个单元 测试可能需要 N 多类,所以说作单元测试需要什么写驱动和稳定桩,比如查询单元是一个查询包 包 N 多的测试类,测试数据,运行他需要提供数据的部分,输入参数和发出命令的驱动等等.是比类 大的一个整体进行的.   另一个明显的区别是白盒测试不会关注类接口,但是单元测试主要的内容就是类接口测试.   不过很多时候是很少区分的,因为这两种技术实现起来有很多相互关联的部分.不过要看你 对质量的关注程度来决定.     2.2.2 功 能 测 试 边 界 测 试 越 界 测 试 技 术 详 述     边 界 条 件     边 界 条 件 是 指 软 件 计 划 的 操 作 界 限 所 在 的 边 缘 条 件 .     如 果 软 件 测 试 问 题 包 含 确 定 的 边 界 , 那 么 数 据 类 型 可 能 是 :     数 值 速 度 字 符 地 址 位 置 尺 寸 数 量     同 时 , 考 虑 这 些 类 型 的 下 述 特 征 :     第 一 个 / 最 后 一 个 最 小 值 / 最 大 值     开 始 / 完 成 超 过 / 在 内     空 / 满 最 短 / 最 长     最 慢 / 最 快 最 早 / 最 迟     最 大 / 最 小 最 高 / 最 低     相 邻 / 最 远     越 界 测 试   通常是简单加 1 或者很小的数(对于最大值)和减少 1 或者很小的数(对于最小值),例如:
  • 25.     第 一 个 减 1/ 最 后 一 个 加 1     开 始 减 1/ 完 成 加 1     空 了 再 减 / 满 了 再 加     慢 上 加 慢 / 快 上 加 快     最 大 数 加 1/ 最 小 数 减 1     最 小 值 减 1/ 最 大 值 加 1     刚 好 超 过 / 刚 好 在 内     短 了 再 短 / 长 了 再 长     早 了 更 早 / 晚 了 更 晚   最高加 1/最低减 1   另一些该注意的输入:默认,空白,空值,零值和无;非法,错误,不正确和垃圾数据.     2.2.3 状 态 测 试 技 术     软 件 可 能 进 入 的 每 一 种 独 立 状 态 ;     从 一 种 状 态 转 入 另 一 种 状 态 所 需 的 输 入 和 条 件 ;     进 入 或 退 出 某 种 状 态 时 的 设 置 条 件 及 输 入 结 果 .     具 体 测 试 方 法 可 以 参 考 如 下 :     每 种 状 态 至 少 访 问 一 次 ;     测 试 看 起 来 最 常 见 最 普 遍 的 状 态 转 换 ;     测 试 状 态 之 间 最 不 常 用 的 分 支     测 试 所 有 错 误 状 态 及 其 返 回 值   测试随机状态转换   2.2.4 竞争条件测试技术 竞 争 条 件 典 型 情 形 参 考 如 下 :     两 个 不 同 的 程 序 同 时 保 存 或 打 开 同 一 个 文 档     共 享 同 一 台 打 印 机 , 通 信 端 口 或 者 其 他 外 围 设 备     当 软 件 处 于 读 取 或 者 修 改 状 态 时 按 键 或 者 单 击 鼠 标     同 时 关 闭 或 者 启 动 软 件 的 多 个 实 例   同时使用不同的程序访问一个共同数据库 3、负载压力测试(StressTest)   在这里的负载压力和功能测试中的不同,他是系统测试的内容,是基本功能已经通过后进行 的.可以在集成测试阶段,亦可以在系统测试阶段进行.   使用负载测试工具进行,虚拟一定数量的用户看一看系统的表现,是否满足定义中的指标.   负载测试一般使用工具完成,loadrunner,webload,was,ewl,e-test 等,主要的内容都是 编写出测试脚本,脚本中一般包括用户一般常用的功能,然后运行,得出报告。所以负载测试 包括的主要内容就不介绍了。   负载测试技术在各种极限情况下对产品进行测试 (如很多人同时使用该软件,或者反复运 行该软件),以检查产品的长期稳定性。例如,使用压力测试工具对 web 服务器进行压力测试. 本项测试可以帮助找到一些大型的问题,如死机、 崩损、 内存泄漏等,因为有些存在内存泄漏问 题的程序,在运行一两次时可能不会出现问题,但是如果运行了成千上万次,内存泄漏得越来 越多,就会导致系统崩滑。用 J2EE 实现的系统很少但是并不是没有内存问题.   无论什么工具基本的技术都是利用线程技术模仿和虚拟用户,在这里主要的难点在与测试 脚本的编写,每种工具使用的脚本都不一样,但是大多数工具都提供录制功能就算是不会编码 的测试人员同样可以测试。   对负载工具的延伸使用可以进行系统稳定性测试,系统极限测试,如使用 100 的 Load Size 连续使用 24 小时,微软定义的通过准则是通过 72 小时测试的程序一般不会出现稳定性的问题。
  • 26. 4、回归测试 (Regression Test)   过一段时间以后,再回过头来对以前修复过的 Bug 重新进行测试,看该 Bug 是否会重新 出现。   回归测试技术可以在测试的各个阶段出现,无论是单元测试还是集成测试还是系统测试。 是对以前问题进行验证的过程。   回归测试的目的就是保证以前已经修复的 Bug 不会再出现。实际上,许多 Bug 都是在回归 测试时发现的,在此阶段,我们首先要检查以前找到的 Bug 是否已经更正了。值得注意的是, 已经更正的 Bug 也可能又回来了,有的 Bug 经过修改之后可能又产生了新的 Bug。所以,回归 测试可保证已更正的 Bug 不再重现,不产生新的 Bug。 5 、Alpha 和 Beta 测试 (Alpha and Beta Test):   在正式发布产品之前往往要先发布一些测试版,让用户能够反馈出相关信息,或者找到存 在的 Bug,以便在正式版中得到解决。   特别是在有客户参加的情况下,对系统进行测试可能会出现一些我们没有考虑的情况,还 可以解决一些客户实际关心的问题 6、不同的测试技术区分 6.1 覆盖测试技术   说明:测试覆盖率可以看出测试的完成度,在测试分析报告中可以作为量化指标的依据,测 试覆盖率越高效果越好。   覆盖测试可以是程序代码的执行路径覆盖,亦可以是功能实现的步骤覆盖(可以理解成流 程图的路径覆盖)。   该技术可以用在任何测试阶段,包括单元测坏死、集成测试、系统测试。   使用该技术时可以使用以上的任何测试方法和测试技术。 6.2 白盒测试和黑盒测试技术   白盒测试技术 (White Box Testing)该技术主要的特征是测试对象进入了代码内部,根据开发 人员对代码和对程序的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对 代码的理解和接触所进行的软件测试叫做白盒测试。这一阶段测试以软件开发人员为主,使用 Xunit 系列工具进行测试,可以包括很多方面如功能性能等。   黑盒测试 (Black Box Testing)测试的主体部分黑盒测试的内容主要有以下几个方面,但是 主要还是功能部分。主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,包括的不同 测试类型请参考以上内容。 6.3 手工测试和自动化测试   手工测试(Manual Testing):即依靠人力来查找 Bug。方法可以参考上边的测试,也可以 根据对实现技术及经验等进行不同的测试。
  • 27.   自动测试(Automation Testing)使用有针对工具实行。可以作出自动化测试的计划,对可以 进行自动化测试的部分编写或者录制相应的脚本 ,可以加入功能,容错,表单提交等,可以参考 MI,Rational 或者其他类测试工具说明.   根据权威的软件测试经验,手工测试还是主要的测试方法,自动测试不够灵活,在这里不 再详述。微软的测试过程 80%还是手工完成。   自动测试永远也代替不了手工测试,但是手工测试的工作量很大是不争的事实。 6.4 根据 RUP 标准按阶段区分测试   单元测试在上边有详细的叙述,还有针对单元测试和集成测试的论述,请参考。   集成测试分为功能集成测试和系统集成测试,相互有调用的功能集成,在系统环境下功能 相互调用的影响等,使用方法可以任意选用上面的内容。注重功能方面。   系统测试在功能实现的基础上,可以加入兼容性,易用性,性能等等   验收测试可以包括 Alpha 和 Beta 测试,在这里就不再详述。 7.存在风险及解决方法   说明:测试不能找出所有的问题,只是尽量将问题在开发阶段解决大多数的问题而已。 测试风险如下:     软 硬 件 的 测 试 环 境 提 供 上 也 对 测 试 结 果 有 很 大 的 影 响 。     测 试 团 队 的 水 平 , 经 验 , 合 作 效 果 等     整 个 开 发 流 程 对 测 试 的 重 视 程 度 , 测 试 的 进 入 时 间 等   由于测试环境操作系统,网络环境,带宽等情况可能产生的测试结果可能不同这是就需要 经验以及对测试环境的保护等方面下一些功夫。 8. 软件缺陷的原则   软件缺陷区别于软件 bug,它是在测试过程中出现的对系统有影响的,但是在设计中没有的 或 者 对 修 改 后 的 bug 测 试 和 开 发 人 员 有 不 同 意 见 等     软 件 未 达 到 产 品 说 明 书 标 明 的 功 能 。     软 件 出 现 了 产 品 说 明 书 指 明 不 会 出 现 的 错 误 。     软 件 功 能 超 出 产 品 说 明 书 指 明 范 围 。     软 件 未 达 到 产 品 说 明 书 虽 未 指 出 但 应 达 到 的 目 标 。   软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。 9.文档测试     产 品 说 明 书 属 性 检 查 清 单    完 整 .是否 有遗漏和丢失 ?完全吗?单独使 用是 否包含全部内容 ?     准 确 . 既 定 解 决 方 案 正 确 吗 ? 目 标 明 确 吗 ? 有 没 有 错 误 ?   精确,不含糊,清晰.描述是否一清二楚?还是自说自话?容易看懂和理解吗?     一 致 . 产 品 功 能 能 描 述 是 否 自 相 矛 盾 , 与 其 他 功 能 有 没 有 冲 突 ?   贴切.描述功能的陈述是否必要?有没有多余信息?功能是否原来的客户要求?   合理.在特定的预算和进度下,以现有人力,物力和资源能否实现?   代码无关.是否坚持定义产品,而不是定义其所信赖的软件设计,架构和代码?
  • 28.   可测试性.特性能否测试?测试员建立验证操作的测试程序是否提供足够的信息?   产品说明书用语检查清单   说明对问题的描述通常表现为粉饰没有仔细考虑的功能 ----可归结于前文所述的属性.从产 品说明书上找出这样的用语,仔细审视它们在文中是怎样使用的.产品说明书可能会为其掩饰和 开脱,也可能含糊其词----无论是哪一种情况都可视为软件缺陷.   总是,每一种,所有,没有,从不.如果看到此类绝对或肯定的,切实认定的叙述,软件测试员就可 以着手设计针锋相对的案例.   当然,因此,明显,显然,必然.这些话意图诱使接受假定情况.不要中了圈套.   某些,有时,常常,通常,惯常,经常,大多,几乎.这些话太过模糊."有时"发生作用的功能无法测试.   等等,诸如此类,依此类推.以这样的词结束的功能清单无法测试.功能清单要绝对或者解释明 确,以免让人迷惑,不知如何推论.   良好,迅速,廉价,高效,小,稳定.这些是不确定的说法,不可测试.如果在产品说明书中出现,就 必须进一步指明含义.   已处理,已拒绝,已忽略,已消除.这些廉洁可能会隐藏大量需要说明的功能. 如果...那么...(没有否则).找出有"如果...那么..."而缺少配套的"否则"结构的陈述.想一想"如 果"没有发生会怎样. 五、系统测试 系统测试(System Test, ST)是将经过测试的子系统装配成一个完整系统 来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。 系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足 产品需求并且遵循系统设计。 系统测试过程域是 SPP 模型的重要组成部分。本规范阐述了系统测试的规程, 该规程的“目标”、“角色与职责”、 “启动准则”、“输入”、“主要步骤”、“输 出”、“完成准则”和“度量”均已定义。 1、介绍 系统测试流程如图 1 所示。由于系统测试的目的是验证最终软件系统满足产品需求并且遵循 系统设计,所以当产品需求和系统设计文档完成之后,系统测试小组就可以提前开始制定测试 计划和设计测试用例,而不必等到“实现与测试”阶段结束。这样可以提高系统测试的效率。 系统测试过程中发现的所有缺陷必须用统一的缺陷管理工具来管理,开发人员应当及时消 除缺陷(改错)。
  • 29. 图 1 系统测试流程图 项目经理设法组建富有成效的系统测试小组。系统测试小组的成员主要来源于: · 机 构 独 立 的 测 试 小 组 ( 如 果 存 在 的 话 ) 。 · 邀 请 其 它 项 目 的 开 发 人 员 参 与 系 统 测 试 。 · 本 项 目 的 部 分 开 发 人 员 。 ·机构的质量保证人员。 系统测试小组应当根据项目的特征确定测试内容。一般地,系统测试的主要内容包括: ·功能测试。即测试软件系统的功能是否正确,其依据是需求文档,如《产品需求规格说明 书》。由于正确性是软件最重要的质量因素,所以功能测试必不可少。 ·健壮性测试。即测试软件系统在异常情况下能否正常运行的能力。健壮性有两层含义:一 是 容 错 能 力 , 二 是 恢 复 能 力 。 ·性能测试。即测试软件系统处理事务的速度,一是为了检验性能是否符合需求,二是为了 得 到 某 些 性 能 数 据 供 人 们 参 考 ( 例 如 用 于 宣 传 ) 。 · 用 户 界 面 测 试 。 重 点 是 测 试 软 件 系 统 的 易 用 性 和 视 觉 效 果 等 。 ·安全性(security)测试。是指测试软件系统防止非法入侵的能力。“安全”是相对而言的, 一般地,如果黑客为非法入侵花费的代价(考虑时间、 费用、危险等因素)高于得到的好处,那 么 这 样 的 系 统 可 以 认 为 是 安 全 的 。 ·安装与反安装测试。 系 统 测 试 过 程 域 产 生 的 主 要 文 档 有 : · 《 系 统 测 试 计 划 》 , 模 板 见 [SPP-TEMP-ST-PLAN] 。 · 《 系 统 测 试 用 例 》 , 模 板 见 [SPP-TEMP-TEST-CASE] 。 · 《 系 统 测 试 报 告 》 , 模 板 见 [SPP-TEMP-TEST-REPORT] 。 ·《缺陷管理报告》,由缺陷管理工具自动生成。 2、系统测试规程 1 、 目 的 对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。 2 、 角 色 与 职 责 项 目 经 理 组 建 系 统 测 试 小 组 , 并 指 定 一 名 成 员 任 测 试 组 长 。 系统测试小组各成员共同制定测试计划、 设计测试用例、 执行测试,并撰写相应的文档。 测试 组 长 管 理 上 述 事 务 。 开发人员及时消除测试人员发现的缺陷。 3 、 启 动 准 则 产品需求和系统设计文档完成之后。 4 、 输 入 产品需求和系统设计文档