《自动化软件测试》笔记

《自动化软件测试》张瑾,杜春晖

1.       软件质量的理论:

1)  戴明W.Edwards Deming理论:PDCA戴明环,Plan计划,制定提高质量的改进计划;Do执行;Check通过检查来判断是否达到预期的结果;Action实施纠正行动

2)  朱兰Juran理论:80%质量问题应该由管理负责,20%才是技术问题。朱兰三步曲:质量计划、质量控制、质量改进

3)  Crosby理论: 质量就是符合要求的,而不是最好的;质量系统是用来预防的,而不是用来检验的;质量的标准时零缺陷,而不是差不多就好。

4)  田口宏一理论:质量是设计出来的,而不是检查出来的。质量最好是通过减少与目标的偏差来获得,产品应该对不可控的因素具有免疫力

5)  6sigma理论:建立于统计学基础上,以追求完美无瑕为最终目标

2.       SQC通常指软件测试,防止缺陷落到客户手中。SQA是为了确保软件开发的流程按照事先定义的规范开展

3.       CART Comprehensive Automatic Regression Testing 全面的软件自动化回归测试模型是由自动化编译过程,自动化发布过程,自动化测试过程,                                         测试结果自动化分发过程组成。一个良好的测试流程要在软件配置管理的基础上进行存储,在软件度量基础上进行构建,然后通过各种自动化测试工具进行全面的测试。

4.       TDDCART开发模型的建议:

1)  在需求调研的时候就要在商业分析中增加测试用例分析环节,以测试用例来检验需求的可行性和稳定性,以测试用例辅助需求调研

2)  在每个模块进入下个生命周期前都需要进行同行评审

3)  对核心模块或组件中的核心函数,以TDD的开发模型进行开发

4)  测试人员要具备开发的能力

5)  对于其他非重点模块或组件,单元测试用例一定要写,而且可以由开发和测试人员分工来写

6)  对于所有适合录制自动化测试的功能均要采取CART

7)  日构建每天都要进行

8)  至少每天都要对开发版本和基线版本进行CART

9)  懂技术和业务的测试人员是企业产品最好的二线技术支持人员

5.       目前国内常用的配置管理工具有VSS(Visual SourceSafe,代码管理), CVSSVNSubVersion, TortoiseSVN,文档管理,存放各种项目文档,已经日构建过程中用到的配置文件),ClearCase。日构建工具NAnt(.NET), AntJava

6.       CART动化日构建流程:

1)  每晚下班后,构建服务器会在指定时间内从VSS服务器获取最新代码到指定目录

2)  构建服务器从SVN服务器获取最新的程序配置文件等,并将其复制到程序中,供编译使用

3)  在每晚指定时间,数据库服务器自动备份数据到指定目录

4)  在每晚指定时间,测试用的数据库服务器从数据库服务器上获取指定的数据库备份文件,并将其自动还原到指定的测试数据库上

5)  构建服务器对各版本进行编译,并将编译结果email给相关人员

6)  构建服务器将各版本编译后的程序发布到指定的测试服务器上

7)  整个日构建、程序配置、程序发布工作结束,等待全面自动化回归测试的运行。

7.       CART自动化回归测试流程:分黑盒和白盒,两个流程互不干扰同步进行

黑盒:成功进行日构建àNAnt脚本将程序部署到测试服务器à在测试管理平台中制定回归测试计划à在指定时间由测试管理平台按照测试计划自动执行回归测试à对回归测试结果进行检查和分析

白盒:成功进行日构建à在构建服务器上设置计划任务,并指定自动化白盒回归测试的时间à系统在指定时间执行NAnt脚本,就在日构建服务器上执行自动化的白盒回归测试à对回归测试结果进行检查和分析

1)测试人员在每天下班前应该通过测试管理平台,根据测试计划制订当晚的回归测试,例如需要运行哪些脚本,几点开始,在哪台虚拟机上进行测试等

2)项目相关人员第二天上班后,先收email分析测试结果,并及时解决问题

3)通过分析,若某些回归测试脚本或单元测试用例需要更新,测试人员应尽快完成

4)当脚本和用例更新后,且程序也修正了相关缺陷,测试人员应该立即将昨晚未成功执行的脚本和用例再次执行,以验证修复是否正确

8.       自动化回归测试最佳实践:

1)  企业应将产品质量放到第一位,并投入必要的资源在软件测试上

2)  回归测试既是质量控制的方法,又是质量保证的手段

3)  回归测试要自动化,以降低成本,提高速度

4)  测试人员在接到任何类型的测试任务后,应该先以手动测试为最高优先级来配合开发人员的产品发布,在完成手动测试后分析本次任务的内容,然后对相关脚本进行更新,添加或删除

5)  一定要对结果进行分析

6)  由于网络或服务器原因可能导致脚本不能在夜间自动运行,一般只需早上重新运行没有成功的脚本

7)  回归测试最好在虚拟机上进行。虚拟机一定要模拟客户的运行环境,不能按照任何开发工具

8)  为了避免回归测试时间较长,应该在虚拟机使用时禁用其屏保和电源保护等功能

9)  可以再回归测试时用虚拟机模拟软件在不同操作系统上的效果

10)一定要对覆盖率进行分析,目标是所有功能点全部覆盖,所有代码路径全部覆盖

11)根据项目实际情况,最好对所有版本,如开发版本,基线版本等都进行回归测试

12)从项目实际出发,不能一味追求覆盖率,应以黑盒为主,白盒为补充实现最高的覆盖率

13)回归测试重在检查,务必每天进行。

9.       web自动化回归测试前要清除IE中保存的用户名和密码:工具》Internet选项》内容》个人信息 自动完成》取消‘自动完成功能应用于’‘表单上的用户名和密码’,并点击‘清除密码’

10.   基线BaselineSCM软件配置管理的一个重要术语,基线的范围包括产品Product和工作产品Work Product两个部分。产品是指项目开发出来交付给用户使用的工作成果,工作产品是指在项目过程中产生的所有文档、代码以及其他各种各样的工作成果。

11.   常用度量指标:

1)  项目规模类:代码行,功能点

2)  项目工作量类:工作量计划偏差,项目工作量分布

3)  项目质量指标类:缺陷总数,交付前缺陷修正率统计,产品质量(=发布后缺陷数/功能点),过程质量(=发布前缺陷数/功能点)

4)  进度和成本类:成本偏差,进度偏差,成本绩效指数

5)  生产率类:代码行/项目工作量 Loc/人时

12.   常用度量分析规程和指示器:

1)  项目进度与计划对比表

2)  项目进度差异表

3)  项目成本差异表

4)  缺陷分布分类统计

5)  缺陷发现/修改对比趋势图

6)  缺陷修正率统计

7)  平均缺陷修正周期

13.       SubVersion(SVN), TortoiseSVN文档版本管理

1)  在客户端机器上放一套副本文件供用户使用,用户直接修改本地副本,【commit】后更新到SVN数据库。SVN没有图形化界面,需要使用控制台或者借助TortoiseSVN

2)  Svnadmin create + 需要创建SVN数据库的路径。在SVN控制下的每一层目录都有一个隐藏的文件夹,记录当前目录文档的变更情况。

3)  Svnserve 启动数据库,-help查看参数,-listen-port定义SVN数据库所分配的端口号,-d以后台模式运行,-r 数据库根目录的路径

4)  SVN权限管理文件:【svnserve.conf】定义策略,【passwd】定义用户名和密码,【Authz】定义各目录结构的权限和用户组信息。

5)  TortoiseSVN使用不同的图标对文件状态进行区分。有正常(绿色对勾)、添加(蓝色十字)、修改(红色感叹号)、锁定(黄色锁)、版本错误(黄色三角符号)状态。

6)  TortoiseSVN常用功能:Create repository, SVN Checkout = VSSset working folder + Get latest version, SVN Add/Update/Delete/Revert/Rename commit后生效, show log, Update to revision, revision graph文档演变关系图表,Get lock/Release Lock, Diff比较文档哪些地方有修改,Clean up修复版本错误,

14.       NAnt:基于.NET平台的软件构建工具,以XML为基础的脚本语言,帮用户编译项目、复制文件、运行单元测试、发送email等。

1)  NAntContribNAnt的扩展,将NAntContrib 运行程序bin目录文件拷到NAntBin目录后,将其添加到系统环境变量。

2)  NAnt脚本以.build结尾。常用标签有<project>,<target>,<property>. <project>常用属性name(项目名称)default(项目运行时第一个被调用的target). <Target>常用属性name, depends(依赖于哪个target,即需要先运行depends,再运行本target), description. <property>属性name, value必须使用。

3)  常用task指令, <target>标签下使用: <echo><description><Call><Copy/Delete复制/删除文件或目录><Mail发送邮件><solution编译visual studio><zip/Unzip压缩/解压文件><VSSGet NAntContrib提供,获取VSS最新程序><svn-update NantContrib提供,获取svn最新程序>

15.       NUnit 单元测试

1)  Tools>Options>Enable VS support, Project > Add VS project

2)  TestDriven.net可以将NUnit的操作集成到VS.NET中,即可以debug。而NUnit下无法debug

3)  调试Test with >Debugger

4)  Test with > Coverage启动NCoverExplore分析代码覆盖率

5)  在测试项目中引用NUnit: References > Add Reference > .Net > NUnit framework

6)  NUnit语法:

n         [TestFixture]属性声明类作为单元测试用

n         [Test]属性声明方法作为单元测试用

n         [Category(“分类名”)]对测试用例进行分类

n         [Setup][TearDown]在每个[Test]前后初始化和释放被测对象

n         [TestFixtureSetup][TestFixtureTearDown]在每个测试类前后初始化和释放被测对象

n         MockObject模拟代码中不需被测的对象或方法

n         断言Assert,相当于自动化功能测试的检查点,对测试结果进行检查

Assert. AreEqual(Expected, Actual, ErrorMessage), AreNotEqual对字符串和其他任何类型的对象

Assert.Greater(Longer, Smaller, ErrorMessage),  GreaterOrEqual

Assert.Less(Smaller, Longer, ErrorMessage),  LessOrEqual

Assert.IsNull(object, ErrorMessage), IsNotNull对象是否实例化

Assert.IsEmpty(object, ErrorMessage), IsNotEmpty 数组,集合,字符串实例化后内容是否为空

Assert.AreSame(object1,object2,ErrorMessage), AreNotSame

Assert.IsTrue(object, ErrorMessage), IsFalse

Assert.Contains(object,集合, ErrorMessage)

Assert.Fail(ErrorMessage) 程序不允许运行到的分支

Assert.Ignore(Prompt) 运行时跳过该用例

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值