专栏首页菜鸟小白的学习分享菜鸟小白的测试基础理论总结(一)

菜鸟小白的测试基础理论总结(一)

    今天我们看一看测试的理论知识,在学习测试理论知识之前我们先看看什么是测试?

软件测试的定义

    百度词条对测试的定义:就是使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

G.J.Myers对测试的定义:测试是为了发现错误而执行程序的过程

   因为测试是不能可能穷尽的,所以注定了我们的测试活动存在漏测的可能,如何在可能存在漏测的情况下保证我们测试的版本能够正常稳定运行就成了我们测试人员需要关注的重点。所以我觉得测试应该是:在某些条件下,验证软件能否正常工作的过程。

    我们有很多的测试人员测着测着就测偏了。就比如一个用户名的输入框,我经常会看到这样的问题单“新建用户名提示长度为1-128之间,实际限制范围为1-127之间”。你说这样的问题是问题么?当然是问题的。但你说这样的问题会影响到客户使用么?不会的,客户甚至都不会建一个字符数超过32位新用户,试想一下你建一个这样的用户,你输入用户名的时候不累么?你能记住这样一遍小作文似的用户名么?既然你作为一个用户都不会这么使用,那这样一个问题又有什么意义呢?下面我们就来谈一谈测试的目的。

软件测试的目的

    从上面的定义中我们总结出如下目的:

1、测试是为了发现软件问题

2、测试是为了保证软件在某种条件下能够正常运行

3、测试是为了验证软件是否满足软件用户需求

    还是使用刚刚那个用户名输入限制的例子来看,它确实发现了问题,但这个问题可能不是影响到版本质量的问题,纯粹是为了发现软件问题。那从这样来看,我其实就不是很认同G.J.Myers的观点了,在他思想的指导下容易出现测试的功利主义——纯粹为了发现问题而测试。要知道我们测试的目的不是为了客户拿到手的是一个完美的产品,我们不仅做不到,即使可以做到也完全没有必要。我们测试是为了客户在使用我们产品的时候没有问题,至于客户不使用的地方有问题,又有谁会去关心呢。

软件测试的分类

从测试阶段看

    单元测试:在我们熟知的V模型中,单元测试对应的就是详细设计。将软件拆分为许多单元,然后就对单元进行测试。这种测试的输入数据单一,测试针对性强,发现问题的修改成本很低。

    集成测试:同样,在我们熟知的V模型中,集成测试对应的就是概要设计。软件多个相互耦合的单元组成一个模块,然后对这个模块进行测试。这个时候的测试主要是发现单元之间的连接逻辑问题,发现问题的修改成本低

    系统测试:对应的就是V模型中需求分析的内容,系统测试就是针对着软件功能的测试了,这个时候更加注重产品功能的实现,发现问题的修改成本已经比较高了

    验收测试:另外有的公司在系统测试结束之后还会有一轮的验收测试,这个针对的就是产品部署方案的测试,不再局限于单个功能点,而是基于产品的应用场景。这个时候再发现致命问题的修改成本就更高了。

从测试内容

    功能测试:软件功能是否符合规格要求

    性能测试:软件性能是否符合规格要求

    配置测试:软件配置操作能否正常下发、生效

    稳定性测试:长时间运行情况的测试

    压力测试:设备即将达到、达到或者超过规格的情况下的测试

    异常测试:利用一些攻击手段,对设备的安全性进行测试

    兼容性测试:前后版本、浏览器适配等兼容性测试

从是否运行代码看

    动态测试:代码运行起来的测试,包含有输入输出

    静态测试:不实际运行软件的测试,如:代码检查、代码评审等活动

从代码是否可见看

    黑盒测试:代码不可见,测试人员在不考虑代码结构的情况下,根据输入输出结果判断测试结果的测试活动

    白盒测试:代码可见,测试人员在考虑代码结构和特定条件的情况下,检验内部流程是否正确

    灰盒测试:介于黑盒测试和白盒测试之间, 灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。

从测试执行看

    手工测试:通过人工去执行测试活动

    自动化测试:通过测试脚本去执行测试活动

本文分享自微信公众号 - 菜鸟小白的学习分享(cainiao-xiaobai),作者:菜鸟小白的学习分享

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 我们一起学一学渗透测试——基础概念

    说来也惭愧,菜鸟小白已经干了三年安全产品的测试,但是对于渗透测试都不曾好好了解,一直停留在基础功能测试和自动化测试的摸索上。正好我们组内在组织渗透测试的...

    菜鸟小白的学习分享
  • 太实用了!自己动手写软件——密码验证器的界面实现

    我们今天的目标很简单,就是先把软件的界面设计和写出来,并不关心每一个按钮和输入框之后的功能实现。我设计一个这样的界面(极其简单,只是实现功能)

    菜鸟小白的学习分享
  • python编码一定会用到的七个小技巧,不看你一定会后悔哦~

    今天给大家分享几个python的小技巧,希望你们在编码的时候可以用得上。

    菜鸟小白的学习分享
  • 面试题二十一期-中高级测试工程师68道面试题

    就算所有人都不支持你。这条路会很曲折,你也会一度认为是不是自己选错了,但只要坚持,就算最后没有成功,但努力了就不会有遗憾。

    测试小兵
  • 软件测试分类有那些,你还知道吗

    回答以下小问题: 1.什么时候进行单元测试? 2.由谁来做单元测试? 3.单元测试的依据? 4.单元测试的通过标准? 5.国内单元测试的现状? 6.如何进行单元...

    用户7466307
  • 网上看到的面试题,我忍不住吐槽....

    张树臣
  • 软件测试思想浅谈

    张树臣
  • 《软件测试52讲》读书笔记 —— 如何做好测试计划

    确定测试范围一般在测试需求分析完成后进行,所以确定测试范围的过程在一定程度上也是对测试需求分析的进一步检验,有助于在早期阶段发现潜在的测试遗漏;

    小菠萝测试笔记
  • 测试分析设计总结

    Tester_Jun
  • 测试基础篇(二)—— 面试挺常见

    ================================================================

    小菠萝测试笔记

扫码关注云+社区

领取腾讯云代金券