执行评估阶段:执行单元测试用例,记录和评估测试结果。 4、为第4章白盒测试中的Commission问题进行单元测试。
5、针对第3章的思考题14(PrevDate问题),写出程序代码,并进行单元测试。
第 7 章 集成测试
1、什么是集成测试?
集成测试是在单元测试的基础上,将所有已通过单元测试的模块按照概要设计的要求组装为子系统或系统,进行集成测试,目的是确保各单元模块组合在一起后能够按既定意图协作运行,并确保增量的行为正确。
2、集成测试与单元测试的区别在哪里?
与单元测试的区别:
①单元测试关注模块内部,集成测试关注模块接口;
单元测试也关注模块接口,但它从内部查看接口,从个数、属性、量纲和顺序等方面查看输入的实参与形参的匹配情况。
集成测试查看接口时主要关注穿越接口的数据、信息是否正确,是否会丢失。 ②单元测试主要依据是详细设计说明书,集成测试的主要依据是概要说明书。 3、集成测试与系统测试的区别在哪里?
与系统测试的区别:
①集成测试仅针对软件系统展开测试,系统测试中所涉及的系统则不仅包括被测试的软件本身,还包括硬件及相关外围设备。
②集成测试的主要依据是概要说明书,系统测试的主要依据是需求规格说明书及行业标准。 4、如何评价某种集成测试方法?
集成测试策略的评价标准: ①测试用例的规模 ②驱动模块的设计 ③桩模块的设计 ④缺陷定位的难易程度
5、成对集成与邻居集成各自的思想是怎样的?有何特点?
成对集成基本思想:将每个集成测试用例限定在一对调用单元上。特点是仍需要开发桩模块和驱动模块。
邻居集成基本思想:将每个集成测试用例限定在某个节点的邻居(直接调用或被调用的模块)上。特点是:可以减少桩模块和驱动模块的开发工作量,但缺陷定位困难。 6、请比较大爆炸集成、自顶向下、自底向上和三明治集成策略。
大爆炸集成基本思想:将所有经过单元测试的模块一次性组装到被测系统中进行测试,完全不考虑模块之间的依赖性和可能的风险。
自顶向下集成的基本思想:从主控模块(主程序,即根节点)开始,按照系统程序结构,沿着控制层次从上而下,逐渐将各模块组装起来。
自底向上集成的基本思想:从最底层模块(即叶子节点)开始,按照调用图的结构,从下而上,逐层将各模块组装起来。
三明治集成的基本思想:
策略1:将系统划分为三层,中间层为目标层,测试时对目标层上面的层使用自顶向下的集成策略,对目标层下面的层使用自底向上的集成策略。
策略2:在第1种集成策略的基础上,对目标层采用独立测试的策略,以确保目标层模块在集成测试之前得到充分的测试。
16
策略3:对包含读操作(系统输入)的子系统自底向上集成测试直至根节点,然后对包含写操作(系统输出)的子系统自顶向下集成测试直至叶子节点。
7、集成测试的一般过程是怎样的,与单元测试的过程有何区别?
集成测试的过程可划分三个阶段:
计划阶段:完成集成测试计划,制定集成测试策略。 设计实现阶段:建立集成测试环境,完成测试设计和开发。 执行评估阶段:执行集成测试用例,记录和评估测试结果。 单元测试的过程可划分三个阶段:
计划阶段:完成单元测试计划,制定单元测试策略。 设计实现阶段:建立单元测试环境,完成测试设计和开发。 执行评估阶段:执行单元测试用例,记录和评估测试结果。
第 8 章 系统测试
1、系统测试与单元测试和集成测试的区别是什么?
系统测试的最终目的是保证开发方交付给用户的软件产品能够满足用户的需求,因此,测试的测试用例应在实际的用户使用环境下来执行,系统测试是涉及软件、硬件、网络方面因素的过程。这是系统测试与集成测试、单元测试最大的不同之处。 2、功能测试与界面测试有何区别?
界面测试应与功能测试区分开来,界面测试中不应涉及具体的逻辑功能实现,只是关于布局、字体、风格等有关界面上的一些问题。且在界面测试过程中,我们可以通过创建界面测试检查单的方式来简化测试用例,简化测试过程。
3、请为某图书馆信息管理系统设计功能测试策略。
功能测试的策略因不同类型系统差异较大。图书馆信息管理系统是一个以数据为中心的系统,可以从两个方面考虑展开功能测试,即从实体关系模型来考虑和从对数据的操作来考虑。从实体关系模型来考虑,检查实体之间的对应关系和逻辑关系,包括1对1、1对多、多对1、多对多;从对数据的操作来考虑,检查各种操作是否能正常实现,包括增加、删除、查找、修改。 4、请为从ATM机系统设计功能测试策略。
以活动序列为中心的系统可基于以下策略进行功能测试:基于系统输入的测试用例设计 、基于系统输出的测试用例设计、基于系统状态的测试用例设计、基于系统事件的测试用例设计。 5、压力测试和负载测试有何区别?
压力测试指持续不断地给被测系统增加压力,直到被测系统被压垮,从而确定系统能承受的最大压力。(强调施加压力的大小)
负载测试指让被测系统在其能忍受的压力极限范围内(或临界状态下)连续运行,来测试系统的稳定性。(侧重压力持续的时间)
6、兼容性测试需要考虑哪几方面的内容?
兼容性测试的内容包括与硬件兼容、与其他软件平台和应用程序兼容、数据共享。 7、安装软件的一般流程是怎样的?
17
执行启动程序是检测到以前版本?否选择目标路径选择安装选项开始安装是是否重启?否退出启动程序并手工重启完成其他遗留的安装任务结束安装 第 9 章 测试用例的组织和管理
1、测试用例为什么需要管理?
因为测试用例是软件测试的核心和本质,它需要具有组织性、重复性、跟踪性、客观性,良好的测试用例管理和跟踪是良好测试质量的保障。 2、测试用例有几种形式的模板?各有什么特点?
严格来讲,有无数多种形式的模板, 任何公司都将根据自己的实际情况来确定测试用例模板。如Word、Excel、IEEE829 标准和 BugFree工具模板。 3、如何划分测试用例的优先级?
在大部分情况下,可能发现的缺陷的严重性越高,对应的测试用例就越重要,其优先级也越高。根据这一假设,我们可将测试用例分为四个基本等级。
①冒烟测试:在正式测试之前进行的测试工作,冒烟测试中选择的测试用例能测试到被测软件的核心功能或新增功能。
②高:最常执行的测试用例集合,这些测试用例可以保证功能稳定,系统可以正常工作,并包含对重要边界的测试。
③中:一般需要执行的测试用例集合,这些测试用例可使得功能区域或功能更加详细。
④低:通常最少执行的测试用例。低优先级并非意味着这些测试不重要,只是这些用例在项目生存周期内并非反复地运行而已,例如用户界面、错误提示信息、性能测试等。
这四个等级可以作为测试用例的初始优先级,之后基于质量目标和项目需求再对初始优先级进行提升或降级。
4、测试用例组织和管理的一般步骤是怎样的?
基本步骤: ①整理模块需求 ②撰写测试计划 ③设计测试思路 ④编写测试用例
⑤评审测试用例(内部和外部评审)
⑥修改更新测试用例(给出变更记录或版本升级) ⑦执行测试用例
⑧分析评估测试用例质量,包括测试用例的设计质量、测试用例的执行情况。
18
5、测试用例的评审有几种形式?
有效的测试用例评审一般分为两种形式:测试部门内部的评审、测试部门外部的评审。 6、测试用例应写得越详细越好,是这样吗?
测试用例设计并非越详细越好。测试用例的执行人员是测试用例的设计者,或对被测软件非常熟悉,则测试用例不必描述太详细;测试用例的执行人员是刚入公司的新人,或将测试外包给第三方,则测试用例的描述应尽量详细;设计测试用例时,应关注核心功能、高风险功能,且应满足合理的覆盖指标。 7、测试用例的设计可以一次性完成吗?
不行,而是应该随软件版本的变化而及时修改和更新。
第 10 章 缺陷管理
1.所有缺陷都可以重现吗?
并非所有缺陷都可重现。
有些缺陷是具有累积效应的,由长期积累而形成。
有些缺陷涉及对日期等的处理,只有当满足特殊条件的日期出现时,才会触发缺陷。 有些缺陷仅在第一次运行的时候才出现,其余时候都运行正常。
有些缺陷会导致恶劣的影响,以至于系统崩溃、数据丢失等,此时由于破坏了初始环境或部分处理的数据,且因测试前未及时备份,导致无法完全恢复原始状态。 2.严重性高的缺陷,其处理优先级一定也高吗?
严重性与优先级的关系并非绝对对应,高严重性,可能低优先级,低严重性,可能高优先级。 3.有效缺陷不一定能够得到修复,无效缺陷也不一定得不到修复。为什么这样说?
当一个缺陷被暂缓处理之后,有可能因为管理的原因而忘记修复,而有些不可重现的缺陷往往是由于测试人员的步骤描述不清而导致,当步骤清晰之后缺陷是可以重现的,于是该缺陷可能会很快得到修复。 4.缺陷的状态和处理方式有何区别?
缺陷状态是指缺陷在整个生命周期中所处的状态,这些状态定义了不同角色的人对缺陷的处理方式,典型的状态包括打开(Open)、指派(Assigned)、关闭(Close)、重新打开(Reopen)、激活(Active)、已解决(Resolved)。
缺陷处理方式是指缺陷到达不同角色的人手中后,不同角色的人决定如何对缺陷处理,典型的处理方式包括已修复(Fixed)、暂缓(Postponed或Later)、外部原因(External或Onhold)、不修复(Wontfix)、重复的(Duplicate)、不可重现(Notrepro)、符合设计(Bydesign或Notabug)。 5.缺陷报告中应包含哪些基本信息?
缺陷报告核心:标题、操作步骤、隔离
缺陷处理信息:ID、缺陷所在位置、版本号、严重性/优先级、是否可重现、缺陷类型、相关缺陷、指派的修复人员、附件、个人注释。
6.缺陷必须由提交的人来关闭,是这样吗?
一般情况下,缺陷应由提交的人来关闭。但在有些企业中,所有缺陷只能由测试经理来审核并关闭。 7.目前市面上有哪些常见的缺陷管理工具?
商业软件TestDerictor、开源软件BugFree。
8.请以自己正在做的项目(可以是一些程序作业)为例,尝试用一款开源缺陷管理工具来对缺陷进行管理。
第 11 章 自动化测试
1.自动化测试可以代替手工测试吗?
自动化测试不可能完全替代手工测试,虽然自动化测试结合手工测试在时间、成本、质量、人际沟通等方面显示出巨大优势,但在以下方面并不适用:周期短的项目、定制型的项目、业务规则复杂的项目、硬件测试、易用性测试。
19
2.自动化测试比手工测试发现更多的新缺陷。是这样吗?
自动化测试主要用在回归测试和系统测试中,目的是能够在短时间内准确、高效率地重复执行大量测试用例,自动化测试一般发现的都是旧的缺陷 ,它在发现新缺陷方面效果很差。 3.自动化测试一旦引入企业或项目组,可以立即缩短测试的进度。是这样吗?
自动化测试刚引入的时候,会导致测试流程的改变、人员结构的变化、提高测试的风险,只有引入一段时间后,才有可能展现其巨大的优势。 4.自动化测试的一般过程是怎样的?
自动化测试的一般过程(公司级): ①公司从资金和管理上给予支持;
②成立专门的测试团队来建立自动化测试的流程和测试体系; ③将源代码从版本库中取出、编译、集成、发布和自动化测试。 自动化测试的一般过程(团队级): ①明确需求
②获取测试用例和脚本 ③执行和分析脚本
5.目前市面上主流的测试工具有哪些,是哪些公司的产品?
主流的测试工具:
MI公司:WinRunner, LoadRunner, TD, QTP
Rational公司:Robot, PurifyPlus, TestManager, CQ
Compuware公司:QARun, QALoad, DevPartner, QACenter, TrackRecord 6.请指出一款最好的测试工具。
不存在最好的测试工具,每种工具都有其特长和局限性,应根据公司和项目组的实际需要来选择适合的测试工具。
7.只要花一个星期时间掌握了一种工具的使用,就可以到软件公司去找一份高级测试师的工作了,是这样吗?
仅仅会使用测试工具的基本功能并不能成为测试专家,最重要的是具有测试方面的知识基础和实践经验的积累,测试工具离开了测试知识,离开测试用例的指导 ,是没有意义的。得到的测试脚本不具备可重用性,自动化测试将变成测试人员乃至整个项目组的负担。
更多课程资料请到大学课程网www.0206.cc学习
20