软件测试的艺术第二版
- 格式:pdf
- 大小:5.51 MB
- 文档页数:50


1 迪斯尼的狮子王问题原因:没有对市场上的各种PC机型进行测试,该软件只能在少数系统中正常工作,但在大众常用的系统中不行;Intel奔腾浮点除法问题原因:在发布芯片之前的内部测试已经发现了这个问题,不过因为只有在精度要求很高的计算中才导致错误,Intel管理层认为不严重,未修正3 至少满足以下5个规则之一才称为软件缺陷:软件未实现产品说明书要求的功能;软件出现了产品说明书指明不应出现的错误;软件实现了产品说明书未提到的功能;软件未实现产品说明书虽未明确提及但应该实现的目标。
4 为什么会出现软件缺陷:产品说明书;设计;编码;其他(缺乏有效的沟通,软件复杂度,时间的压力,人员的自大,软件开发工具,缺乏文档的代码)5 从说明书——》设计——》编码—》测试——》发布其修复费用成指数级增长6 软件测试员的职责:尽可能早的发现软件缺陷,并确保其得以修复7 测试原则:完全测试程序是不可能的;软件测试是有风险的行为;测试无法显示潜伏的软件缺陷;找到的软件缺陷越多,就说明存在的软件缺陷越多;对于描述软件测试越多,其免疫力越强;并非所有的软件缺陷都要修复;什么时候才叫缺陷难以说清;产品说明书没有最终版本;软件测试员在产品小组中不受欢迎;软件测试是一项讲究调理的技术专业8 确保是保证软件符合符合产品说明书的过程,验证是保证软件满足用户要求的9 静态测试是指测试不运行的部分,只是检查和审核;动态测试是指通常意义上的测试,使用和运行软件;测试产品说明书属于静态黑盒测试;不深入代码细节测试软件的方法叫动态黑盒测试;静态白盒测试是在不执行软件的条件下有条理的仔细审查软件设计,体系结构和代码,从而找出软件缺陷的过程,10 命名变量时只能使用5个字符且采用大写是标准;如果被告知超过8个字符是规范,缓冲区溢出是数据引用错误5 动态白盒测试的目标是寻找软件缺陷,调试的目标是修复缺陷6 测试桩和测试驱动的区别:测试桩用于自顶而下的。
他用自己替换低级模块其对于要测试的高级代码,外表和行为就像低级模块一样;测试驱动和测试桩相反,用于自底而上的测试,他是代替高级模块,更有效地运行低级模块的测试代码7 三种代码覆盖中哪一种最好条件覆盖,因为他综合了语句覆盖和分支覆盖,他保证决策逻辑中的所有条件,以及来自这些语句的所有分支和代码行都得到验证8 配置测试是指使用各种硬件来测试软件运行的过程,主检硬件;兼容性测试主测软件9 大多数PC机是模块化的,有各种系统主板,部件板卡和其他内部设备,如磁盘驱动器,CD-ROM驱动器,DVD读写器,视频卡,声卡,调制解调器,网卡等构成组件一般是指PC机内部的硬件设备,外设是PC机外部的10 测试游戏至少需考虑各种图形卡,声卡,调制解调器和打印机进行配置测试11使软件适应特定地域特征,照顾到语言,方言,地区习俗和文化的过程成为本地化或国际化,测试此类软件成为本地化测试翻译和本地化的区别:翻译只考虑语言的方面--翻译词语。
第一章软件测试理论一、选择题1、C2、A3、D4、B5、D6、D7、B8、B二、简答题1.参考答案:软件测试是伴随着软件的产生而产生的。
在软件行业发展初期,没有系统意义上的软件测试,更多的是一种类似调试的测试,测试用例的设计和选取也都是根据测试人员的经验随机进行的,大多数测试的目的是为了证明系统可以正常运行。
到了20世纪70年代以后,很多测试理论和测试方法应运而生,逐渐形成了一套完整的体系。
在产业界,从20世纪70年代后期到20世纪80年代中期,很多软件企业成立了QA 或者SQA部门。
后来QA的职能转变为流程监控(包括监控测试流程),而测试(Testing)则从QA中分离出来成为独立的组织职能。
到了20世纪80年代初期,一些软件测试的基础理论和实用技术开始形成,软件测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容。
软件测试已有了行业标准(IEEE/ANSI )。
在我国,软件测试目前还没有形成一个真正的产业,尚处于起步阶段。
但是,在国内,现在在软件测试行业中各种软件测试的方法、技术和标准都还在探索阶段。
总之,国内软件测试行业与一些发达国家相比还存在一定的差距。
2.参考答案:软件缺陷造成的修复费用随着时间的推移呈指数级地增长,如下图所示。
3.参考答案:软件测试的复杂性体现在:不可能对程序实现完全测试。
杀虫剂现象,即为了克服被测试软件的免疫力,软件测试员必须不断编写新的测试程序,对程序的各个部分进行不断测试,以避免被测试软件对单一的测试程序具有免疫力而使软件缺陷不被发现。
软件测试的代价不容易掌握,因为随着测试量的增加,测试成本将呈几何数级上升,而软件缺陷数量降低到某一数值之后将没有明显的变化,寻求最优测试点,掌握好测试工作量是至关重要的。
在实际操作过程中,测试人员要进行正确的判断,合理的取舍,根据风险分析来决定哪些故障需要修复,哪些故障可以不修复,即并不是所有的软件缺陷都需要被修复。
4.参考答案:软件测试是软件生命期中费用消耗最大的环节。
第7章 软件测试项目管理155 (6)评价测试结果软件测试的目的是为了保证软件产品的最终质量,在软件开发的过程中,需要对软件产品进行质量控制。
一般来说,对测试数据进行记录,并根据测试情况撰写测试报告,是软件测试人员要完成的最重要的工作。
这种报告有助于测试人员对测试工作进行总结,并识别出软件的局限性和发生失效的可能性。
完成测试后,将测试结果与预期结果进行比较,便可对已测试软件提出评价意见。
(7)方便再测试测试文档中规定和说明的部分内容,在后期的维护阶段往往由于各种原因需要进行修改完善,凡是修改完善后的内容都需要进行重新测试(可能包括某些接口),有了测试文档,就可以在维护阶段进行重复测试,测试文档在维护过程中对于管理测试和复用测试都非常重要。
(8)验证需求的正确性测试文档中规定了用以验证软件需求的测试条件,研究这些测试条件对弄清用户需求的意图是十分有益的。
测试文档记录了测试的完成过程以及测试的结果,文档是测试过程必要的组成部分,测试文档的编写也是测试工作规范化的一个组成部分。
在测试中,应该坚持按照软件系统文档标准编写和使用测试文档。
7.2.2 软件测试文档的类型根据测试文档所起的不同作用,通常把它分成两类,即前置作业文档和后置作业文档。
测试计划及测试用例的文档属于前置作业文档。
测试计划详细规定了测试的要求,包括测试的目的、内容、方法、步骤以及评价测试的准则等。
由于要测试的内容可能涉及软件的需求和软件的设计,因此必须及早开始测试计划的编写,测试计划的编写应从需求分析阶段开始。
测试用例就是将软件测试的行为和活动做一个科学化的组织和归纳,测试用例的好坏决定着测试工作的成功和效率,选定测试用例是做好测试工作的关键一步。
在软件测试过程中,软件测试行为必须能够加以量化,这样才能进一步让管理层掌握所需要的测试进程,测试用例就是将测试行为和活动具体量化的方法之一,而测试用例文档是为了将软件测试行为和活动转换为可管理的模式,在测试文档编制过程中,按照规定的要求精心设计测试用例有着重要意义。