当前位置:文档之家› 软件测试基础(一)(软件测试)

软件测试基础(一)(软件测试)

软件测试基础(一)东软IT人才实训中心3 Sept. 2008© Neusoft Confidential 1职业现状现状•随着中国软件业的迅猛发展,软件产品的质量控制与质量管理正逐渐成为企业生存与发展的核心。

为了保证软件在出厂时的“健康状态”,几乎所有的IT企业在软件产品发布前都需要大量的质量控制工作。

作为软件质量控制中的重要一环,软件测试工程师应运而生。

•国内软件业因对软件质量控制的重要作用认识较晚,尚未形成系统化的软件测试人才需求供应链,造成了目前企业欲招纳软件测试人才却“千金难求”的尴尬局面。

23软件测试的职业优势①岗位需求巨大②岗位人才供给少③多元化发展④无性别歧视4软件测试工程师的素质不能仅仅从使用者的角度来测试软件产品而(1)技术能力•作为名测试工程师且还要从技术的角度来设计测试用例,这里所说的技术包括基础的与专业的。

•基础方面应学习以下的课程:软件工程数据结构、–编程语言数据库理论计算机网络技术计算机原理等;•专业方面应掌握:–软件测试基础、测试设计、测试工具、软件质量管理、一门或多门外语等等。

5软件测试工程师的素质有时候也会从程序结构的角(2)具有一定的编程经验;•测试工程师有时候需要对源码进行检查度来测试软件,有时候需要写一些自动测试的工具软件,有时候需要写测试脚本会写简单代码能读懂源码对测试人员来说是必须的,而且如果有一定的编程经验,可以帮助你对软件开发过程有较深入的。

理解从编程人员的角度来正确地评价6(3)沟通能力;•测试人员需要与很多人员进行沟通,项目经理、开发人员、客户、市场人员等都是测试人员经常吵架的对象,而且在面对不同人员,你需要不同的语气、不同的态度,与客户要谈得来,处处为客户着想,客户就是上帝,与上帝说话要和颜悦色,与开发人员交往就需要技巧了,测试人员与开发人员往往是不共戴天的,双方在心理上经常较劲,因此在说话的语气或讲述一个问题的出发点时特别要注意了。

7(4)要有严谨、敢于承担责任、稳重的做事风格;•思惟严密,什么问题都要考虑到,当然除了做事认真仔细,也要有承或大或小的错误在所难免担责任的勇气,在漫长的项目实施过程中,或大或小的错误在所难免,要敢于承认错误。

8软件测试工程师的素质;(5)具有怀疑与破坏的精神•测试人员不能总是以常规的思路来测试软件,要设计一些非常规的、相反的测试用例来不断地折磨软件产品,要破坏性地测试,并且不要停止你的怀疑。

9(6)善于自我总结、自我督促;•应该说软件测试是一种即繁琐又枯燥无味的工作,做多了你会觉得似乎一成不变,对自已的能力没有提高,这时候就需要你作自我督促, 并经常作一些阶段性的总结,新的技术新的方法新的工具层出不穷,要让自已跟上技术发展的脚步,善于将新技术新方法新工具应用到测试工作当中。

10(7)耐心和细心•保持心态的平和,切忌不可烦躁(8)团队合作•多参加团队活动提高自己的团队作战能力11什么是软件测试•软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现输出结果)并利用这些测试用例去行程序以发程序错误的过程。

•软件测试不等于程序测试。

软件测试应贯穿于软件定义与开发的整个过程。

•需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。

12什么是Bug•1996年6月4日,Ariane5发射40秒后爆炸•原因:将一个64位浮点值转换为16位有符号整数值时,超出了16位整数的表示范围,而这个异常未得到正确解决•1999年12月3日, 美国航天局火星极地登陆飞船失踪。

•••原因种单位。

神舟测试用例: 地面系统软件和飞行器上软件分别使用公制和英制两七号:3万多,确保稳定,基本消除缺陷13软件缺陷的定义•软件缺陷,常常又被叫做Bug ,是计算机软件或程序中存在的某种破•坏正常运行能力的问题、错误,或者隐藏的功能缺陷。

缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。

缺陷的类型:–软件未达到产品说明书标明的功能–软件出现产品说明书指明不会出现的错误–软件功能超出产品说明书指明的范围–软件没有实现虽然产品规格说明没有明确提及但应该实现的目标–软件测试人员或用户认为软件难以理解,不易使用,运行速度缓慢等问题。

14软件缺陷的级别•一旦发现软件缺陷,就要设法找到引起这个缺陷的原因,分析对产品质量的影响然后确定软件缺陷的严重性和处理这个缺陷的优先级后果是不一样的,有的仅仅是不方便,有的可能是灾难性的。

一般问题越严重,其处理优先级就越高可以概括为以下四种级别:–微小的(Minor )。

一些小问题,如有个别错别字、文字排版不整齐等,对功能几乎没有影响,软件产品仍可使用。

–一般的(Major )。

不太严重的错误,如次要功能模块部分丧失、提示信息不够准确、用户界面差和操作时间长等。

–严重的(Critical )。

严重错误,指功能模块或特性没有实现,主要功能部分丧失,次要功能全部丧失。

–致命的(Fatal )致命的错误造成系统崩溃主要功能完全丧失等。

机各种缺陷所造成的或造成数据丢失、15软件缺陷的状态•发现了软件缺陷之后,还需要反映软件缺陷处于一种什么样的状态便时踪和管–激活状态(Open ):问题没有解决,测试人员新报告的缺陷或者验证后缺陷仍旧存在。

–已修正状态(Fixed ):开发人员针对缺陷,修正软件后已解决问题或通过单元测试。

–关闭状态(Close ):测试人员经过验证后,确认缺陷不存在之后的状态。

–还有一些是需要相应的状态描述如―遗留‖―非错‖状态等。

的软件缺陷状态非错。

16软件开发与测试的关系17软件测试的发展,―评价一个程序和系统的特性或能力,并•70年代:Bill.Hetzel确定它是否达到预期的结果。

软件测试就是以此为目的的任何行为。

‖核心观点是:测试是验证软件是―工作的‖,以正向思维,针对软件系统的所有功能点,逐个验证其正确性。

这就是软件测试的第一类方法。

18软件测试的发展Glenford.Myers :测试不应着眼于验证•软件测试的第二类方法:软件是工作的,应该认定软件是有错误的,然后用逆向思维去发个程序或者现尽可能多的错误。

―测试是为发现错误而执行的一个程序或者系统的过程。

‖核心观点是:测试是为了证明程序有错,而不是证明程序无错误;一个成功的测试是发现了至今未发现的错误的测试;19软件测试的发展测试的角度就不同基于不同的立场①从用户的角度出发,希望通过软件测试暴露软件中隐藏的错误和缺陷以考虑是否可接受该产品。

②从软件开发者的角度出发,希望测试表明软件中不存在错误,验证该软件已正确地实现了用户的要求确立对软件质量的信心。

20测试的目标•最终目的是确保软件的功能符合用户的需求,把尽可能多的问题在发布或交付前发现并改正–确保软件完成了它所承诺或公布的功能–确保软件满足性能的要求–确保软件是健壮的和适应用户环境的21•软件质量质量是反映–从客户的角度•满足要求•适用–从生产者的角度个产品或服务满足明确和隐含需要的能力的程度•以最经济的手段制造出市场上最有用的产品22质量特性因子重用移植可维 护性功能软件质量因子可靠性安全性能可用23有容错性,如果软件意外退出,重新启动后可以恢复最近的软件数据应可靠性是重要的指标软件全性非常重要2425软件测试的分类•••••按照开发阶段划分按照测试方法划分按照测试技术划分按照测试实施的组织划分按被软件行划分26•按照开发阶段划分单元测试:模块测试,检查每个程序单元是否正确实现详细设计说明中的模块功能。

•集成测试:组装测试,将所有的程序模块进行有序、递增的测试,•检验程序单元或部件的接口关系。

系统测试:检查完整的程序系统能否和系统(包括硬件、外设和网络、系统软件、支持平台等)正确配置、连接,并满足用户需求。

•确认测试:证实软件是否满足特定于其用途的需求,是否满足软件•需求说明书的规定。

验收测试:按照项目任务或合同,供需双方签订的验收依据文档进行的对整个系统的测试与评审,决定是否接受或拒收系统。

27•按照测试方法划分黑盒测试:通过软件的外部表现来发现错误,是在程序界面处进行测试,只是检查是否按照需求规格说明书的规定正常实现。

通常是在集成测试阶段进行。

•白盒测试:通过对程序内部结构的分析、检测来寻找问题。

检查是否所有的结构及逻辑都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。

通常是在单元测试阶段进行。

28•按照测试实施组织划分开发方测试:开发方通过检测和提供客观证据,证实软件的实现是否满足规定的需求,在开发环境下,开发方对提交的软件进行全面的自我检查。

•用户测试:在用户的应用环境中,用户通过运行软件,检测软件实•现是否符合自己预期的要求,这里指用户的使用性测试。

第三方测试:介于软件开发方和用户方之间的测试组织的测试。

29按照软件是否运行划分•静态测试:不实际运行软件,发挥人的逻辑思维优势, 主要对软件代•码的逻辑、程序结构等方面进行评估。

动态测试:实际运行软件。

30按照测试技术划分••••••••功能测试性能测试可靠性测试易用性测试兼容性测试安全性测试安装与反安装测试用户文档测试31课堂讨论•微软的面试题纸杯测试面试官让应聘者在规定的时间内说出测试策略。

32(1) 功能测试是否达到设计标准。

硬度装载能力:分别装入少量、半杯、满杯,看其装载量是否达到设计标准。

装载种类:开水、冰水、温水……装入液体后是否会漏水(2) 界面测试外观是否吸引人。

广告图案是否掉色、模糊,是否具有适用性。

(3) 易用测试形状、大小是否便于拿起。

杯子设计是否上大下小,在运输过程中可以套在一起有效利用空间,在使用时也容易拿开(4) 安全性测试杯子所用材料是否符合食品卫生标准。

(5 )性能测试/寿命/ 广告漆的耐久度温度/ 杯质的抗压力33软件测试过程模型•V模型•W模型34试35V模型•V模型反映了测试活动与分析和设计的关系,明确的标明了测试过程中存在的不同级别,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系。

•缺点:仅把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段,容易使人理解为测试是软件开发的最后一个阶段,主要是针对程序进行测试寻找错误,而需求分析阶段隐藏的问题一直到后期的验收测试才被发现。

3637•W模型W 模型强调:测试伴随着整个软件开发周期,而且测试的对象不仅是程序,需求和设计同样需要测试。

这样,只要相应的开发活动完成,就可以开始执行测试,即尽早地发现问题。

测试与开发是同步的,有利于•缺点:W 模型和V 模型都把软件的开发视为需求、设计、编码等一系列串行的活动。

相关主题