您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

day01_测试理论

软件测试的定义

  • 软件测试:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进 行评估的过程。 简单地说,软件测试是一种实际输出与预期输出之间的审核或者比较过程

为什么需要软件测试

  • 就不完全统计:每年软件bug会让整个市场经济带来近600亿美元的损失! 软件测试可以用最少的人力、物力、财力,找到软件中的问题并修复,从而降低商业风险减少损失。

软件测试分类

                                                                                                                    

按测试阶段划分

  • 单元测试 :又称模块测试,针对软件设计中的最小单位-程序模块,进行正确性检查的测试工作。单元测试需要从程序内 部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。单元定义:C中指一个函数,Java中指一个类。
  • 集成测试 :又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。
  • 系统测试 :指的是将整个软件系统看为一个整体进行测试,测试的依据是软件需求说明书
  • 验收测试 :检验软件是否符合用户需求的测试
    • α测试:Alpha 是内测版本,通常只在软件开发者内部交流 一般而言。该版本软件的bug较多,普通用户最好不要安装。
    • β测试:Beta是公测版本,是对所有用户开放的测试版本,这一版本通常由软件公司免费发布, 用户可从相关的站点下载。通过一些专业爱好者的测试, 将结果反馈给开发者, 开发者们再进行有针对性的修改
    • γ测试:Gamma版本,指的是软件版本正式发行的候选版。该版本已经相当成熟了, 与即将发行的正式版相差无 几, 成为正式发布的候选版本。

按是否查看源代码

  • 黑盒测试:又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关心软件的输入数据和 输出数据。
  • 白盒测试:指的是把盒子打开,去研究里面的源代码和程序结构。
  • 灰盒测试:灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,不仅关注输出、输入的正确性,同时也关注程序内部 的情况。

按是否运行分类

  • 静态测试: 指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。
  • 动态测试: 是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。

按照是否自动化

  • 人工测试:也叫做手工测试,测试人员手动去进行的测试
  • 自动化测试 :利用代码或者工具帮助人工进行测试
软件测试的更多分类
  • 冒烟测试:冒烟测试就是对系统进行最基本功能的测试,保证基本的功能和流程能走通
  • 回归测试:当修复一个BUG后,把之前的测试用例在新的代码下进行再次测试
  • 随机测试:随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分
  • 探索性测试 :探索性测试意味着同时设计测试和执行测试。测试人员通过测试来不断学习被测系统。

软件测试原则

  • 只能证明软件存在问题,不能证明不存在问题
  • 不能进行穷尽(穷举)测试,应该分类别测试
  • 测试工作要尽早的介入,降低修复成本(需求文档--ui、程序、测试)
  • 缺陷存在集群现象,二八原则:20%的模块中存在80%的缺陷
  • 测试依赖环境(系统、浏览器)
  • 杀虫剂现象
  • 不存在缺陷谬论

​​​​​​​软件开发模型

在软件开发的几十年实践中,人们总结了很多软件开发模型(软件生命周期模型)用来描述和表示一个复杂的开发过程。软件测试与软件的开发模式有着紧密的联系,作为一名测试人员,应该充分理解软件的开发模式,以便找准自 己在其中的位置,从而发挥自身的价值。软件开发模型有很多很多,最多的是瀑布模型。

瀑布模型
 
                                                                                             

特点:

  • 线性模型,在所有的开发模型中占有重要地位,是其他模型的基础
  • 以文档驱动,每个阶段执行一次,按线性顺序进行软件开发

优缺点:​​​​​​​

  • 当前阶段完成后,只关注后续阶段
  • 依赖于在其的需求分析,不适应需求的变化
  • 风险往往在后期显露,失去及早纠错的机会
  • 适合需求清晰的大型项目,如银行、保险、建筑等

​​​​​​​软件测试过程模型

在软件测试的实施中,针对于测试过程出现的问题,通过经验总结得到测试过程模型,旨在提高软件开发测试过程中的效率与效果。

V模型
 
  • V模型具有代表意义的模型,最早由Paul Rook20世纪80年代后期提出,由英国国家计算机中心发布 V模型是瀑布模型的变种,反映测试活动与需求分析、产品设计之间的关系 V模型从左到右,描述了开发与测试过程之间的阶段对应关系。

                                                                          ​​​​​​​

优缺点:

  • 展示测试由底层(代码)到高层(用户业务)按阶段测试的实现过程
  • 不适用于需求变化,灵活性差

​​​​​​​W模型

W模型,简称V”模型,即以开发主导的一个“V”,和以测试主导的另一个“V”。为了克服V模型的缺点,引入了W模型。

                                                                                         

优缺点:

  • 测试伴随整个产品开发周期,测试对象不仅是程序还有需求、设计文档
  • 测试介入较早,及早发现问题,降低修复成本
  • 实施起来比较复杂,难度大,对于需求阶段和设计阶段的测试设计要求较高(计算机技术、业务知 识、管理能力、测试素质等)

软件质量模型

软件质量, 就是软件与明确地和隐含地定义得需求相一致得程度。 质量模型标准,对于测试作用:提供测试设计的不同角度和思路。

                                                                    

详解

  • 功能性:满足某种功能需求的一种属性或能力
  • 性能效率:在规定条件下,相对应所用资源的数量,软件产品提供适当性能的能力
  • 兼容性:在一定条件下兼容其他软硬件产品的能力
  • 易用性:在指定使用条件下,产品被理解、学习、使用和吸引用户的能力
  • 可靠性:产品在规定条件下,在规定的时间内完成规定功能的能力
  • 信息安全性:信息在传输或者存储过程的安全程度
  • 可维护性:在规定条件下,规定的时间内,使用规定的工具或方法修复规定功能的能力
  • 可移植性:从一种环境迁移到另一种环境的能力

​​​​​​​测试用例

概念:一个为了特定的目的(检验开发的代码实现是否满足用户的需求)而设计的文档(包含测试输入、执行条件、预期结果),文档的形式可以是xmind、excel等。

测试用例的核心要素

不同的公司,测试用例模板大同小异。但是都离不开 测试用例的核心8要素,
 
  • 用例编号:表示用例的唯一性,有时也叫用例ID
  • 用例标题:表示要测试或验证的目的,通常一句话简要描述
  • 测试项目:当前测试的功能所属范围
  • 用例级别:表示用例测试功能的重要程度或者影响力
  • 预置条件:验证该功能需要的前提条件
  • 输入数据:必要的输入数据
  • 执行步骤:验证该功能需要的先后操作步骤
  • 预期结果:希望得到的结果 ​​​​​​​

软件测试用例的作用

  • 便于理清测试思路,确保需覆盖测试的功能点无遗漏
  • 便于测试工作量的评估
  • 便于提前准备测试数据
  • 便于把控测试工作进度
  • 便于回归测试
  • 便于测试工作的组织,提高测试效率,降低测试交接成本​​​​​​​

 


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进