软件测试的基本概念一:什么是软件测试.......................................................................................................1二:什么是软件质量.......................................................................................................2三:软件测试与软件质量的区别...................................................................................2四:软件测试的内容.......................................................................................................2五:软件测试的目的.......................................................................................................2六:软件测试的分类(面试问题)...............................................................................2七:黑盒,白盒,灰盒测试概念...................................................................................2八:软件测试模型(面试常问到的问题)...................................................................3V模型...............................................................................................................................3W模型..............................................................................................................................3H模型...............................................................................................................................4X模型...............................................................................................................................5九:软件测试生命周期:...............................................................................................5白盒测试方法...........................................................................................................................5白盒测试具体实施办法...........................................................................................................61:代码检查.....................................................................................................................62:代码走查:.................................................................................................................73:同行评分:.................................................................................................................74:覆盖测试:.................................................................................................................7黑盒测试具体实施办法...........................................................................................................7等价类划分法:...............................................................................................................8边界值分析法:...............................................................................................................8因果图法:.......................................................................................................................9错误推测法:.................................................................................................................10场景分析法:.................................................................................................................11黑盒测试的优缺点.................................................................................................................11一:什么是软件测试软件测试,目前定义混杂,没有统一的标准,但是最经典的定义是:在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估的一个过程。二:什么是软件质量软件质量包括:内部质量,外部质量,使用质量。软件质量:软件满足规定或潜在用户需求的能力。三:软件测试与软件质量的区别质量保证(QA):主要工作是通过预防,检查与改进来保证软件质量。它所关注的是软件质量的检查与测量。着眼软件开发活动中的过程,步骤及产物,而不是对软件进行剖析进而找出问题。软件测试:测试关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。测试人员要“执行”软件,对过程中的产物—开发文档和源代码进行走查,运行,以找出问题,报告质量。测试人员也必须假设软件存在问题,所以所做的操作都是为了找出更多的问题,而不仅仅验证每一件事是正确的。四:软件测试的内容根据测试定义,测试贯穿于整个软件生命周期中。在开发的不同阶段,需要测试不同的内容。包括文档,源代码,数据等。五:软件测试的目的测试的目的,是想以最少的人力,物力和时间找出软件中潜在的各种错误与缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患以及带来的商业风险。(注意这个问题的答案,经常会与软件测试的定义混淆)六:软件测试的分类(面试问题)按开发阶段来分:单元测试,集成测试,系统测试,验收测试。按测试的实施单位来分:开发方测试,用户测试,第三方测试。按测试技术:白盒测试,黑盒测试,灰盒测试。七:黑盒,白盒,灰盒测试概念白盒测试:知道产品内部工作过程,可通过测试来检测产品内部是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都能够按照预定要求正确工作,而不管产品的性能。它包括两种测试方法:静态测试和动态测试。静态测试时不通过执行程序而进行测试的技术,其关键功能是检查软件的表示和描述是否一致,没有冲突或者产生歧义。而动态测试需要软件的执行,当软件系统在模拟的或真实的环境中执行之前,之中,之后,对软件系统行为的分析是动态测试的主要特点。黑盒测试:是一种非常重要的测试策略,又称为功能测试。使用这种测试方法,将程序视为一个黑盒子。测试目标与程序内部机制和结构完全无关,而是将重点集中放在发现程序不按其规范正常运行的环境条件。灰盒测试:结合了白盒与黑盒的要素。关注输出对于输入的正确性,同时也关注内部表现,但不像白盒那样详细,完整,只是表征性的。八:软件测试模型(面试常问到的问题)V模型从这个图,可以直观的观察到测试过程的局限性,它把测试过程放在了需求分析,概要设计,详细设计与编码之后了,容易使人理解测试是软件开发的最后一个阶段,主要针对程序进行测试寻找错误了。而需求分析阶段隐藏的问题只能在最后才能发现。所以,这个图形,不能很好的反应软件测试贯穿整个开发的过程。(笔者个人认为这种图形,比较适合黑盒测试)W模型在V模型的基础上,演化出W模型。用户需求需求分析与系统设计概要设计详细设计验收测试编码单元测试集成测试确认测试与系统测试根据图形,很容易看出,W模型比V模型更科学,它伴随着整个开发过程,而且测试对象不仅仅是程序,同时也测试需求与设计。H模型测试准备测试就绪点测试执行测试流程H模型:测试条件只要成熟,测试准备活动完成了,那么就可以执行测试活动。在H模型中,测试模型是一个独立的过程,贯穿于整个产品周期,与其他流程并发的进行。当某个测试时间点就绪时,软件测试即从测试准备阶段进入测试执行阶段。实施概要设计&集成测试设计详细设计&单元测试设计单元测试集成测试交付详细设计概要设计需求分析与系统设计&验收测试设计其它流程用户需求&验收测试设计&&&&验收测试确认测试与系统测试用户需求需求分析与系统设计编码集成X模型九:软件测试生命周期:软件测试生命周期一般包括7个阶段:1)计划2)分析,3)设计,4)构建,5)测试周期,6)最后测试和实施,7)实施后。白盒测试方法白盒测试方法包括动态和静态。静态包括:代码检查,静态结构分析,代码质量度量等。代码检查又包括:代码走查,桌面检查,代码审查。代码走查与检查都要求一个小组的人员来阅读或直观检查特定的程序。经常采用头脑风暴.注意一点:头脑风暴,是测试,非调试。头脑风暴的程序:1:准备阶段确立问题,提前一周通知给参加人员,一遍又独立思考的时间。2:头脑风暴主持人简明介绍讨论问题的内容,扼要介绍各种系统的设想和方案,然后激发参加者踊跃程序片段1测试设计工具配置执行测试工具配置测试设计程序片段n工具配置测试设计执行测试集成1……n执行测试编码完成探索性测试执行测试封板发言,一些有价值的设想,往往可以经过“思维共振”的“