软件测试的方法和技术相关


软件测试的方法

前言

软件测试的一些技术和分类划分了解,虽然已经入土了,但是花时间了解的东西一起放出来把,哈哈!

软件测试分类

功能测试 —测试人员用鼠标去手动测试 (测试GUI),点点点测试

自动化测试 —用程序测试程序 (测试API),解放双手

性能测试 —定位系统瓶颈,保证系统良好性能与稳定性

黑盒测试 —测试应用程序的功能,验证结果是否正确

白盒测试 —测试程序内部结构,以编程语言角度设计测试案例

软件测试功能分类

按测试阶段划分

  • 单元测试 Unit Testing,对每一个代码函数测试,属于白盒测试范畴,主要检查单元内部数据结构、逻辑控制、异常处理等
  • 集成测试 Integration Testing,对代码组成的模块进行测试,属于灰盒测试范畴,检查模块之间的数据传输
  • 系统测试 System Testing,针对每一个功能需求,完整的设计测试环境,指派测试人员执行,属于黑盒测试范畴,检查整个软件是否满足了需求

α、β测试

α测试活动好比游戏的删档内测

  • 由企业内部员工在模拟真实环境下进行的测试活动,进行结果反馈
    • 员工在开发人员的接入下,通过指导进行软件使用,且随时记录下使用过程中的错误
  • 由真实用户在软件内测版本,开发版本环境下进行的产品体验/测试活动,进行结果反馈
  • α测试的目的是评价软件产品的FLURPS(即功能、局域化、可用性、可靠性、性能和支持)。
  • α测试即为非正式验收测试,尤其注重产品的界面和特色,

β测试好比游戏的不删档公测

  • 由多个用户在实际操作环境下进行产品功能测试,如不同的手机型号,平台,网络环境等
  • β测试不受开发者控制,自主开展测试活动,然后进行结果反馈

黑盒测试

  • 黑盒称为功能测试,一是按顺序检测程序每个功能,二是按功能模块优先级测试。

  • 对软件的界面和功能进行测试,只考虑其整体特性,不考虑其内部实现

  • 需要根据说明书、用户手册进行功能测试

  • 如电视遥控器,就是一个标准的黑盒测试,我们不管是液晶的还是其他方式,只需要查看遥控器是否能控制空调

  • 要求多组数据,多次测试才能得到准确的报告黑盒测试类型

  • 功能性测试,网站顺序使用的功能,手机使用功能,显示器是否正常显示…

  • 容量测试,海量数据的处理,如1亿人用微信,1亿人用支付宝,这个数值容量

  • 负载测试,系统在短时间内处理海量数据时,系统的健康状况指标

  • 恢复性测试,小米手机秒杀活动太过热火,网站挂了,不该影响用户数据

白盒测试

白盒测试就打开了盒子,可以看到软件的内部代码

对比黑盒测试,白盒测试更严谨,对软件的源码和架构进行测试。

需要软件源代码,流程图等设计文档。

依据被测软件分析程序内部构造,并且根据内部结构设计测试用例,针对内部控制流程进行测试。

白盒测试是基于程序结构的逻辑驱动测试。

白盒测试的方法

  • 静态分析:控制流分析,数据流分析,信息流分析

  • 动态分析:逻辑覆盖测试(分支测试、路径测试)、程序插装

  • 语句覆盖

  • 判定覆盖

  • 条件覆盖

  • 路径覆盖

逻辑覆盖率的统计通过程序插装可以体现程序插装

  • 调试代码时,往往会在程序中添加print()语句,能够很方便的打印出我们想要的信息,进一步了解程序执行的一些动态信息,比如程序执行顺序,计算后的变量的具体指等。
  • 程序插装技术能够按照用户的要求,获取程序部分信息,是测试工作的有效手段。
  1. 黑盒测试的优点有:
  2. 1. 比较简单,不需要了解程序内部的代码及实现;
  3. 2. 与软件的内部实现无关;
  4. 3. 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
  5. 4. 基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
  6. 5. 在做软件自动化测试时较为方便。
  7. ``
  8. 黑盒测试的缺点有:
  9. 1. 没有清晰的测试规格说明,测试用例难以设计
  10. 2. 自动化测试的复用性较低。
  11. 3. 无法控制程序内部路径,可能缺少较多测试点
  12. ``
  13. 白盒测试的优点有:
  14. 1. 帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
  15. ``
  16. 白盒测试的缺点有:
  17. 1. 程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不
  18. 对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常大。

灰盒测试

介于白盒与黑盒之间,针对被测对象信息的不同,采用不同的测试方法。

  • 检验被测对象整体特性信息,采用黑盒测试
  • 检验被测对象内部实现,采用白盒测试
  • 既要观察被测对象整体信息,又要观察内部具体信息,信息占比不同,这就是所谓灰盒测试。

软件测试文档

软件研发如同工厂生产,整个过程会有产品输出,输出的产品有两类

  • 编译好的代码程序,如QQ.exe

  • 用户使用手册,QQ使用手册

  • 源代码,QQ源代码

  • 需求分析:软件测试依据

  • 概要设计:根据需求分析的内容,进行方案设计,明确是否覆盖到软件的需求

  • 详细设计:包含方案、策略、架构、体系、接口名、接口文档、数据结构算法,保证开发过程细致

  • 测试设计:测试需要进行哪些内容,包含哪些功能点,是否会影响其他功能,例如第三方支付页面跳转

  • 测试用例:用例是进行测试的依据,测试的规范条文

  • 测试报告:测试成功数量、失败数量、测试是否通过,允许产品上线等

动态测试与静态测试

静态测试:不运行被测试的软件系统,采用例如代码阅读、文档评审、代码分析等方式进行软件测试。

动态测试:按照预先规划好的测试数据与流程执行被测软件系统。

静态分析技术

定义:静态分析是不执行程序而分析程序的技术

功能:检查软件功能与需求是否一致,没有明显缺陷与歧义

测试点:

  • 程序代码语法上是否一致性与完整性
  • 文档描述是否规范、精准、便于查阅
  • 程序与文档之间描述的一致性

动态分析技术

对软件系统进行数据驱动运行,与期望结果进行对比检查的过程。

  • 脚本录制工具,进行反复测试,回归测试,如Robot、QTP、Selenium工具
  • 性能测试工具,LoadRunner、Robot等

文章学习来源:https://pythonav.com/wiki/detail/8/71/


文章作者: Binbin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Binbin !
  目录