软件测试的实质

第一部分——软件测试基本概念:我是传送门,可以点我
第二部分——软件开发过程:我是传送门,可以点我

测试的原则

完全测试是不可能的

原因:输入量太大
      输出结果太多
      软件执行路径太多
      软件说明书是主观的

所以我们就选择了冒险

    既然不能测试所有的情况,那就是选择了冒险。因此软件测试是有风险的行为。
    我们需要做的是如何把数量巨大的可能测试减少到可以控制的范围,以及如何针对风险做出明智抉择。

测试无法显示潜伏的软件缺陷

    这句话的意思是说,当你测试之后,你并没有找到软件缺陷,但是你并不能报告说没有软件缺陷。举例来说,你在房间里找蟑螂,可能找了一遍没有看到蟑螂,但是你并不能肯定这里就没有蟑螂,只是还没有被发现。同理,任何条件下都不能保证软件缺陷没有了。唯一的办法就是继续测试,可能还会有一些。
    进一步思考,我们在生物上学过生物具有抗药性,当你在同一个地方使用同一个杀虫剂时,一开始很有效,蟑螂会有效减少,但是或一段时间蟑螂便产生了抗药性,这个杀虫剂就不那么管用了。对程序员来说同样是这样,每个程序员都有自己的习惯,可能经常使用一些测试方法而忽略一些测试方法。所以测试员必须编写不同的,新的测试程序。

什么是缺陷

    之前提到了那么多次软件缺陷,那什么是软件缺陷?仔细思考,你会发现其实这个定义会变的有点模糊。在第一部分——软件测试基本概念中给出了一个定义。那么思考下面问题:存在一个问题,程序员没有发现,测试员没有发现,客户没有发现,那算是软件缺陷吗?按照之前的官方定义,没有看见就不能说存在软件缺陷。所以,尚未发现或尚未观察到的软件缺陷只能说是潜在缺陷。可以记住这个老问题:一棵树倒在森林里没有人听见,它发出声音了吗?

测试员在产品小组中受欢迎吗

    答案显然是否定的。测试员做的工组就是检查和批评同事的工作、挑毛病、公布发现的问题。所以要想保持成员小组和睦,请听取下面几条建议:
        早点找出缺陷:越早影响越小,越容易让人接受
        控制情绪:当测试员发现问题时是很高兴的,因为自己的工作有了进展,但是要知道代码是程序员的心爱之物,当测试员直接告诉程序员有问题时,可以肯定他的第一反应绝不是向你一样开心。
        不要总是报告坏消息。如果测试员只是报告坏消息,那么当你每次当你出现时,他就知道,Trouble is coming。不妨平时测试没有问题时,告诉他,Hey,兄弟,Good job。

软件测试的术语和定义

准确与精确的区别

    这里用射击游戏中的枪法来举例。
    我们称打到对手的头部为爆头,那请看下面四个描述:
  不精确也不准确:我认为传说中的”描边大师“就是这个意思
  精确但不准确:你瞄向了对手的头部,却打到了旁边的窗户,巧的是竟然还是同一个位置
  准确但不精确:你瞄向了对手的头部,却打在了对手的肚子上,虽然没有打到头也没有打空
  准确且精确:直接爆头
下面是网络上找到的一张图片:
在这里插入图片描述

确认与验证的区别

    确认:保证软件符合产品说明书的过程
    验证:保证软件满足用户要求的过程
    关键在于,满足产品说明书的产品不一定就是正确的产品或者称之为好的产品。这也是软件测试员质量保障人员的区别。这里举例的是书上的哈勃望远镜的例子,哈勃望远镜镜子的精度极高,但是准确度不够。镜子满足了产品说明书的要求,但是没有满足最初的需求。

质量和可靠性的区别

    质量:可以定义为”优秀程度“或者”同类优越性“。
    可靠性:只是质量的一个方面。

猜你喜欢

转载自blog.csdn.net/weixin_44895666/article/details/108694364
今日推荐