【软件测试技术】初识软件、软件测试

文章目录

  • 一、软件
    • (一)什么是软件
    • (二)软件的分类
  • 二、软件缺陷【bug】
    • (一)软件缺陷的定义
    • (二)缺陷的由来
  • 三、软件测试
    • (一)软件测试的由来
    • (二)软件测试的定义
    • (三)软件测试的目的
    • (四)测试和调式的区别
  • 四、软件危机和软件工程
  • 五、软件的生命周期
    • (一)软件生命周期模型
  • 六、软件测试流程
  • 七、软件测试过程模型
    • (一)V模型
    • (二)W模型
    • (三)H模型
    • (四)X模型
  • 八、软件测试过程理念

一、软件

(一)什么是软件

软件是程序、数据和文档三者的结合

  • 程序
  • 数据
  • 文档

(二)软件的分类

按照层次划分:

  • 系统软件:跟计算机的硬件系统关系非常密切
  • 应用软件:如一些直播平台等

按照组织划分:

  • 商业软件:比如Windows(需要付费)、QQ等
  • 开源软件:源代码是对外开放的

按照结构划分:

  • 单机软件:只需要一台计算机就可以完成运行,如计算器、画图等
  • 分布式软件:比如说QQ,QQ聊天需要两台或者多台计算机完成

二、软件缺陷【bug】

(一)软件缺陷的定义

  • 所有不满足需求超出需求的都是缺陷
  • 没有不存在缺陷的软件,只有迄今为止尚未发现的缺陷

官方定义的软件缺陷定义:

  • 软件未实现产品说明书要求的功能
  • 软件出现了产品说明书指明不应该出现的功能
  • 软件实现了产品说明书未提到的功能
  • 软件未实现产品说明书虽未明确提及但应该实现的目标
  • 软件难以理解、不易使用、运行缓慢或者(从测试的角度看)最终用户会认为不好

如何理解【从测试的角度看】:作为一名软件测试工程师,需要把自己当成一名普通的用户去看待这个软件。软件测试需要一定的灵活性。

(二)缺陷的由来

软件缺陷一般用两个单词来表示:

  • Bug
  • Defect

计算机软件第一夫人:Grace Hopper,发明了Cobo语言,也是找出电脑程序中第一个bug的女程序员。

三、软件测试

(一)软件测试的由来

软件测试起源于上世纪70年代中期:

  • 《测试数据选择的原理》
  • 《软件测试的艺术》

20世纪80年代早期,软件行业开始逐渐关注软件产品质量,并在公司建立的软件质量保证部门QA(QUALITY ASSURANCE)或SQA

(二)软件测试的定义

软件测试最主要的就是找出软件的缺陷

1.正向思维的定义

  • 出发点:使自己确信产品是能够正常工作的评价一个程序和系统的特性或能力,并确定它是否达到期望的结果,软件测试就是以此为目的的任何行为。

2.反向思维【抱着怀疑一切的态度对程序做测试】的定义

  • Glenford.J.Myers 《软件测试的艺术》
  • 出发点:测试是为发现错误而执行的一个程序或者系统的过程
  • 测试是为了证明程序有错,而不是证明程序无错误
  • 一个好的测试用例在于它能发现以前未发现的错误
  • 一个成功的测试是发现了以前未发现的错误的测试

反向思维:需求让你怎么干你偏不,比如说让输入6-18位数字,而在做测试的时候可以输入6位以下或者18位以上的数字或者是非数字,就是要有一种找茬的感觉。

3.IEEE【电气和电子工程协会】定义的软件测试

  • 在规定条件下运行系统或构件的过程:观察记录结果,并对系统或构件的某些方面给出评价。
  • 分析软件项目的过程:检测现有状况和所需状况之间的不同,并评估软件项目的特性。

4.广义的软件测试

  • 软件测试是对软件形成过程中的所有工作产品(包括程序以及相关文档)进行的测试,而不仅仅是对程序的运行进行测试。

5.软件测试中两个特别重要的术语:

  • 确认:通过检查和提供客观证据来证实特定目的的功能或应用是否已经实现
  • 验证:通过检查和提供客观证据来证实指定的需求是否满足。

(三)软件测试的目的

  • 以最少的人力、物力和时间找出软件中潜在个的各种错误和缺陷,保证各种错误和缺陷得以修复,避免软件发布后由于潜在的软件错误和缺陷造成的隐患所带来的商业风险。
  • 同时利用测试过程中得到的测试结果和测试信息,作为后续项目开发和测试过程改进的重要输入,避免在将来的项目开发和测试中重复同样的错误。
  • 采用更加高效的测试管理手段,提高软件测试的效率和软件产品的质量。

(四)测试和调式的区别

  • 在主体、目标、方法和思路上有所不同

(一)软件生命周期模型

瀑布模型:最早提出软件开发的过程模型。

增量模型:

  • 把软件分割成独立的模块,可以分批次的完成和交付;
  • 缺点:打破原有的软件结构和框架可能会带来一定的风险。

增量模型一般会和迭代模型一起应用:

  • 软件增加了新功能;
  • 软件优化了…功能;
  • 软件修复了某些未知、已知的bug

迭代【功能一次一次的深入】模型:

  • 迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必须的所有其他元素,强调开发的深入。
  • 在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:需求分析、设计、实施和测试工作流程。

迭代过程具有以下优点:

  • 降低了在一个增量上的开支风险;
  • 降低了产品无法按照既定进度进入市场的风险;
  • 加快了整个开发共工作的进度;
  • 迭代过程这种模式使适应需求的变化会更容易些。

  • 敏捷宣言,也叫做敏捷软件开发宣言,正式宣布了对四种核心价值和十二条原则,可以指导迭代的以人为中心的软件开发方法。

七、软件测试过程模型

软件测试过程模型有下面几种:V模型、W模型、H模型、X模型,其中比较重要的是V模型和W模型。

测试过程的质量将直接影响测试结果的准确性和有效性。

(一)V模型

  • 由两个V字模型组成,分别代表测试与开发过程,明确表示出了测试与开发的并行关系。

优点:

  • 测试的活动与软件开发同步进行
  • 测试的对象不仅仅是程序,包括需求和设计
  • 尽早发现软件缺陷可降低软件开发的版本

局限性:

  • 在W模型中,需求、设计、编码等活动被视为串行的,这样就无法支持灵活的迭代

(三)H模型

  • X模型也是对V模型的改进,X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序.
  • X模型还定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方是往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。

补充知识点【重要】:

测试过程(工作独立性)【问:给下面四个选项对于工作独立性进行排序(由高到低)】
A.研发团队内部的测试岗位
B.企业内部的独立于研发部门的测试岗位
C.专门的测试外包公司的岗位
D.开发人员自己测试

C>B>A>D

八、软件测试过程理念

尽早测试

  • 测试人员早期参与软件项目【软件需求刚被提出就应该加入】
  • 尽早的开展测试执行工作

全面测试

  • 对软件的所有产品进行全面的测试
  • 软件开发及测试人员(有时包括用户)全面的参与到测试工作中。

全过程测试

  • 测试人员要充分关注开发过程【观察开发进度】
  • 测试人员要对测试的全过程进行全程的跟踪

独立的、迭代的测试

  • 测试活动是独立的
  • 测试活动应该是循环往复、不断的进行

思考题:
有一个加法计算器,可以进行任意两位整数的加法求和
(1)当能确定1+1 1+2 1+3 43+56这些数计算是准确的时候,还要不要去测试其他更多的数据br> (2)如果需要测试更多的,我们需要测试多少个br> (3)1+2计算正确以后要不要对2+1进行测试/p>

旺财加油!/p>

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月21日
下一篇 2021年6月21日

相关推荐