1.软件测试的目的和原则
(1)目的:验证软件有或没有问题
(2)原则:以客户为中心,遵循软件测试的规范、流程、标准和要求
1. 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。
2. 成功的测试是发现了至今为止尚未发现的错误的测试。
3. 测试并不仅仅是为了找出错误。通过分析错误产生的原因、阶段及错误发生的趋势。一、帮助项目管理者了解当前软件开发过程中的缺陷,以便及时纠错、改进。二、帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性。三、让开发人员知道错误产生的重灾区,加强自测试,四、让客户清楚我们专业的质量保证团队,可以向他们提交一份满意的答卷。。
4. 没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。
5. 根据测试目的的不同,还有回归测试、压力测试、性能测试、安全测试等,分别为了检验修改或优化过程是否引发新的问题、软件所能达到处理能力和是否达到预期的处理能力等。
6. 软件测试为了建立软件的信心。
7. 从测试的目的出发,大概可以分为两类:为了验证程序能正常工作的测试;为了验证程序不能正常运行的测试
2.什么是需求(包括软件需求和用户需求)
需求:满足用户期望或正式文档的规定所具有的条件和权能,包含用户需求和软件需求
IEEE定义:软件需求是(1)用户解决问题或达到目标所需条件或权能(apability)
(2)系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或权能
(3)一种反映上面(1)或(2)所述条件或权能的文档说明。它包括该功能性需求及非功能型需求,非功能型需求对设计和实现提出了限制,比如性能需求、质量标准、或者设计限制
用户需求:该要求一般比较简略
软件需求:功能需求,该需求会详细描述开发人员必须实现的软件功能
软件需求是测试人员进行测试工作的基本依据。
3.什么是BUG
(1)当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误。
(2)当没有需求规格说明书时,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的功能要求时,就是软件错误。
4.测试用例
测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。
5.开发模式和测试模型
5.1 软件的生命周期
软件生命周期是指从软件产品的设想开始到软件不再使用而结束的时间。 如果把软件看成是有生命的事物,那么软件的生命周期可以分成6个阶段,即需求分析、计划、设计、编码、测试、运行维护。
5.2瀑布模型(Waterfall Model)
start ——> 需求分析 ——> 计划 ——> 设计 ——> 编码 ——> 测试 ——> end
(1)瀑布模型在软件工程中占有重要地位,是所有其他模型的基础框架。瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式。
(2)优点: 强调开发的阶段性; 强调早期计划及需求调查; 强调产品测试。
(3)缺点: 依赖于早期进行的唯一一次需求调查,不能适应需求的变化; 由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程; 风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会。
(4)最大缺陷:瀑布模型的一个最大缺陷在于,可以运行的产品很迟才能被看到。
5.3螺旋模型(Spiral Model)——回归测试
(1)渐进式开发模型(迭代式开发)。适用于规模庞大、复杂度高、风险大的项目。
(2)优点: 强调严格的全过程风险管理;强调各开发阶段的质量;提供机会检讨项目是否有价值继续下去。
(3)缺点: 引入非常严格的风险识别、风险分析和风险控制,这对风险管理的技能水平提出了很高的要求。这需要人员、资金和时间的投入。