测试工程师必备测试常识
文章目录
- 什么是“软件测试”?
- 在软件开发过程中5个常见的问题是什么?
- 针对软件开发过程中的问题,有5个解决办法:
- 软件测试包括哪些内容?
- 什么是“测试案例”?
- 如果需求一直在变化怎么办?
- 面向对象的设计如何影响测试?
什么是“软件测试”?
软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作的结果。也就是说,如果用户面对着应用程序的 A 界面,在使用硬件 B 的时候做 C 操作,那么 D 结果应该出现。所谓受控制的条件应该包括正常条件和非正常条件。应该故意地去促使错误的发生,也就是事情在不该出现的时候出现或者在应该出现的时候没有出现。从本质上说,软件测试是“探测”。
在如何负责质量保障和软件测试的责任方面,各个机构有不同的做法。有时候,由一个小组或者个人来负责。常见的办法是项目组包括了测试人员和开发人员,他们在一起合作工作,由项目负责人来对质量保障进行总负责。这取决于该机构的大小和该机构的商务结构。
(软件测试是在受控制的条件下对系统或应用程序进行操作并评价操作的结果)
在软件开发过程中5个常见的问题是什么?
需求说明差 (poor requirements) ── 需求不清楚、不完整、太概括、或者不可测试,都会造成问题。
不切实际的时间表 (unrealistic schedule) ── 如果在很短的时间里要求做许多事,出现错误是不可避免的。
测试不充分 (inadequate testing)── 只能根据客户意见或者系统崩溃来判断系统质量的高低。
不断增加功能 (featuritis) ── 在开发正在进行过程中要求增加许多新的功能。这是常见的问题。
交流问题 (miscommunication) ── 如果开发人员对客户的要求不了解,或者客户由不恰当的期望,必然会导致错误。
(需求说明差 不切实际的时间表 测试不充分 不断增加功能 交流问题)
针对软件开发过程中的问题,有5个解决办法:
可靠的需求 (solid requirements) —— 应当有一个经各方一致同意的、清楚的、完整的、详细的、整体的、可实现的、可测试的需求。为帮助确定需求,可使用模型 (prototypes)。
合理的时间表 (realistic schedules) —— 为计划、设计、测试、改错、再测试、变更、以及编制文档留出足够的时间。不应使用突击的办法来完成项目。
适当的测试 (adequate testing) —— 尽早开始测试;每次改错或变更之后,都应重新测试。项目计划中要为测试和改错留出足够的时间。
尽可能坚持最初的需求 (stick to initial requirements as much as possible) —— 一旦开发工作开始,要准备防止修改需求和新增功能。要说明这样作的后果。如果必须进行变更,必须在时间表上有相应的反映。如果可能,在设计阶段使用快速的模型,以便使客户了解将会得到的东西。这将会使他们对他们的需求有较高的信心,减少以后的变更。
沟通 (communication ) —— 在适当时机进行预排和检查;充分利用团组通信工具 —— 电子邮件、群件 (groupware)、网络故障跟踪工具、变更管理工具、以及因特网的功能。要确保文件是可用的和最新的。优选电子版文档,避免纸介质文档;进行远距离联合作业及协作;尽早使用模型,使得客户的预想是清楚的。
(可靠的需求 合理的时间表 适当的测试 尽可能的坚持最初的需求 沟通)
软件测试包括哪些内容?
以下是一些需要考虑的步骤:
得到需求、功能设计、内部设计说书和其他必要的文档
得到预算和进度要求
确定与项目有关的人员和他们的责任、对报告的要求、所需的标准和过程 (例如发行过程、变更过程、等等)
确定应用软件的高风险范围,建立优先级、确定测试所涉及的范围和限制
确定测试的步骤和方法 ── 部件、集成、功能、系统、负载、可用性等各种测试
确定对测试环境的要求 (硬件、软件、通信等)
确定所需的测试用具 (testware),包括记录/回放工具、覆盖分析、测试跟踪、问题/错误跟踪、等等
确定对测试的输入数据的要求
分配任务和任务负责人,以及所需的劳动力
设立大致的时间表、期限、和里程碑
确定输入环境的类别、边界值分析、错误类别
准备测试计划文件和对计划进行必要的回顾
准备白盒测试案例
对测试案例进行必要的回顾/调查/计划
准备测试环境和测试用具,得到必需的用户手册/参考文件/结构指南/安装指南,建立测试跟踪过程,建立日志和档案、建立或得到测试输入数据
得到并安装软件版本
进行测试
评估和报告结果
跟踪问题/错误,并解决它
如果有必要,重新进行测试
在整个生命周期里维护和修改测试计划、测试案例、测试环境、和测试用具
什么是“测试案例”?
测试案例是一份文档,它描述了一个输入、反应、或者是与其相应的预期的响应,以便来判断应用软件的工作是否正常。测试案例应当包括测试标识、测试案例的名称、目标、测试条件/设置、输入数据要求、步骤、以及预期的结果。
注:开发一个应用软件的测试案例的过程,需要全面、深入地考虑该软件的操作,所以有助于发现在其需求或设计里面的问题。因此,如果有可能,在开发周期中应当尽早准备测试案例。
(测试案例包括:测试标识, 案例名称,目标,测试条件/设置,输入数据要求,步骤,以及预期结果)
如果时间不够,无法进行充分的测试怎么办?
使用风险分析,确定测试的重点。
由于很少有机会对一个应用软件进行所有可能的测试 (包括所有可能的事件组合、所有的相关性、或者一切可能出错的东西),对大多数软件开发项目来说,利用风险分析是适当的。这需要判断技能、常识、感觉和经验。如果有正当理由,也可采用正式的方法。需要考虑下列因素:
对于该项目的用途而言,哪种功能最重要?
哪种功能对用户最明显?
哪种功能对安全影响最大?
哪种功能对用户最有用?
对客户来说,该应用软件的哪个部分最重要?
在开发过程中,该应用软件的哪个部分可以最先测试?
哪一部分代码最复杂,容易导致出现错误?
哪一部分的应用程序是在急迫或在惊恐的情况下开发出来的?
哪一部分程序与过去项目中引起问题的部分相类似/有关?
哪一部分程序与过去项目中需要大量维护的部分相类似/有关?
需求和设计的那些部分不清楚或不容易读?
开发人员认为在应用软件中哪些部分是高风险的?
哪些问题能造成最差的发行?
哪些问题最能引起用户抱怨?
哪些测试可以容易地覆盖多种功能?
哪些测试在覆盖高风险部分的测试时使用时间最少?
如果需求一直在变化怎么办?
这是一个常见的令人头疼的问题。
如果可能,尽早与承担该项目风险的人接触,以便了解需求会怎样改变,从而可以尽早地改变测试计划和策略。
如果在对应用程序进行初始设计时多考虑一些适应性,那么以后在发生需求的改变时,就不需要再为改变做很多事情了。
好的代码注释和好的文档有助于开发人员作出相应的改变。
只要有可能,就应使用快速原型 (rapid prototyping),以帮助用户确认他们的需求,从而减少变更。
在项目的时间表中应当留出余量,以应付可能出现的变更。
尽量把新的需求纳入应用软件的“下一版”,而把原始需求作为“第一版”。
通过谈判,把易于实现的新的变更列入项目,而把难于实现的新需求列入该应用软件的以后的版本。
要确保让客户和管理人员了解变更对进度表的影响、所带来的风险、以及因变更所引起的大量资金消耗。
在应付改变时,应在为建立自动测试而作的努力和重新进行测试所做的努力之间取得平衡。
在设计自动测试剧本时,试图使其有一些灵活性。
在对应用软件进行自动测试时,要把注意力集中在看来不大会改变的部分。
对变更进行适当的风险分析,以减少回归测试的要求。
在设计测试案例时要有一定的灵活性。做到这一点并不容易,所以要降低测试案例的详细程度,或者只建立高级的通用型的测试计划。
少注意详细的测试计划和测试案例,要把重点放在专门的测试 (ad hoc testing) 上。
面向对象的设计如何影响测试?
好的面向对象的工程设计使得从代码追溯内部设计、再到功能测试,最后追溯到需求,成为一件容易的事。因为它对黑盒测试的影响很少 (不需要了解应用软件的内部设计) ,而白盒测试只需针对该应用软件的对象。如果该应用软件设计得好,就可简化测试设计。
测试工程师必备测试常识相关推荐
- 测试工程师必备linux基础一(服务器磁盘篇)
测试工程师必备linux基础 第一篇服务器磁盘认识及操作 测试过程中,有一个很重要的东西,测试环境搭建,希望大家在看了本文后能够对于磁盘有一个初步的概念.本文讲述linux服务器中,磁盘的操作流程,R ...
- 视频教程-网络安全与渗透测试工程师-渗透测试
网络安全与渗透测试工程师 云知梦创始人,国际架构师,11年互联网培训和开发经验,曾在港电讯盈科.北大青鸟集团.远大教育.北京易第优教育等公司任职曾获得美国红帽RHCA构架师和RHCDS数据中心讲师,在 ...
- 开源测试平台RunnerGo,测试工程师必备
作为一名工作多年的测试工程师一直希望有一款可以颠覆目前测试工具的平台,相较于研发岗位有各种工具可以覆盖他们整个的工作流程,而测试工具比如:jmeter,它的功能更突出在性能测试方面,其他方面更依赖于各 ...
- 测试工程师必备武器之“军工六性”
人们生活中的吃.穿.住.用.行都会涉及到质量.每年的3月15是国际消费者权益日,这些均说明质量是全球都在关注的问题.作为一名测试工程师,作为产品上线前最后一环质量把控的我们,又该如何保证产品质量呢? ...
- 安全测试-优秀测试工程师必备的4项安全测试方法!
用您5分钟时间阅读完,希望能对您有帮助! 一.安全性测试 1.安全性测试方法 测试手段可以进行安全性测试,目前主要安全测试方法有: 1)静态的代码安全测试 主要通过对源代码进行安全扫描,根据程序中数据 ...
- 经验分享|测试工程师转型测试开发历程
介绍下自己的测试历程吧,邮电高校通信小硕,毕业4年,去年成功转型测试开发,周末会总结测试心得. Testerhome版:https://testerhome.com/topics/30291 平凡的大 ...
- 软件工程测试工程师自我评价,测试工程师自我评价
测试工程师自我评价一 通过三年城市轨道交通信号系统项目工作经历,对CBTC系统有了深入的理解,增强了对于系统故障数据分析和问题解决能力;锻炼了在高强度环境中项目执行力和学习能力;具有较强的责任感及时间 ...
- 【面试题】测试工程师/自动化测试/测试开发面试题整理
[自己做个笔记,大家有需要的可以看看,有问题欢迎指出] 文章目录 基础面试题 1.设计用例的方法.依据有哪些 2.软件的生命周期 3.测试流程 4.bug生命周期 5.你在测试中发现了一个bug,但是 ...
- sql依据单个字段去重_小白学习笔记,测试工程师必备SQL语句整理
作为一个软件测试工程师,我们在测试过程中往往需要对数据库数据进行操作,但是我们的操作大多以查询居多,有时会涉及到新增,修改,删除等操作,所以我们其实并不需要对数据库的操作有特别深入的了解,以下是我在工 ...
最新文章
- hibernate QBC检索方式查询
- @select注解模糊查询_mybatis @SelectProvider 注解, 打赌你没有用过
- 【百家稷学】计算机视觉典型实践(珠海格力电器技术分享)
- 【存储知识学习】第三章磁盘原理与技术3.8并行传输和串行传输and3.9 IOPS和带宽-《大话存储》阅读笔记
- php 版本排序,四种常见排序算法--PHP版本
- Log4j漏洞?一行代码都不改就能永久修复?
- C ++ 指针 | 指针与函数_7
- python获取windows系统信息_Python获取Windows系统信息
- 原生vue.js实现待办事项清单,支持增删改查
- Oracle 正则表达式函数-REGEXP_SUBSTR 使用例子
- Java代码生成器简介、原理、开发流程和Demo
- 聊聊拒绝忽悠的批判性思维
- 【Fusion】Mosek.Fusion基础
- 非线性拟合matlab代码,Matlab非线性拟合
- 3-----A Forcast for Bicycle Rental Demand Based on Random Forests and Multiple Linear Regression
- 让人感到心灵平静,阳光温暖的图片
- FMM 大战 LMM - SOFR 企稳 Part I
- Civil 3d 路线之固定图元(AlignmentEntity)部分分析
- 电路设计学习一:DAC/ADC原理
- 这才是21 世纪的 API 文档该有的样子
热门文章
- 一个,两个,蓝精灵 (10 分)(Python)
- 嵌入式学习⑩——STM的PWM和DAC
- 2019java面试3年_Java回顾#3 – 2019年对于社区而言最重要的事情
- Android横屏竖屏切换的问题
- [大学物理实验-1]弹簧谐振子实验
- 中科院计算所培训中心二季度公开课安排
- 摩尔斯电码_摩尔斯电码二叉树和baader meinhof现象
- ESP32 使用 ESP-AT 测试 MQTT WSS 连接和数据传输的流程
- firewall-cmd --permanent --get-zone-of-interface=ens33显示no zone
- 浙大MBA经验分享:在工作生活的缝隙中奋勇上岸