1、 什么是兼容性测试?兼容性测试侧重哪些方面?
兼容测试:兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操纵系统平台上、不同的网络等环境中是否能够很友好的运行的测试。 兼容的类型:细分为
a)硬件兼容性测试:与整机兼容,与外设兼容
b)软件兼容性测试:操作系统/平台的兼容,数据库兼容,不同浏览器兼容,不同应用软件之间的兼容,软硬件配合的兼容
c)数据兼容性测试
兼容测试的重点:对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容测试。
2、 我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题? 1、确认当前软硬件配置是否符合软件的推荐标准
2、确认当前的系统是否独立,没有对外提供类似消耗CPU,内存等资源的服务。
3、如果是C/S或B/S结构的软件,检查与服务器的连接是否有问题,或者访问有问题造成。 4、在系统没有负载的情况下,查看应用程序对CPU/内存的访问情况。 5、检查系统是否有中毒的特征;
6、可能的话在另一台相同配置,相同操作系统的机器上运行
3、 测试的策略有哪些?
测试策略可以定义为:项目测试中,描述测试活动的一般方法和目标,其中包括要进行的测试阶段及测试类型。
所以按阶段分:可以分为单元测试,集成测试,系统测试,回归测试等
按测试类型可以分为:黑盒/白盒测试,静态/动态测试,手工/自动化测试,功能/性能测试,安全性测试,可靠性测试,界面测试,强度测试,压力测试,负载测试,容量测试,稳定性测试,兼容性测试,Beta/a测试等
4、 正交表测试用例设计方法的特点是什么?
1、用最少的实验覆盖最多的操作,测试用例设计很少,效率高,但是很复杂;
2、对于基本的验证功能,以及二次集成引起的缺陷,一般都能找出来;但是更深的缺陷,更复杂的缺陷,还是无能为力的;
3、具体的环境下,正交表一般都很难做的。大多数,只在系统测试的时候使用此方法。
5、 描述测试用例设计的完整过程?
对需求文档(产品需求文档、软件需求规格说明书等)进行分析需求分析及需求变更的维护工作; 根据需求文档, 得出测试需求(功能测试需求、非功能性测试需求); 根据测试需求设计测试方案,评审测试方案;
方案评审通过后,设计测试用例,再对测试用例进行评审;
6、 单元测试的策略有哪些?
自顶向下的单元测试策略:先对最顶层的单元进行测试,把顶层所调用的单元做成桩模块。其次对第二层进行测试,使用上面已测试的模单元做驱动模块。如此类推,直到测试完所有模块。
自底向上的单元测试策略:先对模块调用层次图上最低层的模块进行单元测试,模拟调用该模块的模块做驱动模块。然后再对上面一层做单元测试,用下面已被测试过的模块做桩模块。一次类推,直到测试完所有模块。
孤立的测试策略:不考虑每个模块与其他模块之间的关系,为每个模块设计桩模块和驱动模块,每个模块独立进行测试。
7、 你所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性
能测试??)?
1
容量测试
测试系统对不同级别数据容量下的工作能力,意在获取系统的最佳数据处理容量和最大处理容量。
稳定性测试
测试系统的长期稳定运行的能力。同疲劳强度测试的区别是,稳定性测试的压力强度较小,一般趋向于客户现场日常状态下的压力强度,当然在时间不能保证稳定性的状态下,需要加大压力强度来测试,此时的压力强度则会高于正常值。
兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操纵系统平台上、不同的网络等环境中是否能够很友好的运行的测试。
压力测试
通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大的服务级别的测试。
8、 软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录? 1.bug ID 2.bug类型 3.严重程度 4.bug标题 5.重现步骤 6.所属项目 7.所属产品模块 8.影响版本 9.当前指派人 10.当前状态人 11.提交人/提交日期 12.相关需求
1.认真做好前期的相关需求文档的分析工作 2.设计高质量的测试用例并执行 3.精炼语言,做到言简意赅。
9、 Beta测试与Alpha测试有什么区别?
Beta testing(β测试),测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场.
Alpha testing (α测试),是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试.
2
10、 什么是桩模块?什么是驱动模块?
桩模块:被测模块调用模块 驱动模块: 调用被测模块的模块 11、
什么是扇入?什么是扇出?
扇入:被调用次数,扇出:调其它模块数目
12、
阐述工作版本的定义?
软件开发过程中,用于内部测试的功能和性能不完善的软件编译版。工作版本既可以是系统的可操作版本,也可以是要在发布产品中演示的部分功能模块。
13、
14、
简述一下缺陷的生命周期?
提交->确认->分配->修复->验证->关闭
你认为做好测试计划工作的关键是什么?
总的来说,测试计划由以下几个部分组成:目标和范围,项目估算,风险计划,资源配置,进度安排 跟踪和控制机制
所以,计划工作的关键是做好以下几个任务: 1.认真执行需求文档审查和评审 2.明确测试需求和任务 3.分析测试范围和工作量 4.明确测试资源需求 5.合理安排测试进度 6.测试风险分析 7.制定有效的测试策略
测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的? 也可以用上面的来回答
15、 你认为做好测试用例工作的关键是什么? 需求和设计文档的理解程度,对系统的熟悉程度
16、 你觉得软件测试通过的标准应该是什么样的? 缺陷密度值达到客户的要求
17、
简述集成测试与系统测试关系?
(1)集成测试的主要依据概要设计说明书,系统测试的主要依据是需求设计说明书;
(2)集成测试是系统模块的测试,系统测试是对整个系统的测试,包括相关的软硬件平台、网络以及相关外设的测试。
18、 一套完整的测试应该由哪些阶段组成?
需求分析→测试计划→测试设计→测试环境搭建→测试执行→测试记录→缺陷管理→软件评估
3
19、 集成测试也叫组装测试或者联合测试,请简述集成测试的主要内容?
集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。 集成测试应该考虑以下问题:
(1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失; (2)一个模块的功能是否会对另一个模块的功能产生不利的影响; (3)各个子功能组合起来,能否达到预期要求的父功能; (4)全局数据结构是否有问题;
(5)单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。
20、
单元测试主要内容是什么?
1,模块接口测试。单元测试的基础,只有在数据能正确流入,流出模块的前提下才有意义。
2,局部数据结构测试 检查局部数据结构是为了保证临时存储在模块内的数据在程序执行中完整,正确。重点是一些执行函数是否正确执行,内部是否运行正确。局部数据结构往往是错误的根源,应仔细设计测试用例。 3,边界条件测试 单元测试中最重要的一项任务。因为软件经常在边界上失败,采用边界值分析,可能发现新的错误。
4,模块中所有独立路径的测试 在模块中执行每一条独立执行路径进行测试,单元测试的基本任务保证模块中每条语句执行一次。
5,模块的各条错误处理通路测试:程序在遇到异常情况时不应该退出,好的程序应能预见各种出错条件,并预设各种出错处理通路。
21、
如何理解强度测试?
测试系统在高负载,高强度下的工作能力,意在获取系统在极限状态下运行时的各项性能指数,查看其是否在允许的范围内。 注:
1.疲劳强度测试是一类特殊的强度测试,主要测试系统长时间运行后的性能表现,例如7x24小时的压力测试。 2. 强度测试总是通常模拟系统在异常的资源配置下运行,如人为降低系统工作环境所需要的资源,如网络带宽,系统内存,数据锁等等,以测试系统在资源不足的情况下的工作状态
22、
如何理解压力、负载、性能测试测试?
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行的测试,通常包含了负载测试,压力测试等。 b) 负载测试
通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。 c) 压力测试
压力测试是在强负载下的测试,查看应用系统在峰值使用情况下性能行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力,检测系统能提供的最大的服务级别的测试。压力测试可以看成是强负载下的负载测试。
4
23、 什么是系统瓶颈?
软件系统业务能力起限制,约束,使其不能满足用户特定业务需求的关键因素。
严格的技术角度上讲,所有的系统都会有瓶颈,因为大多数系统的资源配置是不协调的,如cup使用率刚好到达100%时,内存正好耗尽的系统。但是不多见。所以我们要从应用角度讨论:关键是看系统能否满足用户需求。在用户极限使用系统的情况下,系统的响应仍然正常,可以认为系统没有瓶颈或者瓶颈不影响用户工作。 测试系统瓶颈主要是实现下面两个目的:
--发现表面的瓶颈。模拟用户的操作,找出用户极限使用系统时的瓶颈,然后解决瓶颈,这是性能测试的基本目标。
--发现潜在的瓶颈并解决,保证系统的长期稳定。 24、
软件测试人员就是QA吗?
软件测试人员的职责是尽可能的找出软件缺陷,确保缺陷能被修复。
QA(质量保证人员)主要职责是创建或者制定标准和方法,提高促进软件开发能力和减少软件缺陷。 测试人员的主要工作是测试,质量保证人员日常工作重要内容是检查与评审,测试工作也是保证人员的工作对象。
25、 什么是软件测试,软件测试的目的?
软件测试就是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中存在的各种问题—与用户需求、预先的定义不一致的地方。
26、 写出bug报告流转的步骤,每步的责任人及主要完成的工作。 测试人员提交新的Bug入库,错误状态为New。
高级测试员/测试经理验证缺陷,如果缺陷已经提交,拒绝,标记为Declined-Duplicated,
如果确认未提交且是缺陷,分配给开发组。设置状态为Open。如果不是缺陷,则拒绝,设置为Declined状态。 开发经理分配bug至对应的模块开发人员。
开发人员查询状态为Open的缺陷,如果不可以重现则更新报告,反馈给开发经理。可以重现则判断是否可以修复,是则修复并置状态为Fixed。不能解决的Bug,要留下文字说明及保持Bug为Open状态。
对于不能解决和延期解决的缺陷,不能由开发人员自己决定,一般要通过某种会议(评审会)通过才能认可。 测试人员查询状态为Fixed的缺陷,然后验证缺陷是否已解决,如解决,置缺陷的状态为Closed,如没有解决,置缺陷状态为Reopen。查询状态为Declined-Duplicated的缺陷,进行关闭,置缺陷的状态为Closed。
27、
画出软件测试的V模型图。
5