- 软件测试:为了发现错误而执行程序的过程,这里的错误 指的是软件中完全没有实现的功能,基本上实现了需要的功能(但运行时会出现一些功能或性能上的问题),实现了用户不需要的功能。
- 软件测试的目的是为了以最小的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正错误和缺陷提高软件质量,回避软件发布后由于软件缺陷和错误造成的隐患带来的商业风险。
- 需求文档测试:需求中是否存在逻辑矛盾以及需求在技术上是否可以实现
- 设计文档测试:测试设计是否符合全部需求以及设计是否合理。
- 黑盒测试:不考虑程序的内部结构和逻辑特点,而仅仅根据需求说明书检验程序的功能是否符合功能说明
- 白盒测试:利用程序的内部结构以及有关信息,设计或选择测试用例,对程序所有的逻辑路径进行测试。
- 如果能够执行完美的黑盒测试,还需要进行白盒测试吗?(白盒与黑盒的区别)
- 任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。
- 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
- 软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
1、是否有不正确或遗漏的功能?
2、在接口上,输入是否能正确的接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
4、性能上是否能够满足要求?
5、是否有初始化或终止性错误?
软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。
4、测试内部数据结构的有效性,等等。
以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。 - 静态测试:不实际运行程序,仅仅检查程序的格式是否符合规范,或者文档的测试用户手册和需求说明是否符合用户的实际需求。
- 动态测试:实际运行被测程序,输入相应的数据,检验实际的输出结果和预期结果是否相同。
- 单元测试:对软件中的最小可测试单元进行检查和验证。
- 集成测试:将两个或以上的单元模块组装成系统或者子系统再进行测试,重点测试程序的接口部分。
- 系统测试:将整个软件看成一个统一的整体进行测试,包括对软件的功能、性能以及软件所运行的软硬件环境进行测试。
- 验收测试:系统测试后期,以用户测试为主,或者是由测试人员等质量的保障人员共同参与的测试,是软件正式提交给用户的最后一道程序。
- 验收测试又分为阿尔法测试和贝塔测试,其中阿尔法测试是由内部人员进行测试,贝塔测试是由用户进行测试,允许程序出错并且期望由用户返回意见。
- 功能测试:检查软件的功能是否符合用户的需求。其中包括逻辑功能测试、安装测试、界面测试、兼容性测试以及易用性测试。
- 性能测试:主要有负载测试、压力测试、稳定性测试和一般性能测试。
- 负载测试:让被测系统在其能忍受的压力的极限范围之内连续运行。
- 压力测试:不断的给被测系统增加压力,直到将被测系统压垮为止,用来检测其最大承受压力。
- 测试计划:软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
- 测试用例:对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。
- 回归测试:对软件的新版本进行测试时,重复进行上一个版本测试的用例。
- 冒烟测试:测试小组在正规测试一个新版本之前,先测试一下软件的主要功能,若没有实现,则打回开发组重新开发。
- 单元、集成、系统和验收的整理:
名称 | 对象 | 依据 | 人员 | 方法 |
单元测试 | 最小模块 | 详细设计 | 白盒或开发 | 白 |
集成测试 | 模块间的接口 | 概要设计 | 白盒或开发 | 黑白结合 |
系统测试 | 整个系统(包含软硬件) | 用户需求规格说明书 | 黑盒 | 黑 |
验收测试 | 同系统测试 | 验收标准 | 黑盒 | 黑 |
- 黑盒测试方法:包括等价类划分法、边界值技术、因果图法和流程图法。
- 白盒测试方法:包括边界值测试、逻辑驱动覆盖以及循环语句测试。
- 测试生命周期:计划-设计-执行-评估
- 软件开发生命周期:需求分析-概要和详细设计-编码-维护
- 软件生命周期:测试生命周期+开发生命周期
- 集成测试策略:
- 自顶向下集成
适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
- 自顶向下集成
2、自底向上集成:适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
3、基于进度的集成
优点:具有较高的并行度;能够有效缩短项目的开发进度。
缺点:桩和驱动工作量较大;有些接口测试不充分;有些测试重复和浪费。
自顶向下集成
优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修 改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
自底向上集成
优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
- LoadRunner 分为哪三个模块?请简述各模块的主要功能。
Virtual User Generator:用于录制脚步
Mercury LoadRunner Controller:用于创建、运行和监控场景
Mercury LoadRunner Analysis:用于分析测试结果。 - 黑盒测试的优点有:比较简单,不需要了解程序内部的代码及实现; 与软件的内部实现无关; 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;基于软件开发文档,所以也能知道软件实现了文档中的哪些功能; 在做软件自动化测试时较为方便。
黑盒测试的缺点有:不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的 30%;自动化测试的复用性较低。
白盒测试的优点有:帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
白盒测试的缺点有: 程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;