测试与测试用例【面试+工作】
软件测试的流程可分为:需求分析,测试计划,测试用例设计,测试用例执行,BUG提交分析,测试报告的编写。
按照测试的先后顺序可以分为单元测试,集成测试,确认测试,系统测试与验收测试。单元测试和集成测试由设计人员和程序员完成,系统测试由软件测试小组根据上面的三个基本步骤完成,验收测试由用户完成。
单元测试
1、什么是单元测试?
单元测试是对程序中的某个接口或者模块进行测试,也就是说一开始的时候不是对整个程序进行测试,而是先将注意力集中在构成整个程序的各个小单元的测试上。
单元测试的目的是开发人员确定这段子程序做了它应该做的事。
测试方法是白盒测试,使用一种或多种白盒测试方法分析模块的逻辑结构,然后使用黑盒测试方法对照模块的规格说明以补充测试用例。一般由开发人员编写一小段代码进行测试。
2、为什么要进行单元测试?
① 由于单元测试的注意力一开始集中在程序的较小单元上,因此它是一种管理组合的测试元素的手段。
② 单元测试减轻了调试(准确定位并纠正某个已知错误的过程)的难度,这是因为一旦某个错误被发现出来,我们就知道它在具体哪个模块中。
③ 单元测试同时为测试多个模块提供了可能,这将并行工程引入到了软件测试中。
集成测试
集成测试是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。
集成测试的目的旨在测试各个组件间是否能互相配合,正常工作。为了看代码是否按"设计或期望的方式"工作。
系统测试
系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)
系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。
系统测试策略:功能测试、性能测试、压力测试、容量测试、安全性测试、GUI测试、可用性测试、安装测试、配置测试、异常测试,备份测试、健壮性测试、文档测试、在线帮助测试、网络测试、稳定性测试。
验收测试
验收测试一般根据产品规格说明书严格检查产品,逐行逐字地对照说明书上对软件产品所做出的各方面要求,确保所开发的软件产品符合用户的各项要求。
验收测试方法有正式验收测试,α测试和Beta测试。
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。尤其注重产品的界面和特色。α测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。α测试是指软件开发公司组织内部人员模拟各类用户行对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正。α测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的用户操作方式。经过α测试调整的软件产品称为β版本。
Beta测试是一种验收测试。Beta测试由软件的最终用户们在一个或多个客房场所进行。
与Alpha测试不同,开发者通常不在Beta测试的现场,因Beta测试是软件在开发者不能控制的环境中的“真实”应用。用户Beta测试过程中遇到的一切问题(真实在或想像的),并且定期把这些问题报告给开发者。接收到在Beta测试期间报告的问题之后,开发者对软件产品进行必要的修改,并准备向全体客户发布最终的软件产品。
测试用例设计经典面试题——电梯,杯子,笔,桌子,洗衣机
首先说明的是,遇到这样的测试题目,首先应该反问面试官,需求是什么样的,比如是测什么样的杯子。
因为设计测试用例的规则应该是根据需求分析文档设计用例,客户需求什么,就测试什么。但是在没有需求分析文档的前提下, 来设计测试用例,可以考查一个测试人员的基本功,比如考虑问题是否全面,设计测试用例的方法是否合理等。一般是根据自己的日常经验和测试的思维来设计测试用例。
在设计测试用例时一般从以下几个方面进行分析:功能测试,性能测试,界面测试,安全性测试,兼容性测试,可用性测试,可靠性测试,本地化/国际化测试。
1、测试项目——电梯
需求测试:查看电梯使用说明书,安全说明书等。
功能测试:
上升键和下降键,电梯的楼层按钮是否正常;
开关键是否正常,报警装置是否安装,报警电话是否可用;
通风状况如何,是否有手机信号;
在电梯上升过程中的测试,比如电梯在1楼,有人按了18楼,在上升到5楼的时候,有人按了10楼,电梯会不会停;
在电梯下降过程中的测试,比如电梯下降到10层时显示满员,若有人在5楼等待,此时还会不会停。
压力测试:
看电梯的最大承重重量,在电梯超重时,报警装置是否启用,在一定时间内让电梯连续的上升和下降,看在最大负载条件下平稳运行的时间。
界面测试:
查看电梯的外观,电梯的按钮是否好用(开和关按钮设计的图标不容易区分),电梯的说明书是否有错别字。
可用性测试:
电梯的按钮是否符合人的使用习惯。
用户文档测试:
使用手册是否对电梯的使用,限制等有描述。
2、测试项目——杯子
需求测试:查看杯子的使用说明书,安全说明书等。
功能测试:
杯子能否装水;
可以装多少L的水;
杯子是否可以放冰箱;
水可不可以被喝到。
安全性测试:
杯子有没有毒和细菌;
杯子从高处坠落,是否已破;
杯子是否有缺口,容易滑倒嘴巴;
将杯子放入微波炉中,是否爆炸或融化;
性能测试:
看杯子能够容纳的最大体积和最高温度;
将杯子盛上水,经过24小时后查看杯子的泄露情况和时间(可分别使用水和汽油做测试);
将杯子装上填充物,看不会摔破的最高度;
用根针并在针上面不断加重量,看压强多大时会穿透;
可用性测试:杯子是否好拿,是否烫手,是否防滑,是否方便饮用。
兼容性测试:除了装水,是否还可以装其它的液体,比如果汁,汽油等。
界面测试:查看杯子的外观:杯子是什么材质的,颜色,外形,重量,图案是否合理,是否有异味。
用户文档测试:使用手册是否对杯子的用法、限制、使用条件等有详细描述。
3、测试项目——笔
需求测试:查看使用说明书。
功能测试:能不能写字 。
界面测试:查看笔的外观 。
可靠性测试:笔从不同高度落下摔坏的程度。
安全性测试:笔有没有毒或细菌 。
可移植性测试:笔在不同的纸质、温度等环境下是否可以使用。
兼容性测试:笔是否可以装不同颜色、大小的笔芯 。
易用性测试:是否方便使用、方便携带 。
压力测试:给笔不断的增加重力,观察压力多大时压坏。
震动测试:笔在包装时,各面震动,检查是否能应对恶劣的公路、铁路、航空运输。
跌落测试:笔包装时,在多高的情况下摔不坏。
4、测试项目——桌子
需求测试:查看桌子相关的使用说明书。
功能测试:桌子是办公用的还是防治东西用的,桌子的面积大小是否适合;
界面测试:桌子的桌面是否平滑,有没有凹凸不平的地方;
安全性测试:桌子的支撑点是否可靠;将桌子推倒后,它的损坏情况;
压力测试:桌子可以承受的重量;
可用性测试:桌子是否好移动;它的重量是否合适;
5、测试项目——洗衣机
需求测试:查看洗衣机的使用说明书。
功能测试:洗衣机是否正常的洗衣服;
安全性测试:洗衣机是否漏电;
兼容性测试:除了洗衣服是否还可以洗其它的;
性能测试:使用时电量如何,是否满足客户需求;加到一定量的衣服后,过一段时间,看洗衣机是否正常洗;通过逐步增加系统负 载,最终确定在什么负载条件下系统性能将处于崩溃状态,以此获得系统能提供的最大服务
界面测试:洗衣机的外观是否符合用户的需求;
可用性测试:洗衣机的操作是否简单已操作;