软件测试的对象

  1. 软件是由文档、数据以及程序组成的;
  2. 测试应该是对文档、数据以及程序进行的测试;
  3. 60%以上的软件错误并不是程序错误,而是分析和设计错误;
  4. 测试概念扩大化,提倡软件全生命周期测试的理念。

 

软件测试阶段

单元测试,集成测试,系统测试,验收测试是“从小到大”、“由内至外”、“循序渐进”的测试过程,体现了“分而治之”的思想。


确认测试

加入新功能,然后再次对软件进行测试,有的公司也叫做新功能测试

 

冒烟测试

冒烟测试源于硬件,如果冒烟就表示有问题;一般在软件测试中冒烟测试表示初步筛查;

并不是每个公司都有冒烟测试的,如果公司规模小的话,做冒烟测试没太大意义;

 

回归测试

加入新功能,对之前测试过的功能模块再次做一次测试,但是不是加入一个新功能或者是改了一个bug就做回归测试,一般在测试计划中会有安排。

 

软件测试阶段详解:

单元测试:

单元测试的粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”

 

集成测试:

集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式来测试,既要验证“设计”又要验证“需求”。

 

系统测试:

系统测试的粒度最大,一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。

 

验收测试:

验收测试与系统测试非常相似,主要区别是测试人员不同,验收测试由用户执行。

 

Alpha测(内测):

  • α测试是用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。这是在受控制的环境下进行的测试。
  • α测试的目的是评价软件产品的FURPS(即功能、可使用性、可靠性、性能和支持)
  • α测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。

 

Beta测试(公测):

  • β测试是用户在实际使用环境下进行的测试。与α测试不同的是,开发者通常不在测试现场。因而,β测试是在开发者无法控制的环境下进行的软件现场应用
  • 只有当α测试达到一定的可靠程度时候,才能开始β测试。由于它处在整个测试的最后阶段,不能指望这时发现主要问题。
  • 产品的所有手册文本也应该在此阶段完全定稿
  • 有的公司没有α测试和β测试

 

测试人员组织

条件特别好的公司

可以为多个开发人员分配一名独立的测试人员,这样的测试人员职业化程度很高,可以完成丹玉测试、集成测试和系统测试工作,能够实现开发与测试同步进行。

 

条件比较好的公司

可以设置一个独立的测试小组,该测试小组轮流参加各个项目的系统测试。而单元测试、集成测试工作由该项目的开发小组承担

 

条件一般的公司

养不起独立的测试小组,单元测试、集成测试工作由项目开发小组承担,当项目进展到系统测试阶段,可以从项目外抽调一些人员,加上开发人员,临时组织系统测试小组。

 

条件比较差的公司

也许只有一个项目和为数不多的开发人员,那么就让开发人员一直兼任测试人员的角色,互相测试对方的程序,如果人员实在太少了,只好让开发者测试自己的程序,有测试总比没有测试好。

 

需求评审

案例1:对下方需求评审说明书里的部分进行评审


 

疑问:

  1. 输入用户名的上方,写着用户名/邮箱/手机,但是上方写的直接使用邮箱地址和密码进行登录,存在矛盾。
  2. 功能介绍多余,可以选择删掉
  3. 界面UI不够美观,布局建议优化

 

案例2:

3.3.2   已申请密钥用户,设置自动登录功能

设置自动登录功能后,用户运行Pycsafe软件时,软件自动登录,不需要用户重新输入用户名和密码进行登录。自动登录功能选项必须和记住密码功能选项同时设置,否则无法完成自动登录。

 

疑问:

  1. 如果点击自动登录,记住密码没有勾选是否有这种问题
  2. 如果自动登录和记住密码都勾选了,取消记住密码,自动登录是否会取消;或者勾选自动登录之后,记住密码不允许取消;

 

评审问题与解答

提出问题的人:参与需求评审的人都可以提

格式:记得标记一下问题出现在产品需求说明书里面的第几页哪个部分,然后出现什么问题