01-测试理论&测试基础
01-测试理论&测试基础
001-什么是软件缺陷?
软件缺陷包括软件错误,但是软件缺陷不一定就是软件有错误。所谓软件缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。
002-什么是测试包?
答案:测试包英文名:Testing *suite。*一组测试用里的执行框架;一种组织测试用例的方法。在测试包里,测试用例可以组合起来创造出独特的测试条件。
003-怎么衡量组内测试人员的测试质量
参考: 1、其他组员测试的内容通过验收测试、预发布环境测试
2、通过线上bug数量以及严重程度来判断
004-软件测试的原则是什么?
原则一:测试证明软件存在缺陷### 原则二:穷尽测试是不可能的### 原则三:尽早介入测试### 原则四:缺陷具有集群性### 原则五:杀虫剂悖论### 原则六:测试是上下文相关的### 原则七:无错误谬论
005-什么是分层测试?
行业里面提的一般是金字塔的分层模型:UI测试、集成/接口测试、单元测试
006-怎么发现线上用户存在的问题?
如果是线上用户已经发现了的问题,有现成的话可以通过查看日志来进行分析; 没有现成的话,也可以通过分析用户的步骤和配置以及环境,尽量去模拟用户使用场景,在测试环境下去复现这个问题。 如果一旦复现了,就把使用场景添加到用例库,方便以后的测试执行更加贴近用户场景。
007-什么是自顶而下增量式测试?
自顶向下增量式测试表示逐步集成和逐步测试是按照结构图自上而下进行的,即模块集成的顺序是首先集成主控模块(主程序),然后依照控制层次结构向下进行集成。从属于主控模块的按深度优先方式(纵向)或者广度优先方式(横向)集成到结构中去。
008-什么是软件质量?
概括地说,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述 的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。 影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。可划分为三组,分别反应用户在使用软件产品时的三种观点。正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);可移植性、可再用性、互运行性(产品转移)。
009-怎么分析一个bug?
首先排除因为自己操作失误或者网络问题导致的错误bug,确认是bug的话,我会通过fiddler 抓包获取前后端交互信息进行分析,检查前端的一些请求参数有没有错误,如果没问题的话,说明请求是没问题的。再去看后端有没有一个响应,以及响应是不是正确的。前端能不能正常显示后端的响应; 然后还会同步看日志 和分析数据库数据数据。
010-怎么判断测试是否通过?
1)用例已全部执行,且用例执行通过率达到公司标准(90%-95%以上)
2)对于产生的bug,不存在1、2级严重bug,存在极少量3或4级遗留的bug(在公司的允许的遗留bug范围内),修改的bug都跟踪完毕,不影响当前版本的使用。
011-什么是测试项?
答案: 作为测试对象的工作版本。
012-为什么在一个团队中开展软件测试工作
在团队中开展软件测试工作,是因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。
软件质量的好坏直接影响消费者的利益,所以优秀的软件一定要经过测试后,才能上市。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。
013-什么是评审?
在产品开发过程中,把产品提交给项目成员、用户、管理者或其它相关人员评价或批准的过程。
014-什么是sit测试?
SIT测试(System Integration Testing,又称系统集成测试),是在单元测试之后需要进行的测试、一般是由公司测试人员来测试**。**目的是检验系统功能的性能、可靠性等。
015-什么是自动化测试工具?
答案:软件自动化测试是通过软件工具来进行软件测试的分析、设计、环境部署、执行和报告的工作,从而帮助软件测试工程师完成软件测试工作。软件测试工具分为自动化测试工具和软件测试管理工具。
(一)普通软件测试工具 1.开源测试工具 开源软件测试管理工具:Bugfree、Bugzilla、TestLink、Mantis、Zentaopms等。 开源功能自动化测试工具:Watir、Selenium、MaxQ、WebInject等。 开源性能自动化测试工具:JMeter、Locust、OpenSTA、DBMonster、TPTEST、Web Application Load Simulator、禅道测试管理工具等 2. 商用测试工具 Quality Center:它是基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。 Unified Functional Testing(UTF):即QTP的升级版本,最初是Mercury Interactive公司开发的一种自动化测试工具、在2006年被HP收购,随着UFT11.50版本的发布,QTP 和 Service Test 成为了UFT11.50软件组件中的一部分。UFT主要应用于:功能测试、回归测试、service testing。 LoadRunner:预测系统行为和性能的负载测试工具。 静态测试工具:Checkstyle、Findbugs、PMD、Android Lint等。 其他软件测试工具与框架还有Coverity、Rational Functional Tester、Borland Silk系列工具、WinRunner、Robot等。 国内免费软件测试工具有:AutoRunner、TestCenter等。 (二)App软件测试工具 1.Android App软件测试工具 Monkey。MonkeyRunner。Appium、UiAutomator、Espresso、Robotium。 Robolectric:让Android开发从此摆脱模拟器软件测试的老套路。 AppGrader:Android开发者的意见大师。 2.IOS App软件测试工具 UI Automation。Appium、Xcode5。 (三)接口测试工具 JMeter、Postman、HttpRunner、基于Python的requests类 (四)软件自动化测试框架 基于JAVA的自动化测试框架:JUnit、TestNG、Gradle。 基于Python的自动化测试框架:unittest、Pytest、nose。 基于C的自动化测试框架:CUnit。 基于C++的自动化测试框架:CppUTest、WindTest。 基于C#的自动化测试框架:Nunit、WatiN。 基于PHP的自动化测试框架:PHPUnit、Codeception、Behat、PHPSpec、SimpleTest、Storyplayer、Peridot、Atoum、Kahlan。
016-软件测试的内容是什么?
程序、文档和数据
017-什么是Alpha测试、Beta测试?
Alpha测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。开发者负责记录发现在错误和使用中遇到的问题。总之,Alpha测试是在受控的环境中进行的。Beta测试由软件的最终用户们在一个或多个客房场所进行。Beta测试是软件在开发者不能控制的环境中的“真实”应用。
018-为什么要在一个团队中开展测试工作?
因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量认证,这个时候就需要在团队中开展软件测试的工作。在测试的过程中发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。
019-软件测试的原则包括哪些?
(1)测试左移,尽早的介入项目测试;
(2)测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成;
(3)程序员应当避免检查自己的程序;
(4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件;
020-什么是等价类划分?
把所有可能的输入数据(有效的和无效的)划分成若干个等价的子集(称为等价类),使得每个子集中的一个典型值在测试中的作用与这一子集中所有其它值的作用相同.可从每个子集中选取一组数据来测试程序
021-怎么做的迭代测试?
针对迭代需求做正式细致的测试,原有的功能跑一遍基本的使用
022-软件测试对象包括哪三个对象?
程序、数据、文档
023-怎么确定产品是否合格?
1、测试用例是否执行完成。测试用例在产品上线前至少要完成90%+的用例,剩下的用例应该要标明原因,以及优先级比较低的;
2、剩余bug的数量和验证程度要达到标准。剩余bug不应该还存在blocker、critical级别的bug,如果有不能上线;剩余的major的bug应该不超过一定的比例(根据公司情况而定)。
3、上线前的最后一轮的回归测试有完成。最后一个版本也就是上线的版本一定要经过一轮完整的回归三个条件之后,即可达到上线的标准。
024-什么是边界值分析法?
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法.通常边界值分析法是作为对等价类划分法的补充
025-什么用例是主流程的用例?
核心模块的用例,客户经常操作的业务模块的用例
026-什么是V模型?
答案:RAD(Rap Application Development,快速应用开发)模型是软件开发过程中的一个重要模型,由于其模型构图形似字母V,所以又称软件开发的V模型。它通过开发和测试同时进行的方式来缩短开发周期,提高开发效率。
027-什么是调试?
开发人员确定引起错误的根本原因和确定可能的修复措施的过程。一般发生在子系统或单元模块编码完成时,或者根据测试错误报告指出错误以后,开发人员需要执行调试过程来解决已存在的错误。
028-软件测试大体有哪些活动?
测试计划,测试设计,测试执行,测试总结等。
029-什么是幂等性
简单的说,幂等测试就是验证数据一致性和事务完整性。
可能出现幂等问题的场景: 用户重复提交——非常容易发生,前端、后端均需要控制;
网络重发 消息重发 系统间重试 所以说保证接口的幂等性是非常重要的。
测试幂等的手段:前端幂等测试,注意按钮的多次快速点击;
后端接口的幂等测试,使用 postman 或 jmeter 多次发送同一参数的请求,查看服务端 响应。
030-什么是β测试?
Beta测试(β测试)是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。
开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。在Beta测试中,由用户记下遇到的所有问题,包括真实的以及主管认定的,定期向开发者报告,开发者在综合用户的报告后,做出修改,最后将软件产品交付给全体用户使用。
Beta测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当Alpha测试达到一定的可靠程度后,才能开始Beta测试。由于Beta测试的主要目标是测试可支持性,所以Beta测试应该尽可能由主持产品发行的人员来管理。
031-怎么保证你需求分析100%覆盖到
1、对需求的分析:保证覆盖度首先要保证对需求点提取的覆盖率。测试一切以需求为根本和中心指导,如果在开始覆盖度就不高,那么你后面做的再好也就那样了。
2、设计测试用例:对于分析提取的需求点编写对应的测试用例,使用等价类、边界值、因果法、错误推测法来进行多角度的覆盖
3、测试用例评审:但每个人都是不同的,思考方式、方向等都是不同的,你想到而我没想到的情况是非常多了(随着经验的增多会逐步减少),这样就遗漏了方面,覆盖率也就不够了,所以评审是必然的,它可以确定并补全测试用例。
032-什么叫集成测试?
集成测试又称组装测试、联合测试、子系统测试或部件测试。
集成测试是在单元测试的基础上,将所有的模块按照设计要求组装成子系统或系统进行的测试活动。
增值式测试就是把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试,直至将所有的单元模块组装成为符合要求的软件系统。
非增值式测试是先分别测试每个模块,再把所有模块按设计要求放在一起组合成所要的程序。
033-什么是等价类?
指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。等价类划分为两种不同的情况:有效等价类和无效等价类。
034-为什么选择做软件测试?
1)可以说自己所在行业呆了不短的时间了,薪资涨幅,职场晋升都比较难; 2)刚好身边有亲戚(表哥/表姐/堂哥/堂姐/发小)之前是做开发/测试的,行业薪资待遇都不错;然后就带着我学习了些测试入门的东西,推荐我去找了工作,就这么转行进来的
035-软件测试的流程是什么?
需求调查:全面了解系统概况、应用领域、软件开发周期、软件开发环境、开发组织、时间安排、功能需求、性能需求、质量需求及测试要求等。根据系统概况进行项目所需的人员、时间和工作量估计以及项目报价。 制定初步的项目计划。
测试准备:组织测试团队、培训、建立测试和管理环境等。
测试设计:按照测试要求进行每个测试项的测试设计,包括测试用例的设计和测试脚本的开发等。
测试实施:按照测试计划实施测试。
测试评估:根据测试的结果,出具测试评估报告。
036-什么黑盒测试?
黑盒测试是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。
037-什么是黑盒测试与白盒测试?
①黑盒测试指把测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求,又称为功能测试或数据驱动测试。
②白盒测试指把测试对象看成一个打开的盒子,测试人员需了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
③白盒测试适应的测试有单元测试、逻辑覆盖(按逻辑覆盖程度不同,有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。)、循环覆盖(限制循环次数,有单循环和嵌套循环)和基本路径测试。
④黑盒测试适应的测试有:确认测试、等价类划分、边界值分析、错误推测和因果图。
038-什么是随机测试?
没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。主要是根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行用例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。
039-什么是易用性测试?
答案:
易用性测试是指用户使用软件时是否感觉方便,比如是否最多点击鼠标三次就可以达到用户的目的。易用性和可用性存在一定的区别,可用性是指时候可以使用,而易用性是指是否方便使用。
040-怎么看待软件测试?
软件测试。要有过硬的软件编码知识,然后要有耐心,最重要的就是 测试是非常辛苦的事情,你要规范的去测试,编写好买个测试用例,既要有方向的测试,又要随机测试,做好一个测试工程师,比开发工程师要难得多。日本现在软件程序员和测试工程师是1:1的配置,中国就少多了。所以前景不错。
041-什么是域名解析?
将主机名称转换为IP地址的过程。
042-软件测试的意义是什么?
它的意义在于:它是在软件投入运行前,对软件需求分析,设计规格说明和编码实现的最终审查:是软件质量保证的关键步骤.
043-为什么选择来我们公司面试?
我在网上有了解过贵公司,发现贵公司的业务挺丰富的,项目类型也是我之前没做过的,比如说XXXXXX这一块的东西,我对这个也很感兴趣,而且贵公司渗透测试我虽然没接触过,但我学习能力还可以,应该可以很快上手,所以才投的简历。
044-什么是软件测试?什么是冒烟测试?什么是回归测试?
软件测试:软件测试是指在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
冒烟测试:冒烟测试(Smoke Testing)是指:针对每个版本或每次需求变更之后,在正式测试之前,对产品或系统的一次简单的验证性测试,验证产品或系统的“基本功能”流程是否正常。
回归测试:是指对旧的代码修改后(换句话说就是“发布新的版本时”),重新进行的测试,进而验证缺陷得到了正确的修复,同时对系统的变更,是否影响以前的功能。
045-什么是测试环境?
答案:完成软件测试工作所必需的计算机硬件、软件、网络设备、历史数据的总称。测试环境是模拟真实用户使用环境而配置。
046-什么是桩模块,什么是驱动模块?
桩模块:用来模拟被测试模块工作过程中所调用的模块。
驱动模块:用来模拟被测试模块的上一级模块。
047-什么是非增量式集成测试?
对所有模块进行个别的单元测试后,按照程序结构图将各模块连接起来,把连接后的程序当作一个整体进行测试。
048-什么叫等价类、边界值?
1、等价类划分法是一种典型的、重要的黑盒测试方法,是指某个输入域的子集合。在该子集合中,所有的输入数据对于揭露软件中的错误都是等效的。 边界值分析法是对等价类划分法的一个补充,边界值一般都是从等价类的边缘值去寻找。
2、边界值分析的基本思想:正好等于、刚刚大于、刚刚小于边界的值作为测试数据。
049-怎么划分缺陷的等级?
Blocker(崩溃): 奔溃:阻碍开发或测试工作的问题.
造成系统崩溃, 死机, 死循环, 导致数据库数据丢失, 与数据库连接错误, 主要功能丧失, 基本模块缺失等问题. 如: 代码错误, 死循环, 数据库发生死锁, 重要的一级菜单功能不能使用等(该问题在测试中较少出现, 一旦出现应立即终止当前版本测试.) 造成数据泄露的安全性问题, 比如恶意攻击造成的账户私密信息泄露 涉及金钱计算 阻断性测试, 所有测试工作进行不下去--阻断错误一般发生在冒烟测试等主流程上, 比如, 如果注册之后才能进行内部操作, 然后无法注册.
Critical(严重) 严重: 系统主要功能部分丧失, 数据库保存调用错误, 用户数据丢失, 一级功能菜单不能使用但是不影响其他功能的测试.
功能设计与需求严重不符, 模块无法启动或调用, 程序重启, 自动退出, 关联程序间调用冲突, 安全问题, 稳定性等. 如: 软件中数据保存后数据库中显示错误, 用户所要求的功能缺失, 程序接口错误, 数值计算统计错误等.(该等级问题出现在不影响其他功能测试的情况下可以继续该版本测试). 重要功能不能实现 错误的涉及面广, 影响到其他重要功能正常实现 非常规操作导致的程序崩溃, 死机, 死循环, 闪退 界面超级难看 密码明文显示
Major(一般) 一般: 功能没有完全实现但是不影响使用, 功能菜单存在缺陷但不会影响系统稳定性 如: 操作时间长, 查询时间长, 格式错误, 边界条件错误, 删除没有确认框, 数据库表中字段过多等(该问题实际测试中存在最多) 不影响产品的运行, 不会成为故障起因, 但对产品外观和下道工序影响较大的缺陷. 次要功能不能实现(次要功能和主要功能的区别: 主流程之外的功能算是次要以及主要功能模块中的控件出现问题, 但主要流程仍然能正常实现)比如说: 注册时, 指明用户名为中文, 但输入英文注册成功了, 但不影响登录后的功能使用 操作错误(数据库中列明, 类型错误等) 查询结果错误 前端界面的简单输入限制未做出错误提示 例如: 删除操作未给提示, 防止误操作
Minor(次要) 次要: 界面, 性能缺陷, 建议类问题, 不影响操作功能的执行, 可以优化性能的方案等. 如: 错别字, 界面格式不规范, 页面显示重叠, 不该显示的要隐藏, 描述不清楚, 提示语丢失, 文字排列不整齐, 光标位置不正确, 用户体验感受不好, 可以优化性能的方案等(此类问题在测试初期较多, 优先程度较低, 在测试后期出现较少, 应及时处理) 界面上的错误, 界面布局, 文字格式, 按钮样式等轻微错误 辅助说明描述不清楚 提示窗口文字未采用行业术语 改进建议
050-软件测试的流程
需求分析,需求评审(RPD、产品原型图) 制定测试计划、评审测试计划、优化测试计划(产品项目计划,人员安排、任务安排) 制定测试方案(测试需求点分析,测试模块划分,流程图分析,制定测试规程) 编写测试用例、评审测试用例、优化测试用用例(功能测试用例、脚本测试用例) 执行测试用例、提交缺陷信息、编写阶段性测试报告(缺陷记录、缺陷管理流程) 进行回归测试(跟踪bug修改情况,执行回归测试用例集、进行探索性测试、编写回归测试测试报告) 测试执行阶段结束根据缺陷记录、阶段性报告编写测试总结报告 进行验收测试,出验收测试报告(测试验收、测试评估与建议) 测试归档(归类、存档测试过程中涉及的文档) 产品上线后跟踪与维护(收集用户反馈问题)
051-什么是用户界面测试?
指测试用户界面的风格是否满足客户要求,文字是否正确,页面是否美观,文字,图片组合是否完美,操作是否友好等等。UI测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。确保用户界面符合公司或行业的标准。包括用户友好性、人性化、易操作性测试。
052-什么是挡板测试?
挡板测试其实是MOCK程序的一种,用于超大型项目~
就是仅提供一个或者几个功能测试的沙盒beta 版本
首先,挡板测试在测试领域提到的不是很普遍。挡板测试大概就是:在一些跨系统的性能测试项目中,往往由于客观因素的限制(测试硬件资源有限、多系统之间的协调等),我们无法搭建一个完整的测试环境来完成测试工作。此时,我们一般会搭建出被测系统,然后采用软件程序来模拟其他相关系统的功能。该软件程序一般被称为挡板。在BAT(百度阿里腾讯)公司有很多类似的挡板,但是内部并不是叫这个名词。他们会叫:“线下系统”、“沙河系统”为了区分线上正式运营的系统。所以,挡板测试在平时测试联调级联模块显得极其的重要了
公司的挡板测试就是模拟接口返回值来测试,模拟服务或功能的返回值。有时候真实的返回值覆盖不了所有的测试场景,可以通过挡板来模拟。
053-什么是独立路径?
答案:独立路径是指包括一组以前没有处理的语句或条件的一条路径.从程序图来看,一条独立路径是至少包含有一条( 在其他独立路径中未有过 )的边的路径。
054-什么是开发方测试?
通常也叫“验证测试”或“Alpha测试”。
开发方通过检测和提供客观证据,证实软件的实现能满足规定的需求。验证测试是在软件开发环境下,由开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求。主要是指在软件开发完成以后,在开发方对要提交的软件进行全面的自检与验证。
055-什么是白盒测试,什么是黑盒测试?
1). 黑盒测试:
黑盒测试,又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,
只关心软件的输入数据和输出数据。
2)白盒测试:
白盒测试,指的是把盒子打开,去研究里面的源代码和程序结构,进行测试
056-什么时候做回归测试,用什么工具?
当bug修复后,会验证bug的同时做回归测试; 然后就是在临近发布之前,会对整个系统做一个完整的回归测试; 如果是之前就有的功能,我们会有python自动化框架实现;接口的话也可能会用Jmeter来实现。
057-什么是测试过程?
答案:指设置、执行给定测试用例并对测试结果进行评估的一系列详细步骤。测试过程包括:单元测试、集成测试、系统测试、验收测试。
058-怎么评价软件工程师?
入门:会抄代码会编译能跑起来。
高级:会自学,遇事不求人。可以设计复杂的结构和使用新技术。
贯通:可以把复杂的事变简单,并阻止高级使用噱头新技术。
大神:写程序写出了理论。
059-什么是可移植性测试?
答案:可移植性测试是指测试软件是否可以被成功移植到指定的硬件或软件平台上。
060-什么是软件测试 软件测试的目的与原则?
**1、软件测试:**是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
2、软件测试的目的: (1)测试是程序的执行过程,目的在于发现错误 (2)一个成功的测试用例在于发现至今未发现的错误 (3)一个成功的测试是发现了至今未发现的错误的测试 (4)确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。 (5)确保产品满足性能和效率的要求 (6)确保产品是健壮的和适应用户环境的
3、软件测试的原则: (1)测试用例中一个必须部分是对预期输出或接过进行定义 (2)程序员应避免测试自己编写的程序 (3)编写软件的组织不应当测试自己编写的软件 (4)应当彻底检查每个测试的执行结果 (5)测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况 (6)检擦程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的” (7)应避免测试用例用后即弃,除非软件本身就是个一次性的软件 (8)计划测试工作时不应默许假定不会发现错误 (9)程序某部分存在更多错误的可能性,与该部分已经发现错误的数量成正比 (10)软件测试是一项极富创造性,极具智力的挑战性的工作
061-什么情况会影响你的测试进度?
1)开发推迟提交测试的时间 测试会滞后;
2)开发提交的质量达不到提测的标准,导致测试的工作被阻塞
3)产品中途修改或者新增加需求
4)开发中途修复bug 改出很多回归的问题
062-什么是因果图分析法?
因果图法是基于这样的一种思想:一些程序的功能可以用判定表(或称决策表)的形式来表示,并根据输入条件的组合情况规定相应的操作。
063-什么是数据驱动?
数据驱动就是通过excel,或者xml,数据库等数据结构来维护测试数据,通过相应的技术去处理,拿到测试数据用于测试,从而实现测试数据与代码的解耦,数据驱动测试的本质是高级的参数化。
064-什么是W模型?
答案:W模型增加了软件各开发阶段中应同步进行的验证和确认活动。如下图所示,W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。W模型强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。W模型有利于尽早地全面的发现问题。
065-什么情况下使用决策分析法?
在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。决策表很适合于处理这类问题
066-怎么写好用例?
1.用例名称不能重复
2.用例名称里面不能出现歧义的字语
3.用例标题能一眼看出来你测试的是什么场景,指的是你测试场景不重复,不一样就行,其他的预置条件,步骤,预期结果,都可以重复,测试用例简单明了
4.预置条件:就是测这个用例需要达到的条件
5.步骤相对详细,要指导测试人员能够执行用例
6.这个场景影响到点,都做为预期结果检查,绝对的详细,相关模块检查,前后台检查,数据库检查都要到位
067-什么是错误推测法?
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。
常用的错误推测法有:输入非法数据、默认值的测试、更改输出属性的测试、文件类型测试、文件超载测试、介质忙或者介质损坏等测试法。
068-什么是测试用例?
测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。测试用例主要包含四个内容:用例标题,前置条件,测试步骤和预期结果。
069-什么是安装测试?
确保该软件在正常情况和异常情况的不同条件下,例如,进行首次安装、升级、完整的或自定义的安装都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。核实软件在安装后可立即正常运行。安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。
070-软件测试的类型有哪些?
功能测试:又称黑盒测试,是指测试软件的每个功能模块,逻辑能否准确。在测试目标上的功能测试应该集中在可以直接跟踪到用例或是业务功能和业务规则的所有测试需求上。此种测试的意义是验证数据的接收、处理和检索能否准确,和使用规则实施能否适当。
该测试根据黑盒技术,根据图形用户界面(GUI)与应用程序交互,并分析交互输出或结果,以验证应用程序及其内部过程。功能测试的主要是参照为类似于功能说明书这类的文档。
性能测试:指验证软件的性能可以能够满足系统规格给出的规定要求的性能指标。性能测试是一个较为大的范围,可以进一步衍生出负载测试、强度测试、压力测试、稳定性测试。根据自动化测试工具模拟各种常规、异常、峰值条件,对系统各类性能指标测试.
配置测试:用硬件配置来测试软件运行状况,1.软件在不一样主机上运行的状况(Apple和Dell)2.在不一样组件上运行状况(开发的拨号程序要测试不一样厂商生产的Moden上运行状况)3.不一样的外设、接口、运行内存的运行状况
强度测试:强度测试是一种性能测试,他在系统资源非常低的状况下软件系统运行状况。这类测试通常可以书写系统要求的软硬件水平要求。实施和实施这类测试的意义是找出因资源不足或资源争用而造成 的错误。
假如运行内存或磁盘空间不足,测试目标就很有可能会表现出一些在常规条件下并不明显的缺陷。而别的缺陷则很有可能由于争用共享资源(如数据库锁或网络带宽)而导致的。强度测试还可用来确定测试目标可以处理的最高工作量。
负载测试:根据被测系统的持续压力,直到性能指标达到极限值,如响应时间超过预定指标或某些资源达到饱和状态。负载测试是一种性能测试指数据在超负荷环境中运行,程序能否可以承担。对于这种类型的测试,测试对象要承担不同的工作量,以便评估和评价不同工作环境下目标的表现,和持续正常工作的能力。
负载测试的目标是确定并保证系统在超过最高预期工作量的状况下仍能常规运行。除此之外,负载测试还需要评估性能特征,比如,响应时间、事务处理速率和别的与时间相关的方面。
压力测试:压力测试方法测试系统在相应饱和状态下,比如cpu、内出现饱和状态使用状况下,系统可以处理的会话能力,和系统能否会出现错误。
测试出系统所能承受的最高极限值。是指系统在极限值下的压力状况,系统在什么样的压力下会导致系统得到失效,无法常规运行。100个用户持续访问1小时可以看做是压力测试,持续访问10小时可以认为是负载测试.
稳定性测试:压力测试方法测试系统在相应饱和状态下,比如cpu、内出现饱和状态使用状况下,系统可以处理的会话能力,和系统能否会出现错误。一般是稍大于业务量的一个负载,对系统完成的一个持续的,长时间的测试,比如24*3,持续3天的施加压力,确定系统在较长运行时间的状况下,系统的稳定性状况.
网络测试:wifi、4G、3G、不一样运营商网络测试、
UI界面测试:UI测试指测试用户界面的风格能否能够满足客户要求,文字内容能否准确,页面美工能否好看,文字内容,图片组合能否完美,背景能否漂亮,使用能否友好等等。
分辨率测试:测试在不一样分辨率下,界面的漂亮程度,分为800600,1024768,1152864,1280768,12801024,12001600大小字体下测试。一个好的软件要有一个极佳的分辨率,而在别的分辨率下也都能可以运行。
安装测试:安装测试有两个意义。第一个意义是保证该软件在常规状况和异常情况的不一样条件下:比如,进行首次安装、升级、完整的或自定义的安装_都能完成安装。异常情况包含磁盘空间不足、缺少目录创建权限等。第二个意义是核实软件在安装后可立即常规运行。这通常是指运行大量为功能测试制定的测试。
内存测试:CPU测试、响应时间测试、唤醒率测试等,都属于性能测试。还有强度测试、容量测试、基准测试等。
文档测试:文档测试是检验样品用户文档的完整性、正确性、一致性、易理解性、易浏览性。包含用户手册、使用说明、用户帮助文档等
可靠性测试:这种主要是硬件配置方面的,比如高低温测试、防水防尘等测试
安全测试:对产品完成检验以验证产品符合安全需求定义和产品质量标准的过程。可保证只有具备系统访问权限的用户才可以访问应用程序,并且只能根据相应的网管、关来访问。比如输入管理员账户,检查其密码能否容易猜取,或是可以从数据库中获得?
兼容测试:检查软件在不一样软件、硬件平台能否可以常规运行。主要是查看在不一样操作系统、浏览器、数据库、不一样版本能否常规运行、向前兼容和向后兼容、、数据共享兼容
浏览器兼容性测试:测试软件在不一样产商的浏览器下能否可以准确显示与运行、比如测试IE,Natscape浏览器
操作系统兼容性:测试软件在不一样操作系统下能否可以准确显示与运行;比如测试WINDOWS98,WINDOWS2000,WINDOWSXP,LINU,UNIX下能否可以运行这套软件?
硬件配置兼容性
测试与硬件配置密切相关的软件产品与别的硬件配置产品的兼容性,比如该软件是少在并口设备中的,测试一起使用别的并口设备,系统能否可以准确使用。比如在INTER,舒龙CPU芯片下系统能否可以常规运行?
并发测试:并发测试方法根据模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或是数据记录时能否出现死锁或其者他性能问题。换句话说,这类测试关注点是多个用户一起(并发)对一个模块或使用完成加压
071-软件测试的策略是什么?
软件测试策略:在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束而规定的软件测试的原则、方式、方法的集合。
072-怎么做好功能测试
对软件产品需求业务要充分熟悉;掌握必要的测试方法并熟练运用,例如黑盒测试方法之等价类、边界值等等;多积累;熟悉成熟竞品
073-什么是文档测试?
答案:文档测试是检验样品用户文档的完整性、正确性、一致性、易理解性、易浏览性。
074-什么是可靠性测试?
答案:
也称软件的可靠性评估,指根据软件系统可靠性结构(单元与系统间可靠性关系)、寿命类型和各单元的可靠性试验信息,利用概率统计方法,评估出系统的可靠性特征。软件可靠性是软件系统在规定的时间内以及规定的环境条件下,完成规定功能的能力。
075-什么是严重性?
错误对被测系统的影响程度,在终端用户条件下发生的可能性,软件错误妨碍系统使用的程度
076-什么是软件生命周期?
软件生命周期(SDLC,Systems Development Life Cycle)是软件开始研制到最终被废弃不用所经历的各个阶段。 常见的软件生命周期模型有瀑布模型、V模型、W模型、螺旋模型、敏捷模型。
077-什么非增量式集成测试?
对所有模块进行个别的单元测试后,按照程序结构图将各模块连接起来,把连接后的程序当作一个整体进行测试。
078-什么叫静态测试,其内容是什么?
静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。
079-什么是软件测试的静态分析?
静态分析,是相对动态分析说的,即不运行程序,使用的工具主要是你的眼睛,常用在文档测试、白盒测试(代码审查/走查)、UI界面测试。
其中比如代码静态分析主要是进行代码的检查、代码结构的分析、代码问题的查找和代码质量的度量。
它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具进行。代码静态分析工具能够帮助人们保证代码的质量,发现并警告代码中潜在的错误。
080-什么是软件质量保证?其主要任务是什么?
软件质量保证是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。
软件质量保证的主要任务是以下三个方面:
(1)SQA审计与评审。SQA审计包括对软件工作产品、软件工具和设备的审计,评价这几项内容是否符合组织规定的标准。SQA评审的主要任务是保证软件工作组的活动与预定的软件过程一致,确保软件过程在软件产品的生产中得到遵循。
(2)SQA报告。SQA人员应记录工作的结果,并写入到报告之中,发布给相关的人员。
SQA报告的发布应遵循三条原则:SQA和高级管理者之间应有直接沟通的渠道;SQA报告必须发布给软件工程组,但不必发布给项目管理人员;在可能的情况下向关心软件质量的人发布SQA报告。
(3)处理不符合问题。这是SQA的一个重要的任务,SQA人员要对工作过程中发现的问题进行处理及时向有关人员及高级管理者反映
081-什么是国际化测试?
国际化测试的目的是测试软件的国际化支持能力,发现软件的国际化的潜在问题,保证软件在世界不同区域中都能正常运行。国际化测试使用每种可能的国际输入类型,针对任何区域性或区域设置检查产品的功能是否正常,软件国际化测试的重点在于执行国际字符串的输入/输出功能。国际化测试数据必须包含东亚语言、德语、复杂脚本字符和英语(可选)的混合字符。
082-什么是功能测试?
也称为行为测试根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。
083-什么是集成测试,它包括哪两种方式?
每个模块完成单元测试后,需要按照设计是确定的结构图,将他们连接起来,进行集成测试,也成为综合测试。
集成测试包括非增量测试和增量测试两种方式。
084-什么是黑盒测试?
黑盒测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
085-软件测试的原则与策略是什么?
一、软件测试原则
1、尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统满足不了用户的需求
2、开发人员应该避免检查自己的程序,软件测试应该由第三方人员(测试人员)来负责
3、设计测试用例时应该考虑到合法和不合法的输入 例如:手机号的输入框
4、在测试程序时,不仅要检验程序是否做了该做的事,还要检验是否做了不该做的事情,多余的工作会带来副作用,影响程序效率,有时会带来潜在的危害和错误
5、应长期保留所有测试用例、保留测试用例有助于以后修改程序后进行回归测试
二、测试策略
1、选择测试方法:选择最适合当前项目的测试方法(比如项目紧急的时候,项目频繁发版)
2、角色与职责:需要在测试策略里面明确定义各个角色,以及该角色的职责,比如说:项目经理、项目组长、测试工程师
3、环境需求:这一点非常重要,它将描述测试时需要的系统环境(软件、服务器Linux、Windows、数据库mysql)包括软硬件以及网络环境等,在澄清环境需求的时候,测试组织考验识别出资源方面的风险
4、风险风险:影响测试过程的风险都应该尽早被识别出来,而且必须有相应的解决办法以便消除或者减轻风险
5、测试进度评估:测试进度将会评估完成测试所需的时间,在设定进度的时候,首先需要明确测试范围(比如说这次增加一个:D模块,部分功能会影响原来已经上线的H模块的功能)然后根据测试资源的多少来制定能被各方面认可的测试进度计划
6、回归测试策略:回归测试用来保证之前fix bug的代码不会影响软件的其他功能,这个需要我们选择已经执行过的测试用例来重新运行,测试人员需要找到一个方法来确定哪些测试用例一个在回归测试中运行,用例不能太多,因为资源有限,用例不能太少,否则达不到必须的测试强度
7、优先级:测试范围内的东西不会都是一样重要的,加上测试资源各种有限,所以为测试的模块排定优先级是十分必要。
086-什么是软件缺陷?它的表现形式有哪些?
从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;
从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。
它的表现形式主要有以下几种:
(1)软件未达到产品说明书中已经标明的功能;
(2)软件出现了产品说明书中指明不会出现的错误;
(3)软件未达到产品说明书中虽未指出但应当达到的目标;
(4)软件功能超出了产品说明书中指出的范围;
(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。
087-什么是持续集成?
频繁的将代码集成到主干,持续性的进行项目的构架,以便能能够快速发现错误,防止分支大幅度偏离主干
088-什么是正交实验法,使用场景是什么?
1、正交试验是一种利用“正交表”来安排试验和分析试验数据的方法,也是用于多因数试验的 一种方法。采用正交试验能对试验进行合理安排,大量节省试验次数, 并抓住诸因数的优化组合,进一步明确提高产品质量的方向。正交试验表的记号。 2、例如作一个三因素三水平的实验,按全面实验要求,须进行33=27种组合的实验,且尚未考虑每一组合的重复数。若按L9(34)正交表安排实验,只需作9次,按L15(3^7)正交表进行15次实验,显然大大减少了工作量。因而正交实验设计在很多领域的研究中已经得到广泛应用。
089-什么是α测试?
答案:α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可用性、可靠性、性能和支持)。尤其注重产品的界面和特色。α测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。α测试即为非正式验收测试。
090-什么是引导测试?
软件开发中,验证系统在真实硬件和客户基础上处理典型操作的能力。在软件外包测试中,引导测试通常是客户检查软件测试公司测试能力的一种形式,只有通过了客户特定的引导测试,软件测试公司才能接受客户真实软件项目的软件测试。
091-软件测试的目的?
1.为了发现程序(软件)存在的代码或业务逻辑错误
2.为了检验产品是否符合用户需求
3.为了提高用户的体验
092-软件测试的风险主要体现在哪里?
我们没有对软件进行完全测试,实际就是选择了风险,因为缺陷极有可能存在没有进行测试的部分。
举个例子,程序员为了方便,在调试程序时会弹出一些提示信息框,而这些提示只在某种条件下会弹出,碰巧程序发布前这些代码中的一些没有被注释掉。在测试时测试工程师又没有对其进行测试。如果客户碰到它,这将是代价昂贵的缺陷,因为交付后才被客户发现。
因此,我们要尽可能的选择最合适的测试量,把风险降低到最小。
093-什么是本地化测试?
本地化测试的对象是软件的本地化版本。本地化测试的目的是测试特定目标区域设置的软件本地化质量。本地化测试的环境是在本地化的操作系统上安装本地化的软件。从测试方法上可以分为基本功能测试,安装/卸载测试,当地区域的软硬件兼容性测试。测试的内容主要包括软件本地化后的界面布局和软件翻译的语言质量,包含软件、文档和联机帮助等部分。
094-什么是用户测试?
用户测试又称“Beta测试”,使用户在真实的应用环境,通过运行和实用软件,检测与核查软件是否符合自己预期的要求。
095-什么是效率测试?
答案:在测试或运行期间具有测试软件的计算机系统的时间消耗及资源利用特性。
096-什么是失败测试?
纯粹为了破坏软件而设计和执行的测试案例,被称为失败测试
097-什么是测试用例?
①测试用例是测试时执行的最小实体,是为特定目的而设计的一组测试输入、执行条件和预期结果。
②设计测试用例,其目的是确定应用程序的某个特性是否正常工作,并且达到程序设计的结果。
098-什么样的测试用例是质量好的测试用例?
1、好的测试用例应该是容易发现软件的错误(或者是能够发现以往还没有发现过的软件错误); 2、好的测试用例要有重复性; 3、好的测试用例必须清晰地定义一个或者多个期望的结果以及测试通过和失败的标准; 4、好的测试用例是没有冗余; 5、好的测试用例能覆盖更多的测试需求
099-什么是增量式集成测试?
逐次将未曾集成测试的模块和已经集成测试的模块(或子系统)结合成程序包,再将这些模块集成为较大系统,在集成的过程中边连接边测试,以发现连接过程中产生的问题。
100-什么是性能测试?
评价一个产品或组件与性能需求是否符合的测试。包括负载测试、强度测试、数据库容量测试、基准测试等类型。
101-怎么做好文档测试
仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。 检查文档的编写是否满足文档编写的目的 内容是否齐全,正确、内容是否完善、标记是否正确
102-什么是同层协议?
在每一个功能层次中,通信双方共同尊守该层次的约定和规程。
103-什么是负载测试?
通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
104-软件测试分哪些阶段?各阶段的含义
大体上来说可分为单元测试、集成测试、系统测试、验收测试;每个阶段又分为确定测试计划,测试设计,设计测试用例,实施测试,进行测试报告五个步骤:。
1)单元测试对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。
2)集成测试软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。
3)系统测试,系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。
4)验收测试,在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集.
5)回归测试,回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。
105-软件测试的工具你使用过哪些?
基于简历上写到的去回答:
自己会用的工具:Git、adb、Jmeter、postman/soapui、fiddler、xshell/xftp、navicat、pycharm、jenkins等。
Git:版本管理工具
jmeter简单压力测试、接口测试;
postman/soapui接口测试;
fiddler抓包工具;
xshell/xftp:连接linux系统工具
navicat:连接数据库操作数据库工具
pycharm:写python代码编辑器
jenkins:持续集成平台
106-什么是回归测试?回归测试的目的是什么?
定义:是指在修改了源代码后,用原有的测试用例进行重新进行测试以确认修改没有引入新的错误或导致 其他代码产生错误目的:所做的修改达到了预定的目的,如错误得到了改正,新功能得到了实现,能够适应新的运行环境等,不影响软件原有功能的正确性。
107-什么是第三方测试?
答案:
第三方测试有别于开发人员或用户进行的测试,其目的是为了保证测试工作的客观性。从国外的经验来看,测试逐渐由专业的第三方承担。同时第三方测试还可适当兼顾初级监理的功能,其自身具有明显的工程特性,为发展软件工程监理制奠定坚实的基础。
108-怎么样做好文档测试?
文档的测试主要采用静态测试即走查的方法,可以依据的是同行评审,列出一个检查表,然后大家一起坐下来对着被测试的文档进行阅读排错。
通常文档都很长,而一般的建议是一次评审时间不超过两个小时,因此可以对被测试文档执行测试时,列个计划,将总的文档分解,按照计划多次对被测试的文档进行走查。
109-怎么处理无效缺陷?
无效bug一般是开发关闭成无效bug,测试需要先进行确认:
1、确认是不是因为自己的操作或者网络问题引起的,那么是就确实不是bug,可以及时更新并关闭这个bug;
2、如果不是误操作引起的,那有可能是开发和测试之间对需求的理解不一致引起的;如果是从需求和用户场景出发,罗列证据说服开发,进行沟通;
3、如果没有办法说服开发,就可以找产品或者项目经理确认,最终以他们的结论为准,并在bug做好备注记录。
110-软件测试策略包含哪些特征
软件测试策略包含的特征:
(1)测试从模块层开始,然后扩大延伸到整个基于计算机的系统集合中。
(2)不同的测试技术适用于不同的时间点。
(3)测试是由软件的开发人员和(对于大型系统而言)独立的测试组来管理的。
(4)测试和调试是不同的活动,但是调试必须能够适应任何的测试策略。
111-什么是白盒测试和灰盒测试?
白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。
灰盒测试介于白盒测试和黑盒测试之间,既需要关注输入和输出,同时又要关注程序内部运行逻辑。
112-什么是功能性测试?
答案:
功能性测试应该从适合性、准确性、互操作性、安全保密性、功能的依从性等方面进行考查。
113-软件测试的过程有哪些?
测试计划、测试设计、测试执行、测试总结。
114-什么是测试计划?
答案:描述了要进行的测试活动的范围、方法、资源和进度的文档。它确定测试项、被测特性、测试任务、谁执行任务、各种可能的风险。
115-什么是大数据量测试?
大数量测试,其实就是用大批量数据来进行测试,我们需要用一定的脚本代码或者是工具,帮我们生成大量可用的测试数据。比如说:编写sql脚本(存储过程)在数据库端直接生成、编写程序代码生成(实际上也是要写sql)、使用批量数据生成工具(DataFactory、PL/SQL Developer、TOAD等都可以)、使用工具录制业务参数化之后长时间运行来生成。举个例子:你需要测试一个注册功能,需要提供手机号码以及注册名以及密码,那么你如果要做大数据量测试,要提前准备好很多有效的手机号以及注册名、密码,最少是百万级数据。这个我们柠檬班有专门讲百万测试数据的公开课,欢迎关注!专门教大家如何去准备大批量的测试数据。 疲劳强度测试隶属于压力测试范畴,指的的是服务器在长时间下持续接受大批量的用户请求操作。这个设计到软件和服务器的稳定性
116-软件测试的目的是什么?
1、提升软件质量
2、保证产品安全
3、降低开发成本
4、降低商业风险
5、提高用户体验
117-什么是测试脚本?
答案:一般指的是一个特定测试的一系列指令,这些指令可以被自动化测试工具执行。为了提高测试脚本的可维护性和可复用性,必须在执行测试脚本之前对它们进行构建。或许会发现这样的情况,即有的操作将出现在几个测试过程中。因此,应有目的地确定这些操作的目标,这样就可以复用它们的实施。 测试脚本是自动执行测试过程(或部分测试过程)的计算机可读指令。测试脚本可以被创建(记录)或使用测试自动化工具自动生成,或用编程语言编程来完成,也可综合前三种方法来完成。
118-什么是冒烟测试?
冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员
119-什么是测试覆盖?
指测试系统覆盖被测试系统的程度,一项给定测试或一组测试对某个给定系统或构件的所有指定测试用例进行处理所达到的程度。
120-什么是健全测试?
软件主要功能成分的简单测试以保证它是否能进行基本的测试。一般是指一个初始化的测试工作,以决定一个新的软件版本是否足以执行下一步的测试用例.例如:如果一个新版软件每1分钟与系统冲突,使系统陷于崩溃,说明该软件不够"健全",目前不具备进行下一步测试的条件.
121-软件测试的方法有哪些?
软件的测试方法有3种,即用试题测试、用新旧两个系统作平行处理测试和软件测试自动化工具测试。
122-什么是边界测试?
是指使用预定定义的边界值,如最大值、最小值、空值或其他特殊值作为输入数据来运行测试。
123-怎么衡量研发质量
1、研发的bug数量,影响范围,严重程度 2、功能设计的可扩展性
124-软件测试的过程分别有哪些?
测试计划、测试设计、测试执行、测试总结
125-什么是软件质量保证?
软件质量保证就是通过确保软件过程的质量,来保证软件产品的质量。
软件质量保证人员和开发人员之间具有管理上的严格的独立性,两个小组的管理员都不 能越权管理另一组,但都可以向更高层的管理者汇报软件开发中的问题
126-软件测试的方法都有哪些?
•从测试过程来分:静态分析法、动态测试法;
•从观察结构的透明性方式来分:白盒法、黑盒法、灰盒法;
•从获得测试数据形式上分:穷尽法;等价类划分法;边界值分析法;
•从逻辑分析上分:因果图法;错误推测法;
•从测试步骤上分:单元测试、集成测试、确认测试、系统测试等;
•从考察形式上分:功能测试,逻辑测试;
127-什么是软件测试目标?
是以最少的时间与人力找出软件中存在的各种错误和缺陷。
128-什么是灰盒测试?
是一种介于黑盒测试和白盒测试之间的测试策略它基于程序运行的外部表现,同时又结合程序内部逻辑结构来来设计测试用例。
129-什么是强度测试?
答案:强度测试的目的是要检测非正常的情形,测试是想要破坏程序。强度测试需要在反常规数据量、频率或资源的方式下运行系统,以检验系统能力的最高实际限度。
130-什么是兼容性测试?
指对所设计程序与硬件、软件之间的兼容性的测试。WEB端主要考虑的是不同内核浏览器的兼容性,移动端主要是考虑不同手机系统、屏幕分辨率两面的兼容性。
131-什么是兼容性测试?
1、兼容性测试是指要测试的软件在不同的硬件平台上、不同的应用软件之间、不同的操作系统中、不同的网络环境中是否可以正常的运行、有无异常的测试过程。 2、侧重哪些方面? (1)向前兼容和向后兼容。向前兼容是指可以使用软件的未来版本,向后兼容是指可以使用软件的以前版本。 (2)不同版本之间的兼容。实现测试平台和应用软件多个版本之间能够正常工作。 (3)操作系统兼容性 有些软件在不同的操作系统平台上重新编译即可运行,有些软件需要重新开发或是改动较大。 (4)异构数据库兼容性 这类软件要考虑其对不同数据库平台的支持能力,软件是否可直接挂接,或需提供相关的转换工具。 (5)新旧数据转换 软件是否提供新旧数据转换的功能。 (6)异种数据兼容性 可否完全正确地读出这些格式的文件 (7)硬件兼容性 硬件兼容性考察软件对运行的硬件环境有无特殊说明。
132-为什么说软件测试必须有预期结果呢?
没有预期结果的测试是不可理喻的。软件缺陷是经过对比而得出来的。这正如没有标准无法进行度量一样。如果我们事先不知道或是无法肯定预期的结果,我们必然无法了解测试正确性。这很容易然人感觉如盲人摸象一般,不少测试人员常常凭借自身的感觉去评判软件缺陷的发生,其结果往往是把似是而非的东西作为正确的结果来判断,因此常常出现误测的现象。
133-怎么编写测试用例?
1.模拟正常的使用过程
2.分支覆盖,路径覆盖
3.真实数据,边界数据
4.语句数据简单,容易理解
5.避免依赖
6.记录日志
134-什么是软件自动化测试?
软件自动化测试是一项让计算机代替测试人员进行软件测试的技术是指编写软件去测试其它软件也可以被理解为使用一个商业通用测试自动化工具编写一个软件来测试其它软件或者编写驱动被测试应用程序的的测试脚本以执行键盘鼠标动作和后台进程并验证应用程序响应和行为
主要的原理和方法:直接对代码进行静态和动态分析,测试过程的捕获和回放,测试脚本技术和虚拟用户技术
135-什么是嵌入式测试?
嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造。例如我们监控录像设备、机顶盒等都是嵌入式产品。 嵌入式测试就是对这类产品的测试,有点偏硬件,而非纯软件。
136-什么是确认测试?
确认测试又称有效性测试。
有效性测试是在模拟的环境下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。
任务是验证软件的功能和性能及其他特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定,它包含的信息就是软件确认测试的基础。
137-什么是软件质量?软件包是什么?
(1)概括地说,软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。更具体地说,软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。
(2)软件包,又称为项目包、程序包,war包,里面是代码程序
138-怎样定位bug?
1、软件未达到需求文档标准功能; 2、软件出现了需求文档指明不会出现的错误; 3、软件功能超出了需求文档指明范围; 4、软件未达到需求文档没有指出但应达到的目标; 5、测试人员认为软件难以理解、不易使用、运行速度缓慢,或最终用户认为不好。(站在使用者的角度,功能是否易操作、易理解) 6、对于需求文档里没有的需要根据自己的测试经验来判断。或者寻找相应的竞品来对比。
139-什么是健壮等价类测试?
主要的出发点是考虑了无效等价类。对有效输入,测试用例从每个有效等价类中取一个值;对无效输入,一个测试用例有一个无效值,其他值均取有效值。
140-怎么保证测试用例的质量
1、用例之前先对需求文档最详细的理解,不清楚的需求及时找产品进行沟通确认
2、写用例时通过等价类、边界值、场景法、错误推测法,尽可能全面的覆盖需求点,不要遗漏需求点
3、写完用例后会在组内和项目组开展用例评审,结合大家的力量来完善用例
4、在执行完成后,会对用例进行维护,将冗余不适用的用例删除,对于没有覆盖的用例加上
141-软件测试分哪两种方法、分别适合什么情况?
分为黑盒测试和白盒测试两种。
黑盒测试被称为功能测试或数据驱动测试。在测试时,把被测程序视为一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下进行。采用黑盒测试的目的主要是在已知软件产品所应具有的功能的基础上进行。
白盒测试也称结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。
142-什么是自底向上的集成方式?
根据软件的模块结构图,按控制层次从低到高的顺序对模块进行集成,也就是从最底层模块向上逐步集成,并字集成过程中进行测试,直至组装成符合要求的最终软件系统
143-什么是驱动模块?
答案:驱动模块是在进行单元测试时所设置的一种辅助测试模块,它用来模拟被测试模块的上一级模块,相当于被测模块的主程序。驱动模块在单元测试中接收数据,把相关的数据传送给被测试的模块,启动被测模块,并打印出相应的结果。
144-软件测试的对象是什么?
软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是软件测试的对象
