一、软件测试流程➢整体流程:测试需求分析,测试计划编写,测试用例编写,测试执行,缺陷记录,回归测试,判断测试结束,测试报告提交。
➢测试流程依次如下:1.需求:阅读需求,理解需求,与客户、开发、架构多方交流,深入了解需求。
--testing team。
一般而言,需求分析包括软件功能需求分析、测试环境需求分析等2.测试计划: 根据需求估算测试所需资源(人力、设备等)、所需时间、功能点划分、如何合理分配安排资源等。
---testing leader or testing manager。
测试目的、测试环境、测试方法、测试用例、测试工具3.用例设计:根据测试计划、任务分配、功能点划分,设计合理的测试用例。
---testing leader, seniortester4.执行测试:根据测试用例的详细步骤,执行测试用例。
--every tester(主要是初级测试人员)5.执行结果记录和bug记录:对每个case记录测试的结果,有bug的在测试管理工具中编写bug记录。
--everytester(主要是初级测试人员)6.defect tracking(缺陷跟踪):追踪leader分配给你追踪的bug.直到 bug fixed。
--every tester7.测试报告:通过不断测试、追踪,直到被测软件达到测试需求要求,并没有重大bug.8.用户体验、软件发布等……➢总结:项目立项后,开始写测试计划,根据需求编写测试需求,根据测试需求编写测试用例,根据测试用例执行测试,把没用通过的测试用例写成测试缺陷报告,进行回归测试,直到测试的结束编写测试总结,这每个步骤都需要审核通过。
二、软件测试方法1、黑盒测试➢概念:完全不考虑程序或软件的内部逻辑结构和处理过程的情况下,根据需求分析编写并执行测试用例,在程序或软件的界面上进行测试。
➢主要目的:(1)是否有不正确的或者遗漏的功能。
(2)能都正确输入和输出结果。
(3)是否有数据结构错误或外部信息访问错误。
(4)性能上是否满足要求。
(5)是否有初始化或终止行错误。
➢优点:(1)即使程序发生变化,之前的测试用例依然可以使用;(2)测试用例和软件开发可以同时进行,加快了测试和开发的速度。
➢局限性:(1)难以查找问题的原因和位置;(2)黑盒测试的依据是需求分析,所以无法发现需求分析上的错误。
➢测试方法:(1)等价类划分包括有效等价类(符合需求规格说明)和无效等价类(违反需求规格说明)。
a)确定输入取值范围:可以确定一个有效等价类和两个无效等价类b)确定输入某个值:可以确定一个有效等价类和两个无效等价类c)布尔量的情况:可以确定一个有效等价类和一个无效等价类d)输入数据由N个值构成:可以确定N个有效等价类和一个无效等价类e)必须遵守规则:可以确定一个有效等价类和若干个无效等价类(从不同角度违反规则)(2)边界值分析法等于、刚好大于、刚好小于、(3)因果图分析法着重考虑条件组合(约束条件)(4)错误推断法(5)判定表驱动分析法(6)正交试验法2、UI测试➢概念:user interface testing 用户界面测试。
指测试用户界面的风格是否满足用户需求,文字是否正确,页面是否美观,文字和图片的组合是否完美,操作是否友好等等。
➢目的:确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能;确保用户界面符合公司或行业标准。
➢包括:友好性、人性化、易用性等。
➢例如:功能按钮的大小、风格、是否对齐等,报错信息的提示。
3、冒烟测试➢冒烟测试的对象是新编译的每一个需要正式测试的软件版本。
主要目的确认软件功能基本正常。
4、随机测试➢主要是根据经验,对软件的功能和性能进行抽查。
三、软件开发的主要阶段需求分析(确定功能需求,性能需求以及运行环境;此阶段对需求的理解不完整、不正确都会为缺陷的产生留下祸根)软件设计、软件编码、软件测试、软件运行和维护四、软件测试的目标尽可能多、尽早的发现有效bug、严重bug并且修改bug,以使软件满足用户的业务需求五、软件测试的原则(1)尽早、全面、全过程、独立开展测试活动;(2)建立在满足用户需求的基础上;(3)程序员避免自己检查自己的代码;(4)测试用例要输入合法值与违法规则的值、边界值等,本着破坏的目的;(5)充分重视回归测试六、测试工作流程图1、单元测试单元测试(一般由开发人员来完成)步骤:(1)计划单元测试:确定单元测试内容,初步制定测试策略,确定测试所用的资源,安排测试进度。
(2)设计单元测试:创建单元测试环境,制定测试方案,细化测试过程。
(3)实现单元测试:编写测试用例及测试脚本。
(4)执行单元测试:对被测单元执行测试用例和测试脚本,记录被测单元执行过程和发现的bug,定位和排除错误。
(5)单元测试结果分析并提交测试报告:对单元测试的结果进行分析,归类,确定单元测试是否完备,并编制和提交单元测试报告。
单元测试工具:cppunit2、集成测试采用的方法有:自顶向下、自底向上、两头逼近混合方式(1)自顶向下:从顶层模块开始,沿被测程序结构图逐级向下测试。
(2)自底向上:找到一个没有下级的模块,由下向上的逐步添加新模块,组成程序中的一个子系统或模块(3)两头逼近混合方式:对上层模块采取自顶向下测试,对关键模块或子系统采取由底向上测试3、确认测试判断目标软件是否满足用户的功能和性能需求,文档资料是否完整、准确(1)黑盒测试功能测试:针对要求的程序功能,按照规范的流程进行测试;性能测试:针对要求的程序功能以外的,包括性能、安全、配置、负载等指标,按照规范的流程进行测试;攻击测试:针对要求的程序功能、性能、安全、配置、负载等指标,基于破坏目的,按照经验随机进行测试(2)验收测试进行验收测试,来保证软件满足用户的需求。
由用户完成,可以进行一周或几个月的时间,因而可以随着时间的积累发现更多的缺陷。
(3)Alpha与Beta测试Alpha测试是在一个受控的环境下进行,由开发者“指导”用户进行测试,缺陷由开发者记录;Beta测试是由用户在自己的工作场所进行测试,并定期把缺陷提报给开发者,开发者在收到缺陷记录后,对程序进行修改,再对产品进行更新以及最终版本的发布。
4、系统测试对系统进行更大范围的测试。
除被测程序外,系统还可能包括硬件和其他软件。
把确认测试合格的软件部署到系统之后,能正常运行,并检查是否能与其他软件协调运行,完成SRS(软件需求规格说明书)对软件的要求。
七、健壮性测试又称为容错性测试。
用于测试系统在出现故障时,是否能够自动恢复或者忽略故障继续运行。
测试内容:1、对关键进程或线程杀死,观察系统行为2、对关键进程或线程挂起,观察系统行为3、网络有故障,观察系统行为4、数据库有故障,观察系统行为八、兼容性测试也可以说是软件的可移植性,检查软件在不同的硬件平台,软件平台是否能正常运行。
细分,包括:平台兼容,网络兼容,数据库兼容,数据库格式兼容。
兼容测试多在clean os的环境下进行测试(配置测试不是在clean os环境下测试)十、测试用到的工具(一)bug管理工具1、bugfree(F:\bugfree)《操作手册》页面链接见下:/view/7057cd37bc64783e0912a21614791711cd7979422、Bugzilla用户组(管理用户信息,登录账号、密码等)产品管理(管理产品信息,模块、开发者等)权限组(管理用户访问权限、对bug的操作权限等)Bug记录(新增、修改、删除bug,显示bug周期、指派负责人等)3、禅道管理工具(二)性能测试工具(压力测试)1、LoadRunner通过模拟真实的用户行为,通过负载、并发和负载实时监控以及完成后的测试报告,分析系统可能存在的瓶颈。
最为有效的手段是并发控制,通过控制台设置,达到同一业务同时模拟成千上万的用户同时操作。
2、Jmeter(压力测试)E:\TOOLS\JMeter\apache-jmeter-3.1\bin 运行该目录下的jmeter.bat(三)自动测试工具1、QTP(1)常用检查点:A)标准检查点:检查对象属性,例如检查按钮是否可用,复选框是否被选中等。
B)位图检查点:检查位图格式的程序或者网页的某个区域。
把程序或网页的某一个区域捕获为位图的格式进行检查C)文本检查点:检查网页或窗口中的文字是否正确D)文本区域检查点:检查网页或窗口中的文字是否正确,与文本检查点不同的是文本区域检查点检查的是指定的文字是否在指定的区域正确显示E)表检查点:检查表格内多个单元格的内容是否正确F)数据库检查点:检查数据插入数据库是否成功G)页面检查点:检查页面的特性,例如一个页面的响应时间,页面中是否有中断的链接H)XML检查点:检查XML文件是否正确I)图像检查点:检查应用程序或网页中的图像的值,是否与预期的值一致。
例如检查图像的源文件的名称是否正确。
(四)软件测试管理工具1、TestDirector(1)测试管理过程A)需求管理●定义需求范围●定义需求树●描述功能点B)测试计划●测试目标和测试策略●分析应用程序,建立测试计划树●确定每个功能点的测试方法●将每个功能点连接到需求上,使测试计划覆盖全部的测试需求●描述手工测试的步骤●指明需要自动化测试功能点C)测试执行●执行测试用例D)缺陷跟踪●记录缺陷●确定需要修改的缺陷●相关人员修改缺陷●回归测试2、QC(qualitycenter)架构(站点管理、项目自定义管理、项目测试管理)✧站点管理(1)项目管理a)域和项目的管理b)域,可以包含多个项目(例如:文件夹和文件的关系)c)创建域、删除域;创建项目、删除项目、停止、激活项目(2)用户管理a)创建用户b)用户密码设置c)删除用户d)把用户添加到项目(3)站点链接管理可以看到哪些用户登录了系统,可以断开用户登录,可以对用户进行分组管理(4)序列号管理管理购买的序列号,可以整个序列号购买,可以单个模块的序列号购买(5)服务器管理(不作为重点,略)(6)其他辅助管理(不作为重点,略)✧项目自定义管理每个项目都有对应的项目自定义管理,可以根据需求,为项目做个性化设置(1)用户属性管理用户名不可修改,当前登录用户的信息和密码可修改。
(2)项目用户管理为项目添加用户,并为用户分配相应的权限(3)权限组管理设置查看权限组的权限,也可以为用户分配相应的权限(4)模块访问权限管理设置每个权限组是否可以访问测试管理中的某个子模块(5)实体管理可以设置对应的模块界面中填写项的属性(例如:某个字段设置为必填项、界面汉化等)(6)需求类型管理添加需求功能、安装需求、兼容性需求、性能需求等(7)风险管理可以设定风险模型,并对需求中的功能模块使用设置的风险模型进行分析,从而判定每个功能模块存在的风险(8)项目列表管理为测试管理中某些下拉列表填写项提供备选值(9)邮件管理在某些特定条件下,自动向某些人发送邮件(例如:当缺陷状态改变时,向相关的测试测试人员或者开发人员发送邮件。