一、测试基础
1、软件测试背景
1.1什么是软件测试
软件测试的定义
软件测试(Software testing)是软件生存期中的一个重要阶段,是软件质量保证的关键步骤。通俗地讲,软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码进行最终复审的活动。
1983年IEEE提出的软件工程术语中给软件测试下的定义是:“使用人工或自动的手段来运行或测定某个软件系统或系统部件的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别”。
软件测试的对象
软件测试不等于程序测试,软件测试贯穿于软件定义和开发的整个期间。需求分析,概要设计,详细设计,以及程序编码等各个阶段所得到的文档,包括需求规格说明,概要设计规格说明,详细设计规格说明以及源程序,都是软件测试的对象.
软件测试的目的
于不同的立场,存在着两种完全不同的测试目的。 从用户(测试人员)的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。 从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。
想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。 测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。 实施测试收集到的测试结果数据为可靠性分析提供了依据。 测试不能表明软件中不存在错误,它只能说明软件中存在错误。
测试的目的在于发现错误 ,应尽早地和不断地进行测试 充分注意测试中的群集现象经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。 所有的测试都应可追溯到客户需求 穷举测试是不可能的 严格执行测试计划,排除测试的随意性。 应当对每一个测试结果做全面检查。 妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。
软件测试分类和比较
负载测试 测试软件系统的最大负载,超出此负载软件可能会失常。
压力测试 概念上与负载测试相似,叫法不同。
性能测试 测试软件在各种状况下的性能,如在正常或最大负载下的状况。
易用性测试 测试软件是否易用,主观性比较强。一般要根据很多用户的测试反馈信息,才能评价易用性。
安装与反安装测试 测试软件在“全部、部分、升级”等状况下的安装/反安装过程。
恢复测试 测试该系统从故障中恢复过来的能力。
安全性测试 测试该系统防止非法侵入的能力。
兼容性测试 测试该系统与其它软件硬件兼容的能力。
比较测试 通过与同类产品比较,考察该系统的优点、缺点。
Alpha 测试 一种先期的用户测试,此时系统刚刚开发完成。
Beta测试 一种后期的用户测试,此时系统已经通过内部测试,大部分错误已经改正,即将正式发行。
黑盒测试与白盒测试的比较
黑盒测试
只关心软件的外部表现,不关心内部设计与实现。
又叫做功能测试或数据驱动测试。 软件需求 任何人(包括开发人员、独立测试人员和用户) 一般无需编写额外的测试驱动程序
白盒测试
关注软件的内部设计与实现,要跟踪源代码的运行。 结构测试或逻辑驱动测试。 设计文档 由开发人员兼任测试人员的角色 需要编写额外的测试驱动程序
按开发阶段划分:
单元测试
集成测试
系统测试
验收测试
按测试实施组织划分:
开发方测试(α测试)
用户测试(β测试)
第三方测试
按测试技术划分:
白盒测试
黑盒测试
灰盒测试
软件测试的内容
单元测试 系统设计文档 由开发小组执行白盒测试 接口测试、路径测试
集成测试 系统设计文档
需求文档 由开发小组执行白盒测试和黑盒测试 接口测试、路径测试
功能测试、性能测试
系统测试 需求文档 由独立测试小组执行黑盒测试 功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试
验收测试 需求文档 由用户执行黑盒测试
会继续更新介绍相关测试的知识,希望大家多多支持!
您的支持是我前进的动力!--Gavin(若转载请注明出处)
欢迎大家关注我的博客--http://www.cnblogs.com/zwh-Seeking/