《新人培训(软件测试基础)PPT幻灯片》由会员分享,可在线阅读,更多相关《新人培训(软件测试基础)PPT幻灯片(42页珍藏版)》请在金锄头文库上搜索。
1、1,软件测试基础培训,不便透露,2,何为软件测试?,测试是发现并指出软件(包含软件经过建模、需求、设计等阶段所产生的大量输出工件)中存在缺陷的过程,这个过程指名和标注问题存在的正确位置,详细记录导致问题出现的操作步骤,及时储存当时的错误状态,以上组合在一起便于测试后问题能够准确再现,3,何为软件测试?Cont.,4,何为软件测试?Cont.,发现问题:第一个行为,表示发现软件中存在的问题。,5,何为软件测试?Cont.,记录问题:第二个行为,表示通过“发现问题”行为操作指明和标注问题存在的正确位置,详细记录导致问题出现的操作步骤,及时储存当时的错误状态。,6,何为软件测试?Cont.,跟踪问题
2、:第三个行为表示通过“记录问题”行为操作来跟踪和控制出现过的问题,直到问题关闭。由“再现问题”引出的虚线代表着两个行为之间的关联是隐性存在的。,7,何为软件测试?Cont.,再现问题:来源于“记录问题”,表示这个过程只是为了演示曾经出现过的错误现象,值得注意的是有些错误现象我们可能没有办法再现了。,8,何为软件测试?Cont.,比如,由于某次操作引起了操作系统的内存异常出错,我们记录了但是下一次演示的过程中不一定会再出现。虽然有这样的事情发生,但是我们有理由肯定错误还是存在的,只不过我们没有触发相应的条件。,9,何为软件测试?Cont.,历史数据:从“记录问题”中挑选相同属性的错误,提高下次测
3、试的针对性。因为是虚框,所以可以视为过程的一种补充。,10,为什么需要软件测试?,测试可以保证你对需求和设计的理解与表达的正确性、实现的正确性以及运行的正确性,任何一个环节发生了问题都会在软件测试中表现出来。,11,为什么需要软件测试?Cont.,测试同时还可以防止无意识的行为引入一些将来可能出现的错误。,12,为什么需要软件测试?Cont.,测试也可以帮助设计代码及其用户界面,在编码之前测试人员就代表了客户,这个时候我们需要考虑程序会产生什么样的效果,而不用管它内部是如何工作的。,13,W模型,软件测试应在软件开发的需求分析阶段介入,14,软件测试目的?,软件测试是为了发现错误而执行程序的过
4、程 测试是为了证明程序有错,而不是证明程序无错误 一个好的测试用例是在于它能发现至今未发现的错误 一个成功的测试是发现了至今未发现的错误的测试 by Grenford J. Myers The Art of software Testing,15,软件测试目的?Cont.,软件测试不以发现错误为唯一目的,查不出错误的测试并非没有价值。整个测试过程本身就是评定测试质量的一种方法。如果我们的测试过程是可持续增长的在运行多次而未发现软件错误,这样多少都可以得出这样的结论:被测试软件已经完美了,或者就是需要遗弃这套无法正常工作的测试过程而重新构建一套了。,16,软件测试原则:,1.尽早和不断的测试 2
5、.彻底的测试不可能 3.软件测试是有风险的行为 4.并非所有的软件错误都能修复 5.合理安排测试计划,17,1.尽早和不断的测试,要尽早地测试,让测试人员在软件的需求和设计阶段就介入而不是等这些工作全部完成了才进行测试。发现软件错误的时间在整个软件过程阶段中越靠后,修复它所消耗的资源就越大,18,2.彻底的测试不可能,因为存在着输入量太大,输出结果太多,软件实现途径太多和软件实现没有客观标准,从不同的角度看软件缺陷的标准不同这些客观因素的存在,所以我们只能做到有限数量路径测试,19,如果时间不够,无法进行充分的测试怎么办?,我们要使用风险分析,确定测试的重点,需要考虑下列因素: 对于该项目的用
6、途而言,哪种功能最重要? 哪种功能对用户最明显? 哪种功能对安全影响最大? 哪种功能对用户最有用? 在开发过程中,该应用软件的哪个部分最重要?,20,如果时间不够,无法进行充分的测试怎么办?Cont.,哪一部分代码最复杂,容易导致出现错误? 哪一部分的应用程序是在急迫或在惊恐的情况下开发出来的? 哪一部分程序与过去项目中引起问题的部分相类似/有关? 哪一部分程序与过去项目中需要大量维护的部分相类似/有关? 开发人员认为在软件中哪些部分是高风险的?,21,如果时间不够,无法进行充分的测试怎么办?Cont.,哪些问题能造成最差的发行? 哪些问题最能引起用户抱怨? 哪些测试可以容易地覆盖多种功能?
7、哪些测试在覆盖高风险部分的测试时使用时间最少?,22,3.软件测试是有风险的行为,我们可以通过对资源的调节,对测试程度和范围进行有效控制。原则是尽量使用有限资源得到最大的回报。测试只能保证尽可能多地发现错误,不能保证发现所有的错误。,23,4.并非所有的软件错误都能修复,没有足够的时间(项目进度不允许) 不算真正的软件错误(沟通理解上发生歧义) 修复的风险太大(导致更多的错误,修复成本太高) 不值得修复(不太常用的功能) 以上都需要经过严格的评估,整个评估决策过程由软件测试人员、项目管理人员和程序开发人员共同参与。,24,5.合理安排测试计划,好的测试计划树立了一个正确的测试目标、组合了各种有
8、针对性的测试方法、罗列了所有可使用资源等。测试计划制定需要严谨,防止发生测试偏移现象。测试时间安排得尽量宽松(也就是说我们需要预留工作余量),不要指望在极短的时间内完成一个全方位、高水平的测试。任何理想化的概念和无法确定的因素都应该被剔除。,25,软件测试策略,1.数据和数据库完整性测试 我们在数据测试中必须认真对待默认值、空白、Null值、零值和无效输入等情况。,26,软件测试策略 Cont.,2.功能测试 功能测试又称正确性测试,它检查软件的功能是否符合规格说明。基本方法是构造一些合理输入,检查是否得到期望的输出。,27,软件测试策略 Cont.,3.易用性原则 易用性是人机交互中适应性、
9、实用性和有效性的集中体现。 优秀UI常见的七个要素: 符合标准和规范;灵活性;正确性;直观性;舒适性;实用性;一致性。,28,软件测试策略 Cont.,4.性能测试与压力测试 压力测试:对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点(极限点),来获得系统能提供的最大服务级别的测试 性能测试:在交替进行负荷和强迫测试时常用的术语。性能测试关注的是系统的整体。它和通常所说的强度、压力/负载测试有密切的关系。所以压力和强度测试应该与性能测试一同进行。,29,性能测试和压力测试的区别?,他们具有不同的测试目的 压力测试是为了发现系统能支持的最大负载,他的前提是要求系统性能处在可
10、以接受的范围内,比如经常规定的页面3秒钟内相应;所以一句话概括就是:在性能可以接受的前提下,测试系统可以支持的最大负载。 性能测试是为了检查系统的反映,运行速度等性能指标,他的前提是要求在一定负载下,如检查一个网站在100人同时在线的情况下的性能指标,每个用户是否都还可以正常的完成操作等。,30,测试需求分析,在整个软件测试生命周期中,制定项目的测试需求和计划阶段是测试项目的关键。在这个阶段,我们需要制定项目的测试需求,从而确定测试项目的范围和目标;我们也需要对项目进行规划,确定项目所需的资源、分配、风险、方法和策略等等,从而让整个项目有序地、高效的、受控地进行。,31,什么是测试需求:,人们
11、在接受了一项任务后,总会先想到或去了解这项任务中我们需要做些什么,软件测试也是如此。在确定要开展一个测试项目后,我们就要开始了解“什么是我们要在该项目中进行测试的”也就是测试需求。,32,在分析和制订测试需求时,我们要考虑的是:,测试范围: 在测试项目中,我们需要进行开发生命周期中各阶段测试(单元测试、集成测试、系统测试和验收测试)的全部还是具体那些阶段。,33,在分析和制订测试需求时,我们要考虑的是:,测试目标: 系统的哪些特性需要被测试以保证这些特性的质量。测试目标往往要根据目标特点进行分解细化,分解到一个可测试的粒度,即具体的特性;如果不经分解细化,笼统、整体或者概括性的特性不利于测试工
12、作的开展。 要测试的系统特性往往包括:功能、性能、可用性、安全性、兼容性.,34,测试需求分析,测试需求主要包括两种类型:功能性需求和非功能性需求,35,功能性需求:,描述了系统的特征或系统提供的服务。主要包括: 系统功能 业务流程 界面功能和风格 系统安装 等,36,非功能性需求:,描述了施加于系统操作上的约束。主要包括: 性能要求 安全性要求 兼容性要求 等,37,测试人员素质,五项优秀测试人员所拥有的重要特征: Controlled(可管理,有条理的)、 Competent(掌握测试技术的)、 Critical(专注于发现问题的)、Comprehensive(注重细节的)、 Consid
13、erate(能够和开发人员很好交流的), 简称为测试人员的5C职业特征。 by Bill Hetzel The Complete Guide to Software Testing, Chapter 11,38,测试人员素质 Cont.,根据5C我们可以对测试人员应该具备的职业素质总结出一下几点: 1. 沟通能力。测试人员必须能够同测试涉及到的所有人进行沟通,具有与技术人员和非技术人员交流的能力。 2. 共同价值观。测试人员必须和每一类人打交道与他们形成共同的价值观,具备这种能力可以将测试人员与相关人员之间的冲突和对抗减少到最低程度。,39,测试人员素质 Cont.,3. 技术能力。开发人员轻
14、视那些不懂技术的人是一种普遍存在的现象,测试人员必须很好的理解被测软件概念,会使用其中的一些重要工具。 4. 自信。测试人员和开发人员的工作性质相反,所以经常出现开发人员指责测试人员工作出现错误的事情。测试人员必须对自己的观点保持足够的自信,如果容许别人对自己的工作结果指东指西,就不能完成更多的事情了。,40,测试人员素质 Cont.,5. 交流。当你告诉某个开发人员的程序出现了错误时,需要用一种婉转且留有余地的商讨口吻和开发人员交流。 6. 记忆。测试人员应该具备将历史类似错误从记忆深处挖掘出来的本领。 7. 耐心。测试工作需要耐心,有时我们需要花费大量的时间去剥离、确认和跟踪一个错误,测试工作是那些坐不住板凳的人无法胜任的。,41,测试人员素质 Cont.,8. 怀疑。这也是测试人员必须具备的基础品德,开发人员本能地掩盖所有已经出现的或者未出现的错误。测试人员在听取了开发人员的说明后,必须保持怀疑态度知道经过自己认真地核实。,42,End Thanks,