测试环境要点:
真实 干净 无毒 独立
软件环境分类:
软件开发环境和软件生产环境
测试用例模板:
Excel模板和Word模板
黑盒测试:(包括功能测试和性能测试)
把被测试的软件看作是一个黑盒子,不关心盒子里面的结构是什么样的,
只关心软件的输入数据和输出结果。
白盒测试:
把盒子打开,去研究里面的源代码和程序结构
灰盒测试:
相当于黑盒测试加上白盒测试
静态测试:
指不实际运行被测软件,而是静态地检查程序代码、界面或文档中可能存在的过程
包含:
代码测试:主要测试代码是否符合相应的标准和规范。
界面测试:主要测试软件的实际界面与需求中的说明是否相符
文档测试,主要测试用户手册和需求说明是否真正符合用户的实际需求
动态测试:
指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程
黑盒测试有可能是动态测试(运行程序,只看输入和输出),也有可能是静态测试(不运行程序,只是查看界面)
白盒测试有可能是动态测试(运行程序,并分析代码结构),也有可能是静态测试(不运行程序,只是静态查看代码)
动态测试有可能是黑盒测试(运行程序,只是输入和输出),也有可能是白盒测试(运行代码,并分析代码结构)
静态测试有可能是黑盒测试(不运行程序,只是查看界面),也有可能是白盒测试(不运行程序,只是静态查看代码)
单元测试:
依据:一个是源程序本身,包括代码和注释;还有一个就是项目的《详细设计》文档
标准:
1.程序通过所有单元测试的用例
2.语句覆盖达到100%
3.分支的覆盖率达到85%
如何测试:采用白盒测试的方法,一般我们先静态地检查代码是否符合规范,然后动态地运行代码,检查其实际运行的结果。
4.桩模块和驱动模块:
桩模块(Stub)是指模拟被测模块所调用的模块
驱动模块(Dricer):指模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块并输出结果。
集成测试:(用来检查各个单元模块结合到一起能否协同配合,正常运行)
单元测试的下一个阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分
依据:单元测试的模块以及《概要设计》文档。
系统测试和验收测试
系统测试:指的是将整个软件系统看作一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
依据:《系统需求规格说明书》文档
验收测试:指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,也是软件正式交给用户使用的最后一道工序。
验收测试分为:
α测试:指的是用户、测试人员、开发人员等共同参与的内部测试
β测试:指的是内测后的公测,即完全交给最终用户测试
功能测试和性能测试
功能测试:检查实际软件的功能是否符合用户的需求
分类:
逻辑功能测试:
界面测试:
易用性测试:
安装测试:
兼容性测试:
等。
性能测试:
软件性能主要有时间性能和空间性能。
时间性能:主要指软件的一个具体事务的响应时间。
空间性能:主要是指软件运行时所消耗的系统资源。
软件性能测试:
一般性能测试:指让被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试。
稳定性测试:是指连续运行被测系统,检查系统运行时的稳定程度
负载测试:是指让被测系统在其还能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。
(测试系统在临界状态下运行是否稳定提供了一种办法。)
压力测试:是指持续不断地给被测系统增加压力,直到系统压垮为止,用来测试系统所能承受的最大压力。
回归测试、冒烟测试、随机测试
回归测试:是指对软件的新的版本测试时,重复执行上一个版本测试时,重复执行上一个版本测试时的用例
回归测试可以在任何测试阶段进行(单元测试、集成测试、系统测试、验收测试等),既有黑盒测试的回归,也有白盒测试的回归。
冒烟测试:指在对一个新版本进行系统大规模的测试前,先验证一下软件的基本功能是否实现,是否具备可测性。
随机测试:是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。
缺陷的二八定理:
一般情况下,软件80%的缺陷集中在20%的模块中。我们测试的时候要抓主要矛盾,如果发现某一程序模块比其他模块有更多的缺陷,
就要投入主要的人力和精力重点测试这20%的模块,以提高我们的测试效率。
黑盒测试技术:
1.等价类技术:
2.边界值技术:
3.因果图法:
因果图步骤:
(1)找出所有输入条件和输出条件,编号。
(2)分析输入条件之间的关系,是互斥还是可以同时满足。
(3)画出输入条件的排列组合情况。
(4)编写测试用例。
4.流程图法:
缺陷管理:
bug的分类:
1.按严重程度划分:
由高到低的顺序:系统崩溃、严重、一般、次要、建议
2.按优先级划分:
由高到低的顺序:高(high :应该立即修复的bug)、中(middle :应该在产品发布之前修复的bug)、
低(low :时间允许应该修复的bug或是可以暂时存在的bug)
3.按照测试种类划分:
逻辑功能类、性能类、界面类、易用性类、兼容性类 (黑盒)
边界值类、内存溢出类、逻辑驱动类等 (白盒)
4.按功能模块划分:
5.按bug生命周期划分:
新建(new)、确认(confirmed)、解决(fixed)、关闭(close)、重新打开(reopen)
提交缺陷报告的注意事项:
1.确保重现bug
2.要用最少且必要的步骤描述bug
3.简洁、准确、完整
4.一个bug一个报告
测试管理:
软件的生命周期:(分为软件开发的生命周期和软件测试的生命周期)
是指软件开发和测试全部过程、活动和任务的结构框架,是从可行性研究到需求分析,软件设计、编码、测试、软件发布维护的过程。
软件开发的生命周期(软件开发的流程):
是指软件的开发过程中需要经过的环节(需求分析 -> 概要设计 -> 详细设计 -> 编码 -> 维护)
软件测试的生命周期:
测试计划 -> 测试设计 -> 测试执行 -> 测试评估
软件生命周期的模型:
1.瀑布模型
优点:
1.开发的各个阶段比较清晰。
2.强调早期计划及需求调查。
3.适合需求稳定的产品开发。
缺点:
1.依赖于早期的需求调查,不适应需求的变化。
2.单一流程,不可逆。
3.风险往往迟至后期才显露,失去及早纠正的机会
4.测试仅是编码后的一个阶段。
2.螺旋模型
适合需求经常变化的软件项目,但其开发过程比较复杂,如果控制不好容易造成流程混乱。
3.V模型
优点:
详细表示了测试的各个阶段以及参考依据
缺点:
没有说明在项目的前期测试需要做哪些工作(编写测试计划、测试用例等),流程单项不可逆。
4.W模型
软件测试评估(测试总结)
是软件测试生命周期的最后一个环节。
主要分两种:
覆盖的评测(也对测试的评测)
1.对源代码的覆盖
2.对需求的覆盖
对缺陷的评测(也叫做对测试结果的评测)
1.缺陷分布图
软件测试工具
分类:
1.黑盒测试工具
是指测试软件功能或性能的工具,主要用于系统测试和验收测试;其有可分为功能测试工具和性能测试工具。
2.白盒测试工具
是指测试软件的源代码的工具,可以实现代码的静态分析,动态测试、评审等功能,主要用于单元测试。
3.管理测试工具
是指管理整个测试流程的工具,主要功能有测试计划的管理、测试用例的管理、缺陷跟踪、测试报告管理等,一般贯穿于整个软件测试生命周期。