测试不是平的
来源:互联网 发布:大淘客cms建站教程lu 编辑:程序博客网 时间:2024/04/28 22:13
很多测试工程师强调测试的方法和思想,到底什么是测试的方法和思想?
测试的思路是一种立体的思路,物理学在说到多维空间的时候,往往会用“生活在球面上的动物”来形象地说明二维空间和三维空间的不同,在这里我也想借用多维空间的概念说一说测试。
在我看来,测试应该至少具有三个维度:
- 测试的级别——软件测试在不同的级别(level)上开展,例如单元测试、集成测试和系统测试。单元测试是最低的一个级别,测试的对象是构成软件系统的最小单位Unit;集成测试则是中间的级别,测试对象是由多个Unit组成的子系统;而系统测试则是高级别的测试,测试对象是完整的系统。
- 测试的类型——测试类型和测试级别是正交的维度,测试类型是指对测试对象进行的不同类型的测试,同一个类型的测试可以在不同级别的测试中有不同的体现。例如性能测试,在单元测试、系统测试中都可能会进行针对性能的测试,但在这两个不同级别的测试中,性能测试的具体体现也不相同——单元测试中的性能测试侧重对单元性能的评估,对算法性能的评估;而系统测试中的性能测试则侧重用户感受,性能测试结果体现的是对系统总体性能表现的评估。
- 测试的背景——测试关注点是另一个维度,简单来说,就是站在谁的角度来思考测试设计。举例来说,功能点测试就是站在“系统实现”的角度,一个一个的检查功能点是否完备,而用户场景测试则站在“用户”的角度,检查用户最关注的系统业务流程或是操作场景能够顺利实现。
测试的世界是立体和多维的,这就意味着测试工程师在思考测试问题的时候必须多角度地分析。从思路的角度来说,也就是要尽可能从多方位考虑验证系统正确性和发现问题的可能性。
至于测试的方法,则是指针对某种具体的思路,采用一些标准或是比较标准的方法对测试进行划分,以使得可以用一个相对较小的测试集合尽可能的覆盖系统的输入空间。常见的黑盒测试方法,等价类划分/边界值分析/状态迁移图法等,都是典型的测试方法。
把这个问题扩展一下——我们讲到了测试的思路和方法,也给出了他们的不同,对测试工程师来说,这究竟具有什么样的意义呢?我觉得这里的讨论最适合用来回答一个经常被问到的问题“测试工程师究竟应该具有什么样的技能?”,我的答案是:
- 从测试方法的角度来说,测试工程师需要掌握测试设计的方法;
- 只掌握测试设计方法是远远不够的,还需要有相应的测试的思路;
- 从测试思路出发,测试工程师至少需要了解测试的不同级别,级别之间的差异和每个级别关注的重点;需要掌握测试的类型,了解每种测试类型关注的重点,区别和重叠的地方;需要掌握系统的背景知识(也就是通常说的业务知识),了解系统本身的结构,能够从系统本身和用户的角度来关注系统的测试。
- 测试不是平的
- 测试不是平的
- 软件测试不是一项简单的工作
- 啥都不是的测试啊啊啊啊
- 测试您的杀毒软件的代码(不是病毒)
- SimpleDateFormat的测试,此类不是线程安全的。
- SimpleDateFormat的测试,此类不是线程安全的。
- 测试人员,你的价值不是你的工资
- 测试不是艺术!
- LSP里氏替换原则----正方形不是长方形和鸵鸟不是鸟的测试程序
- 写给测试人员:不是所有的bug都需要修复
- 测试用例或许不是了解产品的最好方式
- 需要谈谈的游戏测试(六)好像不是游戏测试
- 软件测试不是一个功能
- 探索性测试不是游览
- 做好测试不是靠编程
- 记一个质量极差的测试工具——请重视手工测试,自动化测试不是银弹
- 记一个质量极差的测试工具——请重视手工测试,自动化测试不是银弹
- 愿远方的游子平安回家
- 使用csc命令将.cs文件编译成.dll的过程
- JBuilder生产exe文件
- 使用Javascript动态增加,删除表格(使用DHTML对象模型)
- JSP课程教案【1】——JSP内置对象
- 测试不是平的
- Spring与Struts如何整合
- hoj 1440 - Knight Moves
- 用spring、Hibernate、Struts组建轻量级架构
- 由搭建Infrastructure of Machine Learning所想到的
- Using Swing's Pluggable Look and Feel
- Debian下的SSH
- struts+spring+hibernate 组装web应用
- Advanced Windows Debugging