-软件测试的分类
软件测试是什么

软件测试是什么软件测试是指在软件开发过程中,通过运行软件或者其他技术手段来评估软件的质量和可靠性的过程。
软件测试的目的是发现软件中存在的问题和错误,并确保软件能够满足需求和规格说明。
软件测试的主要目标是发现软件中存在的缺陷和错误,以便在软件发布之前解决这些问题。
测试人员通过在软件的各个阶段运行测试用例和其他测试技术,来评估软件的性能、功能、安全性、易用性和可维护性等方面的表现。
测试人员还会收集和分析测试结果,以便向开发团队提供反馈和建议,帮助他们改进软件的设计和实现。
软件测试通常是软件开发过程中的一个关键阶段,它有助于确保软件的质量和可靠性,并降低软件发布后面临的风险和成本。
以下是一些关于软件测试的重要性和相关方面的介绍。
一、软件测试的重要性确保软件质量和可靠性:通过软件测试,可以发现软件中存在的缺陷和错误,并及早解决这些问题。
这有助于确保软件的可靠性和质量,从而减少软件发布后面临的风险和成本。
提升用户体验:通过软件测试,可以发现用户在使用软件过程中可能遇到的问题,并及早解决这些问题。
这有助于提升用户体验,增强软件的可使用性和吸引力。
降低软件开发成本:通过软件测试,可以及早发现和解决软件中存在的问题,避免在后期进行大量的修复和升级工作。
这有助于降低软件开发的成本和时间。
改进软件开发流程:通过软件测试,可以提供反馈和建议,帮助开发团队改进软件的设计和实现,以及改进软件开发流程。
二、软件测试的分类黑盒测试:黑盒测试是指在不考虑软件内部结构和实现细节的情况下,测试软件的各项功能是否符合需求和规格说明。
黑盒测试通常由业务专家或测试人员来进行。
白盒测试:白盒测试是指对软件的内部结构和实现细节进行测试,以检查软件中是否存在缺陷和错误。
白盒测试通常由开发人员或测试人员来进行。
压力测试:压力测试是指在模拟大量用户请求的情况下,测试软件的性能和可扩展性。
压力测试可以帮助开发团队评估软件在高负载情况下的表现,并发现潜在的性能问题和瓶颈。
软件测试介绍

测试用例=测试环境+输入数据+输出数据 编写测试用例的作用: 分析和明确各个测试点的测试内容 方便测试团队成员之间的交流。 方便项目后续版本重复内容的测试。 方便跟踪测试策略的执行情况。
输入数据集合。 无效等价类:是指不符合需求规格说明,无意
义的输入数据集合。
边界值法
边界值法:检测输入数据最大值和最小 值的测试方法
测试边界值时,一般测试边界值和正好 超过边界值一个单位的值。
边界值时最容易出现问题的地方,也是 测试时要重点测试的内容。
因果图法
因果图法:根据被测系统的逻辑结构,设计输 入和输出的测试方法,主要用于输入条件比较 多的情况。
国内大型软件公司组建自己的软件测试部门或质量保障部。测试人员整体素 质较高,团队意识较强,产品质量较高,客户满意度较好,测试人员职业发 展方向清晰、明确。
测试人员的发展
技术方向(测试顾问、测试专家) 管理方向(测试经理、质量总监) 自主创业(测试外包、测试培训)
软件的基本概念
软件=程序+文档 程序:能够实现某种功能的集合(C语言程序、VB程序、JAVA程序等) 文档:软件开发、使用、维护过程中使用的文字、图片的集合(《需求
为国内大型企事业单位提供人力外包或测试外包服务,中科方德(客户主要 是军工行业),大展科技(客户主要是中国电信等),东南融通(客户主要 是金融行业)。雇佣军、团队归属感差、体力活、技术含量低,不要求外语。
公司的测试工作由开发工程师完成或只有很少比例的测试人员。测试人员不 专业,公司产品质量差,公司对测试人员不重视,测试人员薪资低,职业发 展前景堪忧。
测试理论基础知识

一、软件测试定义与目的 二、软件测试对象 三、软件测试种类 四、软件测试模型 五、测试的组织与人员 六、测试讨论
对程序的编写而言,它的许多错误是“先天的”。据美国一家 公司统计,属于需求分析和软件设计的错误约占64%,属于程序编 写的错误仅占36%。因此为了把握各个环节的正确性,对软件分析、 设计以及程序都需要进行各种验证和确认(verification & validation)工作。验证和确认都属于软件测试。
对软件测试的正确理解
“1” 软件测试是一种有效的 提高软件质量的手段, 软件测试是一 但即使在投入上有所保 种有效的提高软件质 证,测试也不能百分之 量的手段,但即使在 百发现所有质量隐患。 投入上有所保证,测 况且软件质量并不仅仅 试也不能百分之百发 是测试出来的。 现所有质量隐患。况 且软件质量并不仅仅 是测试出来的。 “2” 如何在有限的投入下, 提高软件测试的效率和 产出是一件很见功底的 事。好的测试人员不仅 要掌握各种测试技术, 还要具备丰富的编程经 验和对BUG的敏感。测 。试的复杂之处,除了测 试技术问题之外,还有 测试管理问题。 “3” 测试不是可有可无,随 测试不是可有可 心所欲的。规范化的软 无,随心所欲的。规 件开发需要对软件测试 范化的软件开发需要 早做计划,分配必要的 对软件测试早做计划 时间,人力和财力等资 ,分配必要的时间, 源,并将其作为项目管 人力和财力等资源, 理的一个部分加以控制 并将其作为项目管理 和协调。 的一个部分加以控制 和协调。
1 V模型中的过程从左到 右,描述了基本的开发 过 程和测试行为。V模型的价 值在于它非常明确地标明 了测试过程中存在的不同 级别,并且清楚地描述了 这些测试阶段和开发过程 期间各阶段的对应关系。 局限性: 把测试作为编 码之后的最后一个活动, 需求分析等前期产生的错 误直到后期的验收测试才 能发现
软件工程中软件测试方法

软件工程中软件测试方法软件测试是软件工程中非常重要的环节,它用于验证和评估软件系统是否满足预期的需求,并发现其中的错误和缺陷。
在软件测试过程中,可以采用多种不同的测试方法来确保软件的质量和稳定性。
以下是一些常见的软件测试方法:1. 黑盒测试:这种测试方法着重于测试软件系统的功能性,而不考虑内部的实现细节。
测试人员只关注输入和输出之间的关系,通过输入不同的数据,检查系统的响应和输出是否符合预期。
黑盒测试通常包括等价类划分、边界值分析、决策表等技术来设计测试用例。
2. 白盒测试:与黑盒测试相反,白盒测试关注软件系统的内部结构和实现。
测试人员需要了解代码的逻辑和结构,在此基础上设计相关的测试用例。
白盒测试通常包括语句覆盖、分支覆盖、路径覆盖等技术,以确保代码的全面覆盖率。
3. 灰盒测试:灰盒测试是黑盒测试和白盒测试的结合,既考虑系统的功能性,也考虑内部的实现。
测试人员在设计测试用例时,会兼顾输入输出关系和代码结构等因素。
4. 冒烟测试:冒烟测试也称为可靠性测试或基本功能测试,用于验证软件系统的基本功能是否正常工作。
在软件开发过程中的早期阶段,进行冒烟测试可以尽早发现严重的错误和缺陷。
5. 性能测试:性能测试用于评估软件系统在不同负载下的性能表现,包括响应时间、吞吐量、并发性能等指标。
通过性能测试,可以确定系统在实际使用场景下的性能瓶颈,并进行性能优化。
6. 安全测试:安全测试用于评估软件系统的安全性,包括数据安全、身份认证、访问控制等方面。
通过安全测试,可以发现系统中的安全漏洞和弱点,并提供相应的安全防护措施。
7. 兼容性测试:兼容性测试用于验证软件系统在不同的操作系统、浏览器、设备等环境下的兼容性。
通过兼容性测试,可以确保软件在各种环境下都能正常运行。
以上是软件工程中常见的软件测试方法,每种方法都有其特定的应用场景和测试目标。
在实际项目中,通常会根据需求和资源的情况,选择合适的测试方法来保证软件的质量和稳定性。
软件测试复习总结

名词解释:1.软件缺陷:计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵。
2.软件测试:是根据软件开发各阶段的规格说明和程序的内部结构而精心设计出的一批测试用例,并利用测试用例来运行程序,以发现程序的错误的过程。
3.静态测试:就是通过对被测试程序的静态审查,发现代码中潜在的错误。
4.黑盒测试:是一种从用户角度出发的测试,又成为功能测试、数据驱动测试和基于规格说明的测试。
5.白盒测试:根据被测试程序的内部结果设计测试用例,测试者需要事先了解被测试程序的结构。
6.单元测试:是对软件基本组成单元进行的测试。
单元测试对象是软件设计的最小单位——模块。
7.集成测试:根据实际情况对程序模块采用适当的集成测试策略组装起来,对系统的接口以及集成后的功能进行正确校验的测试工作。
8.确认测试:检验所开发的软件是否能按用户提出的要求运行,若能达到这一要求,则认为开发的软件是合格的。
9.测试用例:是为了高效率地发现软缺陷而精心设计的少量测试数据。
10.软件自动化测试:通过自动化测试工具或其他手段,按照测试工程师的预定计划进行自动化地测试。
目的是减轻手工测试的工作量,从而达到提高软件质量的目的11.程序插装:借助于在被测试程序中设置断点或打印语句来进行测试的方法。
12.测试文挡:记录和描述了整个测试流程,它是整个测试活动中非常重要的文件。
简答题:1.软件测试的目的是什么?(1)测试是程序的执行过程,目的在于发现错误;不能证明程序的正确性,仅限于处理有限的情况。
(2)检查系统是否满足需求,这也是测试的期望目标。
(3)一个好的测试用例在于发现还未曾发现的错误;成功的测试是发现了错误测试。
2.软件测试可分为哪些类?(1)从是否需要执行被测试软件的角度分类:静态测试和动态测试(2)从软件测试用例设计方法的角度分类:白盒测试和黑盒测试(3)从软件测试的策略和过程分类:单元测试、集成测试、确认测试、系统测试和验收测试3.软件测试的误区是什么?(1)期望用测试自动化代替大部分人工劳动(2)忽视需求阶段的参与(3)软件测试是技术要求不高的岗位4.单元测试的内容和目标是什么?目标:确保各单元模块被正确地编码。
常见的软件测试类型

常见的软件测试类型⼀、可⽤性测试定义:设计过程中被⽤来改善易⽤性的⼀系列⽅法,为⽤户提供⼀系列可操作场景和任务,与产品或者服务密切相关1、表现形式①.产品的基本⾃然属性,⽤户体验的⼀种衡量程度②.依照原型图对GUI的评估③.体现在产品和⽤户的交互友好性④.评价指标:效率、满意、安全(容错、⽆错)2、测试⽅法①.对同⼀测试内容同时采取多指标测试②.对同⼀测试内容在不同时间采⽤多指标测试3、⽬的①.确认⽤户界⾯设计在概念和详细设计2个不同层⾯的问题②.概念层⾯和导航:⽤户定位和UI⼀致性③.详细设计界⾯:遵循GUI设计界⾯标准,使⽤的术语等⼆、压⼒测试定义:对系统不断施加压⼒,通过确认⼀个系统瓶颈或不能接受的性能点,获得系统能提供最⼤级别服务的测试1、什么是压⼒测试即强度测试,模拟巨⼤⼯作负荷来测试应⽤程序在峰值情况下的服务处理能⼒2、表现形式①.短时间的极端负荷测试②.⾼并发下的负载测试③.持续⼀段时间的操作执⾏能⼒测试3、特点①.增加访问量,使应⽤系统资源使⽤保持在⼀定⽔平,检验应⽤的表现(重点:有误错误信息产⽣,系统的响应时间等)②.通过压⼒测试使系统资源使⽤率达到较⾼⽔平(⼀般情况:CPU使⽤率占⽐75%,内存使⽤率占⽐70%)4、压⼒测试与负载测试区别压⼒测试:超常规负荷条件下,长时间连续运⾏系统,检验应⽤程序的各种性能表现负载测试:应⽤程序在常规负荷下,确认响应时间和其他性能的表现5、压⼒测试的⽬标①.检查最终响应时间(完成⼀个业务流程所需要的时间)②.可靠性(功能和性能是否有错误?⼤数据量下系统运⾏是否有错误?)③.硬件和软件的可靠性④.硬件配置是否合理⑤.系统容量(没有显著性能下降情况下,系统能处理的最⼤负荷)三、确认测试定义:有效性测试;在模拟环境下,⽤⿊盒测试⽅法,验证被测软件是否满⾜需求1、⽬的向⽤户表明系统能像预定的要求那样⼯作2、内容主要包括功能和性能两部分四、容错性测试定义:⼀种对抗性的测试过程;指软件运⾏出现故障,如何进⾏故障转移和恢复当前系统的实时数据1、概念检查软件在异常条件下⾃⾝是否具有防护性的措施或某种灾难性恢复的⼿段当系统出现重⼤错误时,能否在指定时间间隔内修正错误并重启系统当系统出现⾮关键错误时能否保证系统继续运⾏2、内容包括2个⽅⾯:异常测试:输⼊异常数据或进⾏异常操作,验证系统的保护性;灾难恢复性测试:通过各种⼿段,让软件强制发⽣故障,然后验证系统已保存的⽤户数据是否丢失,系统和数据是否能尽快恢复3、注意事项故障发⽣时数据的转移和恢复故障表现:①.服务器断电②.⽹络设备断电③.数据库系统发⽣故障④.应⽤系统⽂件发⽣故障⑤.系统软件发⽣故障五、易⽤性测试1、易⽤性测试定义①.是交互的适应性、功能性和有效性的集中体现②.分2个层次:⽤户界⾯易⽤性和操作系统易⽤性③.易⽤性测试包括:针对应⽤程序的测试、对⽤户⼿册系统⽂档的测试(通常采⽤质量外部模型来评价易⽤性)2、内容①.⽤户界⾯测试②.操作系统有内置⽀持六、安全性测试1、定义验证应⽤程序的安全级别和识别潜在安全性缺陷的过程;⼀般在单元测试、集成测试阶段进⾏,以便在破坏之前预防并识别软件安全问题2、表现表现在2个⽅⾯①.应⽤程序的安全性②.操作系统的安全性七、需求分析测试定义:需求分析是说明软件应有的功能和性能,使分析⼈员能够清晰的了解⽤户需求能否实现1、内容①.功能需求的分析②.界⾯需求的分析③.性能需求的分析④.分析约束条件2、需求分析的关键点①.功能能否满⾜⽤户需求②.性能能否满⾜⽤户需求③.需求说明书所讨论的内容是否得到⽤户认可⼋、可靠性测试定义:为了保证和验收软件的可靠性⽽进⾏的测试1、概述①.有效的发现程序中影响软件可靠性的缺陷,从⽽实现可靠性增长②.验证软件可靠性满⾜⼀定的要求③.估计、预计软件可靠性⽔平2、注意事项①.功能识别②.可靠性对时间的要求③.可靠性对环境条件的要求3、测试流程①.测试数据收集和准备②.测试环境的准备③.测试运⾏④.可靠性测试数据分析九、风险测试定义:风险指的是软件开发过程中遇到的预算、进度、开发遇到的问题等引起的损失的可能性1、表现形式①.模块设计:所有模块开发没有统⼀设计,开发⼈员独⽴的设计测试模块②.需求变更开发:需求变更没有及时告知测试⼈员所造成的的风险③.⼈⼒资源:测试⼈员没有及时到位或者⼈员流失④.硬件资源:各种硬件资源对测试⼯作的影响⑤.测试时间:对测试时间没有进⾏科学、合理的规划2、解决策略①.增加资源②.缩⼩范围③.制定标准⽂档3、测试步骤①.风险分析②.风险评估③.执⾏风险④.风险总结⼗、缺陷测试定义:对开发的软件是否存在缺陷进⾏的测试1、问题表现①.软件是否达到产品说明书表明的功能②.是否出现了产品说明书中不⼀致的表现③.是否超出了产品说明书的范围④.能否达到⽤户期望的⽬标⑤.软件的易⽤性2、注意事项①.由于客观因素(市场压⼒、运营状况等)造成的产品上线时间限制②.因测试⼈员不正当操作或理解错误导致的缺陷③.错误的修改影响的模块较多,带来的风险较⼤④.很难被重现的缺陷⑤.修改很耗时或对产品使⽤影响很⼩的,修改性价⽐很低的缺陷3、缺陷分级①.致命(软件产品不能启动、运⾏使⽤)②.崩溃(产品重要模块不能正常使⽤,验证影响了系统要求或基本功能实现)③.严重(产品功能模块不能正常使⽤,影响其他相关模块功能实现等)④.⼀般(暂时不影响基本功能模块正常使⽤等)⑤.优化(界⾯不美观,⽂字爆框超出,但不影响使⽤)⼗⼀、接⼝测试定义:为了验证软件对外的接⼝服务可以正常提供服务及软件在不同场景中执⾏路径的安全可操作性1、接⼝测试的⽬的⽬的:测试系统相关联的内外部接⼝①.模块接⼝的测试②.系统接⼝的测试2、主要内容①.接⼝逻辑测试②.模块接⼝测试3、关键点①.数据类型问题②.变量值问题③.逻辑判断问题④.⽂件I/O问题。
软件测试的各种方法介绍

2.集成测试集成测试,英文是Integration Testing。
集成测试是指一个应用系统的各个部件的联合测试,以决定他们能否在一起共同工作并没有冲突。
部件可以是代码块、独立的应用、网络上的客户端或服务器端程序。
这种类型的测试尤其与客户服务器和分布式系统有关。
一般集成测试以前,单元测试需要完成。
集成测试是单元测试的逻辑扩展。
它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。
从这一层意义上讲,组件是指多个单元的集成聚合。
在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。
方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。
最后,将构成进程的所有模块一起测试。
此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。
集成测试识别组合单元时出现的问题。
通过使用要求在组合单元前测试每个单元,并确保每个单元的生存能力的测试计划,可以知道在组合单元时所发现的任何错误很可能与单元之间的接口有关。
这种方法将可能发生的情况数量减少到更简单的分析级别3.冒烟测试冒烟测试,英文是Smoke testing。
冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。
也有人认为是形象地类比新电路板基本功能检查。
任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了。
冒烟测试的对象是新编译的每一个需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。
冒烟测试的执行者是版本编译人员。
4.系统测试系统测试,英文是System Testing。
系统测试是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。
系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。
系统测试的对象不仅仅包括需要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。
软件测试课件-动态黑盒测试——等价类划分

合法输入条件的分析
·报表案例中,输入信息是6位数字,前4位代表 2003~2008的年份,后2位代表任意月份。由此我们 可以得出以下合法输入条件:
① 6位数字字符 ② 前4位范围2003~2008 ③ 后2位范围01~12
合法输入条件的分析
·报表案例中,输入信息是6位数字,前4位代表 2003~2008的年份,后2位代表任意月份。由此我们 可以得出以下合法输入条件:
测试举例
例:某企业的报表处理系统要求用户输入处理报表的日 期,日期限制在2003年1月至2 0 0 8年1 2月,即系统只能 对该段期间内的报表进行处理,如日期不在此范围内, 则显示输入错误信息。
输入信息要求:系统日期规定由年、月的6位数字字符 组成,前4位代表年,后2位代表月。 请设计动态黑盒测试用例来测试程序的日期检查功能。
月份为01
200301
后2位
月份为12 月份为00
200312 200300
月份为13
200313
期望结果
选取理由
显示出错 仅有1个合法字符
输入有效 类型及长度均有效
显示出错 比有效长度少1
显示出错 比有效长度多1
显示出错 只有1个非法字符显示出错 6个非法字符
输入有效 最小年份
输入有效 最大年份
显示出错 刚好小于最小年份
·本例中,合法输入应同时满足①~③这3个条件, 因此1个合法的测试用例应该尽量覆盖①~③这三个 有效等价类。非法输入只需要满足④~⑩其中任一条 件即可,因此1个非法测试用例应尽可能只覆盖1个 无效等价类。
合法测试用例
测试用例 200409
期望结果 输入有效
覆盖范围 ①②③
非法测试用例
测试数据 2004Ma 20045 2004005 200105 200905 200400 200413
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
测试阶段分类
单元测试阶段:
模块接口测试
通过所测模块的数据流进行测试。
调用所测模块时的输入参数与模块的形式参数的个数、属性和顺序是否匹配。
局部数据结构测试
局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整、正确、模块的局部数据结构往往是错误的根源。
路径测试
对模块中重要的执行路径进行测试。
错误处理测试
比较完善的模块设计要求能遇见出错的条件,并设置适当的出错处理,以便在一旦程序出错时,能对出错程序重做安排,保证其逻辑上的正确性。
边界条件测试
软件经常在便捷上失效,边界条件测试是一项基础测试,也是后面系统测试中的功能测试的重点。
集成测试阶段:
在集成测试中,我们主要关注以下内容:
1. 把各个模块连接起来时,穿越模块接口的数据据是否会丢失。
2. 各个了模块组合起来,能否达到预期要求的功能。
3. 一个模块的功能是否会对另一个模块的功能产生不利影响。
4. 全局数据据结构是否有问题。
5. 单个模块的误差积累起来是否会被放大,从而达到不可接受的程序。
系统测试阶段:
一般系统的主要测试工作都集中系统测试阶段。
根据不同的系统,所进行的测试种类也很多。
功能测试:
功能测试是对产品的各功能进行验证,以检查是否满足需求的要求。
性能测试:
性能测试是通过自动化测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
安全测试:
安全测试检查系统对非法入侵的防范能力。
兼容测试:
兼容性测试主要是测试系统在不同的软硬件环境下是否能够正常的运行。
验收测试阶段:
功能确认测试
安全可靠性测试
易用性测试
可扩充性测试
兼容性测试
资源占用率测试
用户文档资料验收
测试工具分类
黑盒测试:
黑盒测试,指的是把被测的软件看作是一个黑盒子,我们不去关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出结果。
它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
白盒测试:
白盒测试,指的是把盒子盖子打开,去研究里面的源代码和程序结果。
它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作
灰盒测试:
灰盒测试介于黑盒测试与白盒测试之间。
可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。
测试目标分类
功能测试
功能测试检查实际的功能是否符合用户的需求。
测试的大部分工作也是围绕软件的功能进行,设计软件的目的也就是满足客户对其功能的需求。
如果偏离的这个目的任何测试工作都是没有意义的。
功能测试又可可以细分为很多种:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。
性能测试
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
软件的性能包括很多方面,主要有时间性能和空间性能两种。
时间性能:主要是指软件的一个具体的响应时间。
比如一个登录所需要的时间,一个交易所需要的时间等。
当然,抛开具体的测试环境,来分析一次事务的响应时间是没有任何意义的。
需要搭建一个具体且独立的测试环境。
空间性能:主要指软件运行时所消耗的系统资源,比如硬件资源,CPU、内存,网络带宽消耗等。
测试方法分类
手工测试:
手工测试就是由人去一个一个的去执行测试用例,通过键盘鼠标等输入一些参数,查看返回结果是否符合预期结果。
(其实,不太喜欢别人把一般的功能测试工作叫手工测试,就像一个雕塑家不喜欢别人叫他刻石头的一样。
手工测试同样需要业务熟悉、基本测试方法的理解。
看似简单的工作却能够发现别人不能发现的软件问题。
在目前的测试领域,手工测试仍然是无法替代的一种测试方法)
自动化测试
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。
通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。
在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
自动化测试:又可分为功能自动化测试与性能自动化测试。
我们一般所说的自动化测试就是指功能自动化测试,通过相关的测试技术,通过编码的方式用一段程序来测试一个软件的功能,这样就可以重复执行程序来进行重复的测试。
如果一个软件一小部分发生改变,我们只要修改一部分代码,就可以重复的对整个软件进行功能测试。
这样就大大的提高了测试效率。
性能自动化测试,当然,除了早期阶段,现在的性能测试工作都是通过性能测试工具辅助完成的。
能过工具可以模拟成千上万的用户向系统发送请求,用来验证系统的处理能力。
这三种测试在软件功能测试过程中,既不算具体明确的测试阶段也不算是具体的测试方法。
冒烟测试:
是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。
引入到软件测试中,就是指测试小组在正规测试一个新版本之前,先投入较少的人力和时间验证一个软件的主要功能,如果主要功能都没有实现,则打回开发组重新开发。
这样做的好处是可以节省大量的时间成本和人力成本。
回归测试:
回归测试是指修改了旧代码后,重新时行测试以确认修改后没有引入新的错误或导致其他代码产生错误。
回归测试一般是在进行软件的第二轮测试开始的,验证第一轮中发现的问题是否得到修复。
当然,回归也是一个循环的过程,如果回归的问题通不过,则需要开发人员修改后再次进行回归,直到通过为止。
随机测试:
是指测试中的所有输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。
随机测试可以发现一些隐蔽的错误,但是也有很多缺点,比如测试不系统,无法统计代码覆盖率和需求覆盖率,发现的问题难以重现。
一般是放在测试的最后执行。
其实随机测试更专业的升级版叫探索性测试
探索性测试
探索性测试可以说是一种测试思维技术。
它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方式。
探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。
探索性测试应该是未来测试领域的一个方向。
安全测试
安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。
安全测试也在越来越受到企业的关注和重视,因为由于安全性问题造成的后果是不可估量的。
尤其对于互联网产品最容易遭受各种安全攻击。