软件测试的原则是什么?

2021-01-12 09:45发布

4条回答
用户555666
2楼 · 2021-01-12 10:50

所有的测试都应追溯到用户需求

尽早地和不断地进行软件测试”作为软件测试者座右铭

完全测试是不可能的,测试需要终止

按优先级测试

注意测试中的群集现象,重点部分重点测试。

尽量避免测试的随意性,严格按照测试Plan

兼顾合理的输入和不合理的输入数据

应长期保留测试用例及测试报告,直至系统废弃


studentaaa
3楼 · 2021-01-12 17:28

软件测试基本原则“尽早地和不断地测试”,越早进行测试,缺陷的修复成本就会越低;


程序员应避免检查自己的程序,由第三方进行测试更客观有效;


穷举测试是不可能的;


充分注意测试中的群集现象,一段程序中一发现的错误数越多,其中存在的错误概率越大,因此对发现错误较多的程序段,应进行更深入的测试;


设计测试用例时应包括合理输入和不合理输入,以及各种边界条件、特殊情况下要制造极端状态和意外状态;


注意回归测试的关联性,往往修改一个错误会引起更多错误;


测试应从“小规模”开始,逐步转向“大规模”;


测试用例式设计出来,不是写出来的,应根据测试的目的,采用相应的方法设计测试用例,从而提高测试的效率,更多的发现错误,提高程序的可靠性;


重视并妥善保存一切测试过程文档(测试计划,测试用例,测试报告等);

对测试错误结果一定要有一个确认的过程

测试证明软件存在缺陷

测试的本质是证明软件存在缺陷,而不是软件没有缺陷。

人无完人,只要是人写的代码,肯定不能保证百分之百正确,除非特别简单的功能。即便如此,也会存在各种环境问题,网络问题等,更何况现在软件原来越复杂,缺陷更是难以避免。

不可能执行穷尽测试

举个很简单的例子来说明,比如测试一个计算器功能里的加法,你可以尝试1+1,1+2 ,1+3 ...你能把所有数组相加的情况都测试吗,所以穷尽测试时不可能的,更别提是实际情况中,项目进度还有明确时间节点和截止日期。

测试应尽早启动,尽早介入

这条很重要,但是对测试的要求也会更高。


征戰撩四汸
5楼 · 2022-02-08 17:59

1、测试尽早介入

从分析不同的测试模型来看,测试介入的越早越好。

为什么测试要尽早介入呢?

这要先弄清楚软件测试的目的是什么?简单的来说就是保证软件质量,降低成本。

测试人员一般都在需求阶段就开始介入,这时测试的对象就是需求。

软件测试的目的是保证质量,预防风险,降低成本,其中成本包括缺陷的修复成本,缺陷有一个特点就是越早发现的缺陷,修复成本越低,这也是为什么测试要尽早介入,就是为了能够在需求阶段就能找出需求与设计方面的缺陷,降低后期的修复成本。

2、穷尽测试是不可能

现在的软件规模越来越大,复杂度越来越高,想做到完全性的测试就完全不可能的。就是软件的规模和复杂度有所减少,但要做完全也测试也是不能做到。

那在测试阶段,软件测试人员可以根据风险和优先级来进行集中测试和高强度测试,从而保证软件的质量。

3、测试显示软件存在缺陷

软件测试只能证实软件中存在缺陷,但是并不能证明软件中不存在缺陷,只能降低软件存在缺陷的可能性。

如果说公司的决策层想通过软件测试来证明软件中不存在缺陷,那是行不通的。测试人员只能证明软件中存在缺陷,但并不能证明软件中没有缺陷,软件完美。

软件测试人员可以通过软件测试活动,找出软件中大部分缺陷,避免软件在上线后给用户带损失,给公司带来风险。

4、缺陷集群性(2/8原则)

世界上万事万物都符合二八原则,比如著名的财富理论:世界20%的人掌握了世界上80%的财富。

还有成长理论:判断一个人是否成功,主要看他20%的业余时间做什么事情。

软件测试也符合二八原则:

1.功能:一个软件20%为主要功能,会花费软件测试人员80%的时间。

2.缺陷:一个功能模块发现的缺陷越高,那存在的未被发现的缺陷也越高,故,发现的缺陷与未发现的缺陷成正比。

5、杀虫剂悖论

这是因为测试人员对缺陷产生了免疫能力,就算是一个bug放在测试人员面前,测试人员也不一定能发现。这就像害虫对杀虫剂产生了免疫,杀不死一样的。

那应该怎么解决这个问题呢?我相信这是所有测试人员都关注的一个问题。

解决方案有:

1. 内部测试人员交叉测试,这也是我经常提到的一个方法。

2.测试用例常用常更新,在测试过程中根据软件的特性修改测试用例。

3.不变地变化测试方法,不要使用单一的测试方法去测试软件,根据软件内容使用不同的测试手段、测试方法。

根据上面三种方法交叉执行,从而发现更多的缺陷,保证软件质量,降低风险。

6、测试活动依赖于测试内容

在面试过程中有时总会遇到面试官部“做软件测试什么最重要”,想来做过测试的都知道“需求”最重要,对测试人员来说是需求,对公司来说就是业务。

根据业务的不同,软件测试内部也分不同的行业,比如游戏行业,金融行业,电商行业等等。

不同的行业,测试活动的开展都有所有不同,比如工具的选择,测试流程都不尽相同,所以软件测试活动的开展依赖于所测试的内容。

7、无错就是好是谬论

无错,对软件测试人员来说可望不可即的。

那真的无错的软件就是好的软件么?

假设一个软件完全没有bug,完美无缺,但是不符合用户的需求,那能说这个软件是OK的么?

判断一个软件的好与不好,主要依据的还是用户需求,是否实现用户所期盼的结果,并不是仅仅依赖于软件中是否存在缺陷。



相关问题推荐

  • 回答 157

    虽然从事开发行业的女生越来越多,但女生的比例还是远比不上男生。软件测试的男女生比例则基本相当,软件测试要求细心、耐心,大部分女生也是比较适合学的。而且软件测试课程分为手工测试和自动化测试,手工测试分为功能测试、性能测试、接口测试。自动化测试...

  • 回答 121

    需要。很多人当初抱着测试不需要懂代码,才选择了这个行业,这个就要看对自己的职业定位了,是止步于月薪过万就可以了,还是往20k、30k去突破,如果这样的话,是肯定要会接口、会自动化,就必然要涉及到代码。如果真的看不懂代码,实际的测试后期的工作会出现...

  • 回答 91

    在我看来游戏开发挺难的,尤其像手游一类的还有网游,里面有很多的程序代码而且伤神又费力,不过也有女生在这方面做的很好的,如果你感兴趣,非常想学,可以试试

  • 回答 80

    软件测试专业现在很火热,很缺少人才,25岁学软件测试能学会,就业薪资也高,工作也相对轻松

  • 回答 11
    已采纳

    测试类型有:功能测试,性能测试,界面测试。功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用...

  • 回答 15
    已采纳

    这个其实和接口测试的场景密不可分的,比如说:外部接口测试:    必须先接口测试通过了,才能执行功能测试子系统或者各个模块之间的联调测试:    必须各子系统后台代码完成,并提供接口才可以完成测试,一般来说都要求各子系统功能测试通过后再进行...

  • 回答 6
    已采纳

    这个是会因为公司的架构不同而不同的,并不是固定的,但是一般是会有专门的测试部门,或者叫质量保证部,也有可能是叫别的名字。

  • 回答 43
    已采纳

    移动端测试,包括App兼容性测dao试,7*24小时稳定性测试,功耗性能测试,UI测试,交互测试等,课程主要学习的内容有:1、功能测试主要包括计算机基础、软件测试核心理论、Linux、数据库,学习目标是掌握软件测试核心理论,结合Linux、数据库等可实现移动端、w...

  • 回答 1

    标题  1. 首先要做一个标题党(此标题党非彼标题党)。标题一定要清晰简洁易理解,不应该臃长  2. 尽量前缀要规范,例如模板: [Product][Version]_[Feature]_[Title],这样描述会很清晰,也方便查找  3. 缺陷的标题一定要描述在什么情况下发生了什么问...

  • 回答 1

    1、 缺陷报告可以记录缺陷2、可以对缺陷进行跟踪管理3、可以对缺陷报告进行分类 总结 统计

  • 回答 1

    1、缺陷编号(Defect ID),提交BUG的顺序。2、缺陷标题(summary),简明扼要的说明一下这个BUG。3、缺陷的发现者(DetectedBy) ,一般是自己。4、发现缺陷的日期(Detected on date),一般是当天。5、缺陷所属的模块(subject), 在测试哪个模块的时候发现的BUG...

  • 回答 1

    缺陷标题好的缺陷标题需要让相关人员一目了然,一般建议的格式是条件+失败。缺陷类型缺陷类型也是根据具体的项目而定的。但一般情况下分为功能、界面、建议。重现步骤重现步骤的编写规则可以参考测试用例中的操作步骤 ,一定要足够详细、说明清楚问题的操作顺...

  • 回答 1

    工具:NoSQLUnitJsTestDriverQTRunnerVenusFluintBuster.JSSQLUnitECUTQTestlibUnitilsgreatestDbUnitAbbotGoogleTest框架:JUnitMoqJSCaptureMockCUnitPyUnitCppUTestCppUnitzCUTcipra

  • 回答 1

    JunitTestNGGoogleTestpytestunittestJmockitJaCoCogcov、lcov、gcovrCoverage.pyEvoSuiteDiffblue Cover

  • 回答 1

      React Hooks测试库( Testing Library)是一个简单而完整的React Hooks测试工具。  React Hooks测试库让用户可以为React钩子创建简单的测试工具,自定义钩子的输入和检索输出,以处理在功能组件体内运行的情况。  使用React Hooks,用户不必为了测试而去担...

  • 回答 1

    1、单元测试注重代码逻辑,接口测试注重业务逻辑;2、单元测试的粒度最小,是测试最小独立的单元模块(不依赖其他模块);接口测试不是,会覆盖很多;3、单元测试是白盒测试,接口测试是黑盒测试;4、单元测试关注的是代码的实现和逻辑,测试范围较小,保证实...

没有解决我的问题,去提问