软件开发中出现错误或缺陷的机会越来越多,市场对软件质量重要性的认识逐渐增强。所以,软件测试在软件项目实施过程中的重要性日益突出。但是,现实情况是,与软件编程比较,软件测试的地位和作用,还没有真正受到重视,对于很多人(甚至是软件项目组的技术人员)还存在对软件测试的认识误区,这进一步影响了软件测试活动开展和真正提高软件测试质量。
(1)误区之一:软件开发完成后进行软件测试
人们一般认为,软件项目要经过以下几个阶段:需求分析,概要设计,详细设计,软件编码,软件测试,软件发布。据此,认为软件测试只是软件编码后的一个过程。这是不了解软件测试周期的错误认识。软件测试是一个系列过程活动,包括软件测试需求分析,测试计划设计,测试用例设计,执行测试。因此,软件测试贯穿于软件项目的整个生命过程。在软件项目的每一个阶段都要进行不同目的和内容的测试活动,以保证各个阶段的正确性。软件测试的对象不仅仅是软件代码,还包括软件需求文档和设计文档。软件开发与软件测试应该是交互进行的,例如,单元编码需要单元测试,模块组合阶段需要集成测试。如果等到软件编码结束后才进行测试,那么,测试的时间将会很短,测试的覆盖面将很不全面,测试的效果也将大打折扣。更严重的是如果此时发现了软件需求阶段或概要设计阶段的错误,如果要修复该类错误,将会耗费大量的时间和人力。
(2)误区之二:软件发布后如果发现质量问题,那是软件测试人员的错
这种认识很打击软件测试人员的积极性。软件中的错误可能来自软件项目中的各个过程,软件测试只能确认软件存在错误,不能保证软件没有错误,因为从根本上讲,软件测试不可能发现全部的错误。从软件开发的角度看,软件的高质量不是软件测试人员测出来的,是靠软件生命周期的各个过程中设计出来的。出现软件错误,不能简单地归结为某一个人的责任,有些错误的产生可能不是技术原因,可能来自于混乱的项目管理。应该分析软件项目的各个过程,从过程改进方面寻找产生错误的原因和改进的措施。
(3)误区之三:软件测试要求不高,随便找个人做都行.,,,....
很多人都认为软件测试就是安装和运行程序,点点鼠标,按按键盘的工作。这是由于不了解软件测试的具体技术和方法造成的。随之软件工程学的发展和软件项目管理经验的提高,软件测试已经形成了一个独立的技术学科,演变成一个具有巨大市场需求的行业。软件测试技术不断更新和完善,新工具,新流程,新测试设计方法都在不断更新,需要掌握和学习很多测试知识。所以,具有编程经验的程序员不一定是一名优秀的测试工程师。软件测试包括测试技术和管理两个方面,完全掌握这两个方面的内容,需要很多测试实践经验和不断学习精神。
(4)误区之四:软件测试是测试人员的事情,与程序员无关
开发和测试是相辅相成的过程,需要软件测试人员、程序员和系统分析师等保持密切的联系,需要更多的交流和协调,以便提高测试效率。另外,对于单元测试主要应该由程序员完成,必要时测试人员可以帮助设计测试样例。对于测试中发现的软件错误,很多需要程序员通过修改编码才能修复。程序员可以通过有目的的分析软件错误的类型、数量,找出产生错误的位置和原因,以便在今后的编程中避免同样的错误,积累编程经验,提高编程能力。
(5)误区之五:项目进度吃紧时少做些测试,时间富裕时多做测试
这是不重视软件测试的表现,也是软件项目过程管理混乱的表现,必然会降低软件测试的质量。一个软件项目的顺利实现需要有合理的项目进度计划,其中包括合理的测试计划,对项目实施过程中的任何问题,都要有风险分析和相应的对策,不要因为开发进度的延期而简单的缩短测试时间、人力和资源。因为缩短测试时间带来的测试不完整,对项目质量的下降引起的潜在风险,往往造成更大的浪费。克服这种现象的最好办法是加强软件过程的计划和控制,包括软件测试计划、测试设计、测试执行、测试度量和测试控制。
(6)误区之六:软件测试是没有前途的工作,只有程序员才是软件高手
由于我国软件整体开发能力比较低,软件过程很不规范,很多软件项目的开发都还停留在“作坊式”和“垒鸡窝”阶段。项目的成功往往靠个别全能程序员决定,他们负责总体设计和程序详细设计,认为软件开发就是编写代码,给人的印象往往是程序员是真正的牛人,具有很高的地位和待遇。因此,在这种环境下,软件测试很不受重视,软件测试人员的地位和待遇自然就很低了,甚至软件测试变得可有可无。随着市场对软件质量的不断提高,软件测试将变得越来越重要,相应的软件测试人员的地位和待遇将会逐渐提高。在软件过程比较规范的大公司,软件测试人员的数量和待遇与程序员没有多大差别,优秀测试人员的待遇甚至比程序员还要高。软件测试将会成为一个具有很大发展前景的行业,软件测试大有前途,市场需要更多具有丰富测试技术和管理经验的测试人员,他们同样是软件专家。 程序测试的过程具有破坏性
人类的活动具有高度的目的性,建立适当的目标具有重要的心理作用。如果我们的目的是要证明程序中没有错误,那我们就会不自觉地朝这个方向去做;也就是说,我们会倾向于挑选那些使程序出错的可能性较小的测试数据。另一方面,如果我们的目标是要证明程序中有错,那就会选择一些易于发现程序所含错误的测试数据。而后一种态度会比前者给程序增添更多的价值。 就业竞争小
人才供不应求让软件测试人员的就业竞争压力明显小于同类其它职业,有利于从业者的身心健康。另外,由于软件测试在我国起步较晚,独立设置测试部门、对测试人员有强烈需求的多为独具慧眼的大中型IT企业。软件测试人才不需要在小企业积累经验就能获得知名企业的入门通行证,工作起点高于同类其它职业。
高薪
刚入行的软件测试人员,起步的月薪就在3000-5000元左右,远高于同龄人2000元的薪资水平,随着工作经验的丰富以及能力的提升,这份薪水将一路看涨。
就业质量高
与其他IT职位相比,软件测试人员最大的优势就是发展方向太多了。由于工作的特殊性,测试人员不但需要对软件的质量进行检测,而且对于软件项目的立项、管理、售前、售后等领域都要涉及。在此过程中,测试人员不仅提升了专业的软件测试技能,还能接触到各行各业,从而为自己的多元化发展奠定了基础。
无性别歧视
如果把软件开发领域比作“男子单打”,那么,软件测试领域就是“混合双打”。由于工作的特殊性,软件测试人员更要具有认真、耐心、细致、敏感等个性元素,而这在一定程度上与女性的个性气质相吻合。据了解,很多IT企业中软件测试人员的比例更趋向男女平衡,甚至出现女性员工成主流的情况。 测试需要覆盖到企业应用程序产品线的所有应用。通常,首先是去【问】“风险最大的应用是哪个?”并且一个个单独查看。但是如果所有的低风险应用程序加起来有无数漏洞,也会造成灾难。”
配对,但是要更为灵活,测试人员需要将代码自动化的任务留给开发人员。这是开发人员得到反馈最为迅速的方式,如果我们让测试人员整天做自动测试,这是浪费时间。相反,应该让测试人员和开发人员配对,并且帮助他们(开发人员)学习如何进行测试。一个优秀的测试人员能给团队带来什么?很多很多。
配对,然后真正的配对,就像mob编程团队一样。在mob编程里,一组有六到八名开发人员,他们集中到一个屋子里,一起狂热地写代码。其实这一理念也可以用在测试上(有人称之为mob测试),或者作为将测试人员和开发人员集中到同一个房间的方式,来一起找到解决问题的方法。
软件发展方向测评
其实我觉得软件测试工程师是个非常有前途的职业.现在软件测试工程师的缺口非常的大.
程序员跟测试员是相互对应的.以前国内认为只要有好的程序员就行了,其实还要有好的测试员.现在国内的软件厂商越来越注重测试员.
软件测试工程师
一提到软件测试工程师,很多人就会想到那些反复使用软件,试图在频繁操作中寻找到错误发生的低层次人员或者软件用户。其实这是一种错误的概念,软件测试早已超越了用户使用来发现Bug的基本测试阶段。
陈宏刚介绍说,微软的软件测试工程师分为三种:测试执行者(Basic Software Tester)、测试工具软件开发工程师(Software Development Engineer in Test)和高级软件测试工程师(Ad_hoc Tester)
测试执行者负责理解产品的功能要求,然后根据测试规范和测试案例对其进行测试,检查软件有没有错误,决定软件是否具有稳定性,属于最低级的执行角色。
测试工具软件开发工程师负责写测试工具代码,并利用测试工具对软件进行测试;或者开发测试工具为软件测试工程师服务。产品开发后的性能测试、提交测试等过程,都有可能要用到开发的测试工具。对技术要求最强的是这些人,因为它们要具备写程序的技术。“因为不同产品的特性不一样,对测试工具要求也是不同的,就像Windows的测试工具不能用于Office,office的也不能用于SQLserver,微软很多测试工程师就是负责专门为某个产品写测试程序的。”
而Ad_hoc Testet属于比较有经验,自己会找方向并做的很好的测试工程师,这要求具有很强的创造性。刚进入微软时,老板也是只给陈宏刚一个操作流程,每天就按照这个规程去做,几天下来,一个Bug都没有发现。陈宏刚也很沮丧,觉得这样挺对不起公司,后来自己问自己:为什么非要这样做!于是换了其他的方法试试,令他吃惊的是,一下就找到很多严重的Bug,当时也不敢声张。有一天,他找到10多个非常严重的Bug,开发经理一下就惊呆了,怒冲冲的跑到陈宏刚面前问:“你是不是改变了测试方式和测试步骤?”陈宏刚有些吓住,说道:“可能改变了一点。”对方说:“我非常生气,但我不是生你的气,而是因为以前测试人员水平太差,或者以前的测试方面有问题,软件中有些Bug存在了半年甚至一年,但直到现在才发现,现在修补这些错误要困难很多!”后来陈宏刚得到了老板的赞许,可以按照自己的想法去做测试。对此,陈宏刚感受颇深:“一方面我体会到了微软非常鼓励创造的文化,同时也感到只遵守教条不是好的测试人员,就和用户一样了。做软件测试工程师同样需要开拓和创造性。”
在开发管理上,测试不应该归属于项目管理,也不应该归属开发人员。这三个部门应该是并驾齐驱,相互协作,测试工程师最终决定产品是否能够发布。
软件测试工程师的素质
因为软件测试仍然处在发展阶段,还没有上升到理论层次。对人员的评测,包括微软在内,都还没有一个统一标准,因此评定软件测试工程师只能根据工作实践进行自然淘汰。
软件测试对逻辑思维、学习能力、反应要求很高,是否有严密的思维和逆向思维也非常重要。陈宏刚介绍说,在五六个人的测试小组时,一半以上的Bug都是他找到的。他认为这同自己数学专业的背景关系密切,数学中有逻辑思维的培训,要善于找出来各方面的因素。比如要证明一个定理,各个方面都考虑到,一个条件不满足就无法证明;但如果证明其不成立,最常用的就是找到一个反例,只要有一点证明不成立就可以了,软件测试也是找这一点。
做测试还要考虑到所有出错的可能性,还要做一些不是按常规做的、非常奇怪的事。除了漏洞检测,测试还应该考虑性能问题,也就是要保证软件运行得很好,没有内存泄漏,不会出现运行越来越慢的情况;在不同的使用环境下,考虑软件的兼容性同样重要。软件测试同产品的规模也有很大的关系,因为软件的bug往往出在大型软件的连接处。
做软件测试工程师需要对软件抱有怀疑态度。这是因为开发人员喜欢想当然,总是找一些有利于自己程序执行的数据,有些开发人员甚至认为不利于程序执行的数据是对代码的玷污和亵渎。而软件测试却要策略性的准备各种数据,从每个细节上设计不同的应用场景,不去想当然的假定任何一个数据是可行的。
在职业素质和交际方面方面,并不是测试工程师爱挑别人毛病才好,反而这个工作要求很强的沟通能力。经常的和开发人员进行沟通,说话办事要很得当,不能指责别人,否则会事倍功半。性格随和才能和开发人员顺畅的沟通,对人和对事是完全不同的两个问题。
如何培养优秀的软件测试工程师
朗川软件测试工程师张建阳从北大力学系毕业之后,曾开发流体力学分析软件,软件缺少测试而产生的问题给她留下了很深的印象。后来去大唐电信做UIM(统一消息管理系统),她发现尽管公司为了鼓励员工找bug采取了很多奖励方法,但还是很少人愿意去做系统测试。而张建阳却从那时查阅翻译了很多国内外的资料,对软件测试产生了浓厚的兴趣。
像张建阳这样在工作中自己定位在软件测试领域的开发人员并不多见,因为程序员更愿意去做开发而不是测试,从大环境上,测试人员收入水平低也是原因之一。而在微软,测试人员和开发人员的工资水平是相同的。
如何改变这种现状呢?有人说可以可以派人去先进的国外软件企业学习,但这种方式因为牵涉到商业秘密,可操作性不大。陈宏刚博士认为更好的方法是引进人才,把在国外大型软件公司工作过、有经验的人才引进来,甚至要高薪聘请。他表示,这不仅仅是一个人的问题,关键是能够把整个软件测试的水准提高一个层次。
引进人才只是开始,更重要的是培养一批软件测试人才。软件开发的教育培训都是比较正规的,各个学校也都设有专业,但软件测试还没有正规的专业毕业生,而且没有评判的标准。陈宏刚博士给很多软件学院建议,开设四方面的软件测试专业基础课:软件测试基础、软件测试开发、高级软件测试案例和行业软件特色测试方法。国内现在已经有了一些软件测试基础的教材,但其他的教材还没有。高级软件测试案例主要是大型软件测试案例,大型软件出现的问题具有很强的代表性。而行业特色软件测试的课程可以开阔学生的视野。陈博士介绍说,在国外,也是极少的高等院校开设测试专业,但可以借鉴民间的培训机构课程。在有一批专业的测试人才出现之后,人们会认识到他们的重要性。
如果你已经开始从事软件测试工作,千万不要认为软件测试没有什么发展的潜力和前途。刘忠从1995年接下IBM的OS2汉化版本的测试开始到现在,他一直工作在软件测试领域,并升到了公司高级副总裁的位置。和腾软件也培养了一批测试工程师,它们从对测试职业将信将疑到明确自己的测试方面的职业目标。刘忠介绍说:“很多人开始做测试执行工作时会说很麻烦、很枯燥,只是一味的埋怨,而不是主动的去学习,他没有看到软件测试背后所隐藏的知识。因为学习可以做这些工作,不学习也可以做这些工作,但质量是不同的。有些人自学和请教了很多测试技术和管理方面的知识,公司自然就会在下个项目中去培养他。”
因此对于一个新手,要在各方面培养自己的能力。首先是要理解各种测试流程,并在理解的基础上转化为自己的知识,以后遇到相似的问题能自己去解决。在测试技能上,要知道测试有那些手段,比如压力测试有哪些方法,哪些工具可以辅助做测试。从专业技能上,面向不同的技术方向,像操作系统、网络、通信等都要从专业上深入了解。这三方面要同步去成长。
软件测试工程师未来的发展
从事软件测试有没有前途,未来的职业发展方向怎样呢?
陈宏刚博士表示,软件测试工程师在微软的发展有几种途径:一种走技术路线,成长为高级软件测试工程师,这时他能够独立测试很多软件,再向上可以成为软件测试架构设计师。第二种就是向管理方向发展,从测试工程师到组长(Lead),再到项目经理(Manager),到更高的职位。第三种可以换职业,做项目管理,做开发人员都可以,很多测试工具软件开发工程师在写测试软件的过程中,因为开发方面积累了经验,同时对软件产品本身产生了自己的看法,很容易转去做产品编程。
陈宏刚博士现在还带着一个测试小组,两个清华软件学院的学生,一个南开的专门做软件测试的博士生,一个北邮的学生,他们负责总部一个产品的测试。陈博士表示,在自己简单的讲讲思路,共同探讨之后,他们一星期就找出了70多个Bug,也感觉学了很多知识,并表示以后专注于软件测试专业,因为他们感觉软件测试真的是一门很深的学科,有很多可以研究的课题。其实微软的测试人员很多也都是硕士、博士,他们同样在做创造性的工作,保证着程序质量,推动着软件的进步。
软件测试是正在快速发展,充满挑战的领域。尽管现在单机版桌面软件的测试已经成熟了很多,但对于网络时代的到临,包括微软在内的公司对基于网络的测试也没有一套完整的体系,也是处于探索中,网络中被攻击的可能性太大,这就是为什么黑客在网络上能兴风作浪的原因。网络测试是一个新环境,而且是很大的挑战。
软件测试未来的发展空间很大,软件测试工程师的职业之路同样充满希望
软件测试的方法一共有几种
1、从是否关心内部结构来看
(1)白盒测试:又称为结构测试或逻辑驱动测试,是一种按照程序内部逻辑结构和编码结构,设计测试数据并完成测试的一种测试方法。
(2)黑盒测试:又称为数据驱动测试,把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。
(3)灰盒测试:是一种综合测试法,它将“黑盒”测试与“白盒”测试结合在一起,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的测试技术。
2、从是否执行代码看
(1)静态测试:指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
(2)动态测试:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。
3、从开发过程级别看
(1)单元测试:又称模块测试,是针对软件设计的最小单位----程序模块或功能模块,进行正确性检验的测试工作。其目的在于检验程序各模块是否存在各种差错,是否能正确地实现了其功能,满足其性能和接口要求。
(2)集成测试:又叫组装测试或联合,是单元测试的多级扩展,是在单元测试的基础上进行的一种有序测试。旨在检验软件单元之间的接口关系,以期望通过测试发现各软件单元接口之间存在的问题,最终把经过测试的单元组成符合设计要求的软件。
(3)系统测试:是为判断系统是否符合要求而对集成的软、硬件系统进行的测试活动、它是将已经集成好的软件系统,作为基于整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、人员、数据等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。
在系统测试中,对于具体的测试类型有:
(1)功能测试:对软件需求规格说明书中的功能需求逐项进行的测试,以验证功能是否满足要求。
(2)性能测试:对软件需求规格说明书的功能需求逐项进行的测试,以验证功能是否满足要求。
(3)接口测试:对软件需求规格说明中的接口需求逐项进行的测试。
(4)人机交互界面测试:对所有人机交互界面提供的操作和显示界面进行的测试,以检验是否满足用户的需求。
(5)强度测试:强制软件运行在异常乃至发生故障的情况下(设计的极限状态到超出极限),验证软件可以运行到何种程序的测试。
(6)余量测试:对软件是否达到规格说明中要求的余量的测试。
(7)安全性测试:检验软件中已存在的安全性、安全保密性措施是否有效的测试,
(8)可靠性测试:在真实的或仿真的环境中,为做出软件可靠性估计而对软件进行的功能(其输入覆盖和环境覆盖一般大于普通的功能测试)
(9)恢复性测试:对有恢复或重置功能的软件的每一类导致恢复或重置的情况,逐一进行的测试。
(10)边界测试:对软件处在边界或端点情况下运行状态的测试。
(11)数据处理测试:对完成专门数据处理功能所进行的测试。
(12)安装性测试:对安装过程是否符合安装规程的测试,以发现安装过程中的错误。
(13)容量测试:检验软件的能力最高能达到什么程度的测试。
(14)互操作性测试:为验证不同软件之间的互操作能力而进行的测试。
(15)敏感性测试:为发现在有效输入类中可能引起某种不稳定性或不正常处理的某些数据的组合而进行的测试。
(16)标准符合性测试:验证软件与相关国家标准或规范(如军用标准、国家标准、行业标准及国际标准)一致性的测试。
(17)兼容性测试:验证软件在规定条件下与若干个实体共同使用或实现数据格式转换时能满足有关要求能力的测试。
(18)中文本地化测试:验证软件在不降低原有能力的条件下,处理中文能力的测试。
4、从执行过程是否需要人工干预来看
(1)手工测试:就是测试人员按照事先为覆盖被测软件需求而编写的测试用例,根据测试大纲中所描述的测试步骤和方法,手工地一个一个地输 入执行,包括与被测软件进行交互(如输入测试数据、记录测试结果等),然后观察测试结果,看被测程序是否存在问题,或在执行过程中是否会有一场发生,属于比较原始但是必须执行的一个步骤。
(2)自动化测试:实际上是将大量的重复性的测试工作交给计算机去完成,通常是使用自动化测试工具来模拟手动测试步骤,执行用某种程序设计语言编写的过程(全自动测试就是指在自动测试过程中,不需要人工干预,由程序自动完成测试的全过程;半自动测试就是指在自动测试过程中,需要手动输入测试用例或选择测试路径,再由自动测试程序按照人工指定的要求完成自动测试)
5、从测试实施组织看
(1)开发测试:开发人员进行的测试
(2)用户测试:用户方进行的测试
(3)第三方测试:有别于开发人员或用户进行的测试,由专业的第三方承担的测试,目的是为了保证测试工作的客观性
6、从测试所处的环境看
(1)阿尔法测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试
(2)贝塔测试:是用户公司组织各方面的典型终端用户在日常工作中实际使用贝塔版本,并要求用户报告
扩展资料
软件测试的内容:
1 得到需求、功能设计、内部设计说书和其他必要的文档
2 得到预算和进度要求
3 确定与项目有关的人员和他们的责任、对报告的要求、所需的标准和过程 ( 例如发行过程、变更过程、等等 )
4 确定应用软件的高风险范围,建立优先级、确定测试所涉及的范围和限制
5 确定测试的步骤和方法 ── 部件、集成、功能、系统、负载、可用性等各种测试
6 确定对测试环境的要求 ( 硬件、软件、通信等 )
7 确定所需的测试用具 (testware) ,包括记录 / 回放工具、覆盖分析、测试跟踪、问题 / 错误跟踪、等等
8 确定对测试的输入数据的要求
9 分配任务和任务负责人,以及所需的劳动力
10 设立大致的时间表、期限、和里程碑
11 确定输入环境的类别、边界值分析、错误类别
12 准备测试计划文件和对计划进行必要的回顾
13 准备白盒测试案例
14 对测试案例进行必要的回顾 / 调查 / 计划
15 准备测试环境和测试用具,得到必需的用户手册 / 参考文件 / 结构指南 / 安装指南,建立测试跟踪过程,建立日志和档案、建立或得到测试输入数据
16 得到并安装软件版本
17 进行测试
18 评估和报告结果
19 跟踪问题 / 错误,并解决它
20 如果有必要,重新进行测试
21 在整个生命周期里维护和修改测试计划、测试案例、测试环境、和测试用具
参考资料:百度百科-软件测试
如何评测一个软件系统到底有多安全
信息系统安全等级保护测评准备活动的工作流程: 信息系统安全等级保护测评准备活动的目标是顺利启动测评项目,准备测评所需的相关资料,为顺利编制测评方案打下良好的基础。 信息系统安全等级保护测评准备活动包括项目启动、信息收集和分析、工具和表单准备三项主要任务。这三项任务的基本工作流程见下图: 一、项目启动 在项目启动任务中,测评机构组建等级测评项目组,获取测评委托单位及被测系统的基本情况,从基本资料、人员、计划安排等方面为整个等级测评项目的实施做基本准备。 输入:委托测评协议书。 任务描述: a) 根据测评双方签订的委托测评协议书和系统规模,测评机构组建测评项目组,从人员方面做好准备,并编制项目计划书。项目计划书应包含项目概述、工作依据、技术思路、工作内容和项目组织等。 b) 测评机构要求测评委托单位提供基本资料,包括:被测系统总体描述文件,详细描述文件,安全保护等级定级报告,系统验收报告,安全需求分析报告,安全总体方案,自查或上次等级测评报告(如果有),测评委托单位的信息化建设状况与发展以及联络方式等。 输出/产品:项目计划书。 二、 信息收集和分析 测评机构通过查阅被测系统已有资料或使用调查表格的方式,了解整个系统的构成和保护情况,为编写测评方案和开展现场测评工作奠定基础。 输入:调查表格,被测系统总体描述文件,详细描述文件,安全保护等级定级报告,系统验收报告,安全需求分析报告,安全总体方案,自查或上次等级测评报告(如果有)。 任务描述: a) 测评机构收集等级测评需要的各种资料,包括测评委托单位的各种方针文件、规章制度及相关过程管理记录、被测系统总体描述文件、详细描述文件、安全保护等级定级报告、安全需求分析报告、安全总体方案、安全现状评价报告、安全详细设计方案、用户指南、运行步骤、网络图表、配置管理文档等。 b) 测评机构将调查表格提交给测评委托单位,督促被测系统相关人员准确填写调查表格。 c) 测评机构收回填写完成的调查表格,并分析调查结果,了解和熟悉被测系统的实际情况。分析的内容包括被测系统的基本信息、物理位置、行业特征、管理框架、管理策略、网络及设备部署、软硬件重要性及部署情况、范围及边界、业务种类及重要性、业务流程、业务数据及重要性、业务安全保护等级、用户范围、用户类型、被测系统所处的运行环境及面临的威胁等。这些信息可以重用自查或上次等级测评报告中的可信结果。 d) 如果调查表格填写不准确或不完善或存在相互矛盾的地方较多,测评机构应安排现场调查,与被测系统相关人员进行面对面的沟通和了解。 输出/产品:填好的调查表格。 三、工具和表单准备 测评项目组成员在进行现场测评之前,应熟悉与被测系统相关的各种组件、调试测评工具、准备各种表单等。 输入:各种与被测系统相关的技术资料。 任务描述: a) 测评人员调试本次测评过程中将用到的测评工具,包括漏洞扫描工具、渗透性测试工具、性能测试工具和协议分析工具等。 b) 测评人员模拟被测系统搭建测评环境。 c) 准备和打印表单,主要包括:现场测评授权书、文档交接单、会议记录表单、会议签到表单等。 输出/产品:选用的测评工具清单,打印的各类表单。
对互联网行业感兴趣,大家都说软件开发发展前景比软件测试好,是真的嘛?
软件开发的前景确实还不错的,
软件开发的毕业生,起点都很高,入职既可做数据库工程师、软件安全工程师、软件管理员,随着经验的积累可以做高级网路工程师、项目主管、项目经理,如果你有魄力的话,还可以自己创业。
目前,我国对软件人才的需求已达80万,在未来5年内,合格软件人才的需求将远大于供给。因此,学软件开发,就业成香饽饽。
我是应届生,我想知道做软件测试需要哪些知识?具体点!十分感谢~
做软件测试 需要有耐心,我现在做的就是软件测试,你要了解软件测试的基本概念,白盒测试,黑盒测试,性能测试,压力测试,数据库测试等等,还有文档测试。跟软件开发相关的,几乎都要测试一下。还有,要了解现在的测试工具,性能测试用什么工具呀什么的,这就叫自动化测试。
楼主买本书先看看 了解了基本概念实践起来了就差不多懂了
我测试基本没怎么接触过,只学了C,数据库等的知识,现在想找这方面的工作,我要准备些什么啊?还有如果看书能推荐下吗?
嗯 推荐一本软考的软件评测师 看完那本书对测试会有一个完全的了解 很详细 我考软考的时候把那本书看完了 也跟你一样 以前没接触过测试 多看些书 把理论都有了解了 再去在工作中实践
考软件测评师要怎么准备呢
1.考试要求
(1)熟悉计算机基础知识;
(2)熟悉操作系统、数据库、中间件、程序设计语言基础知识;
(3)熟悉计算机网络基础知识;
(4)熟悉软件工程知识,理解软件开发方法及过程;
(5)熟悉软件质量及软件质量管理基础知识;
(6)熟悉软件测试标准;
(7)掌握软件测试技术及方法;
(8)掌握软件测试项目管理知识;
(9)掌握C语言及C++或Java语言程序设计技术;
(10)了解信息化及信息安全基础知识;
(11)熟悉知识产权相关法律、法规;
(12)正确阅读并理解相关领域的英文资料。
2.通过本考试的合格人员能在掌握软件工程与软件测试知识基础上,运用软件测试管理办法、软件测试策略、软件测试技术,独立承担软件测试项目;具有工程师的实际工作能力和业务水平。
3.本考试设置的科目包括:
(1)软件工程与软件测试基础知识,考试时间为150分钟,笔试,选择题;
(2)软件测试应用技术,考试时间为150分钟,笔试,问答题。
二、考试范围
考试科目1:软件工程与软件测试基础知识
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.软件评测师职业素质要求
??软件评测师职业特点与岗位职责
??软件评测师行为准则与职业道德要求
??软件评测师的能力要求
7.软件评测知识
7.1 软件测试基本概念
??软件质量与软件测试
??软件测试定义
??软件测试目的
??软件测试原则
??软件测试对象
7.2 软件测试过程模型
??V模型
??W模型
??H模型
??测试模型的使用
7.3 软件测试类型
??单元测试、集成测试、系统测试
??确认测试、验收测试
??开发方测试、用户测试、第三方测试
??动态测试、静态测试
??白盒测试、黑盒测试、灰盒测试
7.4 软件问题分类
??软件错误
??软件缺陷
??软件故障
??软件失效
7.5 测试标准
软件工程 产品质量 第1部分:质量模型
7.5.2 GB/T 18905.1 – 2002 软件工程 产品评价 第1部分:概述
7.5.3 GB/T 18905.5 – 2002 软件工程 产品评价 第5部分:评价者用的过程
8.软件评测现状与发展
??国内外现状
??软件评测发展趋势
9.专业英语
??正确阅读并理解相关领域的英文资料
考试科目2:软件测试应用技术
1. 软件生命周期测试策略
1.1 设计阶段的评审
??需求评审
??设计评审
??测试计划与设计
1.2 开发与运行阶段的测试
??单元测试
??集成测试
??系统(确认)测试
??验收测试
2. 测试用例设计方法
2.1 白盒测试设计
??白盒测试基本技术
??白盒测试方法
2.2 黑盒测试用例设计
??测试用例设计方法
??测试用例的编写
2.3 面向对象测试用例设计
2.4 测试方法选择的策略
??黑盒测试方法选择策略
??白盒测试方法选择策略
??面向对象软件的测试策略
3. 软件测试技术与应用
3.1 软件自动化测试
??软件自动化测试基本概念
??选择自动化测试工具
??功能自动化测试
??负载压力自动化测试
3.2 面向对象软件的测试
??面向对象测试模型
??面向对象分析的测试
??面向对象设计的测试
??面向对象编程的测试
??面向对象的单元测试
??面向对象的集成测试
??面向对象的系统测试
3.3 负载压力测试
??负载压力测试基本概念
??负载压力测试解决方案
??负载压力测试指标分析
??负载压力测试实施
3.4 Web应用测试
??Web应用的测试策略
??Web应用设计测试
??Web应用开发测试
??Web应用运行测试
3.5 网络测试
??网络系统全生命周期测试策略
??网络仿真技术
??网络性能测试
??网络应用测试
3.6 安全测试
??测试内容
??测试策略
??测试方法
3.7 兼容性测试
??硬件兼容性测试
??软件兼容性测试
??数据兼容性测试
??新旧系统数据迁移测试
??平台软件测试
3.8 易用性测试
??功能易用性测试
??用户界面测试
3.9 文档测试
??文档测试的范围
??用户文档的内容
??用户文档测试的要点
??用户手册的测试
??在线帮助的测试
4. 测试项目管理
??测试过程的特性与要求
??软件测试与配置管理
??测试的组织与人员
??测试文档
??软件测试风险分析
??软件测试的成本管理
转载请注明出处51数据库 » 软件测评现状 软件测试的现状前景