第一篇:新手软件测试基础知识学习必知
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部分:评价者用的过程
第二篇:测试新手应该怎么学习软件测试
测试新手应该怎么学习软件测试
对于测试新手来说,学好测试的理论知识是必须的,因为这些是你测试的基础,千万不要好高骛远,别忘了一句话“磨刀不误砍柴工”。举个例子,如果你没有学习测试理论基础,老板让你做一个测试基线,你知道怎么做吗?就算是你知道基线是什么,那么你会做好一个基线吗?
如果基础没打好,不要急着学习测试工具,因为工具其实是很好学的,无非就是点几个按钮,顶多是写几句脚本,进行一下脚本什么的优化。但是如果不会测试理论基础,你用自动化工具做出来的结果你会分析吗?自动化得出的结果不是最终的测试报告,这些需要测试人员再分析的,最终才能得出结果。再举个例子,你用loadrunner测试出来了一堆数据,你能根据那些数据得出系统瓶颈吗?不能,因为系统瓶颈的种类,分析方法,以及不同的系统要注意的瓶颈点不同,这些如果没有扎实的理论基础是很难分析出来的,因为它要综合各个情况才能得出系统瓶颈的。
还有一点,那就是一定要学习一些其他的东西,因为测试是一个多学科的科学,你必须要懂得,至少了解linux系统,网络技术、一门开发语言、CMM等内容。因为如果这些你不懂,老板让你搭建一个linux的测试环境,你会吗?让你搭建VPN,你会吗?
以上就是我总结的几点内容,这些一定是不全的,后续我会继续补充。但是我也就是想说一句话,学软件测试看似简单,其实做一名合格的软件测试工程师很难。一定要有扎实的基础、敏锐的洞察力以及广泛的知识涵盖面,测试软件对我们来说也是极其重要的。
第三篇:软件测试学习
软件测试学习
1. 什么是软件测试?
答:软件测试是为了发现错误而审查软件文档、检查软件数据和执行程序代码的过程,其目的在于在软件交付使用前充分发现缺陷并协助相关部门定位、解决缺陷,最后交付一个高质量的软件产品给用户。
2.软件测试的分类有哪些?
答:软件测试活动可以分为以下几类:
黑盒测试:
黑盒测试又叫功能测试,数据驱动测试或基于需求规格说明书的功能测试。(主要用于系统测试和确认测试中)
白盒测试
白盒测试又称结构测试、逻辑驱动测试或程序代码内部构成的测试。
灰盒测试
灰盒测试结合黑盒和白盒测试两种方法,一方面考虑程序代码的功能性表现,另一方面,又需要考虑程序代码的内部结构。(主要用于性能测试、自动化功能测试) 静态测试
静态测试就是用眼看,阅读程序代码、文档资料等,与需求规格说明书中的客户需求进行比较,找出程序代码中设计不合理及文档集料有错误的地方
动态测试
动态测试即为实际的执行被测对象的程序代码,输入事先设计好的测试用例,检查程序运行得到的结果与测试用例中设计的预期结果之间是否有差异,判定实际结果与预期结果是否一致,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能状况。
动态测试由四个部分组成:设计测试用例、执行测试用例、分析比较输出结果、输出测试报告。
动态测试有三种方法:黑盒测试、白盒测试、灰盒测试。
手动测试
手动测试大部分的测试就是模拟用户的业务流程,来使用软件产品,从而发现软件产品中的缺陷。手动测试是最传统的测试方法,也是现在大多数公司都是用的测试形式。他是测试人员设计测试用例并执行测试用例,然后根据实际结果去和预期的结果相比较并记录测试结果,最终输出测试报告的测试活动。
优点:可以充分发挥测试工程师的主观能动性,将其智力活动体现于测试活动中,能发现很多的缺陷。
缺点:手动测试有一定的局限性与单调枯燥性。
自动测试
自动测试就是利用一些测试工具,模拟用户的使用流程,让它们自动运行来查找缺陷。也可以编写一些代码,设定特定的测试场景,来自动寻找缺陷
优点:能够很快、很广泛的查找缺陷,同时可以做很多重复性的工作,大大提高了测试的效率和测试的准确性,而且写出的比较好的测试脚本,还可以在软件生命周期的各个阶段重复使用。
3.软件测试的流程:需求测试、单元测试、集成测试、系统测试、性能测试、用户测试、回归测试
需求测试:主要从以下几个方面考虑
①完整性:每一项需求都必须将所要实现的功能描述清楚,从而为开发人员设计和实现这些功能提供所有必要的需求依据。
②正确性:每一项需求都必须准确的陈述其要开发的功能
③一致性:一致性是指与其它软件需求或高层(系统、业务)需求不相矛盾,或者与我们的项目宣传资料一致。
④可行性:每一项需求都必须是在已知系统和环境的权能和限制范围内可以实施的。⑤无二义性:对所有需求的读者都只能有一个明确统一的解释,由于自然语言极易导致二义性,所以尽量把每项需求用简洁明了的用户语言表达出来。
⑥健壮性:需求的说明中是否对可能出现的异常进行了分析,并且对这些异常进行了容错处理。
⑦必要性:“必要性”可以理解为每项需求都是用来授权你编写文档的“根源”。要是每项需求都回溯至某项客户的输入,如需求用例或别的来源。
⑧可测试性:每项需求都能通过设计测试用例或其它验证方法来进行测试。
⑨可修改性:每项需求只应在SRS(软件需求规格说明书)中出现一次。这样更改时易于保持一致性。另外,使用目录表、索引和相互参照列表方法将使软件需求规格说明书更容易修改。
单元测试
单元测试又成为模块测试,是对程序代码中最小的设计模块单元进行测试。(可以发现大约80%的软件缺陷,大多数公司中,由对应的开发工程师负责)单元测试方法:主要采用静态测试和动态测试相结合的办法。
单元测试工具:Juint等。
单元测试优点:在软件生产过程中及时的开展单元测试可以降低编码的错误率,提
高编码质量。
集成测试
集成测试又称为组装测试,就是将软件产品中的各个模块组装起来,检查其接口是否存在问题,以及组装后的整体性能、性能表现。
集成测试方法:一般采用非增式集成方法、增式集成方法(自底向上集成;自顶向下集成;组合方式集成)等策略进行测试,利用以黑盒测试为主,白盒测试为辅的测试方法进行测试。
(集成测试一般由测试工程师但当)
集成测试的目的:主要解决的是各个软件组成单元代码是否符合开发规范、接口是否存在问题、整体功能有无错误、界面是否符合设计规范、性能是否满足用户需求等。
系统测试
系统测试是将通过集成测试的软件部署到某种较为复杂的计算机用户环境(指一般用户的计算机环境)进行测试。
系统测试的目的:通过与系统的需求进行比较,发现软件与系统的定义不符合或与之矛盾的地方。主要考察被测软件的功能和性能表现。
系统测试方法:主要采用黑盒测试方法,进行的是安装卸载测试、兼容性测试、功能确认测试、安全性测试等。
系统测试过程其实也是一种配置检查过程,检查软件在生产过程中是否有遗漏的地方,在此时做到查漏补缺,以确保交付的产品符合用户的质量要求。如果软件可以按照用户合理期望的方式来工作的时候,即可认为通过系统测试。
性能测试
性能测试就是要求被测软件在业务处理速度、处理能力和所耗用的硬件系统资源比率满足用户的需求。
对测试人员的要求:测试人员要掌握编程语言,精通业务流程,拥有深厚的项目经验。所以,想顺利的开展性能测试,需要测试工程师不断的学习,掌握相应的知识。例子:对于某个论坛,我们需要测试论坛支持10000个用户同时使用,并且在这种情况下,打开帖子的速度能否控制在4秒钟以下,论坛服务器的CPU使用率不超过80%,内存的占用率不超过75%等,这些都是典型的性能测试指标。
性能测试优点:一方面可以验证被测软件是否符合用户需求,另一方面,可以得到相关的性能数据,为被测软件的优化提供参考。
性能测试工具:LoadRunner自动化性能测试工具等。
用户测试
用户测试可以称其为用户确认测试。在正式验收前,需要用户对本系统做出一个评价,用户可对交付的系统做测试,并将测试结果反馈回来,进行修改、分析。用户测试在整个软件生产流程中非常重要,这个环节是被测软件首次作为正式系统交由用户使用,用户会根据他们的实际使用情况进行测试、试用,并提出实际使用过程中的问题。
用户测试是软件生产流程中的最后质检关。
回归测试
回归测试就是过一段时间以后再回过头来对以前修复过的Bug重新进行测试,看该Bug是否会重新出现。
回归测试的目的:检查以前的测试用例能否再次通过,是否还有需要补充的用例等。
回归测试工具:QTP等。
第四篇:软件测试之新手总结
软件测试之新手总结
在不断发展,竞争激烈的今天,大家都注重时间和效率,不节约时间,没有效率那企业就濒临崩溃。企业为什么上信息化,信息化是为了什么?我们给企业上CRM、OA等,也不过是为了给他们节省时间,把一些繁重的事情交给计算机处理。计算机不是万能的,它是没有智商,没有思维的,它有的也只是固化在机器本身的一大堆代码,并按照一定的指令去执行,所以我们不能强迫它面面俱到。上企业信息化,可以提高效率,可以加强管理,更多的是体现在节约时间上,但节约出来的时间我们做了什么,这是我们要考虑的问题。
当然,在我们给企业实现信息化,提高工作效率,节省工作时间时,我们不妨为自己盘算一下,我们可以为我们的软件公司实现什么信息化。项目管理我们可以用PROJECT,在测试计划到BUG跟踪我们可以用TD,在版本控制、代码管理、配置管理等我们可以用VSS以及CVS,在自动化测试时我们可以选用WR、LR、RATIONAL等等,当然我们还可以用一些小型的比较实用的工具,比如XENU、WEB VALIDATOR、WAS、OPENSTA、SAINT等等。盲目的推崇工具并不高明,在我们没有完全掌握工具时,我们不要完全去相信工具做出的结论,因为有些会被我们所忽略掉,我们操作的本身不正确不理解不细微可能造成结果的很大差别。工具只能作为验证的一种手段。
代码管理、BUG管理工具,我认为是必须的,也是最简单的。代码管理如VSS,可以方便我们对程序进行牵入牵出,能保证服务器上的程序是最高版本。当然,VSS还可以被我们用到其它方面。BUG管理工具,我们可以通过他们统计工作量,也可以透过他发现工作中的漏洞。一个项目的结束,项目经理学会了管理项目,编码人员学会了编程,测试员得到了什么?他们得到的是很多BUG,挖掘、回顾BUG中的内容就是一种财富,就是我们测试员可以得到的经验,这些完全可以对自己的工作方式、方法进行评价,并可以自己总结出一套测试理论。每个公司都可以在慢慢工作中总结和更新自己公司的BUG管理工具,这也是公司加强管理的一种手段。
如果有了一定的管理工具,在类似项目时,我们就可以参照以前的标准,参照以前的做法,这样我们就轻车熟路了,试问一下:我们喜欢查询呢还是喜欢一个一个的查看呢?在工作的时候,要学会反省、挖掘、总结,成为一个有思想的人。有思想的人远远比一个只爱劳动的人受重用。加强工具化管理势在必行,今天你为自己花费了一分钟,明天也许你会节约出一个小时
没有什么固定的模式,也没有什么固定的套路,这就是软件行业。软件行业更依赖于人的因素,这就告诉我们环境的不同,变化是不同的,在原来的基础上总结出自己的开发模式,才是我们应该要做的。就像XP开发模式也有前提一样。取人之长,补己之短是我们最好的做事方式。
面对着五花八门的工具,我很迷茫,也许其他新手也和我一样。但我认为,学工具是必然的,但不是必须的。测试理论可以指导我们的工作,但测试更多是要靠自己的总结,在实践中慢慢的积累。
第五篇:软件测试学习总结
软件测试学习总结
姓名:某某 学号:20090001 在大庆浦东软件平台有限公司经过一周的软件测试实训,从对软件测试没有什么经验的我初步掌握了软件测试的方法和技能,收获颇多。
我在大学期间的专业是信息与计算科学,原本打算从事网络方面的工作,对活动目录、数据库、操作系统等的知识比较感兴趣。经过这次理论学习,了解到要做好软件测试,要求掌握的知识并不仅仅是测试方面的,网络、数据库、操作系统等的知识对做好测试也是很有帮助的。这让我明确了以后学习的目标,在不断学习软件测试的同时,也应该继续其他相关知识的深入学习。通过此次学习,对整个软件测试行业的了解大大的加深。以前认为软件测试只是枯燥的反复的使用被测试软件来发现异常的问题,以为软件测试并不重要,低开发一等。现在认识到了软件测试的重要性,软件测试是软件产业向软件工业化生产时代迈进不可缺少的重要组成部分,是保证软件质量达到客户需求不可缺少的环节。软件测试在国内是一个新的职业,发展得比较晚,但它的重要性正在为行业所重视。
在学习过程中,我了解了作为一个合格的测试人员所应具备的素质与技能。其中个人素质在测试工作中起到了非常重要的作用,它包括你的信心、耐心、细心和与人交流沟通的能力,它将贯穿你工作生涯的整个过程。在测试理论上,我们系统学习了软件测试的流程,各种测试阶段和测试方法,以及测试工具的使用。通过这些课程的学习,让我们对软件工程也有了更深刻的理解,为以后的测试工作作了很好的理论储备和技能的提升。
软件测试作为软件开发过程中一个非常重要的环节,越来越成为软件开发商和用户关注的焦点。完善的测试是软件质量的保证,因此软件测试就成了一项重要而艰巨的工作,要做好这项工作当然也绝非易事,我在做软件测试工作中总结出了一些经验和技巧。1.功能点的细化
在进行测试前,先将所要测试的功能细分,填写《测试用例表》,有针对性的运行功能测试案例,逐个对每个功能细分点进行测试。在每次运行测试案例之前,明确此次运行的目的和预期的输出结果,并要做好记录。2.注意测试中的错误集中发生的现象
有一些错误是和程序开发人员的编程水平和习惯有很大关系的。例如程序中的拼写错误,习惯用法等。注意收集并记录这些现象,有助于更快、更多地发现类似的错误。
3.尽可能多的使用非常规的测试 充分考虑到各种合法的输入和不合法的输入以及各种边界条件。边界值往往是最容易出现异常的情况,特殊的情况下甚至要制造极端的状态和意外状态,比如网络突然中断,和电源突然断电等情况。
4.对测试错误结果一定要有一个确认的过程
一般有A测试出来的错误,一定要有一个B来确认。5.制定严格的测试计划
测试时间安排的尽量宽松,不要希望在极短的时间内完成一个高水平的测试。6.回归测试的关联性一定要引起充分的注意
在开发人员刚修复Bug之后的地方,再找一找,往往开发人员只修复报告出来的缺陷而不去考虑别的功能在修改时可能会重新造成错误。修改一个错误而引起更多的错误出现的现象并不少见。
7.测试文档要尽可能详细
《测试用例表》中的功能点可尽量的详细,如实、详细地记录每次运行测试案例的输入数据,输出数据,出错提示,进行测试的时间,完成测试的时间等,便于以后对测试工作的回溯。8.重视交流和沟通
包括和程序开发人员的交流,同是测试人员之间的交流,网上技术论坛和网友的交流,和客户的交流等。多思考,多交流,多提问,通过多种沟通交流的途径,可以少走很多弯路,同时可以学到很多东西。9.善于总结
在测试过程中发现的所有问题,异常情况,发现程序开发人员易犯,常犯的错误,各种有价值的经验教训,使用系统和操作数据库时发现或者学到的技巧,使用测试工具时的心得等等,都可以随手记录在笔记本或者电脑上。这些都将是今后工作中可以参照的珍贵资料,同时也会成为自己的宝贵经验。10.妥善保存一切测试过程文档。
这次软件测试实训为我们以后从事软件测试工作打下了良好的专业基础,为我们的进一步学习提高打下了扎实的理论基础。对测试过程有了初步的认识,测试计划、测试设计、测试开发、测试执行、测试评估、测试报告贯穿整个软件开发过程。单元测试、集成测试、系统测试、验证测试每个阶段都应以用户需求为依据。这些基本的概念虽然比较抽象,但对以后的实践是大有益处的。总的来说,这次培训效果不错,对自己有一定的提升,这完全不同与学校的学习,因为它更加贴近工作,针对以后工作的内容作了很多实例的练习与工具的使用,为我们更快的加入工作提供的很好的前提。接下来一段时间,我将利用假期进入相关测试部门进行实际项目的训练,我相信在我有了很好的理论基础后,会在工作中很好的加以应用,让测试工作做得更好。同时,我会更加努力的学习与工作,遇到问题会及时多渠道寻找解决方法,积极上进,希望早日成为一名优秀的测试人员。