软件测试学习-01

1.什么是软件测试

在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

2.软件测试七大原则

  1. 测试应尽早介入:软件测试的目的就是保证软件的质量、预防风险、降低研发成本,越是在开发初期,修复bug的成本往往越低,所以测试应尽早介入,一般测试人员在需求阶段就开始介入了。

  2. 完全测试时不可能的:想要做到完全测试一个软件是不可能的,比如我们要测试一个计算器软件,输入的数据有无穷多个,所以我们不可能进行完全的测试,只能选择一些有代表性的数据进行测试。

  3. 测试只证明软件存在缺陷:个人觉得可以这样理解,因为我们对一个软件不可能完全测试,所以我们不能证明这个软件是完美的、无Bug的,所以我们只能证明软件存在缺陷,哪怕我们测试过程中并没有发现缺陷,但并不代表该软件没有缺陷。

  4. 缺陷存在群集现象(二八原则):一个软件如果只有20%的核心功能,但这核心功能是软件的灵魂,需要花费测试人员80%的时间,那么在这20%的核心功能发现的Bug也会非常多,未发现的Bug也会很多,这就是群集现象。

  5. 杀虫剂现象:随着测试进度的慢慢推进,测试人员能发现的Bug越来越少,到最后不能发现Bug了。这不是说软件没有Bug,而是测试人员对Bug产生了“免疫”,即使Bug放在测试人员面前,也可能发现不了。出现这种情况一般可以做交叉测试、更新测试用例、尝试其他的测试方法等。

  6. 测试活动依赖于测试内容:比如测试支付相关的软件,那么安全性方面的测试会更加注重。针对什么样的业务,进行具体的测试活动。

  7. 不存在缺陷的谬论:判断一个软件的好坏,不是它是否存在缺陷,而是它是否能满足用户的需求,如果都无法满足用户的需求,那么找出再多的缺陷也是毫无意义的。

3.测试级别

1.单元测试(UT):针对实现软件的最小的代码结构进行测试(白盒测试)

2.集成测试(IT):集成是单元和单元拼在一起,不注重单元与单元之间的内部结构,而更注重于单元和单元拼在一起后的接口是否正确,一般用灰盒来测(接口测试)

3.系统测试(ST):测试软件的功能主体(黑盒测试)

4.验收测试:

  • α测试:公司内部人员模拟实际操作环境下的测试。目的是评价软件产品的FLURPS(即功能、局域化、可用性、可靠性、性能和支持)。其为非正式验收测试。
  • β测试:由软件的多个用户在实际使用环境下进行的测试,这些用户返回有关错误信息给开发者。
  • UAT测试(User Acceptance Test):相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。

4.系统测试分类

  1. 功能测试:验证软件主体功能是否可用。

  2. 兼容性测试:验证软件在不同环境下是否能使用,如果不同的操作系统、不同的浏览器等等。

  3. 安全测试:验证软件是否只能是授权的用户使用。

  4. 性能测试:软件消耗的资源和其执行的效率。

5.常见的测试方法

5.1按是否关心内部结构分为:
  1. 白盒测试:注重于内部结构,又称为结构测试或逻辑驱动测试,是一种按照程序内部逻辑结构和编码结构设计测试数据并完成测试的一种测试方法,一般为静态测试。

  2. 黑盒测试:注重于软件的功能,把测试对象当作看不见内部的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性。基本为动态测试。

  3. 灰盒测试:介于白盒和黑盒之间,它不像白盒那样详细、完整、但比黑盒更注重于内部逻辑。

5.2按是否执行程序分为:
  1. 静态测试:静态测试是指不运行被测程序本身,通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。其被测对象是各种与软件相关的有必要进行测试的产物,是对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。静态测试可以手工进行,充分发挥人的思维的优势,并且不需要特别的条件,容易展开,但是静态测试对测试人员的要求较高,至少测试人员需要具有编程经验。

    静态测试主要包括各阶段的评审、代码检查、程序分析、软件质量度量等,用于对被测程序进行特性分析。其中评审通常有人来执行;代码检查程序分析、软件质量度量等即可人工完成,也可用工具来完成,但工具的作用和效果相对更大更好一些。

  2. 动态测试:通过运行被测程序来检查运行结果与预期结果的差异。

5.3按照执行过程是否要人工干预分为:
  1. 手工测试

  2. 自动化测试

6.软件质量特性

  1. 功能性:软件需满足用户显式或隐式的需求。

  2. 易用性:软件易于学习、容易上手。

  3. 可靠性:软件必须实现需求中明确的功能。

  4. 效率性:软件的执行效率能满足用户的需求。

  5. 可维护性:软件某个功能修复后还可以继续使用。

  6. 可以移植性:软件可以从一个平台移植到另一个平台使用。

7.软件测试流程

  1. 需求分析

  2. 设计用例

  3. 评审用例

  4. 配置环境

  5. 执行用例

  6. 回归测试及缺陷跟踪

  7. 输出测试报告

  8. 测试结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值