第一章 软件测试概述
1.对软件缺陷有什么真实的体验?
当登录某网站购物完毕并退出后,忽然想查查购物时付账的总金额,于是按了浏览
器左上角的 “退回”按钮,就又回到了退出前的网页。该软件缺陷所属类别与软件产品说明书的要求有关。
2.以客户为导向来讨论软件测试的理念和作用
判断软件是否存在缺陷的基本依据是软件的用户需求,软件功能特性就是为了满足用户需求,不能满足用户需求的功能是有缺陷的。所以软件测试要服从用户需求,以用户需求为依据,来对产品进行检验。软件测试的作用是尽可能多的发现软件中的错误。
3.给软件测试下定义,它的内容是什么?
软件测试是由“验证”和“有效性确认”活动构成的整体:“验证”是检验软件是否已正确地实现了产品规格书所定义的系统功能和特性;“有效性确认”是确认所开发的软件是否满足用户真正
需求的活动。
4.软件开发和软件测试是一种对立的关系吗?为什么?
软件测试和软件开发并行的活动,使软件测试和软件开发相互协作、相互补充,构成有机的软件开发整体。
第二章 需求和设计评审
1.需求评审和设计评审可以同时进行吗?为什么?
不能,需求评审一定要“从用户的角度”出发,基于用户需求,一切围绕用户需求进行评审,而设计评审一般依据设计技术的评审标准和非功能性质量特性的设计评审要求,采用分层评审和整体评审相结合的方法,经过整体评审到分层评审,再从分层评审到整体评审的过程,既能确保评审的深度,又能确保评审的一致性。
开发网站需要什么软件2.需求评审和设计评审有什么不同?
从测试的观点看,产品需求评审是对需求的验证,属于静态测试,也是做好软件测试和理解设计等的基础性工作。设计评审时,先从系统架构,整体功能结构上开始审查系统的非功能特性是否得到完美实现,然后深入到功能组件,操作逻辑和用户界面设计等各个方面的细节审查,力求发现任何不合理的设计以及设计缺陷,尽早地设计上的问题得到纠正。
3.在需求评审过程中,最有效的方法是什么?
在需求形成的过程中,最好采用分阶段评审方法进行多次评审,而不是在需求最终形成后进行一次评审,分阶段评审可以将原本需要进行的大规模评审拆分成各个小规模的评审,
降低了需求分析返工的风险,提高了评审的质量。
4.设计评审的难点在哪里?
结构模型的设计错误总是会导致严重的设计问题或运作问题,严重时甚至会导致项目无法完成以及影响业务。
第三章 测试用例设计
1.测试用例的要素有哪些?
标志符、测试项、测试环境要求、输入标准、输出标准、测试用例之间的关联
2.你认为提高测试用例质量的最有效的方法是什么?
对测试用例进行集体的评审,能有效地提高测试用例的质量。
3.如何开展测试用例的评审?
◆分析其设计思路,是否符合业务逻辑、是否符合技术设计的逻辑、是否可以和系统架构
、组件等建立起完全的映射关系?
◆在局部上,应有重有轻,抓住一些测试的难点、系统的关键点,从不同的角度向测试用例的设计者提问。
◆在细节上,检查是否遵守测试用例编写的规范或模板,是否漏掉每一元素、每项元素是否描述清楚
◆检查表,提问
4.为什么要建立测试套件?它带来哪些益处?
为了更有效地重复使用、执行测试用例。(测试套件是由一系列测试用例并与之关联的测试环境组合而构成的集合,已满足测试执行的特定要求。通过测试套件,将服务于同一个测试目标、特定阶段性测试目标或某一运行环境下的一系列测试用例有机地组合起来 )
有效性、可复用性、易组织性、客观性、可评估性和可管理性、
5.为什么需要对测试用例进行更新和维护?
客户的需求会发生变化、产品规格说明书相应地被更新,系统设计可能会被调整,程序实现的方法会被优化、细化。软件测试用例设计必然会做出相应的变化,增加新的测试用例或修改已有的测试用例,删除一些不再适用的测试用例。
随着产品版本的不断升级,软件测试用例也需要得到及时维护,有时还需要重构——对测试用例的结构进行调整,包括用例模块的合并和分解,确保每一个测试用例都是有效的。
第四章 软件测试自动化
1.自动化测试有什么优势?和手工测试有什么不同?
自动化测试利用软件测试工具自动实现全部或者部分测试工作, 自动运行的速度快、
测试结果准确、高复用性、永不疲劳、可靠、独特的能力。手工测试是传统的测试方法,由测试人员手工编写测试用例,缺点在于测试工作量大,重复多,回归测试难以实现。
自动化测试是对手工测试的一种补充,自动化测试不可能完全替代手工测试,因为很多数据的正确性、界面是否美观、业务逻辑的满足程度等都离不开测试人员的人工判断。而仅
仅依赖手工测试的话,则会让测试过于低效,尤其是回归测试的重复工作量对测试人员造成了巨大的压力。因此,自动化测试仅仅是某些条件下手工测试的一种补充,而无法全面取代手工测试。
2.如何有效地综合运用手工测试和自动化测试?举例
负载测试、性能测试和回归测试用自动化测试;复杂的逻辑判断、界面是否友好用手工测试。
3.在自动化测试实现过程中,最重要的技术是什么?
脚本技术
4.针对小型和大型软件企业,分别讨论如何有效地选择测试工具
5.谈谈你对测试自动化启动和实施的体会
测试周期缩短
更高质量的产品
软件过程更规范
高昂的团队士气
节省人力资源,降低企业成本
充分利用硬件资源,降低企业成本。
第五章 单元测试和集成测试
1.为什么要进行单元测试?任务和目标是什么?
原因:尽可能早的发现软件中存在的错误,降低软件质量成本;检查代码是否符合设计和规范。
单元测试的主要任务:
(1)单元中所有独立执行路径测试(2)单元局部数据结构测试(3)单元接口测试
(4)单元边界条件测试(5)单元的各条错误处理通路测试(6)内存分析
2.黑盒测试方法和白盒测试方法有什么不同特点?谈谈其应用范围
黑盒测试方法(功能测试或数据驱动测试)不考虑程序内部结构和逻辑结构,主要是用来测试系统的功能是否满足需求规格说明书。黑盒测试方法主要运用于单元的功能和性能方法的测试,以检验程序的真正行为是否与产品规格说明、客户的需求保持一致。
白盒测试方法(结构测试或逻辑驱动测试)根据模块内部结构,基于内部逻辑结构,针对程序语句、路径、变量状态等来进行测试,检验程序中的各个分支条件是否得到满足、每条执行路径是否按预定要求正确地工作。白盒测试方法主要应用在单元测试阶段,主要是对代码级的测试,针对程序内部逻辑结构。
3.谈谈分支覆盖和条件覆盖之间的关系
分支覆盖(又叫判定覆盖),使得程序中每一个分支都至少被执行一次。条件覆盖使,程序中每一个条件至少有一次被满足。
条件覆盖通常比分支覆盖强,但是也可能有相反的情况:虽然每个条件都取到了两个不同的结果,判定表达式却始终只取一个值。
4.代码审查有哪些方法?如何更有效地实施代码审查?
走查;会议评审;互为审查
5.比较自顶向下集成测试方法和自底向上集成测试方法各自的优缺点
自顶向下集成测试一般不需要驱动程序,减少了测试驱动程序开发和维护的费用;能够在测试阶段的早期验证系统的主要功能逻辑,越重要的模块能优先得到测试;容易进行故障隔离和错误定位。但是桩模块的开发和维护费用大,桩模块不能反映真实情况,重要数据不能及时回送到上层模块,导致测试不充分;涉及复杂算法和真正 I/O的底层模块最易出问题,在后期才遇到导致过多的回归测试。
自底向上集成测试一般不需要桩模块,而驱动程序比较容易建议;可以尽早的验证底层模块的行为,提高了测试效率;容易对错误进行定位。但是直到最后一个模块加进去之后才能看到整个系统的框架;驱动模块的设计工作量大;不能及时发现高层模块设计上的错误。
6.你喜欢使用哪个单元测试工具?为什么?
Junit、Junit+Ant构建自动的单元测试、CheckStyle(源程序是否与代码规范相符)/PMD(检查java源文件中潜在问题)与FindBug(不检查java源文件,查java bytecode中的潜在bug)的使用、SourceMonitor(检测代码复杂度)
第六章 功能测试
1.你认为功能测试的挑战来自于哪些地方?
2.如何综合运用因果图法和决策表方法?
直接对输入条件进行组合设计决策表,不需要进行因果分析,即直接采用决策表方法。可以由因果图导出,可以优化决策表。
3.决策表方法和正交测试方法有什么联系和区别?
4.在可用性测试中应注意哪些方面?
5.在回归测试中,如何在提高执行效率和降低风险性方面获得平衡?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论