软件测试技术大全读书笔记
- 格式:docx
- 大小:14.40 KB
- 文档页数:1
软件测试技术学习笔记1. 软件工程:应用计算机科学,数学及管理科学等原理开发软件的工程。
软件工程是实现一个大型程序的一套原则方法,是指将其他工程领域中行之有效的工程学知识运用到软件开发中来,即按工程化的原则和方法组织软件开发工作。
2. 软件:程序以及开发,使用和维护程序所需的所有文档。
3. 软件测试:使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别,软件测试以检验是否满足需求为目标。
4. 软件测试的价值:(1)防止质量灾难的发生;(2)确保软件满足用户的需求(功能性,非功能性);(3)确保软件符合质量标准(国家,行业,企业)。
5. 软件测试的目的:(1)证明程序的正确性—除非仅处理有限种情况;(2)发现程序错误(BUG)—直接目标;(3)检查软件(系统)是否满足需求—期望目标。
6. 软件测试的原则:(1)测试必须是有计划的,有准备的,包括任务,时间,人员,设备,经费,方法与工具,问题等;(2)所有的测试都应追溯到用户需求;(3)应当尽早地和不断地进行软件测试;(4)软件测试充分注意测试中的集群现象;(5)总假定程序具有错误的;(6)旁举测试是不可能的;(7)彻底检查每一个测试结果。
7. 软件测试的分类:(1)按照开发阶段划分:单元测试,集成测试,系统测试,验收测试;(2)按照测试实施组织划分:开发方测试,用户测试,第三方测试;(3)按照测试技术划分:白盒测试,黑盒测试。
8. 软件测试流程:制定测试计划,设计测试,实施测试,执行测试,评估测试。
9. 白盒测试:已知产品的详细设计过程,可以通过测试证明每种内部操作是否符合设计规格需求,所有内部成分是否已通过检查。
10. 黑盒测试:已知产品的用户需求规格,可以通过测试证明整个软件系统是否符合用户最终要求。
11. 采用等价类划分的原因:由于旁举测试的办法数量太大,以至于无法实际完成,自然促使我们选取测试用例。
软件测试技术大全读书笔记-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII
一.测试是一种服务:
1.可以化解很多测试与开发之间的矛盾;
2.有利于测试客观公正地进行工作。
二.软件测试应该遵循的几个原则:
1.GoodEnough原则;--投入与产出成正比
2.Pareto原则;--80-20原则
3.尽可能早的开展测试;--早发现,代价小
4.在发现比较多错误的地方需要投入更多的测试;--聚集效应。
5.同化效应。
--交叉测试避免出现盲点。
三.IBM公司的软件测试方法
1.单元测试
2.集成测试
3.系统测试
4.验收测试
四.为什么需要回归测试
1.所谓回归:指产品的质量从一个较高的水平回落到一个较低的水平。
2.回归的问题根源是软件系统的内在复杂性。
3.随着系统构建的时间越长回归的问题也会增多。
2。
软件测试必备1、软件测试基本概念和方法三个重要的测试原则:1. 软件测试是为发现错误而执行程序的过程;2. 一个好的测试用例具有较高的发现某个尚未发现的错误的可能性;3. 一个成功的测试用例能够发现某个尚未发现的错误。
1.测试的过程具有一定的破坏性2.测试用例包括:输入数据的详细描述和正确输出结果的精确描述3.检查程序是否‘没有做它应该做的’仅仅是测试一半,另一半是检查‘是否做了它不应该做的’4.全面测试目标:验证是否做了应该做的事情,确保可靠性验证程序是否做了不应该做的事情,确保安全性5.任何多余的功能都应视为安全隐患6.Boehm给出的度量中的头10个表示软件现象遵守Pareto分布:20%的模块消耗80%的资源(人力、经费等);20%的模块包含80%的错误;20%的错误消耗80%的修改成本;20%的改进包含了80%的适应性为主的成本;20%的模块占用了80%的执行时间;20%的软件工具使用占80%的整个工具使用时间。
补充:20%的软件缺陷造成80%的软件故障20%的软件开发和管理人员(骨干),决定了80%软件开发质量:Pareto原理强调了精力集中在少数重要的事情上(vital few),而不是多数琐碎的事情上(trivial many)。
6.软件测试是一种作为主体的人通过各种手段对客体软件的某种固有属性进行的一种以8.审查的终极目标——确认缺陷9.人工审查包括:文档审查代码审查10. 软件缺陷的类型:可追溯性、逻辑、赋值顺序、控制、数据、接口、文档、注释、例外情况处理、内存等。
11. 只要简单地使用静态代码分析来增强输入验证的正确性就能够避免OWASP(业界领袖的安全性协会)所列出的约70%的安全性问题。
12. 圈度复杂度(独立路径的最大数量=程序控制流图中的区域数)=控制流图边数—控制流图的节点数+2二、测试框架的表述13. 测试框架(Test Framework):一组相互协作的组件的集合,能够实现一个或多个测试域中的一系列问题的解决方案。
1.1什么是软件测试软件测试:在可控旳预置条件下操作软件旳过程,其目旳是拟定软件行为符合产品规格阐明、发现错误和验证软件复符合顾客旳需求。
注意:目旳不仅仅是发现软件存在缺陷没有发现缺陷旳测试同样有价值测试是评估软件质量旳一种措施1.2软件测试原则(1)尽早和不断旳进行软件测试发现软件缺陷越早,其修复成本越低(2)注重无效数据和非预期使用习惯旳测试缺陷高发区(3)充足注意测试中旳群集现象缺陷扎堆(4)用例要定期评审,适时补充修改用例保持测试用例旳活力(5)应当对每一种测试成果做全面检查发现隐含旳缺陷(6)经济原则穷尽测试不也许,考虑成本(7)开发人员应避免测试自己旳程序思维定势、心理作用1.3软件测试分类软件开发阶段:单元测试、集成测试、系统测试、验收测试测试措施:白盒测试、黑盒测试测试实行方:开发方测试、顾客测试、第三方测试测试内容:功能测试、性能测试、安全性测试、兼容性测试、可靠性测试按软件开发阶段分类:(1)单元测试:模块测试,对软件中最小可测试单元进行检查、验证(2)集成测试:组装测试,对软件不同单元或部件旳接口进行测试(3)系统测试:将软件与外设、网络等结合在一起,对整个产品系统进行旳测试(4)验收测试:按照验收根据,对整个系统进行测试按测试措施分类:(1)白盒测试(构造测试、逻辑驱动测试)基于代码旳内部逻辑知识,检测软件内部动作与否按照规格阐明书旳规定正旳确现,检查软件中旳所有构造和途径与否可以按预定规定对旳工作。
(2)黑盒测试(功能测试、数据驱动测试)用旳多把程序看作一种不能打开旳黑盒子,在完全不考虑程序内部构造和内部特性旳状况下,只检查程序功能与否按照需求规格阐明书旳规定正常使用,程序能否合适地接受输入数据,并产生对旳旳输出信息。
1.4软件测试措施黑盒测试:等价类划分法、边界值分析法、错误推测法、因果图法、鉴定表驱动法、正交实验法、场景法、功能图法白盒测试:代码走查、代码审查、静态分析、逻辑覆盖、基本途径测试、域测试、符号测试、程序插桩几种常用旳测试措施(1)等价类划分法:一种重要旳、常用旳设计措施根据数据旳需求,吧数据划分为有效等价类和无效等价类,进而从每个等价类中选用一种数据作为测试用例数据。
软件测试技术经典教程——学习笔记公司推荐的入门书,《软件测试技术经典教程》是一本难得的好书。
注重理论与实践结合!之前看过的一些软件测试方面的书,大多注重理论,而且大都讲得泛泛,不具体,书本之间的重复内容很多。
全书分为三部分:软件测试基础知识、黑盒测试工具和白盒测试工具。
其中黑盒测试中介绍的几个工具,很长见识,带人进入真实的软件测试工作环境。
它让我第一次深得,原来软件测试是这个样子的。
LoadRunner,这个软件之前有听过,大概知道它是性能测试的工具,但没有用过,直觉是这软件应该比较复杂。
此次书中的介绍,其实并不算好,跟任何介绍软件使用的计算机书一样,价值是不大的。
我操作的时候也没有太多按照书上的内容来,而是借助网上的电子文档教程,但书是一个好东西,它让我明白这个工具的重要性,明白它是软件测试理论及实践中的位置,这个意义比软件教程本身重要很多,是决定要不要学习一个工具的前提。
下载了安装程序之后,对着教程进行操作,发现其实过程还是非常简单的。
软件的操作,一两天就可以学会,并应用在工作中,软件操作遇到的具体问题也可以通过查找资料或者向同事请教的方式解决。
但工作过程中跟项目相关的内容,就需要软件测试理论和其它知识的支撑了。
正如前面所提到的,本书的意义在于——它带我走进真实的软件测试环境。
QTP(Quick Test Professional),是一个功能测试工具。
这个软件之前在软件测试论坛上也有人提及,还看到有专门的教程,因此感觉软件本身可能比较复杂。
但真正使用起来,才发现非常易学易用。
同LoadRunner一样,重要在于通过本书,知道了它的重要意义,软件的学习是容易的。
这款软件的主要功能是录制与回放,可对测试过程插入检查点等,回放时,可用参数化的方式进行输入。
QC(Quality Center),是一款软件测试过程管理工具,它的老版本叫Test Director,也是书中所介绍的版本。
有管理员与用户两种模式。
《软件测试》读书笔记(持续更新)⽂章⽬录#第⼀部分 软件测试综述##第⼀章 软件测试的背景###1.1臭名昭著的软件错误⽤例研究###1.2软件缺陷是什么####1.2.1软件失败的术语确实严重,甚⾄是危险的情况:故障(fault)、失败(failure)、缺点(defect)不那么尖锐,主要指未按预料运⾏,⽽不指全部失败:异常(anomaly)、事件,插曲(incident)、偏差(variance)最常⽤的术语:问题(problem)、错误(error)、缺陷(bug)其他术语:⽭盾(inconsistency)、特殊(feature)软件测试中出现的其他术语:产品说明书(product specification):简称为说明(spec)或产品说明(product spec)。
它对开发的产品进⾏定义,给出产品的细节、如何做、做什么、不能做什么。
这种协定从简单的⼝头说明到正式的书⾯⽂档有多种形式。
之后《软件开发的过程》会讲述产品说明书和开发过程中的更多内容。
在每个公司,不同的开发⼩组⾥会有不同的术语,但在⽤词上过多的计较是没有意义的。
在这本书中,所有的软件问题都被称为缺陷####1.2.2软件缺陷的官⽅定义 ☟⾄少满⾜下列5个规则之⼀才称发⽣了⼀个软件缺陷(software bug)1)软件未实现产品说明书要求的内容(产品说明书:计算器能够准确⽆误的进⾏加减乘除;按下(+)键,没有反应,或者得到错误答1)软件未实现产品说明书要求的内容(产品说明书:计算器能够准确⽆误的进⾏加减乘除;按下(+)键,没有反应,或者得到错误答案)2)软件出现了产品说明书指明不应该出现的错误(产品说明书:计算器永远不会崩溃、锁死或者停⽌反应;狂敲键盘,计算器停⽌接受输⼊)3)软件实现了产品说明书未提到的内容(计算器求加减乘除还可以求平⽅根,这也是缺陷,虽然有了更好,但会增加测试的⼯作,甚⾄带来更多的缺陷)4)软件未实现产品说明书虽未明确提及但应该实现的⽬标(⽬的为了捕获那些产品说明书上的遗漏之处。
软件测试方法与技术的学习笔记软件测试从不同的角度出发会派生出两种不同的测试原那么,从用户的角度出发,就是希望通过软件测试能充分暴露软件中存在的问题和缺陷,从而考虑是否可以承受该产品,从开发者的角度出发,就是希望测试能说明软件产品不存在错误,已经正确地实现了用户的需求,确立人们对软件质量的信心。
测试的原那么就是从用户和开发者的角度出发进展软件产品测试的,通过测试,可以为用户提供放心的产品,并对优秀的产品进展认证。
为了到达上述的原那么,那么需要注意以下几点:1.应当把“尽早和不断的测试”作为开发者的座右铭2.程序员应该防止检查自己的程序,测试工作应该由独立的专业的软件测试机构来完成。
3.设计测试用例时应该考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下要制造极端状态和意外状态,比方网络异常中断、电源断电等情况。
4.一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。
5.对测试错误结果一定要有一个确认的过程,一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进展讨论和分析。
6.制定严格的测试方案,并把测试时间安排的尽量宽松,不要希望在极短的时间内完成一个高水平的测试。
7.回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多的错误出现的现象并不少见。
8.妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档在测试实施之前,软件测试工程师必须确定将要采用的测试策略和测试方法,并以此为依据制定详细的测试案例。
而一个好的测试策略和测试方法必将给软件测试带来事半功倍的效果,它可以充分利用有限的人力和物力资源,高效率、高质量地完成测试。
那么,终究如何才能确定一个好的测试策略和测试方法呢,一般来说,在确定测试方法时,应该遵循以下原那么:第一,要根据程序的重要性和一旦发生故障将造成的损失来确定它的测试等级和测试重点;第二,要认真研究测试策略,以便能使用尽可能少的测试用例,发现尽可能多的程序错误,因为一次完整的软件测试过后,如果程序中遗留的错误过多并且很严重,那么说明本次测试是失败的,是缺乏的,而测试缺乏意味着让用户承当隐藏错误带来的危险,同时反过来说如果过度测试那么又会浪费许多珍贵的资源。
1.软件缺陷如何影响我们的生活2.软件缺陷是什么,为什么会出现只有符合下列5个规则才能叫软件缺陷1.软件未达到产品说明书标明的功能2.软件出现了产品说明书不会出现的错误3.软件功能超出产品说明书指明的范围4.软件未达到产品说明书虽未指出但应达到的目标5.软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好导致软件缺陷最大的原因是产品说明书;软件缺陷的第二大来源是设计方案。
3.软件测试者是谁,职责是什么软件测试员的目标是发现软件缺陷。
软件测试员的目标是找出软件缺陷,尽可能早一些。
软件测试员的目标是找出软件缺陷,尽可能早一些,并确保其得以修复。
(最终定义)区别:软件质量评判人员的主要职责是创建和加强促进软件开发并防止软件缺陷的标准和方法。
Quiz:1.在千年虫例子中,Dave有错误吗?2.判断:公司或者开发小组如何称呼软件问题很重要。
×3.仅仅测试程序是否按预期方式运行有何错误?4.产品发布后修复软件缺陷比项目开发早期这样做的费用要高出多少?5.软件测试员的目标是什么?软件测试员的目标是找出软件缺陷,尽可能早一些,并确保其得以修复。
(最终定义)6.判断:好的测试员不懈追求完美。
×7.阐述产品说明书为什么通常是软件产品中制造软件缺陷的最大来源。
1.构成软件产品的主要部分。
代码、帮助文件、用户手册、样本和示例、标签和帖子、产品支持信息、图标和标志、错误信息(别忘了测试错误提示信息)、广告和宣传材料、安装、说明文件等2.制作软件产品的人和技术。
人:项目管理员(编写产品说明书)、程序管理员(管理进度)、监制人(进行重大决策和取舍);设计师、系统工程师;程序员、开发人员、代码制作者;测试员、质量评判员;技术作者、用户助手、用户培训专员、手册编写人员、文案专员;结构管理员、制作人员等3.软件从构想到最终产品的过程。
从最初构思到公开发行软件产品的过程称为软件开发模式。
4种最常用的模式:大棒模式、边写边改模式、流水线模式、螺旋模式。
软件测试(第二版)书的一些总结软件测试这本书分为了六个部分,介绍了软件测试的基础知识。
以下分部分是我的一些理解。
1.第一部分是软件测试综述,主要介绍了与软件测试及其相关内容的一些定义。
(1)什么是软件缺陷?软件缺陷可以理解为导致软件失败的缺陷,失败的软件可以理解为不符合软件产品说明书或不符合用户要求的软件。
(2)导致出现缺陷的原因以及软件修复的难度(优先级)?软件缺陷的原因实际是在说明书编写、设计、编码时出现了偏差错误,并且随着开发往后,更不容易修复。
(3)软件测试是要做什么?软件测试目的是要发现缺陷,给出提示,并且给出一定的建议(也可以是提供缺陷优先级或严重性等度量)。
值得注意的是,并不是非要给出修改软件的建议,也可以是给出针对用户培训以规避软件缺陷之类的建议。
并且软件测试所针对的范围是交付用户部分,所以测试要包含文档测试。
(4)软件测试时的原则第一是不要求完全测试程序,要把测试控制在合理的测试量内(可由剩余缺陷和测试费用关系得到);第二是找到软件缺陷越多那么软件缺陷越多。
2.第二部分是测试基础,介绍了一些基本的测试方法(白盒与黑盒法的区别是是否参考了代码,动态与静态区别是是否运行了代码):(1)静态黑盒法测试产品说明书。
(2)动态黑盒法,一般用来进行功能性测试。
使用等价类划分的方法,将测试用例合理划分,将测试量控制在合理范围,并通过对测试用例和运行结果对比,得到测试结果。
测试不止是对数据测试,还要对软件状态进行测试(可参考状态图进行,测试软件状态转换是是否出现问题)(3)静态白盒法,设计、编程阶段审查设计、代码。
(4)动态白盒测试,对程序中的代码段或者某个模块进行测试,测试用例不仅需要对数据覆盖(例如代码端公式里除数为0的情况),还要对代码覆盖(语句覆盖、分支覆盖、条件覆盖,一级比一级覆盖广一些)3.第三部分是运用测试技术,介绍了一些常见的测试,如:配置测试、兼容性测试、外国语言测试、易用性测试、文档测试、软件安全测试,并以网站测试作为实例进行了讲解。
软件测试学习笔记之一/软件测试概述一、什么是软件测试?简单的说,如果你写了一段代码,我来帮你查看代码并找出里面的错误,这就是测试。
IEEE的定义:―使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
‖有位大师曾说过:―软件测试的目的在于发现错误,一个好的测试用例在于发现从来未发现的错误,一个成功的测试是发现了从未发现的错误的测试。
‖二、常见导致软件错误的根源1、缺乏有效的沟通,甚至根本就没有进行沟通。
2、软件复杂度过大。
3、编程出现错误。
4、不断变更的需求,项目失败的最大杀手。
5、时间的压力,为了赶时间交付,错误也就伴随发生了。
6、缺乏文档的代码。
7、软件开发工具本身存在问题。
8、人员过于自信。
三、软件测试中的误区1、测试和调试是一样的。
2、测试组的人应当为保证质量负责。
3、过分依赖Beta测试。
4、把测试作为新员工的一个过渡工作。
5、把不合格的开发人员安排做测试工作。
6、关注与测试的执行而忽略测试的设计。
7、测试自动化是万能的。
8、测试时可以穷尽的。
9、测试是为了证明软件的正确性。
10、测试是枯燥乏味,缺乏创造力的工作。
软件测试是一种检测手段,目的是为了寻找软件系统中的缺陷。
业界越来越多的公司已经意识到软件测试的重要性,并在测试方面加大了投入。
软件测试有很多误区,只有认识到了这些误区才能真正理解测试本身的含义,才能以正确的态度看待测试。
软件测试学习笔记之二/白盒测试与黑盒测试一、为什么要进行白盒测试?1、逻辑错误和不正确假设与一条程序路径被执行可能性成反比。
当我们设计和实现主流之外的功能、条件和控制时,错误往往开始出现在我们的工作中。
日常处理往往能被很好的理解,而―特殊情况‖的处理则难于发现。
2、我们经常相信某个逻辑路径不可能被执行,而事实上,它可能在正常的情况下被执行。
程序的逻辑流有时候是违反直觉的,这意味着我们关于控制流和数据流的一些无意识的假设可能导致设计错误,只有路经测试才能发现这些错误。
软件测试学习笔记一.软件测试综述1.软件缺陷是什么1).软件失败的术语:缺点(defect)、偏差(variance)、故障(fault)、失败(failure)、问题(problem)、矛盾(inconsistency)、错误(error)、特殊(feature)、事件(incident)、缺陷(bug)、异常(anomaly)2).软件缺陷规则a.软件未实现产品说明书要求的功能eg.计算器,按下(+)后无反应、计算后答案错误b.软件出现了产品说明书指明不应该出现的错误eg.产品说明书称计算器不会崩溃、锁死或停止反应,但狂敲键盘使计算器停止接受输入,则视其为缺陷c.软件实现了产品说明书未提到的功能d.软件未实现产品说明书虽未明确提及但应该实现的目标eg.计算器电力不足无法正确计算,则视为缺陷e.软件难以理解、不易使用、运行缓慢或——从测试员的角度看——最终用户会认为不好3).软件测试员的目标是尽可能早地找出软件缺陷,并确保其得以修复。
4)问题1.软件缺陷的等级划分严重程度分级:等级严重程度描述A 致命(fatal) 数据丢失,数据计算错误、数据传递错误、对数据库造成破坏,造成操作系统或其他支撑系统崩溃、非正常关闭和非正常死机。
B 严重(critical) 应用系统崩溃、非正常关闭和无响应,但没有造成数据丢失。
系统的主要功能不能正确实现或不完整。
C 一般(major) 规定的非主要功能没有实现或不完整、影响系统的运行;设计不合理造成性能低下。
D 警告不影响业务运行的功能问题。
E 建议(suggestion) 从用户角度考虑在软件设计和功能实现等不完全合理之处提出建议。
优先级一级:死机、功能未实现、数据丢失、和需求规格说明书不一致;存在系统漏洞,安全性漏洞;正常操作,但存储内容不正确;异常陷阱未处理。
二级:不兼容,或者因为边界条件超出正常范围导致1级描述中出现的问题;系统报非友好错误信息;内存泄漏;系统崩溃,导致系统变慢。
一.测试是一种服务:
1.可以化解很多测试与开发之间的矛盾;
2.有利于测试客观公正地进行工作。
二.软件测试应该遵循的几个原则:
1.GoodEnough原则;--投入与产出成正比
2.Pareto原则;--80-20原则
3.尽可能早的开展测试;--早发现,代价小
4.在发现比较多错误的地方需要投入更多的测试;--聚集效应。
5.同化效应。
--交叉测试避免出现盲点。
三.IBM公司的软件测试方法
1.单元测试
2.集成测试
3.系统测试
4.验收测试
四.为什么需要回归测试
1.所谓回归:指产品的质量从一个较高的水平回落到一个较低的水平。
2.回归的问题根源是软件系统的内在复杂性。
3.随着系统构建的时间越长回归的问题也会增多。