软件测试工程师关注的知识领域
最近想和大家一起探讨一下关于软件测试人员应该具备的一些专业技术知识.请大家踊跃投票,当然其中只包括我认为测试人员该掌握的一些技能知识,不包括其它基本素质,沟通能力等等.
如果有考虑不周的地方请大家多加补充!
[ 本帖最后由 andy 于 2007-1-23 09:24 编辑 ] 2.UML可视化建模
3.软件工程学
4.软件系统测试流程(需求评审,需求分析,测试用例设计)
5.同行评审,需求跟踪,缺陷跟踪,配置管理
6.自动化测试(QTP,WinRunner,SilkTest,RFT)
7.性能测试(LoadRunner,SilkPerformer,RPT,JMeter) 是不是发重复了,另一个我就删了哈。 :) 好的. 选了! 请问有关于"UML可视化建模"的一些资料吗? 附一篇UML的文档
[ 本帖最后由 andy 于 2007-1-23 13:34 编辑 ] sdlkfj2 为什么我觉得都可以关注下啊 说明你挺好学的.不过这些也是我觉得,大部分测试人员会比较关注的知识. 呵呵.
希望大家能够多交流. 大家在投票的同时,请大家讨论一下自己在企业中是怎么做测试的,还有哪些方面觉得有待改进? 感觉还有多点,对操作系统,数据结构,数据库,网络,编程,工程施工,各个方面都必须掌握阿!! 呵呵~~~多的是呢:天文、地理、心理学、交际沟通、职业道德、业务知识、做人道理。。。。。。。。。。。。。。。。sdlkfj3 sdlkfj3 sdlkfj3
其实下面这些都要了解或掌握
1.计算机系统基础知识1.1 计算机系统构成及硬件基础知识
●计算机系统的构成
●处理机
●基本输入输出设备
●存储系统
1.2 操作系统基础知识
●操作系统的中断控制、进程管理、线程管理
●处理机管理、存储管理、设备管理、文件管理、作业管理
●网络操作系统和嵌入式操作系统基础知识
●操作系统的配置
1.3 数据库基础知识
●数据库基本原理
●数据库管理系统的功能和特征
●数据库语言与编程
1.4 中间件基础知识
1.5 计算机网络基础知识
●网络分类、体系结构与网络协议
●常用网络设备
●Internet基础知识及其应用
●网络管理
1.6 程序设计语言知识
●汇编、编译、解释系统的基础知识
●程序设计语言的基本成分(数据、运算、控制和传输、过程(函数)调用)
●面向对象程序设计
●C语言以及C++(或Java)语言程序设计基础知识
2.标准化基础知识
●标准化的概念(标准化的意义、标准化的发展、标准化机构)
●标准的层次(国际标准、国家标准、行业标准、企业标准)
●标准的类别及生命周期
3.信息安全知识
●信息安全基本概念
●计算机病毒及防范
●网络入侵手段及防范
●加密与解密机制
4.信息化基础知识
●信息化相关概念
●与知识产权相关的法律、法规
●信息网络系统、信息应用系统、信息资源系统基础知识
5.软件工程知识
5.1 软件工程基础
●软件工程概念
●需求分析
●软件系统设计
●软件组件设计
●软件编码
●软件测试
●软件维护
5.2 软件开发方法及过程
●结构化开发方法
●面向对象开发方法
●瀑布模型
●快速原型模型
●螺旋模型
5.3 软件质量管理
●软件质量及软件质量管理概念
●软件质量管理体系
●软件质量管理的目标、内容、方法和技术
5.4 软件过程管理
●软件过程管理概念
●软件过程改进
●软件能力成熟度模型
5.5 软件配置管理
●软件配置管理的意义
●软件配置管理的过程、方法和技术
5.6 软件开发风险基础知识
●风险管理
●风险防范及应对
5.7 软件工程有关的标准
●软件工程术语
●计算机软件开发规范
●计算机软件产品开发文件编制指南
●计算机软件需求规范说明编制指南
●计算机软件测试文件编制规范
●计算机软件配置管理计划规范
●计算机软件质量保证计划规范
●数据流图、程序流程图、系统流程图、程序网络图和系统资源图的文件编制符号及约定
6.软件测试知识
6.1 软件测试基本概念
●软件质量与软件测试
●软件测试定义
●软件测试目的
●软件测试原则
●软件测试对象
6.2 软件测试过程模型
●V模型
●W模型
●H模型
●测试模型的使用
6.3 软件测试类型
●单元测试、集成测试、系统测试
●确认测试、验收测试
●开发方测试、用户测试、第三方测试
●动态测试、静态测试
●白盒测试、黑盒测试、灰盒测试
6.4 软件问题分类
●软件错误
●软件缺陷
●软件故障
●软件失效
6.5 测试标准
7.5.1 GB/T 16260.1—2003 软件工程 产品质量 第1部分:质量模型
7.5.2 GB/T 18905.1—2002 软件工程 产品评价 第1部分:概述
7.5.3 GB/T 18905.5—2002 软件工程 产品评价 第5部分:评价者用的过程 楼主 你对测试认识太狭隘。
对于测试体,是需要多角度看待的, 最主要的三个角度:
1)用户的角度;
2)开发的角度;
3)软件运行的环境;
所以对测试的了解,就是对这三个不同角度看问题的了解;
你所列举的太狭隘,或者说离一个合格的高级测试人员差距还很大! 非常欣赏这位兄弟补充的宝贵意见,说的非常的好,你提到的三点是在测试中必须关注的因素。
但是我的主题列出的我认为软件测试工程师希望能够掌握的知识面。sdlkfj3 呵呵,我在找一个资料,无意走到这个论坛的。
不好意思, 恕我直接,如果一个软件测试工程师希望能够掌握的知识面 只有你列举的那些,显然你离一个合格测试还有一段距离 或者说 你不知道如何去提高测试的水平。
同时我发现楼主列举的知识中,很多知识过多的依赖于工具,说实话,我还没有见过用用楼主列的自动化工具”QTP,WinRunner,SilkTest,RFT“ 实施自动化成规模(至少几千个case)、长期维护且有效的自动化测试体系
所有测试最核心的思想是逻辑和模式,个人觉得啊。。。
测试里的理论知识表面上大家都知道,实际上真正能说清楚其含义的又有几个,比如楼主解释一下 模块测试和系统测试的区别 和 实际工作中如何去体现这种区别。 再比如, 等价类划分 如何从软件的功能中去找到有效的等价类
概念是一回事, 理解是一回事, 实施又是一回事, 不要把你们知道的理论认为是你们掌握的知识。
最后要说, 如果你是一个合格的测试, 那我问你一个问题:
一个开发经验很深的rd如果去做测试肯定比相同测试经验的tester要更有效, 你怎么看呢? 关于楼上提到的问题,我把我自己的见解表达一下。因为有些问题是因人而异,没有一个标准,呵呵。
当然做任何事情都有一定的模式,也同样离不开相应的理论知识和做事的方法论。
当然,我很赞成你所说的 “概念是一回事, 理解是一回事, 实施又是一回事。”
模块测试和系统测试在测试类型划分方面应该不属于同一个范畴,我的理解你指的“模块”是不是提交整个被测系统中某一个功能模块,因为你是把“模块测试”和“系统测试”放在一起的。
我在进行“模块测试”时,我会把一个完整的系统拆分成相对功能独立的模块进行测试。当然在“系统”成面上应该属于系统测试。在我待会的公司中,系统测试也会分阶段进行,不同阶段对系统测试又有不同的做法,应该有一个自小变大的过程。
关于有效等价类的划分,我通常认为按照不同的角度进行划分。
就好像我们小学时做的那些把苹果香蕉梨菠萝铅笔橡皮进行分类差不多。就是物以类聚,人以群分。从不同的角度分类。例如班上50个同学,你从性别分男女两类、从籍贯分上海人、北京人、等等集合,从爱好分可以分爱好体育的、爱好音乐的、爱好舞蹈的等集合,当然还可以从其他角度划分。
不同角度划分也可以粗和细,例如上面说的从生源来分,要想分得粗,可以分黄河以北的北方生源和黄河以南的南方生源,那么50个人分别归到这两类里,每类出特例来作代表来测试;如果要分得细,就可以像上面说的分上海、北京、天津等集合,每类再出特例来测试,这样当然要比前面只分两类测得更细致,但时间成本肯定上去了。 设计者要把握划分集合中的代表来设计,这样能保证成本,效率的最小化。
另外关于资深开发人员做测试的帖在论坛里已经屡见不鲜了,大家也可以多参与这样的讨论。
[ 本帖最后由 andy 于 2007-1-26 12:06 编辑 ] andy提供的资料下载看看! 个人觉得,编程,数据库,网络,以及测试工具,理论等方面,应该说测试的学习范围是比较广的