En provenance du cours de Nanjing University
软件测试 (Software Testing)
Explore Related Videos
At Coursera, you will find the best lectures in the world. Here are some of our personalized recommendations for you
从认识和理解软件Bug开始,介绍软件测试的基本理论,阐述软件测试设计的多样性原理。基于多样性原理,介绍白盒测试方法和黑盒测试,具体包括随机测试、等价类测试、控制流测试、数据流测试等;邀请业界专家讲解功能测试、性能测试、移动应用测试技术。
À partir de la leçon
软件测试基础
本节主要熟悉课程系统,了解测试基本概念,重点理解Bug及其测试原理。
Rencontrer les enseignants
Zhenyu Chen
Associate Professor
Software Institute
这节我们介绍一些
软件测试的基本术语
我并不赞同大家把这些概念背下来
但是为了这门课的沟通方便
我们还是介绍一些比较常用的
基本术语
基本上来讲我们的测试用例
需要包括测试输入 测试预言
及预期的输出
还有其他的一些设置等等
共同构成一个完整的测试用例
但是很多时候我们
讲测试用例的时候
可能会等同于这里的测试输入
也是测试数据
有时候为了叙述方便
这样是可以的
但有时候会带来一些歧异
这个输入进去
最终系统输出什么
我们的有个预期的输出
在这里我们有一个专业术语
叫测试预言Test oracle
同时这些输入和输出
在什么环境获得
也是需要一个准确的描述
这是一个计算哪个数字大的
一个程序
那它的预期输出是5
测试环境可以去描述
这是一个命令行的程序
是界面程序 移动应用程序
WEB程序还是什么样的一个程序
需要在什么样的一个环境下
进行执行等等
测试通常是指执行软件
去观察是否失效
即跟我们预期的行为不一致
而Debugging通常包括
去找到这个Fault的位置
也就是Varification and Validation
Validation中文指确认
通常是指我们确认
这个规格文档
是否就是我们最终
由用户想需要的
Valifcation是指我们刚才确认的
那个文档和我们最终的实现
是否一致
也就是我们实现
是否满足这样的一个规格文档
测试就是属于Valification
即我们确认这个系统
跟我们当初的一个需求是否一致
不需要运行程序
即静态测试
需要运行即动态测试
严格来讲静态测试不是测试
它通常通过扫描程序等等
来判别程序当中可能存在的问题
黑盒顾名思义
把程序当做一个黑盒子
我们去运行程序
并不需要去知道程序内部的信息
我们去运行程序并且
通过程序内部的一些结构等信息
去分析这里面可能出现的问题
这里面需要强调的是
很多同学包括甚至一些文献讲
把黑盒加上白盒等于灰盒测试
这是白加黑
正确的理解是灰盒测试
是指我们通过其他的软件制品
或者通过反编译等手段
比如在安卓应用当中
我们经常通过反编译
获得它的一些结构信息
来设计一些测试
那这是一种典型的灰盒测试
模块测试相对比单元测试大一些
整个模块集的一个输入输出等等
最后整个系统Build起来
我们称之为系统级的测试
里面讲到在Google里面
分为小型测试 中型测试
和大型测试
而不是采用这样的一个分法
它是指在整个软件
开发过程当中
从需求到设计详细设计
到CODIND
反过来在测试里面
有单元测试 模块测试
集成测试 系统测试等等
在今天的尤其是
移动互联网的开发里面
由于整个开发过程
变得短 频 快
我们获得一个软件制品
可能它的需求
可能是它的代码
当然我们也可以直接
从软件制品当中
去派生测试需求
然后通过这样规格化的测试需求
我们去产生测试及测试输入
为了让这些测试用例
能够自动的跑起来
我们需要把它转变为
某种测试脚本
在特定的执行框架下面去执行
获得测试结果
下面一层是需要把测试
变成测试脚本
这个需要大家在MOOCTEST.NET
进行完成