您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 软件测试技术-4概述
康玲软件测试的定义软件测试的目的软件测试的关键问题思考:软件测试是否以发现错误为唯一目的?软件测试过程模型软件测试的原则软件测试的分类零售店里的服装模特是一个模型会计的公式:资产=债务+所有者权益也是一个模型模型是对现实的抽象概括,对某些真实事件的简化表征。测试与开发紧密结合,在测试模型中把开发过程进行很好的总结,体现测试与开发的融合。V模型W模型H模型V模型:20世纪80年代后期,PaulRook提出了著名的软件测试的V模型,是瀑布模型的变种,它反映了测试活动与分析和设计的关系,非常明确的表明了测试过程中存在的不同级别,以及各测试阶段与开发过程中的各阶段的对应关系.6V模型V模型的软件测试策略既包括低层测试又包括高层测试,低层测试是为了源代码的正确性,高层测试是为了使整个系统满足用户的需求。用户需求验收测试确认测试与系统测试集成测试单元测试编码详细设计概要设计需求分析与系统设计V模型V模型指出:单元测试和集成测试应检测程序的执行是否满足软件设计的要求;分别依据详细设计和概要设计说明书。系统测试应检测系统功能,性能的质量特性是否达到系统要求的指标;依据需求分析说明书验收测试确定软件的实现是否满足用户需要或合同的要求.缺陷仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段.忽视了测试对需求分析,系统设计的验证,需求阶段的问题一直到后期的验收测试才能被发现。8V模型Evolutif公司提出了W模型的概念,在V模型中增加了软件各开发阶段中应同步进行的验证和确认活动,明确了测试与开发的并行性.基于“尽早地和不断地进行软件测试”的原则.10W模型用户需求详细设计单元测试设计概要设计集成测试设计需求分析与系统设计确认与系统测试设计用户需求验收测试设计集成实施交付验收测试确认测试与系统测试集成测试单元测试编码详细设计概要设计需求分析与系统设计W模型指出:测试伴随着整个软件开发周期测试的对象不仅仅是程序,需求、设计和功能同样要测试.根据W模型的要求,一旦有文档提供,就要及时确定测试的条件、编写测试用例.缺陷在W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,只有上一阶段完全结束,才可正式开始下一个阶段工作。无法支持迭代、自发性以及变更调整。W模型13测试就绪点测试流程其他流程(如设计流程)测试准备测试执行H模型这个示意图仅仅演示了在整个生产周期中某个层次上的一次测试“微循环”。将测试活动完全独立出来,形成一个完全独立的流程,图中的其他流程可以是任意开发流程。软件测试不仅仅指测试的执行,还包括很多其他的活动。软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发的进行。软件测试要尽早准备,尽早执行。强调测试是独立的,只要测试准备完成,就可以执行测试14H模型实际工作中,灵活运用各种模型的优点,在W模型的框架下,运用H模型的思想进行独立的测试,并同时将测试和开发紧密结合,寻找恰当的就绪点开始测试并反复迭代测试,最终保证按期完成预定目标。16eg:测试windows计算器程序原因:输入量太大输出结果太多软件执行路径太多软件说明书是主观的,没有客观标准。从不同角度看,软件缺陷的标准不同。1)完全测试是不可能的SoftwareTestingisaRisk-BasedExercise如果不完全测试所有情况,那就是选择了冒险Nottotesteverypossibletestscenario,Customerwilleventuallyfinditsomeday.矛盾:Testingvs.ReleasedeadlineStoptestingvs.Costlybug关键测试要点:把数量巨大的可能测试减少到可以控制的范围针对风险做出明智的选择,哪些测试重要,哪些不重要2)软件测试是有风险的活动软件缺陷故障数量测试量测试不足测试费用优化测试量测试过量遗漏软件缺陷数目测试工作量与软件缺陷数量之间的关系软件测试员可以报告软件缺陷存在,却不能报告软件缺陷不存在.可以进行测试,发现并报告软件缺陷,但是任何情况下都不能保证软件缺陷不存在.Whatcanyoudo?!唯一的方法:继续测试,找到更多的缺陷3)测试无法显示潜伏的缺陷软件缺陷的群集现象发现一个,附近就可能有一群缺陷一个接一个可能的原因:程序员也有心情不好的时候程序员往往犯同样的错误有些软件故障可能是冰山一角4)软件缺陷的群集现象第一个含义:80%的软件缺陷常常生存在软件20%的空间里。这一原则对于软件测试人员提高测试效率及缺陷发现率有着重大的意义。第二个含义:在系统分析、系统设计、系统实现阶段的复审,测试工作能发现和避免80%的软件缺陷,此后的系统测试能够帮助我们找出剩余缺陷中的80%,最后的5%的软件缺陷可能只有在系统交付使用后,用户经过大范围、长时间使用后才会曝露出来。第三个含义:实践证明80%的软件缺陷可以借助人工测试发现,20%的软件缺陷可以借助自动化测试能够得以发现。由于这二者间具有交叉的部分,因此尚有5%左右的软件缺陷需要通过其他方式进行发现和修正。5)软件测试的80-20原则农药—害虫软件测试越多,对测试的免疫力越强,寻找更多软件缺陷就更加困难.克服办法:在软件测试中采用单一的方法不能高效和完全的针对所有软件缺陷,因此软件测试应该尽可能的多采用多种途径进行测试.6)杀虫剂现象虽然测试员尽了最大的努力,但并非找到的所有软件缺陷都会被修复。并非意味着软件测试员没有达到目的.造成软件缺陷不能修复的原因:时间不够不算真正的软件缺陷修复的风险太大不值得修复(商业风险决策)7)并非所有的软件缺陷都能修复Why?程序员从来不会承认自己写的程序有错误程序员的测试思路有明显的局限性多数程序员没有经过严格正规的职业训练,常忽视测试程序员无良好的BUG跟踪和回归测试的习惯8)程序员应避免检查自己的程序假如周一测试软件的某一功能,每小时发现一个新的软件缺陷,你认为周二将会以什么频率发现软件缺陷?准确VS精确既不准确又不精确精确但不准确准确但不精确既准确又精确1.调试和测试是一样的2.软件测试对象就是程序3.软件测试是测试人员的事情,与开发人员无关4.好的软件质量是通过测试得到的5.把不合格的开发人员安排做测试6.关注于测试的执行而忽略测试的设计7.测试自动化是万能的8.测试是为了证明软件的正确性单元测试:模块测试,检查每个程序单元是否正确实现详细设计说明中的模块功能等。集成测试:组装测试,将所有的程序模块进行有序,递增的测试,检验程序单元或部件的接口关系。系统测试:在真实或模拟系统运行的环境下检查完整的程序系统能否和系统(包括硬件、外设和网络、系统软件、支持平台等)正确配置、连接,并满足用户需求。验收测试:按照项目任务或合同,供需双方签订的验收依据文档进行的对整个系统的测试与评审,决定是否接受或拒收系统。按照测试阶段划分白盒测试:通过对程序内部结构的分析、检测来寻找问题。检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。--结构测试黑盒测试:通过软件的外部表现来发现错误,是在程序界面处进行测试,只是检查是否按照需求规格说明书的规定正常实现。--功能测试灰盒测试:介于白盒测试与黑盒测试之间的测试,关注输出对输入的正确性;同时,也关注内部表现,不像白盒那样详细,只是通过一些表征性现象,事件,标志来判断内部的运行状态。按照测试技术划分开发方测试:验证测试或α测试,开发方通过检测和提供客观证据,证实软件的实现是否满足规定的需求;在开发环境下,开发方对提交的软件进行全面的自我检查。用户测试:在用户的应用环境中,用户通过运行软件,检测软件实现是否符合自己预期的要求,不是指用户的”验收测试”,而是指用户的使用性测试。第三方测试:介于软件开发方和用户方之间的测试组织的测试,也成为独立测试。一般情况下是在模拟用户真实应用环境下,进行软件确认测试。按照测试实施组织划分
本文标题:软件测试技术-4概述
链接地址:https://www.777doc.com/doc-1991578 .html