学习日志之software engineering(13)——Validation & Verification

这个过程是在编程完成之后对程序进行的一系列检查,其中validation是在用户的角度,从产品的外部进行检查,系统是否可靠,是否对用户有价值。而verification是从产品的内部检查其内部的结构是否输出正确预想的值。前者的对象是stakeholder而后面的对象是designer。
我们进行V&V过程的目的是为了减少defect,之前有讲过fault和failure的概念,这里defect就是这两者的总称。在开发过程中越是在靠后的过程检查defect所需要花费的成本就会越高。这里给出fault和failure的概念:
fault——The feature of software that causes a failure
failure——An execution event where the software behaves in an unexpected way
defect和这两者的关系是一个泛化的关系。

在这里插入图片描述
V&V技术主要包括两类,一类是静态,这一类不需要运行,仅仅是对代码的分析和纠错,按我的理解来讲应该算是语法编译一类的技术;另一类就是动态,这一类需要运行程序,通过程序运行的结果来检查程序的可用性,即为testing。其一般是需要excecutable unit或者system,然后写一些test case输入然后观察输出结果是否有不同。test的流程主要分为三个阶段:write tests->run test->record results。
这三个阶段中最重要的步骤就是write test了,这个阶段需要阅读需求文件和设计文件并且写出各种情况下的test case。这个文件中需要表明的东西有test case的事件名,输入,以及期望对应的输出。一系列的test case就组成了test suite,然后运行的结果记录到一个log中。
运行test case拆开,其过程如下所示:
在这里插入图片描述
其中值得注意的是Oracle这个阶段,这个玩意一般来说是一帮测试员。他们计算出的结果和运行test case的结果相对比,最后得出测试结果。

一般而言在开发过程中流程整个研发过程有以下三种情况:
scenario1:
开发组把所有的事给做了,这样做比较适合比较小的团队。
在这里插入图片描述
scenario2:
从开发组中分离出一个专业的测试组,专门写test case对系统进行测试,然后进行开发-测试过程迭代,这也是开发中用得最多的一种模式。
在这里插入图片描述
scenario3:
这种情况是用多个测试组来进行多次测试迭代
在这里插入图片描述
在测试过程中test case的编写是一个很重要的步骤。如果将所有的test case都一一列出来这也是一种方法,成为exhaustive test但是这个方法并不实用,因为有些东西实在是有太多情况需要考虑了,而且那么多情况运行所需要的时间也很长,所以需要找到一些比较关键系统中的点来进行测试。判断test case的关键原则是其reliability和validity。
Valid Criterion: C is valid if and only if whenever P is incorrect C selects at least one test set T which is not successful for P
Reliable Criterion: C is reliable if and only if either every test selected by C is successful or no test selected is successful.

testing也可以分为好几个层级:Unit tests,Integration tests,System tests
对于最底层的unit test一般测试方法有两种:黑盒测试 (外部输入和输出的关系)和白盒测试(关心Unit内部的结构问题)
对于黑盒测试而言选取test case的方法有:

  • 随机选取
  • Equivalence class partitioning
    step1:define a critiria(这个条件是和定义分组相关的)
    step2:define predicates for each critiria(在这些条件下的满足条件和不满足条件,以及各种不同情况的区间判断条件,这个定义得可以很详细,取决于测试员自己)
    step3:write test cases(尽量每一个predicates都写一个test case)
  • Boundary conditions
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值