第一篇:软件测试学习感悟
学习软件测试的感受及体会
这学期学习了赵培英老师教授的软件测试这门计算机专业的专业课,我们学院又开设了刘老师的关于这方面的讲座,更彻底的使我们加深了对软件测试的认识。所以我想谈谈关于软件测试的体会及学到的一些知识。
作为计算机专业的一门很重要的课程,在计算机领域占据着不可替代的角色,随着人类社会的进步,各种领域计算机的普及,计算机软件也越来越多的出现在各个场合,为人们的办公,生活,学习,休闲等提供了前所未有的方便。软件测试,其目的是:第一是确认软件的质量,其一方面是确认软件做了你所期望的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事件(Do it right)。作为计算机专业的学生,我想以我自己的观点来阐述一下我对软件测试的理解。
以前,就是在我没有认真了解测试行业之前,我也一直认为测试应该是不重要的,甚至认为有必要有专门的测试职业吗?认为软件主要是开发人员的事,软件的成果也是由开发人员决定的,当我学了软件工程这门课,真正的了解到它的必要性,事实上真的不是那么一回事哦。软件无处不在,然而,软件是人编的——所以不完美。
我还查阅了一些资料就是不注意软件测试的案例:
1、迪士尼的狮子王(1994~1995)软件在少数系统中能正常工作,但在大众使用的常见系统中不行。后来证实,迪士尼公司没有对市场上投入实用的各种pc机型进行正确的测试。
2、英特尔奔腾浮点除法软件缺陷(1994)英特尔为自己处理软件缺陷拿出4亿美元支付更换坏芯片的费用。导致付出如此昂贵的代价,其主要原因是发现了软件缺陷没有正确的处理。
3、美国航天局火星极地登陆(1999)该项目使用前有经过测试,两个测试小组双方独立工作都很好,但从未走在一起。
4、爱国者导弹防御系统(1991)一枚导弹在多哈击毙28名美国士兵,症结在于一个软件缺陷:一个很小的系统时钟错误累积起来就可能拖延14小时,造成跟踪系统失去准确度。在多哈袭击战中系统被拖延100小时。
5、千年虫(大约1974)估计世界各地更换或升级该系统程序解决原有2000年错误的费用已经超过数亿美元。
这就是不注重测试的一些严重后果,因此我们发现了软件测试的必要性!在设计有效测试用例之前,测试工程师必需理解软件测试的基本原则,包括: 1、所有的测试都应追溯到用户需求。正如我们所知:软件测试的目标在于揭示错误。而最严重的错误(从用户角度来看)是那些导致程序无法满足需求的错误。、应该在测试工作真正开始前的较长时间内就进行测试计划。测试计划可以在需求模型一完成就开始,详细的测试用例定义可以在设计模型被确定后立即开始。因此,所有测试应该在任何代码被产生前就进行计划和设计。、Pareto 原则应用于软件测试。简单地讲,Pareto 原则暗示着测试发现的错误中的 80 %很可能起源于程序模块中的 20 %。当然,问题在于如何孤立这些有疑点的模块并进行彻底的测试。、测试应从 “ 小规模 ” 开始,逐步转向 “ 大规模 ”。最初的测试通常把焦点放在单个程序模块上,进一步测试的焦点则转向在集成的模块簇中寻找错误,最后在整个系统中寻找错误。
5、为了达到最佳效果,应该由独立的第三方来构造测试。“ 最佳效果 ” 指最有可能发现错误的测试(测试的主要目标),所以创建系统的软件工程师并不是构造软件测试的最佳人选。
6、不充分的测试是不负责任的;过分的测试是一种资源的浪费,同样也是一种不负责任的表现.。
还有就是关于软件测试的分类:从是否需要执行被测软件的角度,可分为:
-静态测试
-动态测试
从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为 :
-白盒测试
-黑盒测试
关于静态测试和动态测试:(1)静态测试是指不实际运行被测软件,而只是静态的检查程序代码、界面或文档中可能存在的错误的过程。
其中包括代码测试、界面测试和文档测试3个方面。对于代码测试,主要测试代码是否符合相应的标准和规范。对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。对于文档测试,主要测试用户手册和需求说明是否符合用户的实际要求。
(2)动态测试是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。所以,我们判断一个测试属于动态还是静态测试,唯一的标准就是看是否运行程序。
关于黑盒测试和白盒测试 :(1)黑盒测试
指的是把被测软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子,只关心软件的输入数据和输出结果。
黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误: • 是否有不正确或遗漏了的功能?
• 在接口上,输入能否正确地接受? 能否输出正确的结果? • 是否有数据结构错误或外部信息(例如数据文件)访问错误? •性能上是否能够满足要求? • 是否有初始化或终止性错误?
用黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。但这是不可能的。
黑盒测试的测试用例设计 •等价划分法 •边界值法 •错误推测法 •因果图法(2)白盒测试
指的是把盒子盖打开,去研究里面的源代码和程序结构。白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。使用被测单元内部如何工作的信息,允许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑路径进行测试。基于一个应用代码的内部逻辑知识,测试是基于覆盖全部代码、分支、路径、条件。
白盒测试的主要方法:
•逻辑驱动测试
•基本路径测试
主要用于软件验证。
使用程序设计的控制结构导出测试用例。
逻辑驱动测试:
主要是测试覆盖率,以程序内在逻辑结构为基础的测试。包括以下6种类型:
•语句覆盖
•判断覆盖
•条件覆盖
•判定-条件覆盖
•条件组合覆盖
•路径覆盖
白盒测试的主要目的
• 保证一个模块中的所有独立路径至少被执行一次;
•对所有的逻辑值均需要测试真、假两个分支;
•在上下边界及可操作范围内运行所有循环; •检查内部数据结构以确保其有效性
测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事件(Do it right);第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息;第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。
经过这一门课程的学习和老师的给我们的讲座,意识到测试并非是我想像的从客户角度任意使用软件产品,从而发现有无质量问题,它有它的理论和实践体系。软件测试是一项严谨的工作,软件测试员一个基本的素质是打破砂锅问到底。喜欢找出那些深藏不露的系统冲突,乐于处理最复杂的问题,外表上热衷於来回奔忙,追求尽善尽美,为征服系统而额手称庆。
最后特别感谢老师对我们的课程学习的讲授,让我们了解到计算机更多的知识,也让我们了解到求职关于计算机方面的岗位,应具备哪些专业知识,谢谢老师!
第二篇:软件测试学习
软件测试学习
1. 什么是软件测试?
答:软件测试是为了发现错误而审查软件文档、检查软件数据和执行程序代码的过程,其目的在于在软件交付使用前充分发现缺陷并协助相关部门定位、解决缺陷,最后交付一个高质量的软件产品给用户。
2.软件测试的分类有哪些?
答:软件测试活动可以分为以下几类:
黑盒测试:
黑盒测试又叫功能测试,数据驱动测试或基于需求规格说明书的功能测试。(主要用于系统测试和确认测试中)
白盒测试
白盒测试又称结构测试、逻辑驱动测试或程序代码内部构成的测试。
灰盒测试
灰盒测试结合黑盒和白盒测试两种方法,一方面考虑程序代码的功能性表现,另一方面,又需要考虑程序代码的内部结构。(主要用于性能测试、自动化功能测试) 静态测试
静态测试就是用眼看,阅读程序代码、文档资料等,与需求规格说明书中的客户需求进行比较,找出程序代码中设计不合理及文档集料有错误的地方
动态测试
动态测试即为实际的执行被测对象的程序代码,输入事先设计好的测试用例,检查程序运行得到的结果与测试用例中设计的预期结果之间是否有差异,判定实际结果与预期结果是否一致,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能状况。
动态测试由四个部分组成:设计测试用例、执行测试用例、分析比较输出结果、输出测试报告。
动态测试有三种方法:黑盒测试、白盒测试、灰盒测试。
手动测试
手动测试大部分的测试就是模拟用户的业务流程,来使用软件产品,从而发现软件产品中的缺陷。手动测试是最传统的测试方法,也是现在大多数公司都是用的测试形式。他是测试人员设计测试用例并执行测试用例,然后根据实际结果去和预期的结果相比较并记录测试结果,最终输出测试报告的测试活动。
优点:可以充分发挥测试工程师的主观能动性,将其智力活动体现于测试活动中,能发现很多的缺陷。
缺点:手动测试有一定的局限性与单调枯燥性。
自动测试
自动测试就是利用一些测试工具,模拟用户的使用流程,让它们自动运行来查找缺陷。也可以编写一些代码,设定特定的测试场景,来自动寻找缺陷
优点:能够很快、很广泛的查找缺陷,同时可以做很多重复性的工作,大大提高了测试的效率和测试的准确性,而且写出的比较好的测试脚本,还可以在软件生命周期的各个阶段重复使用。
3.软件测试的流程:需求测试、单元测试、集成测试、系统测试、性能测试、用户测试、回归测试
需求测试:主要从以下几个方面考虑
①完整性:每一项需求都必须将所要实现的功能描述清楚,从而为开发人员设计和实现这些功能提供所有必要的需求依据。
②正确性:每一项需求都必须准确的陈述其要开发的功能
③一致性:一致性是指与其它软件需求或高层(系统、业务)需求不相矛盾,或者与我们的项目宣传资料一致。
④可行性:每一项需求都必须是在已知系统和环境的权能和限制范围内可以实施的。⑤无二义性:对所有需求的读者都只能有一个明确统一的解释,由于自然语言极易导致二义性,所以尽量把每项需求用简洁明了的用户语言表达出来。
⑥健壮性:需求的说明中是否对可能出现的异常进行了分析,并且对这些异常进行了容错处理。
⑦必要性:“必要性”可以理解为每项需求都是用来授权你编写文档的“根源”。要是每项需求都回溯至某项客户的输入,如需求用例或别的来源。
⑧可测试性:每项需求都能通过设计测试用例或其它验证方法来进行测试。
⑨可修改性:每项需求只应在SRS(软件需求规格说明书)中出现一次。这样更改时易于保持一致性。另外,使用目录表、索引和相互参照列表方法将使软件需求规格说明书更容易修改。
单元测试
单元测试又成为模块测试,是对程序代码中最小的设计模块单元进行测试。(可以发现大约80%的软件缺陷,大多数公司中,由对应的开发工程师负责)单元测试方法:主要采用静态测试和动态测试相结合的办法。
单元测试工具:Juint等。
单元测试优点:在软件生产过程中及时的开展单元测试可以降低编码的错误率,提
高编码质量。
集成测试
集成测试又称为组装测试,就是将软件产品中的各个模块组装起来,检查其接口是否存在问题,以及组装后的整体性能、性能表现。
集成测试方法:一般采用非增式集成方法、增式集成方法(自底向上集成;自顶向下集成;组合方式集成)等策略进行测试,利用以黑盒测试为主,白盒测试为辅的测试方法进行测试。
(集成测试一般由测试工程师但当)
集成测试的目的:主要解决的是各个软件组成单元代码是否符合开发规范、接口是否存在问题、整体功能有无错误、界面是否符合设计规范、性能是否满足用户需求等。
系统测试
系统测试是将通过集成测试的软件部署到某种较为复杂的计算机用户环境(指一般用户的计算机环境)进行测试。
系统测试的目的:通过与系统的需求进行比较,发现软件与系统的定义不符合或与之矛盾的地方。主要考察被测软件的功能和性能表现。
系统测试方法:主要采用黑盒测试方法,进行的是安装卸载测试、兼容性测试、功能确认测试、安全性测试等。
系统测试过程其实也是一种配置检查过程,检查软件在生产过程中是否有遗漏的地方,在此时做到查漏补缺,以确保交付的产品符合用户的质量要求。如果软件可以按照用户合理期望的方式来工作的时候,即可认为通过系统测试。
性能测试
性能测试就是要求被测软件在业务处理速度、处理能力和所耗用的硬件系统资源比率满足用户的需求。
对测试人员的要求:测试人员要掌握编程语言,精通业务流程,拥有深厚的项目经验。所以,想顺利的开展性能测试,需要测试工程师不断的学习,掌握相应的知识。例子:对于某个论坛,我们需要测试论坛支持10000个用户同时使用,并且在这种情况下,打开帖子的速度能否控制在4秒钟以下,论坛服务器的CPU使用率不超过80%,内存的占用率不超过75%等,这些都是典型的性能测试指标。
性能测试优点:一方面可以验证被测软件是否符合用户需求,另一方面,可以得到相关的性能数据,为被测软件的优化提供参考。
性能测试工具:LoadRunner自动化性能测试工具等。
用户测试
用户测试可以称其为用户确认测试。在正式验收前,需要用户对本系统做出一个评价,用户可对交付的系统做测试,并将测试结果反馈回来,进行修改、分析。用户测试在整个软件生产流程中非常重要,这个环节是被测软件首次作为正式系统交由用户使用,用户会根据他们的实际使用情况进行测试、试用,并提出实际使用过程中的问题。
用户测试是软件生产流程中的最后质检关。
回归测试
回归测试就是过一段时间以后再回过头来对以前修复过的Bug重新进行测试,看该Bug是否会重新出现。
回归测试的目的:检查以前的测试用例能否再次通过,是否还有需要补充的用例等。
回归测试工具:QTP等。
第三篇:软件测试学习纲要
《软件测试》学习纲要
一、2013年春季学期期末考试题型如下:
1、选择题:15题、每题2分;共30分
2、填空题:15空、每空1分;共15分
3、论述题:6题、每题5分;共30分
4、软件测试实践题:4题、共25分
学习要点:
1)软件测试目的、原则、误区、对象、分类
2)软件缺陷
3)软件测试V模型
4)测试用例概念、设计原则、设计步骤
5)黑盒、白盒测试
6)边界值、等价类测试用例设计
7)因果图法
8)场景法
9)逻辑覆盖测试分类、关系
10)环路复杂度
11)单元测试概念
12)单元测试的策略
13)集成测试概念
14)集成测试策略10个字
15)系统测试的概念
16)回归测试概念
17)验收测试概念、过程
18)动态测试与静态测试
19)系统性能参数
20)性能测试分类
21)测试计划、测试报告文档内容
22)白盒测试用例设计
23)黑盒测试用例设计
24)Junit单元测试用例设计及编程
第四篇:软件测试的学习
软件测试学习
一、软件测试方法:白盒测试、黑盒测试、灰盒测试
二、软件测试阶段:
执行人测试阶段测试方法
开发人员—>1.单元测试(白盒测试)
测试人员—>2.集成测试(黑盒+白盒测试)
测试人员—>3.系统测试(黑盒多)
第三方—>4.验收测试(黑盒多)
验收测试包括:正式验收测试、alpha测试、beta测试三种。
系统测试包括:功能测试、性能测试、界面测试、安全测试、配置测试、兼容测试、回归测试等。
三、软件各种测试的定义:
白盒测试:程序内部的结构测试,也叫结构测试或逻辑驱动测试,对程序所有逻辑路径进行测试。
白盒测试的主要方法:逻辑驱动测试和基本路径测试。
白盒测试主要对程序模块进行如下检查:
1.对程序模块所有独立的执行路径至少测试一遍。
2.多所有逻辑判定,取“真”与取“假”,的两种情况都至少测试一遍。
3.在循环的边界和运行的边界内执行循环体。
4.测试内部数据结构的有效性,等等。
黑盒测试:也叫数据驱动测试,主要是基于需求分析对系统的功能进行测试。
黑盒测试的主要方法:等价类划分、边界值分析、因果图、场景法、错误推测法
※(测试用例设计所采用的方法就是黑盒测试的主要方法)
黑盒测试为了发现几类错误:
1.在接口上,输入是否正确接收,输出结果是否正确(集成测试)
2.功能是否有遗漏,是否正确(系统测试-功能)
3.性能是否能满足要求(系统测试-性能)
4.是否有数据结构错误或外部信息(例如数据文件)访问错误(系统测试-兼容)
5.是否有初始化或终止性错误(系统测试-安全)
单元测试:对代码的运行测试(也叫白盒测试),用于判定某个特定条件(或场景)下某个特定函数的行为。集成测试:(也叫组装测试,联合测试),是单元测试的逻辑扩展。模块与模块之间接口的测试。
集成测试的策略:
1.模块与模块连接时,穿越模块接口的数据是否丢失。
2.各个子模块组合起来,是否达到预期要求的父功能。
3.一个模块的功能是否对另一个模块的功能产生不利影响。
4.单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。
5.全局数据结构是否有问题。
系统测试:是将测试的子系统装配成一个完整的系统来测试
系统测试的目的:对最终软件系统进行全面的测试,确保最终软件系统满足产品的需求并遵循系
统设计。
验收测试:alpha测试、beta测试、第三方验收测试
回归测试:对系统的新版本执行上一版本的测试用例检验是否通过。也可以说对于修改后新代码进行测试。
回归测试:作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试
功能测试:也叫黑盒测试,利用黑盒测试法进行动态测试,根据需求分析看系统是否能达到预期结果。性能测试:也叫压力测试,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
界面测试:测试界面是否美观,是否能让用户满意,操作功能是否合理。
安全测试:检查系统对非法侵入的防范能力(破译密码、保护机制)。
配置测试:搭环境时,进行的参数配置是否合理。
兼容测试:与其他软件或浏览器是否发生冲突。
四、测试活动的生命周期是什么(也可说成测试流程是什么)?
是指从测试项目计划建立到Bug提交的整个过程。
包括五个阶段:
1、测试项目计划
2、测试需求分析
3、测试用例编写
4、测试用例执行
5、Bug提交
(总结:测试的集成测试阶段和系统测试阶段,两个阶段会运用“测试活动生命周期”来完成)
例如:集成测试→上面的五个阶段(测试项目计划除外)
系统测试→上面的五个阶段(测试项目计划除外)
软件测试项目计划的目的、内容:(对应阶段1)
软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试
周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法
和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试策略和测试方法(最
好是能先评审)
软件测试项目计划从什么时候开始的,为什么?(对应阶段1)测试过程测试过程
软件测试应该在需求分析阶段就介入,因为测试的对象不仅仅是程序编码,应该对软件开发过程中产生的所有产品都测试,并且软件缺陷存在放大趋势.缺
陷发现的越晚,修复它所花费的成本就越大. 测试用例编写的内容:(也可以说成是缺陷测试报告的组成:)(对应阶段3)
简单说分三部分,测试步骤、数据输入、预期结果
缺陷测试报告的组成:缺陷的标题,缺陷的基本信息,复现缺陷的操作步骤,缺陷实际结果的描述,期望正确结果的描述,注释文字和截取的缺陷图像
缺陷的生命周期(也可以说成是Bug的管理流程)(对应阶段5)
最简单的缺陷生命周期:
发现—打开:发现缺陷提交给开发人员
打开—修复:开发人员在现,修复缺陷,然后提交测试人员去验证
修复—关闭:测试人员验证修复的软件,关闭已不存在的缺陷。
复杂的缺陷生命周期:
测试人员提交Bug入库(QC),错误状态为new
高级测试人员验证错误
验证错误QC状态验证open状态下错误QC状态
高级测试人员是open开发人员是并修复fixed
高级测试人员不是declind不是declind
是不能修复留下文字说明保存保存Bug为open对于不能解决和延期解决的bug,不能让开发人员自己决定,一般要报告给测试经理。
五、测试结束的标准是什么:(对应测试活动生命周期记忆)
基于“项目计划”的原则(对应阶段1)
基于“测试阶段”的原则(对应阶段2)
基于“测试用例”的原则(对应阶段3)
基于“覆盖率”的原则(对应阶段4)
基于“缺陷收敛趋势”的原则(对应阶段5)
基于“缺陷修复率”的原则(对应阶段5)
基于“缺陷度量”的原则(对应阶段5)
基于“验收测试”的原则
基于“质量成本”的原则
基于“测试行业经验”的原则
六、测试工具:
测试Bug的管理工具:TD、QC、BugFree
功能测试管理工具:QTP
性能测试管理工具:LoadRunner
[TestDirector]:企业级测试管理工具,也是业界第一个基于Web的测试管理系统。
[Quality Center]:基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。
[QuickTest Professional]:用于创建功能和回归测试。
[LoadRunner]:预测系统行为和性能的负载测试工具
七、软件测试的相关概念:
软件测试的对象:需求规格说明书、概要设计规格说明书、详细设计规格说明书、源代码程序
软件测试:检测系统预期结果与实际结果之间的差别,发现系统中的Bug。
软件测试与QA的区别:
QA:是以第三方的姿态,孤立于项目组以外的身份,对整个开发进行评审,QA负责对每个阶段的软件文档审
核。
软件测试的目的:
1.发现代码错误(单元测试)
2.一个成功的测试用例,在于发现至今未发现的错误
3.一个成功的测试用例,在于发现至今未发现错误的测试
4.依据需求分析确保产品的所有功能,并且用户访问的所有功能附有书面说明书。(系统测试-功能)
5.满足性能和效率的要求(系统测试-性能)
6.适应用户的环境(系统测试-兼容)
软件测试的原则:
1.应尽早执行,并贯穿于整个软件生命周期。(软件的生命周期)
2.严格执行测试计划(软件的生命周期-测试项目计划)
3.应追溯需求(软件的生命周期-测试需求分析)
4.穷举例是不能的,要遵循good-enough原则(软件的生命周期-测试用例编写)
5.关注缺陷的修复(软件的生命周期-Bug提交)
6.检查程序是否做了不该做的(单元测试)
7.必须确定预期结果(系统测试-功能)
8.应由第三方来构造(验收测试)
八、v模型:
V模型:揭示了软件测试活动分层和分阶段的本质特性。
如:集成测试对应概要设计
集成测试计划和集成测试说明文档的编写:可以在概要设计阶段就可以开始编写,只要在集成测试实施前完 成即可。
V模型还有一点意义:1)在需求分析阶段 : 编写测试用例,可以发现需求文档本身的缺陷,这样就能尽早把需
求的缺陷消除,避免使缺陷残留到下一个阶段中。
2)在概要设计阶段:编写集成测试用例也会间接地地图软件设计质量。
总结:开发人员软件开发阶段:用户需求、需求分析与系统设计、概要设计、详细设计、编码
(集成、实施、交付)
测试人员软件测试阶段:验收测试准备、系统测试准备、集成测试准备、单元测试准备、单元测试
(集成测试、系统测试、验收测试)
(测试阶段准备反过来,与开发阶段对应上)
九、典型的软件测试过程模型是:V模型、W模型、H模型、前置测试模型。
第五篇:软件测试学习总结
软件测试学习总结
姓名:某某 学号:20090001 在大庆浦东软件平台有限公司经过一周的软件测试实训,从对软件测试没有什么经验的我初步掌握了软件测试的方法和技能,收获颇多。
我在大学期间的专业是信息与计算科学,原本打算从事网络方面的工作,对活动目录、数据库、操作系统等的知识比较感兴趣。经过这次理论学习,了解到要做好软件测试,要求掌握的知识并不仅仅是测试方面的,网络、数据库、操作系统等的知识对做好测试也是很有帮助的。这让我明确了以后学习的目标,在不断学习软件测试的同时,也应该继续其他相关知识的深入学习。通过此次学习,对整个软件测试行业的了解大大的加深。以前认为软件测试只是枯燥的反复的使用被测试软件来发现异常的问题,以为软件测试并不重要,低开发一等。现在认识到了软件测试的重要性,软件测试是软件产业向软件工业化生产时代迈进不可缺少的重要组成部分,是保证软件质量达到客户需求不可缺少的环节。软件测试在国内是一个新的职业,发展得比较晚,但它的重要性正在为行业所重视。
在学习过程中,我了解了作为一个合格的测试人员所应具备的素质与技能。其中个人素质在测试工作中起到了非常重要的作用,它包括你的信心、耐心、细心和与人交流沟通的能力,它将贯穿你工作生涯的整个过程。在测试理论上,我们系统学习了软件测试的流程,各种测试阶段和测试方法,以及测试工具的使用。通过这些课程的学习,让我们对软件工程也有了更深刻的理解,为以后的测试工作作了很好的理论储备和技能的提升。
软件测试作为软件开发过程中一个非常重要的环节,越来越成为软件开发商和用户关注的焦点。完善的测试是软件质量的保证,因此软件测试就成了一项重要而艰巨的工作,要做好这项工作当然也绝非易事,我在做软件测试工作中总结出了一些经验和技巧。1.功能点的细化
在进行测试前,先将所要测试的功能细分,填写《测试用例表》,有针对性的运行功能测试案例,逐个对每个功能细分点进行测试。在每次运行测试案例之前,明确此次运行的目的和预期的输出结果,并要做好记录。2.注意测试中的错误集中发生的现象
有一些错误是和程序开发人员的编程水平和习惯有很大关系的。例如程序中的拼写错误,习惯用法等。注意收集并记录这些现象,有助于更快、更多地发现类似的错误。
3.尽可能多的使用非常规的测试 充分考虑到各种合法的输入和不合法的输入以及各种边界条件。边界值往往是最容易出现异常的情况,特殊的情况下甚至要制造极端的状态和意外状态,比如网络突然中断,和电源突然断电等情况。
4.对测试错误结果一定要有一个确认的过程
一般有A测试出来的错误,一定要有一个B来确认。5.制定严格的测试计划
测试时间安排的尽量宽松,不要希望在极短的时间内完成一个高水平的测试。6.回归测试的关联性一定要引起充分的注意
在开发人员刚修复Bug之后的地方,再找一找,往往开发人员只修复报告出来的缺陷而不去考虑别的功能在修改时可能会重新造成错误。修改一个错误而引起更多的错误出现的现象并不少见。
7.测试文档要尽可能详细
《测试用例表》中的功能点可尽量的详细,如实、详细地记录每次运行测试案例的输入数据,输出数据,出错提示,进行测试的时间,完成测试的时间等,便于以后对测试工作的回溯。8.重视交流和沟通
包括和程序开发人员的交流,同是测试人员之间的交流,网上技术论坛和网友的交流,和客户的交流等。多思考,多交流,多提问,通过多种沟通交流的途径,可以少走很多弯路,同时可以学到很多东西。9.善于总结
在测试过程中发现的所有问题,异常情况,发现程序开发人员易犯,常犯的错误,各种有价值的经验教训,使用系统和操作数据库时发现或者学到的技巧,使用测试工具时的心得等等,都可以随手记录在笔记本或者电脑上。这些都将是今后工作中可以参照的珍贵资料,同时也会成为自己的宝贵经验。10.妥善保存一切测试过程文档。
这次软件测试实训为我们以后从事软件测试工作打下了良好的专业基础,为我们的进一步学习提高打下了扎实的理论基础。对测试过程有了初步的认识,测试计划、测试设计、测试开发、测试执行、测试评估、测试报告贯穿整个软件开发过程。单元测试、集成测试、系统测试、验证测试每个阶段都应以用户需求为依据。这些基本的概念虽然比较抽象,但对以后的实践是大有益处的。总的来说,这次培训效果不错,对自己有一定的提升,这完全不同与学校的学习,因为它更加贴近工作,针对以后工作的内容作了很多实例的练习与工具的使用,为我们更快的加入工作提供的很好的前提。接下来一段时间,我将利用假期进入相关测试部门进行实际项目的训练,我相信在我有了很好的理论基础后,会在工作中很好的加以应用,让测试工作做得更好。同时,我会更加努力的学习与工作,遇到问题会及时多渠道寻找解决方法,积极上进,希望早日成为一名优秀的测试人员。