revenant

第一课

项目:项目经理

开发

测试

需求人员

产品经理

 

  1. 需求来自客户
  2. 客户的需求被称之为原始需求
  3. 客户的需求一般比较模糊简单
  4. 客户的需求提交给产品经理,再由产品经理整理成完善的需求规格说明书

 

注明:1.一般情况下,一个项目开发需要研发、测试、需求三类人员

      2.测试人员,以后要经常和开发需求人员打交道

      3.当项目开发时,产品公司从研发部、市场部调动熟悉产品的人员参与研发

 

注明:产品经理:负责产品设计走向,需求来源

      开发经理:负责研发技术架构

      测试经理:负责软件的测试工作

      项目经理:重大问题决策,沟通协作,进度交付

 


第二课

 

软件需求规格说明书

↙↘

                     开发          测试

需求人员、开发、测试 三方评审(评审的目的:消除歧义、完善细节、达成共识)

                                  ↓

形成一个标准统一的需求规格说明书

                     ↙    ↘

       开发                       测试

           ↙     ↘

根据需求文档编写:1.概要设计文档     根据需求文档和项目计划编写:

    ↓(转化为人员看得懂的文档)             1.测试计划

编码           2.详细设计文档              2.测试方案和测试用例

 

 

 

注明:1.测试工作在需求文档一出来的时候就开始了

      2.需求评审是我们测试人员非常重要的工作

第三课

 

如何对软件需求规格说明书进行评审

 

一般情况下,我们会从以下几个方面进行评审

 

  1. 正确性:对照客户的原始需求来检查我们的软件需求功能是否描述正确
  2. 明确性:指的是软件需求规格说明书里不能有含糊词语(如:可能、也许)
  3. 完整性:指的是有没有遗漏客户所描述的功能以及必要信息
  4. 优先级:指的是哪些功能比较重要,哪些功能比较次要做标记。
  5. 可测性和可修改性:是指需求文档的结构便于修改和调整,且每一步都是可以验证的。

注:80%的缺陷都是来自于前期需求没有评审好、确认好,另外频繁的变更也 造成BUG出现的原因。

 

问:什么是软件需求规格说明书?以及它的定义?

 

答:软件需求规格说明书,是由需求人员、开发、测试人员,根据原始需求,进行三方会审,达到消除歧义、完善细节、达成共识,从而形成一个标准统一的需求规格说明书。

 

    它可定性为三方协调工作的方向和依据。


第四课

 

软件测试的概念

 

  1. 软件质量的定义
    1. 符合客户的需求。
    2. 针对客户的满意度,如果客户满意则质量好、反之则不好。

 

  1. 软件测试的定义

为了寻找软件中的错误而执行软件的过程。

 

  1. 软件的错误BUG

我们在运行软件的过程中,实际结果跟预期结果不符(跟软件规格不符),这些问题统称为BUG.

 

4.8/2原则

   80%的错误是存在于在20%的模块里,经常出错的模块经修复后还会出错

 

5.从是否针对软件的内部结构和算法可分为白盒测试法和黑盒测试法

白盒测试:主要针对软件内部结构和算法的测试(针对代码)

黑盒测试:不关注软件内部结构和算法,只关注软件外部功能点的测试(针对功能)。

 

6.从软件的不同阶段可分为单元测试、集成测试、系统测试和验收测试。

   a.单元测试(UT):开发人员测试自己开发出来的单元模块、利用白盒测试方法。

   b.集成测试:将软件的一些构件(单元模块)集成在一起测试,主要对接口、路径、功能(字段集成)性能进行测试,通常以白盒测试为主,黑盒测试为辅(以开发为主,测试为辅)。

   c.系统测试(SIT):测试软件是否符合需求规格,测试工作是由独立的测试人员进行的,主要采用黑盒测试方法。

   d.验收测试:与系统测试相似,但是测试工作由客户进行,主要验收软件系统是否符合需求,通常采用黑盒测试方法。

注:单元测试、集成测试,主要是开发人员进行的,从测试原理来分为白盒测试和黑盒测试,说白了白盒测试就是软件内部的代码测试,黑盒测试就是软件所展现的功能点测试。

 

7.系统测试主要是由测试人员进行:界面测试、功能测试、性能测试、兼容性测试、易用性测试、安全性测试

 

问题:功能测试、系统测试、黑盒测试有什么关联?

黑盒测试是功能测试的一种方式方法,而功能测试是系统测试的一部分

 

8.回归测试

BUG经开发人员修复后,重新提交测试人员验证,这个测试称为回归测试。

 

9.功能测试

验证功能是否符合软件的功能需求

 

10.压力测试

测试软件的最大极限,也称为极限测试。

 

11.易用性测试

站在用户的角度评价软件好不好用,并提出意见

 

12.兼容性测试

主要测试软件和操作系统、浏览器或其它软件的兼容性。

 

13.Alpha测试,系统刚刚开发完成给客户测试一下一种先期的客户测试

 

14.Beta测试:一种后期的用户测试,此时系统已通过我们内部测试并即将要上线的时候,给用户看一下。

 

你觉得测试人员具备哪些素质?

 

编写、阅读文档的能力。

逻辑能力,测试能力(思维能力)。

沟通能力。

团队协作能力。

心理素质。
第五课

 

软件测试计划

 

  1. 软件测试计划的定义?

它是一份描述软件测试的目标、范围、方法和时间的进度文档

 

  1. 软件测试计划文档具体包括哪些内容:
    1. 测试的策略:指的是整体的测试范围,系统进入测试的标准,自动化工具的选择,测试文档的选择,测试方法的选择。
    2. 测试环境:软件平台环境和硬件平台环境
    3. 测试管理:测试时间和人员的安排,沟通协作方式以及工作量的安排。
    4. 测试的风险:若没有按时完成测试所造成的风险以及应对策略。

 

注:系统测试进入的标准是开发人员把版本提交给我们的时候,我们首先要对软件版本做最基本的功能测试,如果基本功能测试没有问题才能进入系统测试,反之打回给开发人员修改,这里的基本测试称为冒烟测试。有200测试用例,摆出20个用例进行功能测试,称为冒烟测试。系统进入测试的标准是冒烟测试。

 

问:你之前有写过测试计划吗?

答:有写过,不过我们写的测试计划是自己负责模块的测试计划,但一般总体的测试计划由测试经理来写的。

 

自问自答:1.模块的测试计划怎么写?

          2.总体的测试计划怎么写?


第六课

测试用例

 

测试用例的属性

 

需求编号

测试标题

操作步骤

预期结果

实际结果

是否通过

备注

001

002

 

注:严格来讲,每一个操作步骤应该有一个预期结果,操作步骤具体使用了什么数据一定要写清楚。

 

  1. 测试用例的属性

一般情况下,测试用例包括:测试序号、测试标题、前置条件、操作步骤、预期结果、实际结果、是否通过等属性,每个公司的规范都不一样。

 

  1. 测试用例的作用

它作为测试的标准,指导测试人员进行测试,发现问题,并提交BUG,并且最终提高软件质量。

 

  1. 好的测试用例具备哪些特征?
    1. 好的测试用例可以发现以往发现不了的问题,而且每个测试点都分的很细。
    2. 好的测试用例没有冗余的用例。
    3. 好的测试用例必须定义一个或者多个预期结果。

 

 

 

 

 

 

 

 


第七课

墨盒测试用例的设计方法

 

  1. 等价类划分法

就是把所有可能输入的数据划分为若干个区域,然后从每个区域中取有代表性的数据进行测试。等价类划分法可分为有效等价和无效等价

  1. 有效等价:输入的数据符合程序的要求,也就是说符合软件需求规格说明书
  2. 无效等价:输入的数据对程序来说是无效的,也就是不符合软件需求规格说明书

 

注:我们测试任何一个功能点的时候,我们的软件需求规格对每个功能点都有一个详细的输入输出说明,也就是说规格限制,如果没有限制,开发人员将无法开发程序,测试人员将无法开展测试工作。

 

说明:测试用例是根据软件需求规格说明书来写的

 

  1. 边界值分析法

取稍高或稍低于边界值的一些数据来进行测试。

 

3.错误推测法

根据自己以前的测试经验和直觉来判断程序中的错误

比如说,程序在处理一些超长字符、空格字符和边界值时,容易出错,那么我们可以拿这些数据来试一次。

 

4.场景法

用户可能只给到一个场景或简单的业务流程,或一段简单的文字描述,此时测试人员需要根据已有的业务流程或已有的场景需求充分发挥对用户实际业务场景的想象。

注明:有时候面试官会让你设计ATM取款的测试用例,这里明显要用到场景法进行用例设计,首先我们会想象ATM取款机包括查询功能、取款功能、转账功能,随后我们一一对应这些功能进行用例设计就好,以上是一个典型的使用场景法进行用例设计的过程。

 

5.因果图判断表法

   我们输入的条件可能有很多种,每一种条件之间的组合都可能形成一个新的结果,我们把其中的条件和结果用图形的方法表现出来,最后通过判定表进行展现

 

6.正交表法

   是一种有效减少用例个数的设计方法

  1. 如何有效减少用例个数
  2. 首先我们要根据实际的业务场景和组合特点,进行有效的设计,必要时

我们需要咨询开发的意见,最终的目的是选择一些典型的用例进行测试即可。其次,如果我们把所有的组合组合在一起,我们的时间是不够的,人力也是不够的,而且没必要,当中会有很多冗余的用例。

一般的做法是测试其中一个条件时,我们会默认其他条件是对的。

 

注:正交表法的核心是有效的减少用例的个数,并选一些有代表性的典型组合进行测试

 

总结:用例设计的完整度

任何用例设计写完后都不是100%完美的,一方面我们需要测试用例评审以便更完善,另一方面我们设计出来的用例和开发出来的功能不可能达到高度统一,也就是说我们在测试软件的时候,也存在个性用例的可能。

 

注:六种黑盒用例设计方法都要能说出其概念,并能举例说明。

 


第八课

用例评审

 

一般情况下,从以下几个方面对我们的测试用例进行评审

 

  1. 测试用例是否完全针对需求规格中所列出的功能
  2. 有没有冗余的用例
  3. 每个步骤都清楚的描述了预期的结果
  4. 必须测试什么功能
  5. 如果一些功能不测试会导致怎样的结果

 

注:严格来讲,用例是要交给项目组评审,一般的做法是本项目组的测试人员一起评审即可。

 

墨盒测试用例设计方法有哪些?

1、 等价类划分法

有效等价

无效等价

2、 边界值分析法

3、 错误推测法

4、 场景法

5、 因果图判定法

6、 正交表法


第九课

 

作为一个测试人员,我们很重要的一个任务就是发现问题,解决问题。

  

1、 软件错误的等级

A. 致命的错误

B. 严重的错误

C. 一般的错误

D. 轻微的错误

E. 改进性建议

 

2.软件错误的优先级

A.立即解决

B.高优先级

  C、正常排队

D.低优先级

 

3.一个完整的BUG包含哪些内容?

  1. 错误编号
  2. 软件名称以及版本号
  3. 错误的严重程度
  4. 错误的概要
  5. 报告人
  6. 错误的发现时间
  7. 承办人
  8. 错误的优先级
  9. 错误的状态
  10. 错误的具体描述
  11. 备注
  12. 测试环境的描述
  13. 附件

 

注:错误的具体描述是把整个错误的发生从开始到结束的每一个步骤都要清晰的写出来。

 

 

 

 

 

第十课

 

BUG 流程-BUG的生命周期

 

  1. 系统测试期间,测试人员提交的BUG均需要测试经理或项目经理的审核。

 

  1. 然后他们将BUG指配给相关的开发人员,当他们拒绝、忽略、挂起BUG的时候,一定要写明原因。

 

 

  1. 当测试人员与开发人员的BUG有争议的时候,如一方认为这个BUG不重要或者不是BUG,而另一方认为是一个BUG,而且很重要,那么测试人员,首先要自检。看这个BUG是否写清楚了,是否属实,如果属实,开发人员还不承认,那就需要找测试经理解决,如果对方还不承认且不修改,则由测试经理召开BUG评审大会,由项目全体人员评审定夺。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第十一课

 

  1. 你之前有写过测试报告吗?

 

  1. 系统测试报告包括哪些内容?
    1. 测试过程的描述
    2. 测试结果的分析
    3. 系统存在的风险
    4. 测试的结论与评论

测试的报告其他的要素,例如:编写的目的,测试环境描述等每个公司

格式不一样。

 

  1. 测试过程的描述主要包括哪些?

测试时间、方法、范围、协作方式以及版本等。

 

  1. 测试结果的分析
    1. 指的是发现BUG的总数量,致命的、严重的、一般的等BUG的分布情况。
    2. 指的是用例的通过率,通过多少,未通过多少,一般的,严重的致命的错误都要放到报告中去。

 

  1. 系统存在的风险

我们发现问题单会对我们的系统和模块造成什么样的风险和影响

 

  1. 测试的结论与评论

通常来说就是指能否上线、发布、如果上线会有什么后果。

 

 

 

 

 

 

 

 

 

 

第十二课

 

完整的测试流程

 

1.一个完整的测试流程包括哪些阶段

一般情况下,它包括需求评审、测试计划定义、测试用例设计、测试用例评审、测试环境搭建、测试执行、提交问题单、回归测试、提交测试报告、测试总结。

 

2、软件测试的目的

   目的是发现软件的缺陷,检查软件是否符合需求规格说明书

 

3、软件测试是否能发现所有的BUG?

   软件测试不能发现所有的BUG,因为测试时间,测试资源是有限的,而且有些BUG只能长期使用和特定的环境下才能发现

 

4、软件测试人员在测试时应遵守什么原则?

8/2原则

 

5、如果你来我们测试团队,你如何更快的进入工作状态?

   首先,我会更快的熟悉项目的工作环境,交流方式,沟通方式。

   其次,我会尽快的阅读相关的项目文档,如帮助手册,技术文档等,以便尽快熟悉业务功能。

   第三,我会参加项目 的各种会议,以熟悉项目的进度和后续的计划。

   最后,我会尽快熟悉项目的测试用例以及BUG 库里的BUG,以帮助自己尽快的进入工作状态,基本上我会从以上几个方面让自己更快的进入工作状态。

 

 

 

 

 

 

 

 

 

 

 

 

第十三课

 

测试环境的搭建

 

你之前有搭建过测试环境吗?

 

有搭过一些,一般情况下,我会从以下几个方面来搭建。

  1. 有时候我们测试需要大批量的数据,比如容量测试、压力测试等,我们就可能要准备一些大容量的文件或向数据库表中插入大量的数据。

 

  1. 有时候我们测试的产品,支持多种操作系统,那么在我们做兼容性测试的时候,就要准备好各种操作系统的计算机或使用虚拟计算机。

 

  1. 有时候我们在安装程序包的时候,需要设置各种参数,那么我们在之前就要按照开发的要求进行设置。

 

  1. 有时候我们还需要用到网络,比如说IP设置,路由设置等。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第十四课

 

WEB兼容性测试

 

Web兼容性测试主要包括以下几个方面

 

1.系统平台的测试

最常见的系统平台有window、uinx、linux操作系统等,同一个应用可能在某些操作系统下正常运行,但是在另外的操作系统下,不能运行,因此,web系统平台需要在各种操作系统下,对web系统,进行系统平台的兼容性测试。

 

2.浏览器测试   IE浏览器查询版本通过帮助,关于IE。IE11版本兼容IE8、IE9、IE10版本

浏览器是web客户端最核心的构件,不同厂商的浏览器对JAVA HTML规格有不同的支持,层次结构在不同的浏览器也有不同的显示,所以浏览器也需要测试兼容性。

 

   3.分辨率测试

页面版本在640*400、600*800或1024*768的分辨率模式下是否正常显示,字体是否太小或太大,以至于无法浏览,文件和图片是否对齐?

  

4、操作系统与浏览器的兼容性如何配置?

由产品经理做过市场调查后做出的需求规格

注:我们在选择浏览器版本的时候,一定要选择正版浏览器进行测试,非正版的浏览器本身可能存在不稳定,还可能对我们的测试结果造成影响。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第十五课

 

性能测试

 

一、 性能测试的定义

 

在一定负载情况下,系统响应时间,吞吐量,服务器占用资源等特性是否满足软件性能需求。

注:测试软件在不同情况下的性能,其中一个重要的指标就是用户的响应时间

 

  1. 响应时间

响应时间反映完成某个业务所需要的时间

 

  1. 吞吐量

吞吐量反应单位时间内,能够处理事务的数量

 

  1. 服务器资源占用

它是反映不同负载下,系统的CPU内存占用率,占用越低,说明系统越优秀。

注:一般性能指标,都是由产品经理和项目中的领导来定义的,测试人员根据需求的定义来测试即可。

常用的性能工具loadrunner简称LR

 

 

二、 性能测试流程

 

测试计划→创建脚本→设计场景→监视场景→分析结果

主要步骤:1.创建脚本:捕获在应用程序中执行的最终用户操作。

          2.设计场景:通过定义测试期间发现的事件,设置负载测试场景。

          3.监视场景:运行、管理并监视负载测试。

          4.分析结果:分析负载测试期间,loadrunner生产的性能数据。

 


第十六课

 

 

C/S与B/S

 

  1. C/S结构软件特点

a. 面向业务型的系统软件  QQ是C/S结构,黄钻的业务

b. 需在电脑上安装应用程序

c. 简单的C/S架构只有两层,就是客户端访问服务器

d. 其前台能处理一般性的业务,能减轻后台负担

 

  1. C/S结构软件测试的重点
    1. 易用性测试
    2. 安全性测试(尤其是注意SQL注入)
    3. 性能测试
    4. 功能测试
    5. 安装部署测试

 

  1. B/S软件特点
    1. 面向的是互联网用户
    2. 通过浏览器访问后台
    3. B/S软件的前台,只能处理浏览/查询、数据输入等,简单的功能,大部分工作由后台服务器承担   比如:淘宝,查衣服通过前台处理,付款通过购物车也就是后台处理
    4. 采用Cookies保存用户信息
    5. 以网页的形式展示界面

 

  1. B/S结构软件测试的重点
    1. 功能性测试
    2. 链接测试
    3. 兼容性测试
    4. Cookies测试
    5. 性能测试
    6. 安全测试
    7. 易用性测试

 

注:B/S软件是未来发展的方向。

 


计算机网络

什么是计算机网络?

 

不同各类的计算机通过同种类型的通信协议相互通信产生了计算机网络,计算机网络就是把分布在不同地理区域的计算机以专门的外部设备利用通信线路互连成一个规模大,功能强的网络系统,从而使众多的计算机可以方便的传递信息,共享资源。

 

OSIRM:开发系统互连参考模型(open system interconnection reference model)

TCP/IP协议:前身是实验性分组交换网络APPANET.

 

 

 

OSI 7层

7层功能

7.应用层

建立程序之间的通信

6.表示层

处理数据格式,数据加密

5.会话层

建立、维护和管理

4.传输层

建立主机端到端的链接

3.网络层

寻址和路由的选择

2.数据链路层

提供介质访问,链路管理

1.物理层

透明的比特流传输

 

1-3层为低层,负责网络数据的传输

5-7层为高层,负责主机间的数据传输

 

 

 

OSI 7层

7层协议

7.应用层

HTTP,DNS,FTP,TFTP,SNMP

6.表示层

URL加密,口令加密

5.会话层

验证用户登录,断点续传

4.传输层

TCP,UDP

3.网络层

ICMP,IP,RIP           路由器

2.数据链路层

ARP,RARP              网卡,交换机

1.物理层

比特流传输            光纤,网络

 

TCP/IP协议

4.应用层

3.主机对主机层

2.网际层

1.网络接口层

 

  1. 网络协议有哪些? 

HTTP协议:超文本传输协议

FTP:文件传输协议

TFTP:简单文件传输协议

DNS:域名解析协议

telnet:网络远程访问协议

SMTP:简单电子邮件协议

SNMP:简单网络管理协议

TCP:传输控制协议

UDP:用户数据报协议

ARP:地址解析协议

RARP:反向地址转换协议

IP:网络之间互连的协议

RIP:路由信息协议

 

  1. 网络中的两个标准规范?       TCP/IP   OSI

 

  1. OSI/RM,TCP/TP协议的分层区别?

 

  1. IP的分类?A类:0.0.0.0-126.255.255.255

           B类127.0.01-1191.255.255.255

           C类:192.0.0.1-233.255.255.255

           D类:旧插

           E类:留着以后用

127.0.0.1是别人的IP地址——ping 127.0.0.1,查看别人的IP

192.168.01-192.168.255.255私有IP地址

 

  1. 什么是物理地址?全球唯一

 

  1. 为什么不用物理地址作为网络的通信地址?网络通信地址是IP地址,物理地址(mac地址)格式不便记忆,不便管理,物理地址结构提供功能少

 

  1. 交换机和路由器有什么区别?交换机:交换数据

                           路由器:找路上网   层次和功能不一样

 

网络命令

Ipconfig –all

Ping

Regedit

Mstsc

 

 

使用ping测试网络连通的6个步骤

  1. 使用ipconfig
  2. Ping127.0.0.1
  3. Ping本机地址,本机地址指的是自己的IP地址
  4. Ping网关地址
  5. pingDNS地址
  6. ping ip 地址,接别人的IP地址

 

 

测试环境是怎么搭建的(内部网)

  1. 搭建网络拓扑环境
  2. 配置IP地址
  3. 查看IP地址配置是否正确
  4. 分别在PC安装服务器程序或客户端程序

 

 

传输层有哪两个重要协议,区别是什么?

  1. TCP是面向连接,UDP是非面向连接
  2. TCP传输有保障,UDP尽最大努力去交付
  3. TCP占用带宽多,UDP占用带宽少
  4. TCP有三次握手保证传输,UDP没有

TCP是网址、邮箱用的,先向服务器进行请求,先确认,有保障。UDP是微信、QQ用的,用服务器不用请求确认尽最大努力去交付,不去管有没有收到)

宽带是商品要卖的,带宽是指要用几M流量,是软件术语

 

 

三次握手

  1. 客户端发出连接请求
  2. 服务端回应连接请求
  3. 客户端回应服务器的响应
  4. 传递数据
  5. 超时机制:服务器响应不了,页面不存在,服务器down机。

 

 

四次挥手

  1. 主动方发起断开请求
  2. 被动方响应断开请求
  3. 被动方向主动方回应断开请求
  4. 主动方再次响应

 

 

传输层协议用端口号来标识和区分各种上次应用程序

HTTP    80

FTP     20,21

Telnet  23

SMTP    25

DNS     53

TFTP    69

SNMP    16

查询端口号:netstat-a

                   -anp 80(用数字的形式表现出来)

 

 

抓包工具:wireshark

OICQ(QQ)    1.wireshark   2.无线网络  3.oicq

Scr:源

DST:目标

Wireshark抓取的五种信息?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

易用性测试

 

易用性测试是指用户使用软件时是否感觉方便,比如是否最多点击鼠标三次,就能达到目的。

 

优秀UI(User Interface用户界面)的简称)具备的七个要素

 

  1. 符合标准和规范

最重要的用户界面要素是软件符合现行的标准和规范——或者有真正站得住脚的不符合的理由。

 

注意:如果测试在特定平台上运行的软件,就需要把该平台的标准和规范作为产品说明书的补充内容。

 

像对待产品说明书一样,根据它建立测试用例。这些标准和规范由软件易用性专家开发。它们是经同大量正规测试、使用、尝试和错误而设计出的方便用户的规则 。也并非要完全遵守准则,有时开发小组可能想对标准和规范有所提高。

平台也可能没有标准,也许测试的软件就是平台本身。在这种情况下,设计小组可能成为软件易用性标准的创立者。

 

  1. 直观

用户界面是否洁净、不唐突、不拥挤?

UI的组织和布局合理吗?

有多余的功能吗?

帮助系统有效吗?

 

  1. 一致

如果软件或者平台有一个标准,就要遵守它。如果没有,就要注意软件的特性,确保相似的操作以相似的方式进行。

快捷键和菜单选项

术语和命名

听众

诸如OK和Cancel按钮的位置。

 

  1. 灵活

多种视图的选择:

状态跳转

状态终止和跳过

数据输入和输出

 

  1. 舒适

软件使用起来应该舒适,不能给用户工作制造障碍和困难。

恰当;

错误处理;

性能。

 

  1. 正确

要测试正确性,就是测试UI是否做了该做的事。

 

注意:市场定位偏差、语言和拼写、不良媒体。

 

  1. 实用

是否实用是优秀用户界面的最后一个要素。

 


自动化测试实践

 

一. 自动化测试的优势

1.回归测试更可靠,更方便

2.可执行一些对于手工测试来说,相当困难或者根本做不到的测试

3.更好的利用资源,使资源更有价值

4.具有一致性和可靠性

5.增加软件的信任度

6.多环境下测试

 

二. 缺点

  1. 永远不可能完全取代手工测试
  2. 手工测试发现的BUG远比自动化多
  3. 对于测试质量的依赖性极大
  4. 自动化测试会制约软件的开发
  5. 成本投入过高、风险大

 

三. 何时 适合引入自动化

  1. 项目周期长,版本不断
  2. 需求变更不频繁
  3. 系统中存在大批量的第三方控件
  4. 需反复测试,如可靠性测试需要进行上千次的系统测试

 

  1. 选取何时的项目开展自动化?

如果一个项目是短期的,并且是一次性的项目,则不适合开展自动化,第二个不宜在一个进度非常紧的项目中开展自动化

 

  1. 确定自动化介入的时期

过早的自动化会带来维护成本的增加,因为早期界面一般不稳定,处于频繁更改状态,这时开展自动化得不偿失,所以自动化不应该在界面尚未稳定就开始

 

  1. 自动化工具包括

性能自动化

功能自动化

 

QTP支持的环境和程序

  1. 操作系统XP,WINDOWS SERVER2003,VISTA,WIN7支持虚拟机
  2. 浏览器IE6,7,8,FIRE-FOX
  3. 支持的应用程序:标准的windows应用程序,web页面,activex控件,vb应用程序

 

QTP自动化测试的基本过程

  1. 录制测试脚本
  2. 编辑测试脚本
  3. 调试测试脚本
  4. 运行脚本
  5. 分析结果

 

  1. QTP使用的是什么脚本?

VB script

  1. 你有过测试脚本吗?
  2. 你有用过QTP吧?主要用于哪些方面呢?(或者对方问你了解哪些方面呢?)
  3. 你使用QTP都发现了什么问题?
  4. 你们一般什么时候使用QTP?

 


性能测试实践

 

负载测试

 

通过增加系统负载,测试系统性能的变化,并最终确定在满足系统的性能指标情况下,系统所能够承受的最大负载量测试。

 

 

压力测试

 

通过测试增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并来获得系统能提供的最大服务级别测试。


主要指标

主要指标

响应时间

吞吐量(单位时间从服务器获得的数据量)

并发用户

资源利用率(内存、CPU等的利用率等)

 

估算并发数的公示:

 

  1. 计算平均的并发用户数C=nL/T
  2. 并发用户数峰值:C‵≈C+3根号C

 

公式(1)中C是平均的并发用户数,n是login session的数量;L是login session的平均长度;T指考察的时间段长度。

公式(2)则给出了并发用户数峰值的计算方式中,其中,C‵指并发用户数的峰值,C就是公式(1)中得到的平均的并发用户数。该公式的得出是假设用户的login session产生合泊松公布而估算得到的。

 

假设有一个OA 系统,该系统有3000个用户,(可以看注册信息)平均每天大约有400个用户访问该系统,(日志文件查看)对一个典型用户来说,一天之内用户从登录到退出该系统的平均时间为4小时,在一天的时间内,用户只在8小时内使用该系统。

则根据公式(1)和公式(2),可以得到:

                                     C=400※4/8=200

                                     C‵≈200+3※根号200=242

 

 

吞吐量可以采用下面的公式计算:

 

G=N※R/T

 

这里,F表示吞吐量:N表示并发虚拟用户个数(Concurrency Virtual User,并发虚拟用户);R表示每个VU发出的请求输量,T表示性能测试所用的时间。

 


事务的概念

   可以定义事务以度量服务器的性能。每个事务度量服务器响应指定的Vuser请求所用的时间。这些请求可以是简单任务(例如等待对单个查询的响应),也可以是复杂任务(例如提交多个查询和生成报告)。

   要度量事务,需要插入Vuser函数以标记任务的开始和结束。在脚本内,可以标记的事务不受数量限制,每个事务的名称都不同。

   事务是标识要一致

   ·Ir_start_transaction(“trans1”);

   ·Ir_end_transaction(“trans1”,LR_AUTO);

 

 

 

集合点的概念

要在系统上模拟较重的用户负载,需要同步各个Vuser以便在同一时刻执行任务。通过创建集合点,可以确保多个Vuser同时执行操作。娄某个Vuser到达该集合点时,Controller会将其保留,直到参与该集合的全部Vuser都到达。当满足集合条件时,Controller将释放Vuser.

 Vuser执行脚本并遇到集合点时,脚本将暂停执行,Vuser将等待Controller允许继续执行。Vuser被从集合释放后,将执行脚本中的下一个任务。

 Ir_rendezvous(“rds1”);
性能测试报告你是怎么看的?

答:一般我们会在我们需要测试的模块中,设置事物点。脚本运行完成后,我们会统计事物的响应时间,例如:最大响应时间,最小响应时间,平均响应时间。以及事物的通过率,事物的失败率,事物的错误率。

当然我们有时候会根据性能测试需求用到集合点。比如说登陆这一块,使用集合点,可以使多个用户同时对我们的系统进行交互。我们会根据并发数计算公式设置并发用户数。我们也有专业的性能测试人员,会在LINUX后台插入一些脚本,来提取性能测试过程中,我们内存以及CPU的使用情况。以便我们对整个系统的性能进行分析,谢谢。

分类:

技术点:

相关文章:

  • 2021-08-20
  • 2021-02-11
  • 2021-11-04
  • 2021-10-15
  • 2021-12-31
  • 2021-12-17
  • 2022-12-23
  • 2021-11-27
猜你喜欢
  • 2022-02-19
  • 2021-11-30
  • 2022-12-23
  • 2021-05-20
  • 2021-10-05
  • 2021-10-25
  • 2021-04-12
相关资源
相似解决方案