最近帮一个朋友公司招聘测试人员(该朋友不懂测试,他自己开的猎头公司),平时感觉自己测试技术还可以,不管自动化还是性能,还是java或python的代码能力都还OK,但是第一次当面试官却有点没底,不知道如何取考察一应聘者的能力,爬爬网随整理了一下下自己思路,方便不会出现尬面的场景。开始YY过程。。。。。
一、首先yy一下测试类型:
软件测试分类:
按测试技术,软件测试可分为:黑盒测试、白盒测试、灰盒测试
黑盒测试:在程序接口进行测试,它只是检查程序功能是否按照规格说明书的规定正常使用。也被称为功能测试或者数据驱动测试。
白盒测试:要完全了解程序结构和处理过程,它按照程序内部逻辑测试程序,检验程序中每条通路是否按预定要求正确工作。也被称为结构测试或逻辑驱动测试。
灰盒测试:介于黑盒测试与白盒测试之间的测试,既要像黑盒测试那样关注输出对于输入的正确性,同时也关注内容表现,但这种关注不像白盒测试那样详细、完整,只是通过一些表征性的现象、事件、标志判断内部的运行状态。
按测试方式,软件测试可分为:静态测试、动态测试
静态测试:是指不运行程序,对程序和文档进行分析与检查;静态测试技术又称为静态分析技术。
动态测试:通过运行程序进行检查、分析程序的执行状态和程序逻辑的外部表现。
按测试阶段,软件测试可分为:单元测试、集成测试、系统测试、验收测试
单元测试:单元测试是对软件设计的最小单元——模块,进行正确性检验的测试工作。
目的:主要是测试模块在语法、格式和逻辑上的错误。
集成测试:集成测试也称为组装测试,集成测试按设计要求把通过单元测试的各个模块组装在一起之后所进行的测试。
目的:检查模块间的接口关系,以便发现与接口有关的各种错误
系统测试:系统测试是将已经集成好的软件系统置于实际运行环境中所进行的测试。
目的:根据需求分析时确定的标准检验软件是否满足功能、行为、性能和系统协调性等方面的要求。
验收测试:是软件开发结束后,用户对软件产品投入实际应用前,进行的最后一次质量检验活动。它要回答开发的软件产品是否符合预期的各种要求,以及用户能否接受的问题。
目的:验证软件功能的正确性和需求的符合性。
按测试实施组织,软件测试可分为:开发方测试、用户方测试、第三方测试
开发方测试:开发方测试也称内部测试(阿尔法测试),主要指在软件开发完成后,开发方要对提交的软件进行全面的自我检查与验证,验证软件的实现是否满足软件需求说明的要求。
用户方测试:用户方测试是在用户的应用环境下,由用户通过运行和使用软件,验证软件实现是否符合自己期望的要求。由用户找出软件在应用中发现的问题与缺陷,并对使用质量进行评价。
第三方测试:第三方测试又称为独立测试,由在技术、管理和财务上和开发方相对独立的组织进行的测试。软件质量工程强调开展独立的验证和确认工作。
补充:按软件质量特性分类:
功能测试、安全测试、性能测试、可靠性测试、压力测试、安装测试、用户界面测试、兼容性测试
软件测试3个重要概念:测试用例、测试环境、软件缺陷
测试用例:
IEEE标准610(1990)的定义:测试用例是一组测试输入、执行条件和预期结果的集合。其目的是要满足一个特定的目标,比如执行一条特定的程序路径或检验是否符合一个特定的需求。
软件测试环境:
软件测试环境就是软件运行的平台,即软件(软件运行的操作系统)、硬件(PC、笔记本、服务器相关外设)、网络(主要针对C/S和B/S结构的软件)和历史数据(测试用例执行所需初始化的各项数据)的集合
软件缺陷:常常又被叫做bug,即软件中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。
IEEE729-1983标准定义:
从产品内部来看:缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题。
从产品外部看:缺陷是系统所需要实现的某种功能的 失效或违背。
软件缺陷产生的原因:软件产品说明书(需求)56%、设计27%、编写代码7%、其他10%
软件缺陷在不同阶段的修复费用:
1、软件从需求、设计、编码、测试一直到交付用户公开使用后的过程中,都可能产生和发现缺陷。
2、随着时间的推移,修复缺陷的费用呈几何级数增长
必须意识到:需求评审很重要;设计评审不可少;文档更新要及时;开发测试要思考。
因为设计测试用例的规则应该是根据需求分析文档设计用例,客户需求什么,就测试什么。但是在没有需求分析文档的前提下, 来设计测试用例,可以考查一个测试人员的基本功,比如考虑问题是否全面,设计测试用例的方法是否合理等。一般是根据自己的日常经验和测试的思维来设计测试用例。在设计测试用例时一般从以下几个方面进行分析:需求测试、功能测试,性能测试,界面测试,安全性测试,兼容性测试,可用性测试,可靠性测试,易用性测试、本地化/国际化测试和用户体验测试。
二、下面以具体常见用例考察应聘者一些简单实例
1、测试实例——电梯
需求测试:查看电梯使用说明书,安全说明书等。
功能测试:
1、上升键和下降键,电梯的楼层按钮是否正常;
2、 开关键是否正常,报警装置是否安装,报警电话是否可用;
3、通风状况如何,是否有手机信号;
4、在电梯上升过程中的测试,比如电梯在1楼,有人按了18楼,在上升到5楼的时候,有人按了10楼,电梯会不会停;
5、在电梯下降过程中的测试,比如电梯下降到10层时显示满员,若有人在5楼等待,此时还会不会停。
压力测试:
看电梯的最大承重重量,在电梯超重时,报警装置是否启用,在一定时间内让电梯连续的上升和下降,看在最大负载条件下平稳运行的时间。
界面测试:
查看电梯的外观,电梯的按钮是否好用(开和关按钮设计的图标不容易区分),电梯的说明书是否有错别字。
可用性测试:
电梯的按钮是否符合人的使用习惯。
用户文档:
使用手册是否对电梯的使用,限制等有描述。
安全测试--重中之重:
比如超重时,突然断电时,突然电梯吊线断时。。。。
用户体验:
比如超重和失重时,人是否会感到不适等,人体感官通风等,运行中电梯的人体感官平稳性,人体感官声音等
2、测试实例——杯子
需求测试:查看杯子的使用说明书,安全说明书等。
功能测试:
1、杯子能否装水;
2、可以装多少L的水;
3、杯子是否可以放冰箱;
4、水可不可以被喝到。
安全性测试:
1、杯子有没有毒和细菌;
2、杯子从高处坠落,是否已破;
3、杯子是否有缺口,容易滑倒嘴巴;
4、将杯子放入微波炉中,是否爆炸或融化;
性能测试:
1、看杯子能够容纳的最大体积和最高温度;
2、将杯子盛上水,经过24小时后查看杯子的泄露情况和时间(可分别使用水和汽油做测试);
3、将杯子装上填充物,看不会摔破的最高度;
4、用根针并在针上面不断加重量,看压强多大时会穿透;
可用性测试:杯子是否好拿,是否烫手,是否防滑,是否方便饮用。
兼容性测试:除了装水,是否还可以装其它的液体,比如果汁,汽油等。
界面测试:查看杯子的外观:杯子是什么材质的,颜色,外形,重量,图案是否合理,是否有异味。
用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述。
3、测试实例——笔
1、需求测试:查看使用说明书。
2、功能测试:能不能写字 。
3、界面测试:查看笔的外观 。
4、可靠性:笔从不同高度落下摔坏的程度。
5、安全性:笔有没有毒或细菌 。
6、可移植性:笔在不同的纸质、温度等环境下是否可以使用。
7、兼容性:笔是否可以装不同颜色、大小的笔芯 。
8、易用性:是否方便使用、方便携带 。
9、压力测试:给笔不断的增加重力,观察压力多大时压坏。
10、震动测试:笔在包装时,各面震动,检查是否能应对恶劣的公路、铁路、航空运输。
11、跌落测试:笔包装时,在多高的情况下摔不坏。
4、测试实例——桌子
需求测试:查看桌子相关的使用说明书。
功能测试:桌子是办公用的还是防治东西用的,桌子的面积大小是否适合;
界面测试:桌子的桌面是否平滑,有没有凹凸不平的地方;
安全性测试:桌子的支撑点是否可靠;将桌子推倒后,它的损坏情况;
压力测试:桌子可以承受的重量;
可用性测试:桌子是否好移动;它的重量是否合适;
5、测试实例——洗衣机
需求测试:查看洗衣机的使用说明书。
功能测试:洗衣机是否正常的洗衣服;
安全性测试:洗衣机是否漏电;
兼容性测试:除了洗衣服是否还可以洗其它的;
性能测试:使用时电量如何,是否满足客户需求;加到一定量的衣服后,过一段时间,看洗衣机是否正常洗;通过逐步增加系统负 载,最终确定在什么负载条件下系统性能将处于崩溃状态,以此获得系统能提供的最大服务
界面测试:洗衣机的外观是否符合用户的需求;
可用性测试:洗衣机的操作是否简单已操作;