软件测试基础知识总结
一、什么是软件测试?
1979年,myer:软件测试就是为了发现错误而执行程序或系统的过程。
1983年,IEEE:软件测试即使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。二、现代软件测试活动的内容?
制定测试计划、设计测试用例、实施测试、提交缺陷报告、测试总结三、软件测试的目的?
GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中的观点:1、测试是程序的执行过程,目的在于发现错误2、一个成功的测试用例在于发现至今未发现的错误3、一个成功的测试是发现了至今未发现的错误的测试
简单的说,测试的根本目的就是确保最终交给用户的产品符合用户的需求,在产品交给用户之前尽可能多的发现并改正问题。四、测试一般要达到的目标?
确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明;
确保产品满足性能和效率的要求;确保产品是健壮的和适应用户环境的。五、软件测试分类?1、按测试策略分类:a静态测试与动态测试
静态测试
定义:不运行被测程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。Ps:通过分析或检查源程序的文法、结构、过程、接口等来检验程序的正确性,找出缺陷和可疑之处,例如不匹配的参数、不适当的分支嵌套和循环嵌套、未使用过的变量、空指针的引用等;可采用人工和软件工具进行;静态测试工具的代表:telelogic公司的logiscope软件、PR公司的PRQA软件等。
静态测试特点:
不必动态地运行程序,也不必进行测试用例设计和结果判断等工作;可由人工进行,充分发挥人得逻辑思维优势;不需要特别的条件,容易展开。
静态测试要点:
代码审查(codeinspection或codereview)、代码走查(walkthrough)、桌面检查、技术评审(软件需求分析和设计评审)、静态分析(使用软件工具,包括控制流分析、数据流分析、接口分析和表达式分析)
动态测试
定义:实际运行被测程序,输入相应的测试实例,检查运行结果和预期结果的差异,判断执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。
组成:构造测试实例、根据测试实例运行程序、分析程序的输出结果。主要方法:黑盒测试和白盒测试。动态测试特点:
实际运行被测试程序,取得程序运行的真实情况、动态情况,并进行分析;必须生成测试数据来运行程序,测试质量依赖于测试数据;生成测试数据、分析测试结果工作量大,使开展测试工作费时、费力、费人;
动态测试中涉及多方面工作,人员多、设备多、数据多,要求有较好的管理和工作规程。
b黑盒测试和白盒测试
黑盒测试(black-boxtesting)又称功能测试、数据驱动测试、基于规格说明书的测试。定义:测试者把被测程序看成一个黑盒,不考虑程序的内部结构和特性,只需知道该程序输入和输出之间的关系和程序功能,依靠能够反映这一关系和程序功能的需求规格说明书,来确定测试用例和推断测试结果的正确性。
白盒测试(white-boxtesting)又称结构测试、逻辑驱动测试、基于程序本身的测试。定义:从程序的内部逻辑结构入手,按照一定的原则设计测试用例,对软件的逻辑路径进行测试,在程序的不同点检查程序的状态,来判定其实际情况是否和预期的状态一致。规划方面适用范围优势缺陷黑盒测试针对功能的测试进行确认测试和系统测试时使用能确保从用户使用的角度出发进行测试无法测试程序内部特定部位;如果需求说明有误,则无法发现问题等价类划分(将所有可能的输入数据划分为若干等价类,选择有代表性的当做测试用例进行测试);边界值分析法(对输入或输出的边界值进行测试);因果图法(利用图解法分析输入的各种组合的情况,从而设计测试用例的方法。“因”即输入条件,“果”即输出或程序状态的改变);比较测试法白盒测试针对结构的测试进行单元测试时使用能够对程序内部的特定部位进行覆盖测试无法检验程序的外部特性;无法对未实现规格说明的程序内部欠缺部分进行测试语句覆盖(程序中每条语句至少被执行一次);判断覆盖(或分支覆盖,程序中每个分支至少走查过一次);条件覆盖(判定式中若含多个条件,则每个条件的取值均要得到检验);判断/条件覆盖(同时考虑条件的组合值及判定结果的检验);基本路径的覆盖(使程序沿所有可能的路径执行);循环覆盖;模块接口测试应用举例C手工测试与自动测试
手工测试定义:由测试人员来执行测试用例,然后根据实际的结果去和预期的结果相比较并记录测试结果。手工测试时现在多数公司使用的测试形式。
自动测试
定义:引入自动测试工具。
通常以手工测试为主,自动测试为辅。d冒烟测试(smoketest):在版本投入正式测试前,对其重要的步伐先进行大概的测试,看系统重要的功能是否正确,再进行彻底的测试。e回归测试(regressiontest):一段时间以后对以前修复过的缺陷重新进行测试,看该缺陷是否会重新出现。2、按测试阶段分类
单元测试又称模块测试定义:针对每一个程序模块进行正确性检验,检查各个程序模块是否正确的实现了规定的功能。如一个窗口、函数、菜单、报表或一个存储过程。
依据是详细设计,应对所有重要的控制路径设计测试用例。集成测试又称综合测试。定义:在单元测试的基础上,将已经通过测试的单元模块按照设计要求组装成系统或子系统,再进行的测试。
系统测试定义:是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行全面的功能覆盖。
单元测试集成测试确认测试(有效性测试、软件配置审查)系统测试验收测试(以用户为主)测试类型单元测试对象模块内部的程序错误模块间的集成和调用关系目的清除局部模块的逻辑和功能上的错误和缺陷找出与软件设计相关的程序结构,模块调用关系,模块间接口方面的问题测试依据测试方法模块逻辑设计,大量采用白盒测模块外部说明试方法程序结构设计白盒与黑盒相结合的测试方法,较多用黑盒方法构造测试用例集成测试系统测试整个系统,包括系统中的软、硬件对整个系统进行一系系统结构设计,黑盒测试列的整体、有效性测试目标说明书,需求说明书3、其他常见测试方法
功能测试(functiongtesting)又称正确性测试,软件的功能是否符合规格说明;
性能测试(performancetesting),系统是否满足需求说明书中规定的性能,通常使用自动化测试工具;
压力测试(stresstesting):检查系统在瞬间峰值负荷下正确执行的能力,通常用测试工具测试;
负载测试(volumetesting):用于检查系统在使用大量数据时正确工作的能力;易用性测试(usabilitytesting):合理性、方便性;安装测试(installationtesting):对软件的全部、部分或升级安装/卸载处理过程的测试;界面测试:包括窗口测试、下拉式菜单和鼠标操作、数据项测试;配置测试(configurationtesting):主要检查计算机系统内各个设备或各种资源之间的相互连接和功能分配中的错误。包括验证全部配置命令的可操作性,软件配置,硬件配置,利用手动或自动方式惊喜配置状态间的转换;
文档测试(documentationtesting):文档的正确性、完备性、可理解性;兼容性测试(compatibilitytesting):产品在不同产品之间的兼容性;安全性测试(securitytesting):非法侵入的防范能力,已存在的安全性、保密性,有无漏洞;
恢复测试(recoverytesting):容错能力,在指定的时间内修正错误并恢复正常,又不伤害系统。
六:软件的开发周期(软件生命周期)和模型?瀑布模型:
计划需求分析设计编码测试运行、维护
严格按照固定顺序,每个阶段结束,经过项目小组审查,决定是否进入下一步。
螺旋模型:确定目标、可选方案和现在条件指出并解决风险评估方案本阶段开发和测试计划下一阶段确定进入下一阶段的方法(该过程重复进行)螺旋模型是瀑布模型的发展,较常用。七、软件测试生命周期?
制定测试计划测试设计和开发实施软件测试评审版本发布八、什么是软件的缺陷(bug)?
定义:在软件使用过程中所出现的任何问题,或者导致软件不能符合设计要求或满足消费者需求的问题。包括程序错误等等。九、书写缺陷报告的准则?
保证重现缺陷;分析故障,使用最少步骤重现缺陷;包含所有重现缺陷的必要步骤;方便阅读(编号,分步骤);尽量简单(一个缺陷一个报告);注意语气。
识别和判断缺陷的辅助工具:软件需求说明书、用户手册、联机帮助。十、bug的生命周期?有效地记录BUG;
使用BUG模板;
评价BUG优先级和严重性;BUG的生命;
维护BUG数据库。十一、bug的类型?
软件没有实现产品规格说明所要求的功能模块;
软件中出现了产品规格说明指明不应该出现的错误;软件实现了产品规格说明没有提到的功能模块;
软件没有实现虽然产品规格说明没有明确提及但应该实现的目标;
软件难以理解,不容易使用,运行缓慢,或从测试员的角度看,最终用户会认为不好。功能缺陷:规格说明书、能功、测试
系统缺陷:内部接口、硬件、操作系统、软件结构、控制与顺序、资源加工缺陷:算术、初始化、控制与次序、静态逻辑、其他数据缺陷:类型、结构、初始值、其他代码缺陷:程序编写、文档、其他十二、bug中通常包含的内容????
硬件平台和操作系统版本
Bug报告优先级Bug状态
报告人reporter
指定处理人assignedto概述summary
邮件抄送列表CClist从属关系(bug“ID”dependson,bug“ID”block)附加描述additionalcomments十三、bug中的优先级的定义?
优先级表示修复缺陷的重要程度和应该何时修复:1应立即修复的问题
2在产品发布之前必须修复的问题3如果时间允许应该修复的问题4可以在发布版本中存在的问题
缺陷的二八定理:一般情况下,在分析、设计、实现阶段的复查和测试工作能够发现和避免80%的缺陷,而系统测试又能找到剩余缺陷的80%,最后的4%的缺陷可能只有在用户大范围、长时间使用后才会暴露出来。十四、什么是测试用例?
定义:指为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。换句话说,测试用例就是记下要进行什么测试,进行测试的具体步骤,以及测试执行是否正确的标准。
测试用例控制软件测试的执行过程。十五、测试用例包含的内容?
项目名称:指明本测试用例是用例测试什么软件项目的功能模块名:指明要测试的内容
测试目的:描述被测试功能的详细的特性及要测试的目标预置条件:执行测试用例之前所做的操作,如启动程序等用例编号:唯一编号
相关用例:列出必须先于本测试用例执行的测试用例用例说明:描述实现用例的步骤
输入数据:描述测试用例所需的输入数据或条件预期结果:输入后应该输出的结果
测试结果:此项在测试执行时填写,说明测试用例是否通过,如果不通过,就要生成缺陷报告,并注明缺陷的编号,这里的缺陷编号要与缺陷跟踪系统中的编号一致。十六、设计测试用例的方法?
1等价类划分法
定义:测试人员要对需求规格说明书中的各项需求,尤其是功能需求进行细致分析,然后把程序的输入域划分为若干个部分,从每个部分中选取少数代表性数据作为测试用例。经过这种划分后,每一类的代表性数据在测试中的作用都等价于这一类中的其他值。
等价类划分法是一种最典型的黑盒测试法。
步骤:在进行等价类划分之前,首先从程序的功能说明中找出各个输入条件,然后为每个输入条件划分两个或更多个等价类。确定了等价类划分后,给出相应的等价类表,再根据等价类表给出测试用例。
要同时考虑有效等价类和无效等价类。2边界值方法
定义:对输入和输出的边界值进行测试的黑盒测试方法。
确定边界值:选取正好等于、刚刚大于、刚刚小于边界的值作为测试数据,即中的测试最后一个肯定合法的数据和刚刚超过边界的非法数据。
边界值法是等价类划分方法的补充。3因果图定义:考虑输入条件之间的联系、相互组合。步骤:
分析软件需求说明的描述中的原因(即输入条件或输入条件的等价类)、结果(即输出条件),并给每个原因和结果附一个标识符;
分析因果关系,画因果图???
对于不可能出现的组合情况,做出记号表明约束或限制条件;因果图转化成判定表;
把判定表的每一列作为依据,设计测试用例。4其他方法
通过测试和失败测试错误猜测随机测试
十七、测试用例中优先级的定义?
1小版本确认测试(buildverificationtests,BVTs):也叫“冒烟测试”,开发人员在个人版本的软件上执行目前的冒烟测试项目,确定新的程序代码不出故障。
2高(highs):最常执行以保障功能性是稳定的,目标的行为和能力可以正常的工作,和重要的错误和边界被测试的测试用例的集合。
3中(mediums)是使给出的功能区域或功能变得更详细,检查功能的多数方面包括边界,错误和配置测试的测试用例。
4低(lows):通常最少被执行的测试用例。在项目的生命期间里不是常常被运行,如GUI,错误信息,可用性,压力和性能测试。
十八、什么是测试计划,测试计划中通常包含什么内容?
定义:软件测试计划指在软件测试工作正式实施之前明确测试的对象,并且通过对资源、时间、风险、测试范围和预算等方面的综合分析和规划,保障有效地实施软件测试。
内容:
测试计划的简介测试项目说明
需要测试的项目清单测试手段和策略
项目通过或失败的标准暂停和重新启动测试的标准测试的可交付性测试任务环境的需求职责
人员和培训需求进度表
风险及偶然事故的预测
扩展阅读:软件测试基础知识阶段总结
软件测试基础总结
学了两周的软件基础知识,这期间基本上是以自己看为主,TC帮我们解决其中遇到的问题为辅,让我在了解软件工程的基础上进一步深入的了解到软件测试在软件工程中的重要地位,先将所收获到的知识概括如下:
一、软件测试的概念和目标软件测试在整个软件工程中的地位:
软件测试的概念:
软件测试是为了发现错误而执行的过程或者说软件测试是根据软件开发各阶段的规格说明和程序的内部结构二精心设计一批测试用例并利用这些测试用例去运行程序以发现程序错误的过程
软件测试的目标:
a.测试是为了发现程序中的错误而执行程序的过程
b.好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案c.成功的测试是发现了至今为止尚未发现的错误的测试重点强调:
软件测试人员应具备的素质:
a.基本要求:责任、奉献、专注、专业
b.注意学习,不断提高自己的计算机知识修养,理解网络系统、Internet/Intranet系统和大型数据库系统的基本概念c.工作认真,一丝不苟,精益求精。
d.力求系统的正确性、完整性、合理性、稳定性
软件测试人员知识结构的组成:
a.产品知识:对于你所测试的产品,你一定要非常熟悉。小到你所测试的模块,大到整个产品的架构,内部实现,代码,等等。
b.测试知识:黑盒测试,白盒测试,手工测试,自动化测试,性能测试,安全测试等等。c.开发知识:编程,数据结构,算法,调试等等。
d.专业知识:以上2,3是基本的知识,你还应该精通一些你从事的更专的技术知识。比如,如果你的产品是基于.net的,你应该精通.net,或者类似的J2ee等
e.领域知识:你应该精通你所工作的领域的知识,比如手机领域,数据库领域等等。f.行业知识:你要对计算机行业的整体状态,新技术,动态,发展趋势有一个明确认识。要记住,你首先是一个计算机人才,其次是一个软件人才,再次是一个测试人才,最后你才是一个SQAA,SQAE,STE,SDET等等。要想做一个高级测试人才,这一条线的知识都需要掌握。
二、软件测试方法分类软件测试的主要流程
分析测试的需求→制定测试计划→设计测试方案→编写测试用例→执行测试用例→验收测试→书写测试报告重点强调:
软件测试方法和分类----按开发阶段分
a.单元测试b.集成测试c.确认测试d.系统测试e.验收测试
软件测试方法和分类----按测试技术分
a.白盒测试b.灰盒测试c.黑盒测试d.静态测试e.动态测试
软件测试方法和分类----按测试实施组分
a.开发方测试(α测试)b.用户测试(β测试)c.第三方测试
三、测试用例的设计方法
我们现在做的都是功能测试,用例设计的主要方法包括等价类划分法、边界值分析法、错误推测法和场景分析法重点强调:等价类划分法
a.等价类划分法是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误;反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误。b.单个用例中应覆盖尽可能多的有效等价类c.单个用例只能覆盖一个无效等价类确定等价类划分法的原则
a.在输入条件规定了输入值的集合或者规定了”必须如何”的条件的情况下,可以确定一个有效等价类和一个无效等价类
b.在输入条件规定了输入值的集合或者规定了”必须如何”的条件的情况下,可以确定一个有效等价类和一个无效等价类
c.在输入条件是一个布尔量的情况下,可以确定一个有效等价类和一个无效等价类d.在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确定n个有效等价类和一个无效等价类
e.在规定了输入数据必须遵守规则的情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
f.在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类
边界值分析法
a.人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况测试,可以查出更多的错误b.空值是一种特殊的边界值,常常被人遗忘
边界值选择原则
a.如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据
b.将前面的两条规则应用于输出条件,即设计测试用例使输出值达到边界及其左右的值c.如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例
四、Linux操作命令
Linux的概念:Linux是一种自由和开放源码的类Unix操作系统重点强调
用户的创建与删除
a.用户的创建:useradd-g组名-d/home/用户名-s/bin/bash用户名b.用户的删除:userdelr用户名文件的属性与权限的修改a.chgrp:改变档案所属群组b.chown:改变档案拥有者
c.chmod:改变档案的权限例如:chmod777文件名目录管理
a.cd(变换目录)b.mkdir(创建目录)c.touch(建立一个文件)
a.cp(复制档案或目录)
b.mv(移动档案与目录,或更名)c.rm(移除档案或目录)d.rmdir(删除空的目录)文件或目录的压缩与打包
a.tarcvfname.tarname压缩b.tarxvfname.tar解压c.tartvfname.tar查询
VI编辑命令(一般模式、编辑模式与指令列命令模式)a.删除文本内容(退出编辑状态按x键)
b.复制文本内容(nyy复制以下几行内容再+p)c.粘贴文本内容(+p)d.搜寻和取代文本内容
/word:向光标之下寻找一个名称为word的字符串?word:向光标之上寻找一个名称为word的字符串
:n1,n2s/word1/word2/g在第n1与n2行之间将word1这个字符串取代为word2:1,$s/word1/word2/g这个指令用于在整个文件中替换特定字符串e.退出编辑模式(q!强制退出不保存、wq保存并退出文本编辑模式)
五、熟悉mCommerce项目
网上购物平台主要角色用户、供应商、系统管理员重点强调
用户、供应商、系统管理员与mCommerce购物平台之间的关系.
用户主要浏览前台页面可以购物,供应商管理系统管理员可以管理后台的商品信息的增删查改,系统管理员又可以管理供应商的各种操作掌握mCommerce购物系统里各个功能.找出mCommerce购物系统里存在的Bug.
六、个人总结(提出近阶段个人学习总结以及遇到问题)
个人学习总结:a.两周的测试基础知识学习掌握了一些测试的基础知识和方法。例如等价类划分法从而设计出测试用例,还有边界值分析法,和一些linuxde简单文件操作命令。
b.在这个学习的过程中,我发现很多东西都需要自己去钻研,去和同事交流从而找到解决的办法,不会的问题光靠自己一个人琢磨是远远不够的。需要和同事及同学交流和沟通,通过讨论会大家一起研商找出解决办法对自己的帮助很好。
c.每天提交一份日报和问题,清楚自己一天的计划和完成了什么事,问题也能得到TC及时的解决。遇到的问题:
a.当我在看很多测试基础知识资料的时候,不知道从哪抓重点,总是很盲目的从头浏览到尾,看完之后感觉没有记住多少东西。
b.关于测试用例设计方法等价类划分这块掌握的不是很好,白皮书上有些题目虽然TC讲过但还是不能太理解。TC要求我们掌握80%就好了,感觉只掌握了50%。
c.可能最近都是在看测试基础文档类的原因吧,除了操作linux和熟悉mCommerce项目外,感觉没实际操作的少了,有时侯看文档很容易走神,这样一来时间就浪费了。
友情提示:本文中关于《软件测试基础知识总结》给出的范例仅供您参考拓展思维使用,软件测试基础知识总结:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
《软件测试基础知识总结》
由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
http://m.bsmz.net/gongwen/725091.html
- 下一篇:测试放大电路的幅频特性