目录
软件测试&软件开发生命周期六个阶段
合格的bug描述七个要素:
bug的生命周期
测试团队的职责
测试团队需要交付的文档
总体测试计划要素
测试用例要素
测试报告
测试方法
设计测试用例的方法
软件测试的14种类型
Web测试方法
测试阶段划分 (按测试执行顺序):
单元测试、集成测试、系统测试的比较:
单元测试过程
系统测试过程
集成测试过程
需求分析阶段
概要设计阶段
详细设计阶段
编码阶段
测试阶段
数据与数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试。
数据库完整性原即:
主码完整性:主码不能为空;
外码完整性:外码必须等于对应的主码或者为空。
数据合理性指数据在数据库中的类型,长度,索引等是否建的比较合理。
UI测试指测试用户界面的风格是否满足客户要求,文字是否正确,页面美工是否好看,文字,图片组合是否完美,背景是否美观,操作是否友好等等
用户界面 (UI) 测试用于核实用户与软件之间的交互。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。另外,UI 测试还可确保 UI 中的对象按照预期的方式运行,并符合公司或行业的标准。包括用户友好性,人性化,易操作性测试。
5.1负载测试
负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。
在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
比如,在B/S结构中用户并发量测试就是属于负载测试的用户,可以使用webload工具,模拟上百人客户同时访问网站,看系统响应时间,处理速度如何?
5.2强度测试
强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。这类测试往往可以书写系统要求的软硬件水平要求。
实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。
比如:一个系统在内存366M下可以正常运行,但是降低到258M下不可以运行,告诉内存不足,这个系统对内存的要求就是366M。
5.3数据库容量测试
数据库容量测试指通过存储过程往数据库表中插入一定数量的数据,看看相关页面是否能够及时显示数据。
数据库容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。例如,如果测试对象正在为生成一份报表而处理一组数据库记录,那么容量测试就会使用一个大型的测试数据库,检验该软件是否正常运行并生成了正确的报表。做这种测试通常通过书写存储过程向数据库某个表中插入一定数量的记录,计算相关页面的调用时间。
比如,在电子商务系统中,通过insert customer 往user表中插入10 000数据,看其是否可以正常显示顾客信息列表页面,如果要求达到最多可以处理100 000个客户,但是顾客信息列表页面不能够在规定的时间内显示出来,就需要调整程序中的SQL查询语句;如果在规定的时间内显示出来,可以将用户数分别提高到20 000 , 50 000, 100 000进行测试。
5.4基准测试
基准测试与已知现有的系统进行比较,主要检验是否与类似的产品具有竞争性的一种测试。
如果你要开发一套财务系统软件并且你已经获得用友财务系统的性能等数据,你可以测试你这套系统,看看哪些地方比用友财务系统好,哪些地方差?以便改进自己的系统,也可为产品广告提供数据。
5.5竞争测试
软件竞争使用各种资源(数据纪录,内存等),看他与其他相关系统对资源的争夺能力。比如:一台机器上即安装您的财务系统,又安装用友财务系统。当CPU占有率下降后,看看是否能够强过用友财务系统,而是自己的系统能够正常运行?
安全性和访问控制测试侧重于安全性的两个关键方面:
应用程序级别的安全性,包括对数据或业务功能的访问
系统级别的安全性,包括对系统的登录或远程访问。
8.1浏览器兼容性
测试软件在不同产商的浏览器下是否能够正确显示与运行;
比如测试IE,Natscape浏览器下是否可以运行这套软件?
8.2操作系统兼容性
测试软件在不同操作系统下是否能够正确显示与运行;
比如测试WINDOWS98,WINDOWS 2000,WINDOWS XP,LINU, UNIX下是否可以运行这套软件?
8.3硬件兼容性
测试与硬件密切相关的软件产品与其他硬件产品的兼容性,比如该软件是少在并口设备中的,测试同时使用其他并口设备,系统是否可以正确使用.
比如在INTER,舒龙CPU芯片下系统是否能够正常运行?
这样的测试必须建立测试实验室,在各种环境下进行测试。
13.1说明书测试
主要为语言检查,功能检查,图片检查
语言检查:检查说明书语言是否正确,用词是否易于理解;
功能检查:功能是否描述完全,或者描述了并没有的功能等;
图片检查::检查图片是否正确
13.2宣传材料测试
主要测试产品中的附带的宣传材料中的语言,描述功能,图片
13.3帮助文件测试
帮助文件是否正确,易懂,是否人性化。最好能够提供检索功能。
13.4广告用语
产品出公司前的广告材料文字,功能,图片,人性化的检查
文档审核测试目前越来越引起人们的重视,软件质量不是检查出来的,而是融进软件开发中来。前置软件测试发越来越受到重视。请看一个资料:
文档审核测试主要包括需求文档测试,设计文档测试,为前置软件测试测试中的一部分。
14.1需求文档测试
主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现;
14.2设计文档测试
测试设计是否符合全部需求以及设计是否合理。
定义:针对软件基本组成单元(软件设计的最小单位)来进行正确性检验的工作;
测试目的:检测软件模块对《详细设计说明书》的符合程度。
定义:在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或系统,验证组装后功能以及模块间接口是否正确的测试工作;
测试目的:检测软件模块对《概要设计说明书》的符合程度。
定义:将已经集成好的的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他元素组合在一起,在实际运行(使用)环境下,对计算机系统进行的一系列的测试工作。
测试目的:与《需求规格说明书》做比较,发现软件与系统需求定义不符合或与之矛盾的地方。
定义:软件在测试或其他活动中发现的缺陷经过修改后,进行的测试;
测试目的:验证缺陷得到了正确的修复,同时对系统的变更没有影响以前的功能;
特点:回归测试可以发生在任何一个阶段,包括单元测试、集成测试和系统测试;
策略:
①、完全重复测试:重新执行前期建立的所有测试用例,并确认确认缺陷解决和修改的扩散影响性;
②、选择性重复测试:
——覆盖修改法:选择直接影响的用例;
——周边影响法:选择间接影响的用例;
——指标达成方法:达到指标的覆盖率等。
流程:
1)制定回归测试策略
2)确定测试的版本
3)按照回归测试策略执行回归测试
4)回归测试通过,关闭缺陷跟踪单(问题单)
5)回归测试不通过,缺陷跟踪单返回开发人员,经开发人员修改后再次进行回归测试
回归测试自动化:(需考虑的问题如下)
1)回归测试是一个重复的以前测试的测试,所以自动化是回归测试的追求;
2)自动化法包括:程序的自动运行、自动配置,用例的管理、自动输入,测试自动执行,测试结果自动采集、比较及结论的自动输出;
3)对比较稳定的可采用QTP、Robot、SilkTest等工具的“捕捉回放”工具;
4)为了能实现自动化需要用到脚本语言,如:TCL、Python、Perl等;
5)对比较复杂的过程,无法借助工具的需要自己开发专用工具;
6)尽早考虑回归测试的自动化,形成工具化、可继承和推广的。
○ α测试:用户在开发环境下进行的测试,评价软件FLURPS
○ β测试:多用户在实际使用环境下进行的测试
○ 验收测试:用户根据合同、《需求规格说明书》或《验收测试计划》对产品进行的验收测试
注:FLURPS即:功能、局域化、可用性、可靠性、性能、技术支持
● 测试方法:
单元测试属于白盒测试范畴;
集成测试属于灰盒测试范畴;
系统测试属于黑盒测试范畴;
● 考察范围:
单元测试主要测试内部数据结构、逻辑控制、异常处理等;
集成测试主要测试模块间的接口与接口数据传递关系,以及模块组合后的整体功能;
系统测试主要测试整个系统相对于需求的符合度;
● 评估基准:
单元测试主要通过逻辑覆盖率来评估;
集成测试主要通过接口覆盖率来评估;
系统测试主要通过测试用例对需求规格的覆盖率来评估;
主要的测试文档:
● 测试计划:测试范围、方法、资源,以及相应测试活动的时间进度安排表的文档;
● 测试方案:为完成软件集成特性的测试而进行的设计测试方法的细节文档;
● 测试用例:为完成一个测试项的测试输入、预期结果、测试执行条件等因素的文档;
● 测试规程:执行测试时测试活动序列的文档;
● 测试报告:执行测试结果的文档;
● 测试日报:每天测试执行情况的记录和总结。
同样这个过程将研究单元测试过程各个阶段的输入及输出。
单元测试计划阶段:
输入:详细设计说明书、软件测试计划
输出:单元测试计划
单元测试设计阶段:
输入:详细设计说明书、单元测试计划
输出:单元测试方案
单元测试实现阶段:
输入:详细设计说明书、单元测试计划、单元测试方案
输出:单元测试用例、单元测试规程
单元测试执行阶段:
输入:单元测试计划、单元测试方案、单元测试用例、单元测试规程
输出:单元测试报告、缺陷报告
在这里主要研究软件系统测试过程中的输入和输出,了解我们应该根据什么来做、要做什么以及我们做的先后顺序是怎么安排的过程。
系统测试计划阶段:
输入:软件开发计划、软件测试计划、需求规格说明书
输出:系统测试计划
系统测试设计阶段:
输入:需求规格说明书、系统测试计划
输出:系统测试方案
系统测试实现阶段:
输入:需求规格说明书、系统测试计划、系统测试方案
输出:系统测试用例、系统测试规程、系统测试预测试项
系统测试执行阶段:
输入:系统测试计划、系统测试方案、系统测试用例、系统测试预测试项、系统测试规程
输出:系统预测试报告、系统测试报告、缺陷报告
同样这个过程将研究集成测试过程各个阶段的输入及输出。
集成测试计划阶段:
输入:软件测试计划、概要设计说明书
输出:集成测试计划
集成测试设计阶段:
输入:概要设计说明书、集成测试计划
输出:集成测试方案
集成测试实现阶段:
输入:概要设计说明书、集成测试计划、集成测试方案
输出:集成测试用例、集成测试规程
集成测试执行阶段:
输入:集成测试计划、集成测试方案、集成测试用例、集成测试规程
输出:集成测试报告、缺陷报告
每个阶段有每个阶段的任务,这里将了解需求分析阶段的任务,及其软件项目各工作人员的任务所在。
需求分析阶段任务:
● 需求分析,完成SRS
● 软件需求规格说明书的评审:检查遗漏和存在问题
● 进行需求跟踪
● 系统测试计划
● 系统测试计划的评审
概要设计阶段任务:
● 软件系统各层设计,完成HLD
● HLD的评审
● 更新需求跟踪
● 系统测试方案、用例的设计
● 系统测试方案、用例的评审
● 集成测试计划
● 集成测试计划的评审
详细设计阶段任务:
● 软件详细模块的设计,完成LLD
● 详细设计的评审
● 更新需求跟踪
● 集成测试方案、用例的设计
● 集成测试方案、用例的评审
● 单元测试计划
● 单元测试计划的评审
编码阶段任务:
● 软件编码
● 对代码进行静态质量检查
● 代码评审
● 单元测试方案、用例的设计
● 单元测试方案、用例的评审
测试阶段的任务:
● 系统预测试项执行
● 系统预测试报告工作
● 执行各阶段测试用例
● 各阶段的缺陷记录、修复
● 各阶段日志报告
● 各阶段缺陷的回归测试
● 各阶段测试报告
● 测试报告的评审
繁华事散逐香尘,流水无情草自春