软件测试基础理论

  软件测试基础理论(重点)

 一、软件的开发阶段划分

    1、需求分析阶段

    由需求分析人员完成

   《需求规格说明书》

    2、概要设计阶段

    3、详细设计阶段

    由系统架构师(分析师)完成

    《概要设计说明书》、《详细设计说明书》

    4、编码阶段

    由开发人员完成

    程序

问题:哪个阶段产生的bug最多?哪个阶段最少?

   需求分析阶段引入的bug最多,其次是设计阶段,编码阶段引入的bug最少。

   由此得出结论:测试时文档和程序都必须要测;测试工作应该要尽早介入,并且要贯穿整个开发周期始终(尽早测试原则,不断测试原则)

 二、软件测试的阶段划分

   说明:这四个阶段中没有涵盖文档测试部分的内容。

    1、单元测试

    1)单元测试是最小的测试单位,通常1个方法(函数)、窗口、功能模块、类等都可以是一个测试单元。

   2)单元测试的主要依据是详细设计文档。

   3)单元测试阶段主要采用白盒测试方法。(也有可能要辅助以黑盒测试的方法)

   4)在企业的实际应用中,单元测试通常由程序员完成,这样可以节省成本,但是测试质量得不到保证,所以企业通常会采用交换测试,两轮测试(程序员1轮(白盒),测试人员第2轮(黑盒))的方式来加强单元测试的质量。

  5)桩模块和驱动模块

    在单元测试中,有可能要求测试者编写“桩模块”和“驱动模块”

   驱动模块:模拟被测模块的上一级模块(调用被测模块)

   桩模块:模拟被测模块的下一级模块(被“被测模块”调用)

 驱动模块-->被测模块-->桩模块

    2、集成测试(组装测试)

  1)集成测试也叫组装测试,是在单元测试的基础上,将模块逐步组装的测试过程。

 2)在集成测试阶段,功能模块要逐步组装形成多个临时版本。

 3)集成测试阶段参考概要设计文档

 4)集成测试阶段主要采用黑盒测试的测试方法,重点、难点、核心模块会辅助以白盒测试方法。

 5)冒烟测试

  当测试方拿到一个新的软件版本时,一般会先做“冒烟测试”(版本验证测试):使用较少的测试人员(1-3人,经验丰富),花费较少的时间(0.5-3天),对软件版本中的核心功能进行测试(一般不写用例),如果核心功能没有问题,全组再展开全面测试;如果核心功能问题较多,版本不稳定,就将该版本软件返回开发组。

 6)集成测试阶段,当测试组拿到一个新的软件版本后,工作的思路:

   首先:冒烟测试--确认测试组是否接受测试该版本。

   接下来:

    返测--对于已修复的缺陷,进行测试--确认缺陷是否修复成功!

    回归测试--对于上一个版本测过的功能,再测试一遍。

    最后:该版本中新功能的测试。(但是有的版本是专门用来修复bug的,没有新功能)

 说明:在实际工作中,不一定工作思路中的内容都要做,要具体情况,具体分析。

    3、系统测试

 1)在功能全部完成后,对于集成了硬件和软件的完整系统进行的模拟真实环境的全面测试。

 2)系统测试阶段的测试重点:(1)整个系统的正确性(2)系统的兼容性

 3)系统测试阶段参考需求文档

 4)系统测试阶段采用黑盒测试方法

 5)确认测试:在系统测试之前,一般会安排一次“确认测试”,主要确认:

   (1)软件是否可以进入全部的系统测试中。

   (2)软件的相关文档是否准备齐全(尤其是交付给用户的和参与认证的)

说明:确认测试一般时间较短,参与人员较少,所以一般不把确认测试与单元、集成、系统、验收测试所并列。

    4、验收测试  

 UAT:User Acceptance Testing 用户接受度测试

  1)验收测试理论上是由用户参与的软件检查过程。

  2)验收测试阶段分成两个小阶段:

    (1)alpha测试

  在软件公司的指定环境中(在软件公司的指定环境中,会是软件研发方对bug有更强的控制力),由用户对软件进行检查。(一般经常由软件公司替代用户进行验收,也有可能请第三方公司验收。)

    (2)beta测试

  在用户的实际环境中(此时软件公司对缺陷的控制力明显减弱),由最终用户对软件进行检查的过程。

   例如:公共类软件的beta测试

   公共类软件(输入法、QQ、os等)将软件免费发放给最终用户,收集用户在使用软件中发现的问题(bug)。

 三、软件测试模型

 1、软件测试模型可以表明软件的开发阶段和测试阶段(级别)的对应关系。测试模型有:v模型,w模型,H模型等

  2、v模型(常见面试题)

  1)会画--v模型

    

  2)v模型的优点和缺点

     (a)优点:

     (1)v模型中开发阶段和测试阶段(级别)划分清楚,并且开发阶段和测试阶段(级别)的对应关系也清晰明确。

     (2)v模型中既包含了单元测试(专业级、代码级),又包含了验收测试(用户级)。

     (b)v模型缺点:

    v模型中缺少软件开发前期需求和设计阶段的测试内容,不能体现出文档和程序都需要测试的内容,不符合尽早测试原则和不断测试原则,让人产生测试只是开发完成后的收尾工作的错觉。(测试和开发应该是同步的工作过程)

 3、w模型

   1)w模型可以被看成是双v模型,第一个v是开发活动,第二个v是测试活动

   2)w模型的特点:w模型包含了需求和设计阶段的测试内容,体现了文档测试,并且符合尽早测试和不断测试原则。体现出开发和测试是同步进行的。

 

 四、软件测试分类

 1、按测试技术分类

   1)黑盒测试:又称为功能测试,是不考虑程序内部结构特征,只考虑输入数据和输出的情况下进行的功能的测试。

   2)白盒测试:又称为结构测试,只考虑程序内部结构,而不考虑程序功能的测试。

   3)灰盒测试:是结合和黑盒测试和白盒测试的要素,对软件进行测试。一般先做黑盒测试,发现缺陷,再通过白盒测试对缺陷进行进一步的调查。(在集成测试阶段中经常采用灰盒测试)

  扩展:白盒测试说明

   1)白盒测试测试质量较高,白盒测试成本较高,白盒测试效率较低。

   2)白盒测试一般是对风险较大,难度较大的核心模块进行补充测试。

   3)白盒测试人员要懂代码,白盒测试也需要编写测试用例。

 2、按是否需要运行代码进行分类

   1)动态测试:需要使程序运行起来,进行的测试

   例如:通常功能测试都是动态测试。

   2)静态测试:不需要运行程序就可以进行的测试

   例如:

         文档测试

         部分界面测试

  (静态)代码测试:检查代码是否符合相应的标准和规范。

白盒测试有可能是静态测试,也有可能是动态测试。

  面试问题:白盒测试和(静态)代码测试的区别?

   白盒测试主要关注的是代码的逻辑实现,测试者必须要懂代码,白盒测试要求写用例。

   代码测试主要关注代码的规范和标准,测试者不需要懂代码,不需要编写用例,只需要对照代码检查单进行代码检查即可。

 3、按软件的特性分类

   1)功能测试

  (1)任何软件必须要先做功能测试,保证其功能正确。

  (2)功能测试既可以手工测试,也可以自动化测试(工具:QTP,selenium)

   2)性能测试

   (1)分布式软件(C/S,B/S)需要进行性能测试。

    (2)性能测试必须要借助工具,通过自动化的方式实现。(loadRunner,Jmeter)

  4、其它(名词)

   1)返测:对程序员修改的缺陷进行测试,验证缺陷是否被修复。

   2)回归测试:对上个版本中的所有功能重新测试一遍;验证在新版本中,程序原有的功能是否依然正常;回归测试中存在大量的重复性工作(重复执行用例),所以可以使用自动化测试来提高回归测试的效率。

   3)随机测试(猴子测试):

   在测试用例执行完成后,对软件进行的随意测试的过程。随机测试只是时间允许时,对正常测试用例之外的补充。

   4)兼容测试

   兼容测试指所设计的软件与硬件、软件之间的兼容性测试,兼容性测试主要分成3大类:

    (1)与硬件兼容

      与整机兼容

      与外设兼容

    (2)与软件兼容

      与操作系统兼容

      与其他应用软件兼容

      与浏览器兼容

      与数据库兼容

    (3)数据兼容

     指软件的不同版本之间的数据兼容。

 5)功能测试方法的测试策略

    等价类划分+边界值

    因果图、判定表、正交排列法

    测试大纲法  

    场景法

 回答的思路:将每个(每组)测试方法的应用场合和特征回答清楚。

  最后强调:在测试时一个功能可能需要2-4种测试方法综合应用进行测试。

   6)软件项目的测试流程(步骤)?

    (1)需求分析

   (2)制定测试计划

   (3)测试的设计

   (4)执行测试,记录测试结果(对测试结果的分析和记录)

   (5)记录缺陷,跟踪和管理缺陷

   (6)测试总结(报告)

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值