软件测试

软件测试面试过程中,被问到 “你会搭建测试环境吗” 要怎么回答?

萝らか妹 提交于 2019-12-02 08:24:00
● ○ ● 你会搭建测试环境吗?● ○ ● 导语:很多人在面试软件测试的过程中,经常被问到“你会搭建测试环境吗”?面对这样的提问,你知道怎么回答么? ● ○ ● 如何回答● ○ ● 面试的时候,遇到这样的提问,很多人的都会感觉脑子一下一片空白,或者星星点点,不知道从何说起。一方面不知道面试官问这个问题的意图是什么?也不知道他想得到的答案是什么?更加不知道该从哪些方面来回答。作为一个测试行业从业8年有余的测试人员,我想跟大家分享一些我的经验和看法。 首先,毋庸置疑的是,面试官问这个问题,想要得到的是你肯定的答案,希望你是一个会搭建测试环境的优秀测试工程师。QA不管是做什么类型的测试,最基础的功能测试,需要搭建测试环境;进阶部分的性能压力测试,对搭建环境的要求更高。所以搭建测试环境是优秀测试工程师的必备技能之一,也是QA开展测试工作的前置条件。当然有些公司可能会有运维或者研发部门帮忙准备好测试环境,但是QA如果一味依赖别的部门,就会大大的局限测试工作的开展,如果别的部门没有时间或者进度滞后,会直接影响到测试工作的进度和效率;而且测试环境如果不是QA负责维护的,后期扩展业务需要优化测试环境的时候,或者遇到问题要调试的时候,都需要依赖其他部门,会导致测试工作不独立,也会显得测试工作人员不专业。 ● ○ ● 需掌握的知识● ○ ● 了解了QA具备搭建测试环境能力的重要性

为什么要做单元测试

喜夏-厌秋 提交于 2019-12-01 18:48:41
为什么要做单元测试 通常我们在做任何工作会先考虑它的回报,编写代码更是如此。如果单元测试的作用不大,没有人会愿意再写一堆无用的代码,那么单元测试到底能够给我们带来什么优点呢?如下: 便于后期重构。单元测试可以为代码的重构提供保障,只要重构代码之后单元测试全部运行通过,那么在很大程度上表示这次重构没有引入新的BUG,当然这是建立在完整、有效的单元测试覆盖率的基础上。 优化设计。编写单元测试将使用户从调用者的角度观察、思考,特别是使用TDD驱动开发的开发方式,会让使用者把程序设计成易于调用和可测试,并且解除软件中的耦合。 文档记录。单元测试就是一种无价的文档,它是展示函数或类如何使用的最佳文档,这份文档是可编译、可运行的、并且它保持最新,永远与代码同步。 具有回归性。自动化的单元测试避免了代码出现回归,编写完成之后,可以随时随地地快速运行测试,而不是将代码部署到设备之后,然后再手动地覆盖各种执行路径,这样的行为效率低下,浪费时间。 等等,讲了这么多优点,无非就是良好的接口设计、正确性、可回归、可测试、完善的调用文档、高内聚、低耦合,这些优点已经足以让我们对单元测试重视起来了,但是个人觉得还有更重要的原因。 首先,带来自信。在接手一个新的项目,或者说是参与一个新的项目开发时,往往这种情况是你半途参加进去的,你需要对已有的代码结构进行解读和理解,对于业务的理解

开发团队标准:什么是乔尔测试?

主宰稳场 提交于 2019-12-01 09:55:03
乔尔测试   1.你们用源代码管理系统吗?   git 神器   2.你们能一键编译吗?   这个要去研究一下   3.你们做每日编译吗?   这个要去研究一下   4.你们有bug数据库吗?   有   5.你们的 程序员 在写新代码前修改以前的代码吗?   在做开发规划的时候,要预留修改以前代码的时间,而不能只是考虑到不断叠加新功能。   6.你们的进度表是最新的吗?   每周的进度更新是必要的,这样才能知道每月的计划能否顺利完成。我们有最新的每周进度。   7.你们有软件规格书吗?   就是我们的产品设计文档。产品设计文档,原型修改5遍,也好过代码开发出来了再推到重来。没想清楚产品细节之前,不要开始开发! 程序员的工作环境安静吗?   远程工作者可以选择自己的工作环境   9.你们使用了能买到的最好的工具吗?   可以有   10.你们有测试人员吗?   3.1以前都是产品经理同时负责测试,3.2以后要引入专业的测试人才,提升测试完整度。   11.你们面试时会要求应聘人员写代码吗?   可以有。   12.你们做过走廊可用性测试吗?   在做,且必须做。每次要提供不同版本让用户来比较体验,并给出反馈。   感觉上,乔尔十多年前提到的这些,已经逐步成为开发团队的标配。 来源: oschina 链接: https://my.oschina.net/u/2742875/blog

软件测试理论知识点(二)

限于喜欢 提交于 2019-12-01 08:55:40
1. 黑盒测试 : (1) 等价划分法 :同时考虑 有效 等价类、 无效 等价类 (2) 边界值分析法 :选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。同时考虑 输入 边界、 输出 边界。 (3) 决策表 :适用于if-else分支逻辑突出语句 条件桩 条件项 动作桩 动作项 (4) 因果图 : (5) 正交试验设计法 : 2. 白盒测试 :静态白盒测试(又称结构分析)+动态白盒测试(又称结构化测试) <1>逻辑覆盖法测试: (1) 语句覆盖 :每个可执行语句至少执行一次, 最弱逻辑覆盖 。 (2) 判定覆盖 :又称分支覆盖、所有边覆盖,程序中每个判定至少取一次真和一次假,即真假值均被满足。 (3) 条件覆盖 :使每个判断中每个条件的可能取值至少满足一次。条件覆盖不一定包含判定覆盖。 (4) 条件判定覆盖 :所有条件可能至少执行一次取值+所有判断的可能结果至少执行一次。 (5) 条件组合覆盖 :每个条件的所有可能至少出现一次+每个判断本身的判定结果也至少出现一次+这些结果的所有可能组合都至少出现一次。 覆盖准则相当强 ,但仍有可能会漏掉一部分路径, 测试不完全 。 <2>路径覆盖法测试 (1)按程序结构分: 顺序结构、选择结构、循环结构 。 循环结构又分为:简单循环+串接循环+嵌套循环等。 (2) 基本路径测试 3 .性能测试: (1) 负载测试

软件测试-基础理论篇

不打扰是莪最后的温柔 提交于 2019-12-01 08:04:26
1,B/S和C/S架构的区别? 从测试的角度来讲。B/S架构需要重点考虑系统在不同的浏览器中的兼容性问题;C/S 架构需要考虑系统在不同平台的安装、卸载、升级 B/S 即Browser/Server(浏览器/服务器)结构,指浏览器和服务端,在客户机端不用装专门的软件,只要一个浏览器即可。 C/S 即Client/Server(客户机/服务器)结构,指客户机和服务端,在客户机端必须装客户端软件后才能访问服务器。 2,对HTTP协议怎么理解的? http协议是应用层的一个数据传输协议,由请求和响应构成, 主要的请求方式有get和post两种,get请求的请求数据在请求头,post请求的请求数据在请求体 响应的数据也包含响应头和响应体。 3,常见的http状态码? 200 请求成功 用于get/post请求 301 永久移动 302 临时移动 404 服务器无法找到资源,网页丢失 500 服务器内部错误 4,http请求头包含哪些信息? content-type (作用:定义网络文件的类型和网页的编码 ) accept (作用:发送端(客户端)希望接受的数据类型) 5,get和post的区别? get 请求数据参数放在请求头传送,请求地址长度有限制,一般用在获取数据。 post请求数据参数放在请求体传送,请求地址没有长度限制,一般用在提交数据。 6,什么是软件测试? 软件测试就是使用软件

软件测试的定义及分类的笔记&笔试面试题

冷暖自知 提交于 2019-12-01 07:57:36
文档:软件测试的定义及分类的笔记&笔试面试题 1、什么是软件 (1)软件是计算机程序、程序所用的数据以及有关文档资料的集合。 (2)软件是计算机的灵魂,软件可以分为两大类:系统软件和应用软件。 系统软件:系统软件是生成、准备和执行其他程序所需要的一组文件和程序。如操作系统Windows、数据库SQL Server、驱动程序、Java系统编译环境等。 应用软件:计算机用户为了解决某些具体问题而购买、开发或研制的各种程序或软件包。如App、QQ、微信等。 提问:软件测试的对象是什么? 程序、文档以及数据。 链接:http://note.youdao.com/noteshare?id=568829976ac345038943ad59047fb774 来源: https://www.cnblogs.com/ttsugar/p/11671214.html

敏捷项目测试策略文档模板

自闭症网瘾萝莉.ら 提交于 2019-12-01 05:32:51
敏捷项目测试策略文档模板   在一个敏捷工作环境种,我们的研发工作以冲刺期和高度迭代的形式展开。每一个迭代周期都关注少数的需求或者用户故事,所以在文档在敏捷项目种的数量和内容方面都倾向于轻量化。   对于测试计划这样的文档也是如此,不过我们也确实需要为敏捷团队去提供一个概要的敏捷测试策略,以供指导。   敏捷测试策略文档是为了给团队提供一个最佳的测试实践和一些形式的测试体系。记住,敏捷并不意味着没有体系。   下面我们来看一个敏捷测试策略文档,看看我们都应该包含些什么内容。 1.   一份测试策略中通常都会对于更宽泛的商业目的和目标做出任务说明。    一个典型的任务说明可以是:   “通过快速反馈和缺陷预防,持续的交付可工作的,满足用户需求的软件,而不仅仅是缺陷发现”   细化以后:   “● 在定义完需求的接收条件/测试之后,代码才能进行编写。    ● 接收测试不通过,一个需求就不能被判断为完成。”   在敏捷项目中,通常还会包含关于质量保证的提示:   ● 质量保证是系统和可靠的保证产品满足用户需求的一系列活动。   ● 在SCRUM(敏捷)中,质量保证是所有人的责任,而不单单是测试人员。在我们开发新产品的过程中,我们通过质量保证活动来确保正确的质量。    2.   测试级别    2.1  单元测试   WHY : 确保代码被正确开发   WHO : 开发工程师

软件测试基础(一)

谁说我不能喝 提交于 2019-12-01 05:29:55
1.1 软件测试的目的   软件测试的最终目的是检验产品软件是否满足用户需求。一般包含以下内容:     ①验证软件是否满足开发合同、开发计划、需求规格说明和设计说明等规定的软件质量要求     ②由于难以消除软件中的所有错误,因此软件测试的目的就是发现更多的软件缺陷,消除他们,提高软件质量     ③软件测试不仅仅是为了发现软件缺陷,还是对软件质量评估的过程。测试结果数据可以未软件产品质量测量和评估提供依据     ④通过分析如阿健缺陷产生的原因,可以有针对性地进行软件过程改进 1.2 软件测试过程   制定测试计划→测试设计→测试准备→测试执行→测试评估→整体项目测试总结 1.3 软件测试分类   ①按测试执行阶段划分:单元测试、集成测试、系统测试、验收测试   ②按测试技术划分:黑盒测试、白盒测试   ③按测试状态划分:静态测试、动态测试   ④按用户需求划分:功能测试、非功能测试   ⑤其他:回归测试、冒烟测试、随机测试 1.4 软件测试的过程模型   ① V模型   V模型是软件开发瀑布模型的变形,是最基础的测试模型。V模型的测试策略包含低层和高层测试,低层测试是为了保证代码和设计的正确性,高层是为了保证系统满足用户需求。单元测试和集成测试主要验证软件是否满足设计要求,系统测试是为了验证系统功能和性能是否达到质量要求的指标,验收测试是确定最终的软件产品是否满足用户的需求。

什么是单元测试?如何做好单元测试?

大憨熊 提交于 2019-12-01 04:56:24
什么是单元测试?如何做好单元测试? 单元测试是指,对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最小可测试单元通常是指函数或者类。 单元测试都是以自动化的方式执行,所以在大量回归测试的场景下更能带来高收益。 单元测试代码里提供函数的使用示例,因为单元测试的具体表现形式就是对函数以各种不同输入参数组合进行调用。 如何做好单元测试? 1)代码的基本特征与产生错误的原因 无论是开发语言还是脚本语言,都会有条件分支、循环处理和函数调用等最基本的逻辑控制,如果抛开代码需要实现的具体业务逻辑,仅看代码结构的话,所有的代码都是在对数据进行分类处理,每一次条件判定都是一次分类处理,嵌套的条件判定或者循环执行,也是在做分类处理。 如果有任何一个分类遗漏,都会产生缺陷;如果有任何一个分类错误,也会产生缺陷;如果分类正确也没有遗漏,但是分类时的处理逻辑错误,也会产生缺陷。 2)单元测试用例详解 单元测试的用例是一个“输入数据”和“预计输出”的集合。需要针对确定的输入,根据逻辑功能推算出预期正确的输出,并且以执行被测试代码的方式进行验证。即“在明确了代码需要实现的逻辑功能的基础上,什么输入,应该产生什么输出”。 单元测试用例“输入数据”种类: 被测试函数的输入参数; 被测试函数内部需要读取的全局静态变量; 被测试函数内部需要读取的成员变量; 函数内部调用子函数获得的数据

【转】【测试分级】软件测试分级理论

夙愿已清 提交于 2019-11-30 20:56:53
本文链接:https://blog.csdn.net/zjuxsl/article/details/79364811 软件测试是软件工程当中不可或缺的一个过程。在软件工程中,测试者充当“虚拟用户”对软件产品进行检验。只有经过严格测试的软件产品,才能发布给用户使用。 只要有软件的地方,就有软件测试。 软件测试是一个包罗万象的话题。这种“包罗万象”的具体表现之一就是软件测试的分类:多样化的观察角度,多样化的衡量标准,造就多样化的分类方法。软件测试的分类可谓是“百花齐放,百家争鸣”。 例如,根据测试手段,软件测试既可以分为手动测试和自动化测试,也可以分为静态测试和动态测试,还可以分为白盒测试、黑盒测试和灰盒测试。 例如,根据测试目标,软件测试可以分为功能测试和非功能测试。功能测试可以根据业务类型做二次分类;非功能测试可以分为性能测试、安全测试、可用性测试、稳定性测试等。 例如,在软件生产的不同阶段,有单元测试、集成测试、系统测试、冒烟测试、alpha测试、beta测试等。 例如,根据测试执行频率,软件测试可以分为回归测试和非回归测试。 例如,根据测试自由度,软件测试可以分为预定义测试和探索性测试。 ..... 面对如此纷繁多样的测试分类,有没有一个主线方法能够让我们拨云见日,理清思绪呢? 笔者认为,基于测试分级的分类方法,可以回答这个问题。 那么,什么是测试分级?