andy 2007-1-22 16:56
软件测试工程师关注的知识领域
最近想和大家一起探讨一下关于软件测试人员应该具备的一些专业技术知识.
请大家踊跃投票,当然其中只包括我认为测试人员该掌握的一些技能知识,不包括其它基本素质,沟通能力等等.
[size=2][color=Red]如果有考虑不周的地方请大家多加补充![/color][/size]
[[i] 本帖最后由 andy 于 2007-1-23 09:24 编辑 [/i]]
Zee 2007-1-22 17:01
2.UML可视化建模
3.软件工程学
4.软件系统测试流程(需求评审,需求分析,测试用例设计)
5.同行评审,需求跟踪,缺陷跟踪,配置管理
6.自动化测试(QTP,WinRunner,SilkTest,RFT)
7.性能测试(LoadRunner,SilkPerformer,RPT,JMeter)
Zee 2007-1-22 17:02
是不是发重复了,另一个我就删了哈。
andy 2007-1-22 17:10
:) 好的.
windsmile 2007-1-22 17:19
选了!
deadhunter 2007-1-23 09:58
请问有关于"UML可视化建模"的一些资料吗?
andy 2007-1-23 10:23
附一篇UML的文档
[[i] 本帖最后由 andy 于 2007-1-23 13:34 编辑 [/i]]
JuliaLiu 2007-1-23 12:45
sdlkfj2
futogether 2007-1-23 13:56
为什么我觉得都可以关注下啊
andy 2007-1-23 14:08
说明你挺好学的.不过这些也是我觉得,大部分测试人员会比较关注的知识. 呵呵.
希望大家能够多交流.
andy 2007-1-24 10:33
大家在投票的同时,请大家讨论一下自己在企业中是怎么做测试的,还有哪些方面觉得有待改进?
lona_ma 2007-1-24 13:31
感觉还有多点,对操作系统,数据结构,数据库,网络,编程,工程施工,各个方面都必须掌握阿!!
wgs0923 2007-1-24 14:26
呵呵~~~多的是呢:天文、地理、心理学、交际沟通、职业道德、业务知识、做人道理。。。。。。。。。。。。。。。。sdlkfj3 sdlkfj3 sdlkfj3
sunxy5291 2007-1-25 09:30
其实下面这些都要了解或掌握
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部分:评价者用的过程
good_doom 2007-1-25 15:41
楼主 你对测试认识太狭隘。
对于测试体,是需要多角度看待的, 最主要的三个角度:
1)用户的角度;
2)开发的角度;
3)软件运行的环境;
所以对测试的了解,就是对这三个不同角度看问题的了解;
你所列举的太狭隘,或者说离一个合格的高级测试人员差距还很大!
andy 2007-1-26 10:06
非常欣赏这位兄弟补充的宝贵意见,说的非常的好,你提到的三点是在测试中必须关注的因素。
但是我的主题列出的我认为软件测试工程师希望能够掌握的知识面。sdlkfj3
good_doom 2007-1-26 10:36
呵呵,我在找一个资料,无意走到这个论坛的。
不好意思, 恕我直接,如果一个软件测试工程师希望能够掌握的知识面 只有你列举的那些,显然你离一个合格测试还有一段距离 或者说 你不知道如何去提高测试的水平。
同时我发现楼主列举的知识中,很多知识过多的依赖于工具,说实话,我还没有见过用用楼主列的自动化工具”QTP,WinRunner,SilkTest,RFT“ 实施自动化成规模(至少几千个case)、长期维护且有效的自动化测试体系
所有测试最核心的思想是逻辑和模式,个人觉得啊。。。
测试里的理论知识表面上大家都知道,实际上真正能说清楚其含义的又有几个,比如楼主解释一下 模块测试和系统测试的区别 和 实际工作中如何去体现这种区别。 再比如, 等价类划分 如何从软件的功能中去找到有效的等价类
概念是一回事, 理解是一回事, 实施又是一回事, 不要把你们知道的理论认为是你们掌握的知识。
最后要说, 如果你是一个合格的测试, 那我问你一个问题:
一个开发经验很深的rd如果去做测试肯定比相同测试经验的tester要更有效, 你怎么看呢?
andy 2007-1-26 12:04
关于楼上提到的问题,我把我自己的见解表达一下。因为有些问题是因人而异,没有一个标准,呵呵。
当然做任何事情都有一定的模式,也同样离不开相应的理论知识和做事的方法论。
当然,我很赞成你所说的 “[color=Red]概念是一回事, 理解是一回事, 实施又是一回事。[/color]”
模块测试和系统测试在测试类型划分方面应该不属于同一个范畴,我的理解你指的“模块”是不是提交整个被测系统中某一个功能模块,因为你是把“模块测试”和“系统测试”放在一起的。
我在进行“模块测试”时,我会把一个完整的系统拆分成相对功能独立的模块进行测试。当然在“系统”成面上应该属于系统测试。在我待会的公司中,系统测试也会分阶段进行,不同阶段对系统测试又有不同的做法,应该有一个自小变大的过程。
关于有效等价类的划分,我通常认为按照不同的角度进行划分。
就好像我们小学时做的那些把苹果香蕉梨菠萝铅笔橡皮进行分类差不多。就是物以类聚,人以群分。从不同的角度分类。例如班上50个同学,你从性别分男女两类、从籍贯分上海人、北京人、等等集合,从爱好分可以分爱好体育的、爱好音乐的、爱好舞蹈的等集合,当然还可以从其他角度划分。
不同角度划分也可以粗和细,例如上面说的从生源来分,要想分得粗,可以分黄河以北的北方生源和黄河以南的南方生源,那么50个人分别归到这两类里,每类出特例来作代表来测试;如果要分得细,就可以像上面说的分上海、北京、天津等集合,每类再出特例来测试,这样当然要比前面只分两类测得更细致,但时间成本肯定上去了。 设计者要把握划分集合中的代表来设计,这样能保证成本,效率的最小化。
另外关于资深开发人员做测试的帖在论坛里已经屡见不鲜了,[color=Red][size=2]大家也可以多参与这样的讨论[/size][/color]。
[[i] 本帖最后由 andy 于 2007-1-26 12:06 编辑 [/i]]
hwrong 2007-1-26 14:01
andy提供的资料下载看看!
ttyttt 2007-1-26 20:00
个人觉得,编程,数据库,网络,以及测试工具,理论等方面,应该说测试的学习范围是比较广的
arik 2007-1-27 21:41
看见大家都说了,我也说几句吧,说的要是不对,大家可以对我进行批评或给我点建议也行不要光骂不给建议啊:呵呵
1:首先我对提帖子的斑竹说的漏了一些方面,上面可以说只是纯技术上的一部分
做测试要学的东西往往要比开发和其他人多(首先要说做好测试的人来说),你要是技术上去了,但是处事和做人态度不行,那也是不行的,这个也是一个知识吧???呵呵
2:在项目中如果你的测试技术很好,但是你和其他同事还有项目主管,开发同事测试同事关系没有测试好,工作往往很难开展(小弟的个人的观点吧).这个也可以算是一个知识吧,这个是纯技术学不到的
3:小弟目前编码技术了点,但和开发人员配合的很好,工作进展顺利,但是和测试同时在协同工作的时候就存在问题,本人认为对圆满完成测试任务肯定会存在问题.
测试=技术(纯测试;编码)+能力(协作能力和为人处事)+耐力
说的不对大家给我补充点或给我纠正下.谢谢
非常感谢!
arik 2007-1-27 21:44
纠正下,2:测试好=处理好3:小弟目前编码能力差了点,少了个差字
不好意思;丢人了sdlkfj5
rickyqiu 2007-1-28 14:38
这个话题真是历久弥新啊,呵呵,在QAForums上也看到类似的帖子,几位大老也给出了很好的概括。
关于这个问题,我想有两个问题要考虑一下:
1. 不同类型的项目或者产品其实对测试人员的具体技能要求可能差别很大。比如企业应用开发的人为什么需要了解嵌入式测试,而作嵌入式相关的人可能不需要去了解mail server,DNS,LDAP, NTP之类的东东。 还是要针对具体的情况,当然相比现有工作要有点前瞻性,书到用时方恨少嘛
2. 每个人可能还是要有所focus,技不压身说起来容易,不过真正要学的话那么多是学不完的,况且现在做产品或者项目都是team work, 做automation和performance的也是一部分人。 无他,唯吾生有涯而知无涯。 例如性能测试,scott barber认为一个测试人员要比较精通的话可能要5年以上的经验。想起星爷那句台词,什么绝世武功动不动就要练几十年。
测试是一个非常广泛的领域,用到的技术也特别多,一些基本的,比如OS,网络或者DB,是需要不断加深和巩固的,还有一些是要不断变化和在工作中学习的。
rickyqiu 2007-1-28 15:04
再灌一点,呵呵
觉得arik说得挺有道理的,也有些同感。
和前面good_doom提到的那个问题也有点关系。不知道大家怎么看,我不认为资深的RD就肯定可以做好QA,理由如下:
1. 一个资深的QA不只是设计执行case找bug。 对于整个软件的开发过程,QA其实是主导的,可能在我们这边是这样。做了一两个项目之后,QA对每个阶段的意义和要做的事情非常清楚。 比如pre-alpha期间的design review和test plan,early evaluation; alpha和beta期间的function 测试,doc review, sys test, beta的准备和training,认证和一些外部兼容性问题。每一个milestone的entry/exit cretiria,status review等等。 总的来说就是整个dev lifecyle中的每个stage我们要做些什么,达到怎样的quality,怎么去评估和预防risk。 关于这方面的书也不少,比如Rex Black的Critical Testing Processes。
2. 测试有些和开发不同的技术。 比如automation/performance/coverage相关的技术和工具。有些可能要自己开发,我想说的是这一部分也是需要积累的.比如做performance,你可能需要知道这方面的技术要点,怎么去获取想要的数据,现有哪些商业/开源的工具,他们的优点和局限,那些适合我们的产品? 如果能对某个领域的测试方法有一点广度和深度的把握其实是很不容易的。
3. 沟通。相比RD,QA这方面的要求和机会也多很多,你可能需要和RD, 项目经理,产品经理,公用模块部门,beta team, UI team, tech writer,localization team,还可能会有real customer交流。
其实还有很多的方面,就不罗嗦了。 :)
紫贝壳月儿 2007-1-28 17:31
可以问大家一个问题吗
紫贝壳月儿 2007-1-28 17:33
我是计算机专业的,但是是第一次了解测试着方面的知识,我想知道,要应聘黑盒测试我需要掌握哪些知识呢,我该怎么复习呢.希望大家能给点建议吗
sunxy5291 2007-1-29 14:39
楼上的
请与我联系!
arik 2007-1-29 15:09
说了那么多,关键还是理论联系实际才是王道啊,呵呵~~~
就向前天看了一个朋友的译本,代码大全,听说写的不错,我也就翻了几页没怎么看,朋友就说你要是做段时间开发了在去看意义更大,对你帮助也更大,我觉的确实是这样的
所以除了技术上要有实力,沟通和领导能力也要更上,不然说话都没人听你的,哈哈~~~
自己忙半死,下面的都不干活或者干的或一点质量都没有,那就完拉...
linn 2007-1-29 18:17
我发现这里的太阳好容易得到哦
linn 2007-1-29 18:18
是按什么算的,在线时间?还是得分?
wsdhf111 2007-1-29 19:37
初来乍到,请多关照
各位测试朋友大家好!
我初来乍到,以后请多多指教,我们多多交流,共同进步!
sunxy5291 2007-1-30 17:15
按积分算得吧
Liberty 2007-1-31 11:10
多学,多看,多提高
Sayid 2007-2-1 00:20
1.CMMI企业质量过程改进
3.软件工程学
4.软件系统测试流程(需求评审,需求分析,测试用例设计)
5.同行评审,需求跟踪,缺陷跟踪,配置管理
6.自动化测试(QTP,WinRunner,SilkTest,RFT)
7.性能测试(LoadRunner,SilkPerformer,RPT,JMeter)
9.单元测试(软件详细设计评审,CppUnit,Junit,TCL)
flrain 2007-2-1 10:47
谢谢7楼。我先看看
我爱测试 2007-2-1 16:38
1.CMMI企业质量过程改进
2.UML可视化建模
3.软件工程学
6.自动化测试(QTP,WinRunner,SilkTest,RFT)
7.性能测试(LoadRunner,SilkPerformer,RPT,JMeter)
9.单元测试(软件详细设计评审,CppUnit,Junit,TCL)
bzcy 2007-2-1 19:11
纯粹的做软件测试我认为楼主提到的都可以去学习下,侧重点则看你在公司里具体做什么以及你自己的职业规划,以后打算做什么.
大学里学的是软件工程,对我自己来言我曾经有下面的学习计划
一:软件测试相关
1.软件测试基本知识(基本理论,用例设计,文档书写,等等)
2.Loadrunner
3.TSL
4.其他
二:扩展学习
1.编程(Java,J2EE,J2ME)
2.Linux(ubuntu)
3.数据库(MS SQLServer)
4.其他
我认为做软件测试只知道软件测试,会用几个工具是不够的,要学习的知识在广度上的要求比较高
但在公司混一段时间后发现能让自己去学习的时间太少了,哎,每天还要上论坛灌水~呵呵
希望大家都有明确的人生规划吧,工作不仅仅是为了挣钱,也是提高自己的途径。
andy 2007-2-2 17:02
恩,看了大家的回帖,看了大家对我列出来的知识做出很多非常不错的补充,顿时觉得做测试还是有非常多的东西需要去学习,所以大家千万不要认为做测试是因为开发做不了才来做测试的.
当然我个人同意楼主的看法,正确的职业规划,明确的发展方向,对每个人的今后发展都是很有帮助的.
wghtree78 2007-2-2 17:11
看到楼上的所有帖子,觉得自己现在好像井底之蛙,幸好现在学习还来得及。
另外我觉得除了软件技能+交际能力不断提高外,还要注意所在行业的专业知识学习和更新。sdlkfj5
qinqin 2007-2-2 17:49
来公司快三年啦,岗位是软件测试,其实一直打杂中,测试时间只有少部分时间,其它时间维护网站、制作宣传资料,售后客户培训。测试也只是手工测试,没任何测试计划报告之类,其实个人一直对测试有着浓厚的兴趣,现在公司没有一个专业的测试人员,我的编程方面不是底子比较差,每次学的时候,半路就停下来,有点力不从心,学好测试是不是要一个好的测试工作环境,如专业的自动测试团队。目前我还只会一些TD,也没真正的应用过,真的很想好学自动化测试工具,不知如何是好?现正在迷雾之中……哎我是否适合做测试工作……