软件测试技术经典教程——学习笔记
- 格式:docx
- 大小:16.01 KB
- 文档页数:2
软件测试技术学习笔记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臭名昭著的软件错误⽤例研究###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.1什么是软件测试软件测试:在可控的预置条件下操作软件的过程,其目的是拟定软件行为符合产品规格说明、发现错误和验证软件复符合用户的需求。
注意:目的不仅仅是发现软件存在缺陷没有发现缺陷的测试同样有价值测试是评估软件质量的一种方法1.2软件测试原则(1)尽早和不断的进行软件测试发现软件缺陷越早,其修复成本越低(2)重视无效数据和非预期使用习惯的测试缺陷高发区(3)充足注意测试中的群集现象缺陷扎堆(4)用例要定期评审,适时补充修改用例保持测试用例的活力(5)应当对每一个测试结果做全面检查发现隐含的缺陷(6)经济原则穷尽测试不也许,考虑成本(7)开发人员应避免测试自己的程序思维定势、心理作用1.3软件测试分类软件开发阶段:单元测试、集成测试、系统测试、验收测试测试方法:白盒测试、黑盒测试测试实行方:开发方测试、用户测试、第三方测试测试内容:功能测试、性能测试、安全性测试、兼容性测试、可靠性测试按软件开发阶段分类:(1)单元测试:模块测试,对软件中最小可测试单元进行检查、验证(2)集成测试:组装测试,对软件不同单元或部件的接口进行测试(3)系统测试:将软件与外设、网络等结合在一起,对整个产品系统进行的测试(4)验收测试:按照验收依据,对整个系统进行测试按测试方法分类:(1)白盒测试(结构测试、逻辑驱动测试)基于代码的内部逻辑知识,检测软件内部动作是否按照规格说明书的规定正的确现,检查软件中的所有结构和途径是否可以按预定规定对的工作。
(2)黑盒测试(功能测试、数据驱动测试)用的多把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,只检查程序功能是否按照需求规格说明书的规定正常使用,程序能否适本地接受输入数据,并产生对的的输出信息。
1.4软件测试方法黑盒测试:等价类划分法、边界值分析法、错误推测法、因果图法、鉴定表驱动法、正交实验法、场景法、功能图法白盒测试:代码走查、代码审查、静态分析、逻辑覆盖、基本途径测试、域测试、符号测试、程序插桩几种常用的测试方法(1)等价类划分法:一种重要的、常用的设计方法根据数据的需求,吧数据划分为有效等价类和无效等价类,进而从每个等价类中选取一个数据作为测试用例数据。
软件测试学习笔记-概念篇(⼀)前⾔ 每个系统的成型,上线都离不开测试,这段时间陆陆续续的学习测试,在这⾥总结⼀番;作为学习交流之⽤;正⽂早期定义:软件测试是对程序能够按预期运⾏建⽴起⼀种信⼼。
经典定义:测试是为了发现错误⽽执⾏程序的过程。
IEEE定义(ISO/IEC/IEEE 29119):使⽤⼈⼯或者⾃动的⼿段来运⾏或测量软件系统的过程,以检验软件系统是否满⾜规定的要求,并找出与预期结果之间的差异。
五⼤要素有:质量、⼈员、资源、流程、技术。
其中最主要的是软件质量,其他四个要素都是为质量服务的。
其次是⼈员,决定了技术,资源,流程,以及配置和使⽤。
技术包含了:软件测试技术、软件测试⽅法、使⽤的⼯具。
技术是⼿段。
流程:测试计划,测试⽤例,测试执⾏,测试报告。
有⼀些进⼊进出的标准(规范性,对软件测试做⼀个规范的要求)。
资源:测试所需要的硬件设备、⽹络环境、测试设备、测试时间(周期)。
注意:⼈不是资源。
⽬标:①提升测试覆盖率-> 能够有效的保证软件的质量②提升测试效率->能够使我们更好地完成软件测试⼀、测试显⽰缺陷的存在,但不能证明系统不存在缺陷。
经过软件测试,可以发现软件中的故障;但是经过软件测试,不能保证软件就没有故障了。
⼆、穷尽测试是不可能的,应设定及时终⽌的条件。
三、测试应该尽早进⾏四、缺陷具备群集特性越是发现问题多的模块,越是需要重点测试的对象五、测试的杀⾍剂悖论在测试中,如果采⽤同样的测试⽤例,同样的测试⽅法。
多次重复的测试某⼀个模块,最后就不能再发现新的缺陷。
所以说,测试⽤例和测试⽅法应该不定期的评审修改,并且增加不同的测试⽅法和⽤例来测试不同的部分,从⽽更多的发现软件的缺陷。
六、测试的⼆⼋原则测试时间和资源往往是有限的,要找出所有的缺陷是不可能的,这时我们需要遵循⼆⼋原则。
把80%的时间或者资源⽤在20%的重点模块上,重点测试模块中20%的重要模块。
来达到测试效率和资源配置的最佳的⽐例。
1.软件缺陷如何影响我们的生活2.软件缺陷是什么,为什么会出现只有符合下列5个规则才能叫软件缺陷1.软件未达到产品说明书标明的功能2.软件出现了产品说明书不会出现的错误3.软件功能超出产品说明书指明的范围4.软件未达到产品说明书虽未指出但应达到的目标5.软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好导致软件缺陷最大的原因是产品说明书;软件缺陷的第二大来源是设计方案。
3.软件测试者是谁,职责是什么软件测试员的目标是发现软件缺陷。
软件测试员的目标是找出软件缺陷,尽可能早一些。
软件测试员的目标是找出软件缺陷,尽可能早一些,并确保其得以修复。
(最终定义)区别:软件质量评判人员的主要职责是创建和加强促进软件开发并防止软件缺陷的标准和方法。
Quiz:1.在千年虫例子中,Dave有错误吗?2.判断:公司或者开发小组如何称呼软件问题很重要。
×3.仅仅测试程序是否按预期方式运行有何错误?4.产品发布后修复软件缺陷比项目开发早期这样做的费用要高出多少?5.软件测试员的目标是什么?软件测试员的目标是找出软件缺陷,尽可能早一些,并确保其得以修复。
(最终定义)6.判断:好的测试员不懈追求完美。
×7.阐述产品说明书为什么通常是软件产品中制造软件缺陷的最大来源。
1.构成软件产品的主要部分。
代码、帮助文件、用户手册、样本和示例、标签和帖子、产品支持信息、图标和标志、错误信息(别忘了测试错误提示信息)、广告和宣传材料、安装、说明文件等2.制作软件产品的人和技术。
人:项目管理员(编写产品说明书)、程序管理员(管理进度)、监制人(进行重大决策和取舍);设计师、系统工程师;程序员、开发人员、代码制作者;测试员、质量评判员;技术作者、用户助手、用户培训专员、手册编写人员、文案专员;结构管理员、制作人员等3.软件从构想到最终产品的过程。
从最初构思到公开发行软件产品的过程称为软件开发模式。
4种最常用的模式:大棒模式、边写边改模式、流水线模式、螺旋模式。
软件测试工程师学习笔记软件测试读书笔记之一软件测试背景一.软件缺陷的正式定义:符合下边5个规则的才能叫做软件缺陷。
1.软件未达到产品说明书标明的功能。
2.软件出现了产品说明书指明不会出现的错误。
3.软件功能超出产品说明书指明范围。
4.软件未达到产品说明书虽未指出但应达到的目标。
5.软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。
二.软件缺陷的产生原因:导致软件缺陷最大的原因是产品说明书;第二大来源是设计方案;三是代码;四是某些软件缺陷产生的条件被错误地认定。
三.软件缺陷的修复费用:随时间增长,修复软件缺陷的费用是呈几何数级增长的,随时间推移,数十倍增长。
四.软件测试人员的目的:软件测试远的目标就是发现软件缺陷,尽可能早一些,并确保其得以修复。
五.怎么成为优秀测试员:1.探索精神2.故障排除能手3.不懈努力4.创造性5.追求完美6.判断准确7.老练稳重8.说服力9.除了这些素质,在软件编程方面受过的教育也是重要的。
10.软件的功能为了解决现实问题,因此,教学烹饪航空木工医疗等知识都将对查找该领域软件的缺陷有莫大帮助软件测试读书笔记之二软件开发过程一.测试文挡包括:1.测试计划2.测试案例3.软件缺陷报告4.归纳,统计和总结。
二.软件产品由哪些部分组成(都是要测的哦,当然我国许多软件都无法达到这么多部分~呵呵)1. 最终产品(光盘/软盘/程序...)2.帮助文件3.用户手册4.样本和示例5.标签和帖子6.产品支持信息7.图标和标志8.错误信息9.广告和宣传材料10.安装11.说明文件这些都是要测试的,书中尤其提到了不要忘了测试错误提示信息(错误提示信息是软件产品最容易忽视的部分,通常是有程序员而不是训练有素的稿手来写的。
这些信息很少照顾到修复软件缺陷的需要,还常常造成麻烦。
软件测试员也难以找到并显示全部信息。
在软件中不要加入吓人和不友好的错误提示信息。
)三.软件开发模式1.大棒式:所有精力都在开发软件和编写代码上2.边写边改式:没有时间做好,总有时间返工哈哈!这句话经典,测试者几乎每天都拿到一个新版本,新版本出来的时候,旧版本还没测完!而新版本还包含新的或者经过修改的功能)3.流水式:创意-分析-设计-开发-测试-最终产品,只许前进不能后退!4.螺旋式:开始不必详细定义所有细节。
黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
软件的黑盒测试意味着测试要在软件的接口处进行。
这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。
因此黑盒测试又叫功能测试或数据驱动测试。
黑盒测试主要是为了发现以下几类错误:1、是否有不正确或遗漏的功能?2、在接口上,输入是否能正确的接受?能否输出正确的结果?3、是否有数据结构错误或外部信息(例如数据文件)访问错误?4、性能上是否能够满足要求?5、是否有初始化或终止性错误?软件的白盒测试是对软件的过程性细节做细致的检查。
这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。
因此白盒测试又称为结构测试或逻辑驱动测试。
白盒测试主要是想对程序模块进行如下检查:1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。
4、测试内部数据结构的有效性,等等。
单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。
通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
单元测试是由程序员自己来完成,最终受益的也是程序员自己。
可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。
执行单元测试,就是为了证明这段代码的行为和我们期望的一致。
集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。
软件测试第一章软件测试概述1.1引子:4W1H问题对于软件的初学者而言,最常见的五个问题是4W1HWhat:什么是软件测试,即软件测试是如何定义的?Which:软件测试到底要对软件的哪些部分展开测试,即测试的对象是什么Who:在一个项目小组中,哪些人负责对软件进行测试When:在一个软件产品从立项开发、验收、维护到消亡的整个生命周期过程中,何时开始软件测试工作,何时可以结束对软件的测试How:如何对软件进行测试?这也是大部分初学者最为关心的问题1.2软件与软件测试1.2.1软件的定义软件=程序(P)+数据(库)(DB)+文档(D)+服务(S)●程序:表示能够完成预定功能和性能的指令的集合,如C语言程序、java程序等。
●数据(库):依照某种数据模型组织起来、并存在二级存储器中的数据集合。
●文档:指软件在开发、使用和维护过程中产生的文字与图形的集合,如:系统需求规格说明书、测试计划、用户手册等。
●服务:指通过提供必要的手段和方法,满足接受服务对象需求的过程。
如:安装指导、用户培训、售后技术支持、接受投诉等。
注:软件测试不仅仅是对程序的测试,还应包括对数据、文档和服务的测试。
1.2.2软件的特点1)软件是硬件的灵魂,硬件是软件的基础2)软件是智慧和知识的结晶3)软件的核心是人4)软件不会“磨损”1.2.3软件的分类1)按功能分类(固件、系统软件、中间件和应用软件)●固件:直接烧在芯片组或集成电路里的一段程序●系统软件能直接操作底层硬件,并为上层软件提供支持●中间件在应用软件和平台之间建立一种桥梁,常见的中间件包括数据库和万维网服务器●应用软件能为用户提供某种特定的应用服务2)按技术架构分类(单机版软件、C/S架构的软件、B/S架构的软件)●单机版软件直接安装并运行在单个计算机上,如office、ACDSee等●C/S架构的软件基于互联网或局域网,需要一台服务器来安装服务器端软件,每台客户端都要安装客户端软件,如QQ、MSN等●B/S架构的软件:B/S架构的软件也是基于互联网或局域网,但这类软件不需要安装客户端软件,只需要浏览器软件即可3)按用户分类(产品软件和项目软件)4)按开发规模分类(小型软件、中型软件和大型软件)1.2.4软件测试定软件测试指使用人工河自动手段来运行或测试某个系统的过程,目的在于检验其是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。
软件测试培训笔记软件测试培训笔记随着计算机技术的不断发展,软件应用在各个行业中扮演着越来越重要的角色。
而软件测试则成为了保证软件质量和稳定性的必要环节。
为了满足不同企业和组织对于软件测试人才的需求,许多培训机构开展了软件测试培训课程。
本文基于筆者所参加的软件测试培训课程,整理笔记分享给大家。
第一节:软件测试基础1.1 软件的定义对于软件的定义,美国的IEEE(Institute of Electrical and Electronics Engineers)提出了以下定义:“软件是具有规模和复杂性,能够执行或控制计算机系统、硬件和/或其他软件组件的计算机程序、程序库、用户手册和相关文档。
”1.2 软件测试的定义软件测试是为了发现软件中的错误和缺陷,从而使软件达到预定的性能、功能和质量标准的过程。
软件测试的本质是通过运行软件来检测软件中的错误、问题和缺陷,并为改善软件提供建议。
1.3 软件测试的目的软件测试的目的是为了确保软件的质量、安全和可靠性。
测试的目标则是找出尽可能多的错误和缺陷,以便于在软件上线前修复这些问题。
此外,软件测试还有以下目的:- 测试能够确保软件符合规格说明书。
- 测试能够验证软件功能,比较软件与实际需求之间的匹配程度。
- 测试可以检测出软件的性能问题,比如在高并发量下会发生什么。
- 测试可以为用户提供安全保证,因为经过测试的软件安全性高。
-测试可以为软件维护提供支持,包含为修复问题提供更多的信息和建议。
1.4 软件测试的过程软件测试的过程经常被描述成以下几个步骤:- 需求分析:确定软件需求及各种功能要求。
- 设计测试用例:为测试准备各种测试场景。
- 执行测试用例:运行测试用例并记录结果。
- 异常管理:跟踪和报告软件中的问题和错误。
- 重新测试:在发现及修复错误时对软件进行重新测试。
第二节:软件测试的类型2.1 黑盒测试黑盒测试是一种测试方法,其中测试人员仅了解系统的输入和输出,对系统内部进行了解并不清楚。
一、软件测试的定义软件测试是一个过程或一系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作。
1.软件测试与调试的区别?(1)测试是为了发现软件中存在的错误;调试是为证明软件开发的正确性。
(2)测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。
(3)测试是有计划的,需要进行测试设计;调试是不受时间约束的。
(4)测试经历发现错误、改正错误、重新测试的过程;调试是一个推理过程。
(5)测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理以至知觉的"飞跃"。
(6)测试经常是由独立的测试组在不了解软件设计的条件下完成的;调试必须由了解详细设计的开发人员完成。
(7)大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调试器。
2.对软件测试的理解?软件测试就是说要去根据客户的要求完善它.即要把这个软件还没有符合的或者是和客户要求不一样的,或者是客户要求还没有完全达到要求的部分找出来。
(1)首先要锻炼自己软件测试能力,包括需求的分析能力,提取能力,逻辑化思想能力,即就是给你一个系统的时候,能够把整个业务流程很清晰的理出。
(2)学习测试理论知识并与你锻炼的能力相结合。
(3)想和做。
想就是说你看到任何的系统都要有习惯性的思考;做就是把实际去做练习,然后提取经验。
总结测试用例,测试计划固然重要,但能力和思想一旦到位了,才能成为一名合格的软件测试工程师。
二、软件测试的分类1.按照测试技术划分(1)白盒测试:通过对程序内部结构的分析、检测来寻找问题。
检查是否所有的结构及逻辑都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。
--结构测试(2)黑盒测试:通过软件的外部表现来发现错误,是在程序界面处进行测试,只是检查是否按照需求规格说明书的规定正常实现。
软件测试学习笔记:测试点总结_0 软件测试学习笔记:测试点总结邮件群发软件测试学习笔记:测试点总结软件测试1、可编辑文本框的测试:主要是“字符长度、字符类型、文本格式”的测试字符长度的验证:最大值、最小值、适当值、超长值。
字符类型的验证:中(简、繁)、英(大小写)、数字(整数、小数、负数)、标点符号(全角、半角)、特殊符号(回车、空格、TAB、脚本语言、NULL、null)、转义字符,及这些字符类型的组合。
文本格式的验证:比如日期(控件、手动输入)、邮箱、手机号。
2、文件上传下载的测试:主要是“文件格式、文件内容格式、文件信息、文件大小、文件重复上传、文件下载”的测试文件格式的验证:文本格式、图片格式、音频格式、压缩包等等。
文件内容格式的验证:系统要求上传的文件的内容是一定格式的(系统给出一定的内容模板)。
文件信息的验证:文件具体内容(有时文件数据的合理性是要经过校验的)、文件内容包含特殊字符、文件名(参考1中的字符类型验证)、文件路径(直接导入、手动输入)。
文件大小的验证:0、适当值、超大值。
文件重复上传的验证:系统是否具备去重处理的能力。
文件下载的验证:左键(打开时文件内容是否正确显示)、右键。
3、查询功能的测试:主要是“查询条件、查询结果列表、查询处理时间是否能够接受”的测试查询条件的验证:空格、查询条件前后中加空格、数据库中的值、非数据库中的值(参考1中的字符类型验证)、是否支持模糊查询、组合查询。
查询结果列表的验证:结果列表表头内容是否正确、结果数据是否正确、结果列表是否具备翻页功能。
查询处理时间的验证:数据库中存在大数据量数据时,查询时间是否能接受。
4、权限的测试5、表单打印、导出、提交的测试打印功能的验证:打印出的内容、分页打印。
导出功能的验证:导出内容(部分数据还是全部数据)、打开导出的文件。
提交功能的验证:检查表单信息是否被正确保存、同一条数据多次提交。
6、数据增、删、改功能的测试增加功能的验证:增加后的显示效果(内容是否正确、是直接显示还是需刷新才能显示)、多次增加相同的记录。
软件测试学习笔记之一/软件测试概述一、什么是软件测试?简单的说,如果你写了一段代码,我来帮你查看代码并找出里面的错误,这就是测试。
IEEE的定义:―使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
‖有位大师曾说过:―软件测试的目的在于发现错误,一个好的测试用例在于发现从来未发现的错误,一个成功的测试是发现了从未发现的错误的测试。
‖二、常见导致软件错误的根源1、缺乏有效的沟通,甚至根本就没有进行沟通。
2、软件复杂度过大。
3、编程出现错误。
4、不断变更的需求,项目失败的最大杀手。
5、时间的压力,为了赶时间交付,错误也就伴随发生了。
6、缺乏文档的代码。
7、软件开发工具本身存在问题。
8、人员过于自信。
三、软件测试中的误区1、测试和调试是一样的。
2、测试组的人应当为保证质量负责。
3、过分依赖Beta测试。
4、把测试作为新员工的一个过渡工作。
5、把不合格的开发人员安排做测试工作。
6、关注与测试的执行而忽略测试的设计。
7、测试自动化是万能的。
8、测试时可以穷尽的。
9、测试是为了证明软件的正确性。
10、测试是枯燥乏味,缺乏创造力的工作。
软件测试是一种检测手段,目的是为了寻找软件系统中的缺陷。
业界越来越多的公司已经意识到软件测试的重要性,并在测试方面加大了投入。
软件测试有很多误区,只有认识到了这些误区才能真正理解测试本身的含义,才能以正确的态度看待测试。
软件测试学习笔记之二/白盒测试与黑盒测试一、为什么要进行白盒测试?1、逻辑错误和不正确假设与一条程序路径被执行可能性成反比。
当我们设计和实现主流之外的功能、条件和控制时,错误往往开始出现在我们的工作中。
日常处理往往能被很好的理解,而―特殊情况‖的处理则难于发现。
2、我们经常相信某个逻辑路径不可能被执行,而事实上,它可能在正常的情况下被执行。
程序的逻辑流有时候是违反直觉的,这意味着我们关于控制流和数据流的一些无意识的假设可能导致设计错误,只有路经测试才能发现这些错误。
《软件测试⼯程师》学习笔记 学习路径:软件测试理论基础学习——>缺陷管理知识学习——>Web测试环境搭建学习——>Linux操作系统知识学习——>配置管理知识学习——>数据库知识学习——>QTP功能测试⼯具学习——>LoadRunner性能测试⼯具学习——>项⽬实战——>岗前培训⾯试技巧——>⼯作。
1. ⽬的:寻找软件系统存在的缺陷、保证质量、降低企业成本,提⾼经济效益。
2. 软件:程序代码 + 成品⽂档 + 数据。
3. 分类:1. ⿊盒测试:把测试对象看作是⼀个⿊盒⼦,不考虑其内部逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。
注重于测试软件的功能性需求。
2. ⽩盒测试:深⼊考查程序代码的内部结构,逻辑设计等。
3. 灰盒测试:结合⿊盒测试和⽩盒测试的特点,既考虑到代码的功能性表现,⼜考虑程序代码的内部结构。
4. 静态测试:静态的、不执⾏被检测对象程序代码⽽寻找缺陷的过程。
5. 动态测试:实际地执⾏被测对象的程序代码,输⼊事先设计好的测试⽤例,检查程序代码运⾏得到的结果与测试⽤例中设计的预期结果之间是否有差异判定实际结果与预期结果是否⼀致。
主要包含1、2、3种⽅法。
6. ⼿动测试:⼿⼯测试。
7. ⾃动测试:利⽤⼀些测试⼯具,模拟⽤户的业务流程,让它们⾃动运⾏来查找缺陷。
4. 软件测试流程:1. 需求测试:从完整性、正确性、⼀致性、可⾏性、⽆⼆义性、健壮性、必要性、可测试性、可修改性等⼏个⽅⾯考虑;2. 单元测试:对代码中最⼩的设计模块单元进⾏测试;3. 集成测试4. 系统测试5. 性能测试6. ⽤户测试7. 回归测试:过⼀段时间重新测试修复了的Bug看其是否重新出现。
5. 缺陷管理⼯具:TestDirector、Bugzilla(Free)、TestTrack、Mantis等,以及⼀些⾃⼰开发的⼯具。
第2章软件测试基础1、什么是软件测试测试(test)被当作一个常规的检验产品质量的生产活动。
测试的含义为“为检验产品是否满足需求为目标”。
“软件测试”的经典定义是在规定条件下对程序进行操作,以发现错误,对软件质量进行评估。
软件是由文档、数据以及程序组成的,那么软件测试就应该是对软件形成过程的文档、数据以及程序进行的测试,而不仅仅是对程序进行的测试。
2、什么是软件质量ISO9126中定义的“软件质量”是:软件满足规定或潜在用户需求特性的总和。
ISO14598中“软件质量”定义是:软件特性的总和,软件满足规定或潜在用户需求的能力。
ISO9126定义的软件质量包括“内部质量”、“外部质量”、“使用质量”三部分。
也就是说,“软件满足规定或潜在用户需求的能力”要从软件在内部、外部和使用中的表现来衡量。
3、软件测试是在规定条件下对程序进行操作,以发现错误,对软件质量进行评估。
4、软件质量定义是:软件特性的总和,软件满足规定或潜在用户需求的能力。
软件质量包括:内部质量、外部质量、使用质量三个部分。
5、软件测试与质量保证的区别:质量保证(QA)质量保证的重要工作通过预防、检查与改进来保证软件质量。
QA采用“全面质量管理”和“过程改进”的原理开展质量保证工作。
关注软件质量的检查与测量。
软件测试也与软件开发过程紧密相关,关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。
测试员要“执行”软件,对过程中的产物开发文档和源代码进行走查,运行软件,以找出问题,报告质量。
对测试中发现的问题的分析、追踪和回归测试。
软件测试是保证软件质量的一个重要环节。
6、软件测试目的测试目的三个观点:测试是程序的执行过程,目的在于发现错误;一个好的测试用例在于能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试;测试的目的,是想以最少的人力、物力和时间找出软件潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造居的隐患所带来的商业风险。
软件测试技术经典教程——学习笔记
公司推荐的入门书,《软件测试技术经典教程》是一本难得的好书。
注重理论与实践结合!
之前看过的一些软件测试方面的书,大多注重理论,而且大都讲得泛泛,不具体,书本之间的重复内容很多。
全书分为三部分:软件测试基础知识、黑盒测试工具和白盒测试工具。
其中黑盒测试中介绍的几个工具,很长见识,带人进入真实的软件测试工作环境。
它让我第一次深得,原来软件测试是这个样子的。
LoadRunner,这个软件之前有听过,大概知道它是性能测试的工具,但没有用过,直觉是这软件应该比较复杂。
此次书中的介绍,其实并不算好,跟任何介绍软件使用的计算机书一样,价值是不大的。
我操作的时候也没有太多按照书上的内容来,而是借助网上的电子文档教程,但书是一个好东西,它让我明白这个工具的重要性,明白它是软件测试理论及实践中的位置,这个意义比软件教程本身重要很多,是决定要不要学习一个工具的前提。
下载了安装程序之后,对着教程进行操作,发现其实过程还是非常简单的。
软件的操作,一两天就可以学会,并应用在工作中,软件操作遇到的具体问题也可以通过查找资料或者向同事请教的方式解决。
但工作过程中跟项目相关的内容,就需要软件测试理论和其它知识的支撑了。
正如前面所提到的,本书的意义在于——它带我走进真实的软件测试环境。
QTP(Quick Test Professional),是一个功能测试工具。
这个软件之前在软件测试论坛上也有人提及,还看到有专门的教程,因此感觉软件本身可能比较复杂。
但真正使用起来,才发现非常易学易用。
同LoadRunner一样,重要在于通过本书,知道了它的重要意义,软件的学习是容易的。
这款软件的主要功能是录制与回放,可对测试过程插入检查点等,回放时,可用参数化的方式进行输入。
QC(Quality Center),是一款软件测试过程管理工具,它的老版本叫Test Director,也是书中所介绍的版本。
有管理员与用户两种模式。
管理员可新建域与项目,添加用户和设定数据库参数等。
而用
户模式登录后,则包含了软件需求管理、测试计划制定、测试执行与缺陷管理等功能。
其中需求与测试之间可以相互转换,需求执行阶段,可以与Mercury公司的其它测试工具如QTP或 LR进行交互。
以上三款软件,前两款都是黑盒测试工具:包括功能和性能。
第三款为软件测试管理工具。
都是Mercury公司的产品,公司现在已被HP收购。
其实不借助于软件,一切工作也可进行。
工具的意义在于让工作更有规划,更有计划,更加有迹可循,而且提供了丰富的报表功能。
在做大项目的时候,这些优点更为明显,小项目不建议用工具。
这如同只进行一两次测试的东西,不建议用自动化的方式一样,因为自动化测试本身成本不低。
只有大的软件项目,才适用一些功能全面的软件测试工具。