软件测试的目标和准则是什么?有哪些测试方法?测试步骤有哪些

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-26
软件测试的进入准则是什么

可以到岭侧轨迹官网查询相关的解答。还可以顺便下载免费视频,更系统深入的自学软件测试。希望我的回答对您有帮助

 1.基于“测试阶段”的原则:

  每个软件的测试一般都要经过单元测试、集成测试、系统测试这几个阶段,我们可以分别对单元测试、集成测试和系统测试制定详细的测试结束点。每个测试阶段符合结束标准后,再进行后面一个阶段的测试。举个例子来说:单元测试,我们要求测试结束点必须满足“核心代码100%经过Code Review”、“功能覆盖率达到100%”、“代码行覆盖率不低于80%”、“不存在A、B类缺陷”、“所有发现缺陷至少60%都纳入缺陷追踪系统且各级缺陷修复率达到标准”等等标准。集成测试和系统测试的结束点都制定相关的结束标准,当然也是如此。

  2.基于“测试用例”的原则:

  测试设计人员设计测试用例,并请项目组成员参与评审,测试用例一旦评审通过,后面测试时,就可以作为测试结束的一个参考标准。比如说在测试过程中,如果发现测试用例通过率太低,可以拒绝继续测试,待开发人员修复后再继续。在功能测试用例通过率达到100%,非功能性测试用例达到95%以上,允许正常结束测试。但是使用该原则作为测试结束点时,把握好测试用例的质量,非常关键。

  3.基于“缺陷收敛趋势”的原则:

  软件测试的生命周期中随着测试时间的推移,测试发现的缺陷图线,首先成逐渐上升趋势,然后测试到一定阶段,缺陷又成下降趋势,直到发现的缺陷几乎为零或者很难发现缺陷为止。我们可以通过缺陷的趋势图线的走向,来定测试是否可以结束,这也是一个判定标准。

  4.基于“缺陷修复率”的原则:

  软件缺陷在测试生命周期中我们分成几个严重等级,它们分别是:严重错误、主要错误、次要错误、一般错误、较小错误和测试建议6种。那我们在确定测试结束点时,严重错误和主要错误的缺陷修复率必须达到100%,不允许存在功能性的错误;次要错误和一般错误的缺陷修复率必须达到85%以上,允许存在少量功能缺陷,后面版本解决;对于较小错误的缺陷修复率最好达到60%~70%以上。对于测试建议的问题,可以暂时不用修改。

5.基于“验收测试”的原则:

  很多公司都是做项目软件,如果这种要确定测试结束点,最好测试到一定阶段,达到或接近测试部门指定的标准后,就递交用户做验收测试。如果通过用户的测试验收,就可以立即终止测试部门的测试;如果客户验收测试时,发现了部分缺陷,就可以针对性的修改缺陷后,验证通过后递交客户,相应测试也可以结束。

  6.基于“覆盖率”的原则:

  对于测试“覆盖率”的原则,个人觉的只要测试用例的“覆盖率”覆盖了客户提出全部的软件需求,包括行业隐性需求、功能需求和性能需求等等,只要测试用例执行的覆盖率达到100%,基本上测试就可以结束。如“单元测试中语句覆盖率最低不能小于80%”、“测试用例执行覆盖率应达到100%”和“测试需求覆盖率应达到100%”都可以作为结束确定点。如果你不放心,非得要看看测试用例的执行效果,检查是否有用例被漏执行的情况,可以对常用的功能进行“抽样测试 ”和“随机测试”。对于覆盖率在单元测试、集成测试和系统测试,每个阶段都不能忽略。

  7.基于“项目计划”的原则:

  大多数情况下,每个项目从开始就要编写开发和测试的Schedule,相应的在测试计划中也会对应每个里程碑,对测试进度和测试结束点做一个限制,一般来说都要和项目组成员(开发,管理,测试,市场,销售人员)达成共识,团队集体同意后制定一个标准结束点。如果项目的某个环节延迟了,测试时间就相应缩短。大多数情况下是所有规定的测试内容和回归测试都已经运行完成,就可以作为一个结束点。很多不规范的软件公司,都是把项目计划作为一个测试结束点,但是如果把它作为一个结束点,测试风险较大,软件质量很难得到保证。

  8.基于“缺陷度量”的原则:

  这个原则也许大家用的不是很多,了解比较少。我们可以对已经发现的缺陷,运用常用的缺陷分析技术和缺陷分析工具,用图表统计出来,方便查阅,分时间段对缺陷进行度量。我记得以前zhuzx在这个论坛上提出过缺陷分析技术这个问题,我不再重复讲述。我们也可以把 “测试期缺陷密度”和 “运行期缺陷密度”作为一个结束点。当然,最合适的测试结束的准则应该是“缺陷数控制在一个可以接受的范围内”。比如说:一万行代码最多允许存在多少个什么严重等级的错误,这样比较好量化,比较好实施,成为测试缺陷度量的主流。

  9.基于“质量成本”的原则:

  一个软件往往要从“质量/成本/进度”三方面取得平衡后就停止。至于这三方面哪一项占主要地位,就要看是什么软件了。比如说是:人命关天的航天航空软件, 那还是质量重要些,就算多花点钱、推迟一下进度,也要测试能保证较高质量以后才能终止测试,发布版本。如果是一般的常用软件,由于利益和市场的原因,哪怕有bug,也必须得先推出产品,没办法呀。一般来说,最主要的参考依据是:“把找到缺陷耗费的代价和这个缺陷可能导致的损失做一个均衡”。具体操作的时候,可以根据公司实际情况来定义什么样的情况下算是“测试花费的代价最划算、最合理”,同时保证公司利益最大化。如果找到bug的成本比,用户发现bug 的成本还高,也可以终止测试。

10.基于“测试行业经验”的原则:

  很多情况下,测试行业的一些经验,也可以为我们的测试提供借鉴。比如说测试人员对行业业务的熟悉程度,测试人员的工作能力,测试的工作效率等等都会影响到整个测试计划的执行。如果一个测试团队中,每个人都没有项目行业经验数据积累,拿到一个新的项目,自然是一头雾水,不知道从何处开始,测试质量自然不会很高。因此通过测试者的经验,对确认测试执行和结束点也会起到关键性的作用。

软件测试的目的;在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估。

准则:对计算机软件进行测试前,首先需遵循软件测试原则,即不完全原则的遵守。不完全原则即为若测试不完全、测试过程中涉及免疫性原则的部分较多,可对软件测试起到一定帮助。

因软件测试因此类因素具有一定程度的免疫性,测试人员能够完成的测试内容与其免疫性成正比,若想使软件测试更为流畅、测试效果更为有效,首先需遵循此类原则,将此类原则贯穿整个开发流程,不断进行测试,而并非一次性全程测试。

测试方法:

1、静态测试方法

软件代码的静态分析测验,此类过程中应用数据较少,主要过程为通过软件的静态性测试(即人工推断或计算机辅助测试)测试程序中运算方式、算法的正确性,进而完成测试过程,此类测试的优点在于能够消耗较短时间、较少资源完成对软件、软件代码的测试,能够较为明显地发现此类代码中出现的错误。

2、动态测试

计算机动态测试的主要目的为检测软件运行中出现的问题,较静态测试方式相比,其被称为动态的原因即为其测试方式主要依赖程序的运用,主要为检测软件中动态行为是否缺失、软件运行效果是否良好。

3、黑盒测试

通过数据输入观察数据输出,检查软件内部功能是否正常。测试展开时,数据输入软件中,等待数据输出。数据输出时若与预计数据一致,则证明该软件通过测试,若数据与预计数据有出入,即便出入较小亦证明软件程序内部出现问题,需尽快解决。

4、白盒测试

白盒测试相对于黑盒测试而言具有一定透明性,原理为根据软件内部应用、源代码等对产品内部工作过程进行调试。测试过程中常将其与软件内部结构协同展开分析,最大优点即为其能够有效解决软件内部应用程序出现的问题,测试过程中常将其与黑盒测试方式结合,当测试软件功能较多时,白盒测试法亦可对此类情况展开有效调试。



扩展资料

软件测试工具

开源测试管理工具:Bugfree、Bugzilla、TestLink、mantis zentaopms。

开源功能自动化测试工具:Watir、Selenium [1]  、MaxQ、WebInject。

开源性能自动化测试工具:Jmeter、OpenSTA、DBMonster、TPTEST、Web Application Load Simulator。

其他测试工具与框架:Rational Functional Tester、Borland Silk系列工具、WinRunner、Robot等。

禅道测试管理工具:功能比较全面的测试管理工具,功能涵盖软件研发的全部生命周期,为软件测试和产品研发提供一体化的解决方案。是一款优秀的国产开源测试管理工具。

Quality Center:基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。

QuickTest Professional:用于创建功能和回归测试。

LoadRunner:预测系统行为和性能的负载测试工具。

国内免费软件测试工具有:AutoRunner和TestCenter。

参考资料来源:百度百科-软件测试技术

参考资料来源:百度百科-软件测试



软件测试就是利用测试工具、方案、流程对软件进行功能和性能测试,测试的目的就是发现问题、提出问题、更踪问题。但是测试的目的不仅仅是发现问题更多的是需要:

1. 证明我们做的软件是符合大众、客户要求的。

2. 测试和设计息息相关,跟着设计做测试,测试也需要软件是否和设计的想法一致。

3.保证软件能够正常无误的运行。

测试方法总结

对于软件测试的流程大概总结了几个基本步骤,测试的文档最好是尽量多,多加一些自己的特色和想法,这样相比于其他文章自己的也更有卖点和优势。

1. 需求:做测试是要跟着测试的文案方向走,这是最重要的,根据需求做测试。

2. 测试的安排计划:测试的时间、地点、资源、人员等竟可能的写全面。

3. 测试用例:测试可以分布的来测试这样更有条理性,主要可以分为单元测试、集成测试、系统测试、验收测试。

4. 测试问题规划:把问题、bug等问题出来,给相关的人员提出问题。

5. 跟进问题:实时更新问题是否解决。

6. 找不同的人测试软件,并把他们的的体验做成报告,充分体现软件的性能、特点、市场、问题等方面的信息。



具体地讲,测试一般要达到下列目标:
1、确保产品完成了它所承诺或公布的功能,并且所有用户可以访问到的功能都有明确的书面说明------在某种意义上与ISO9001是同一种思想。
产品缺少明确的书面文档,是厂商一种短期行为的表现,也是一种不负责任的表现。所谓短期行为,是指缺少明确的书面文档既不利于产品最后的顺利交付,容易与用户发生矛盾,影响厂商的声誉和将来与用户的合作关系;同时也不利于产品的后期维护,也使厂商支出超额的用户培训和技术支持费用。从长期利益看,这是很不划算的。领测认为接触过的软件产品,很少有向方正这样大大的产品、薄薄的文档。
当然,书面文档的编写和维护工作对于使用快速原型法(RAD)开发的项目是最为重要的、最为困难,也是最容易被忽略的。
最后,书面文档的不健全甚至不正确,也是测试工作中遇到的最大和最头痛的问题,它的直接后果是测试效率低下、测试目标不明确、测试范围不充分,从而导致最终测试的作用不能充分发挥、测试效果不理想。
2、 确保产品满足性能和效率的要求
使用起来系统运行效率低(性能低)、或用户界面不友好、用户操作不方便(效率低)的产品不能说是一个有竞争力的产品。
用户最关心的不是你的技术有多先进、功能有多强大,而是他能从这些技术、这些功能中得到多少好处。也就是说,用户关心的是他能从中取出多少,而不是你已经放进去多少。
3、 确保产品是健壮的和适应用户环境的
健壮性即稳定性,是产品质量的基本要求,尤其对于一个用于事务关键或时间关键的工作环境中。
另外就是不能假设用户的环境(某些项目可能除外),如:报业用户许多配置是比较低的,而且是和某些第三方产品同时使用的。

测试的原则---Good Enough
对于相对复杂的产品或系统来说,zero-bug是一种理想,good-enough是我们的原则。
Good-enough原则就是一种权衡投入/产出比的原则:不充分的测试是不负责任的;过分的测试是一种资源的浪费,同样也是一种不负责任的表现。我们的操作困难在于:如何界定什么样的测试是不充分的, 什么样的测试是过分的。目前状况唯一可用的答案是:制定最低测试通过标准和测试内容,然后具体问题具体分析。最明显的例子就是FIT3.0中文报版的产品测试。

测试的规律----木桶原理和80-20原则
1、木桶原理。
在软件产品生产方面就是全面质量管理(TQM)的概念。产品质量的关键因素是分析、设计和实现,测试应该是融于其中的补充检查手段,其他管理、支持、甚至文化因素也会影响最终产品的质量。应该说,测试是提高产品质量的必要条件,也是提高产品质量最直接、最快捷的手段,但决不是一种根本手段。反过来说,如果将提高产品质量的砝码全部押在测试上,那将是一个恐怖而漫长的灾难。
2、 Bug的80-20原则。
一般情况下,在分析、设计、实现阶段的复审和测试工作能够发现和避免80%的Bug,而系统测试又能找出其余Bug中的80%,最后的5%的Bug可能只有在用户的大范围、长时间使用后才会曝露出来。因为测试只能够保证尽可能多地发现错误,无法保证能够发现所有的错误。

软件测试的方法:
1、按是否查看程序内部结构分为:
(1)黑盒测试(black-box testing):只关心输入和输出的结果
(2)白盒测试(white-box testing):去研究里面的源代码和程序结构
2、按是否运行程序分为:
(1)静态测试(static testing):是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档可能存在的错误的过程。
静态测试包括:
对于代码测试,主要是测试代码是否符合相应的标准和规范。
对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。
对于文档测试,主要测试用户手册和需求说明是否真正符合用户的实际需求。
(5)动态测试(dynamic testing),是指实际运行被测程序,输入相应的测试数据,检查输出结果和预期结果是否相符的过程
3、按阶段划分:
(1)单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。
桩模块(stud)是指模拟被测模块所调用的模块,驱动模块(driver)是指模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块并输出结果。
(2)集成测试(integration testing),是单元测试的下一阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部门。
集成测试就是用来检查各个单元模块结合到一起能否协同配合,正常运行。
(3)系统测试(system testing),指的是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
系统测试的主要依据是《系统需求规格说明书》文档。
(4)验收测试(acceptance testing),指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。
验收测试又分为a测试和beta测试,其中a测试指的是由用户、 测试人员、开发人员等共同参与的内部测试,而beta测试指的是内测后的公测,即完全交给最终用户测试。
4、黑盒测试分为功能测试和性能测试:
1)功能测试(function testing),是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。
包括逻辑功能测试(logic function testing)
界面测试(UI testing)UI=User Interface
易用性测试(usability testing):是指从软件使用的合理性和方便性等角度对软件系统进行检查,来发现软件中不方便用户使用的地方。
兼容性测试(compatibility testing):包括硬件兼容性测试和软件兼容性测试
2)性能测试(performance testing)
软件的性能主要有时间性能和空间性能两种
时间性能:主要指软件的一个具体事务的响应时间(respond time)。
空间性能:主要指软件运行时所消耗的系统资源。
软件性能测试分为:
一般性能测试:指的是让被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试。
稳定性测试也叫可靠性测试(reliability testing):是指连续运行被测系统检查系统运行时的稳定程度。
负载测试(load testing):是指让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。
压力测试(stress testing):是指持续不断的给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。(Validate the system or software can allowed the biggest stress.)
5、其他测试类型:
回归测试(regression testing)是指对软件的新的版本测试时,重复执行上一个版本测试时的用例。(When a new build or release is deployed, repeat all the test cases which has executed in the last build or release.)
冒烟测试(smoke testing),是指在对一个新版本进行大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。(validate the major function is deployed or not in software of system when a new build or release is implement.)
随机测试(random testing),是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。(means or all the test data is random, to validate the some edge bugs.)

软件测试包括的步骤:
1.制定测试计划;
2.设计测试用例、
3.实施测试(首先要搭建测试用环境)、
4.管理测试时发现的BUG、
5.测试完后(测试完,并且发现的BUG修正完)
6.要做测试报告(这样,该测试过程就算结束了,每种类型(单元测试、集成测试、系统测试、验证测试)的测试都是如此);

软件测试产生发展已达 40 多年,经过长期地实践,总结归纳出了一些基本 的测试原理与测试特性准则,并被业界普遍接受和遵循,对测试的设计、执行和 管理均具有工程的指导意义。
原理 1:测试可以证明缺陷存在,但不能证明缺陷不存在
测试可以证明软件系统(产品)是失败的,即说明软件中有缺陷。但测试不 能证明软件中没有缺陷。适当的软件测试可以减少测试对象中的隐藏缺陷。即使 在测试中没有发现失效,也不能证明其没有缺陷。
原理 2:穷尽测试是不可能的
测试若考虑所有可能的输入值及其组合,并结合所有的前置条件进行穷尽测 试是不可能的。实际测试过程中,对软件测试基本上是抽样测试。因此,必须根 据风险和优先级,控制测试工作量。
原理 3:测试活动应尽早开始
在软件生命周期中,测试活动应尽早实施,,并聚焦于定义的目标上,这样 可以尽早的发现缺陷。
原理 4:缺陷集群性
在通常情况下,缺陷并不是平均而是集群分布的,大多数的缺陷只存在于测 试对象的极小部分中。因此,如在一个地方发现了较多缺陷,通常在附近会有更 多的缺陷,这就是所谓的缺陷集群性,也就经常所说的‘8/2 现象’,80%的缺 陷集中在 20%的程序模块中。因此,在测试中,应机动灵活地应用这个原理。
原理 5:杀虫剂悖论
若同样的测试用例被一再重复执行,则会减少测试的有效性。先前没有发现的缺陷反复使用同样的测试用例也不会被重新发现。因此,为了维护测试的有效 性,战胜这种“抗药性”,应对测试用例进行修正或更新。这样软件中未被测试 过的部分或先前没有被使用过的输入组合会被重新执行,从而发现更多的缺陷。
原理 6:测试依赖于测试内容
测试必须与应用系统的运行环境及使用中固有的风险相适应。因此,没有两个系统可以完全相同的方式进行测试。对于每个软件系统,测试出口准则等应依据其使用的环境分别量体定制。例如,对安全起关键作用的系统与一个电商应用系统所要求的测试是不尽相同的。
原理 7:没有失效就是有用的系统是一种谬论
测试找到了导致失效的 Bug、并修正了缺陷,并不能保证整个系统达到了用 户的预期要求和需要。因此说,没有发现失效就是有用的系统是一种谬论。

终目标是确保软件的功能符合用户的需求,把尽可能多的问题在发布或交付之前发现并改正。
确保软件完成了它所承诺或公布的功能
确保软件满足了性能的要求
确保软件是健壮的和适应用户环境的
为软件的质量评估提供依据
为软件质量改进和管理提供帮助
软件测试有以下目标:
发现缺陷
获取信心和提供信息
防止缺陷
软件测试方法是指测试软件的方法。随着软件测试技术的不断发展,测试方法也越来越多样化,针对性更强;选择合适的软件测试方法可以让我们事半功倍。
用户界面测试,英文是User interface testing。又称UI测试。用户界面,英文是User interface。是指软件中的可见外观及其底层与用户交互的部分(菜单、对话框、窗口和其它控件)。
如果想转行软件测试的话也可以来啄木鸟学院了解。

  • 软件测试是采用( )执行软件的活动。
    答:软件测试是伴随着软件的产生而产生的。早期的软件开发过程中软件规模都很小、复杂程度低,软件开发的过程混乱无序、相当随意,测试的含义比较狭窄,开发人员将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作。测试准则:一、测试应该尽早进行,最好在需求阶段就开始...
  • 软件确认测试的七大准则
    答:2. 确认状态顺序和状态变化( 功能模块图) 。3. 确认数据和控制流满足安全性、功能性和性能需求。4. 确认软件的功能性,硬件、软件和用户接口的一致性,性能准则,配置数据是否满足规定的配置管理规程,逻辑、计算和接口精度是否满足系统环境下的需求。5. 确认待测试软件版本,必须是通过模块测试和集成...
  • 软件测试
    答:2.测试信息流:软件配置,测试配置,测试工具2.规划阶段的测试:目标阐述(不太详细也不具体),需求分析,功能定义,规划阶段的测试3.设计阶段的测试:外部设计(用户界面),内部设计(结构设计,数据设计,逻辑设计),伪代码分析4.编程阶段的测试:白盒测试与黑盒测试,结构测试与功能测试,路径测试:覆盖准则,增量测试与大突击测试...
  • 软件测试的原则???
    答:1、尽早不断测试的原则 应当尽早不断地进行软件测试。据统计约60%的错误来自设计以前,并且修正一个软件错误所需的费用将随着软件生存周期的进展而上升。错误发现得越早,修正它所需的费用就越少。2、IPO原则 测试用例由测试输入数据和与之对应的预期输出结果这两部分组成。3、独立测试原则 独立测试原则...
  • 软件验收测试的合格准则是
    答:软件验收测试的合格准则是:1、软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。2、所有测试项没有残余一级、二级和三级错误。3、立项审批表、需求分析文档、设计文档和编码实现一致。4、验收测试工件齐全。
  • 软件测试准则
    答:集成准则:就是指什么时候应开始进行集成测试,以及通过集成测试的标准。入口准则:确定什么条件下应该进行测试。比如,规定一些基本的,和特定的软件需求已经实现了,然后测试部门才能开始测试。出口准则:所有测试用例全部被执行.测试报告已经通过评审.如有不正之处,请指教。
  • 软件开发测试与软件测试有什么区别?
    答:测试人员在软件开发过程中的任务: 1、寻找Bug; 2、避免软件开发过程中的缺陷; 3、衡量软件的品质; 4、关注用户的需求。 总的目标是:确保软件的质量。二、软件测试的原则软件测试从不同的角度出发会派生出两种不同的测试原则,从用户的角度出发,就是希望通过软件测试能充分暴露软件中存在的问题和缺陷,从而考虑是否...
  • 软件测试有哪些方法
    答:问题七:软件测试的目标和准则是什么?有哪些测试方法?测试步骤有哪些 具体地讲,测试一般要达到下列目标: 1、确保产品完成了它所承诺或公布的功能,并且所有用户可以访问到的功能都有明确的书面说明---在某种意义上与ISO9001是同一种思想。 产品缺少明确的书面文档,是厂商一种短期行为的表现,也是一种不负责任的...
  • 如何建立有效的软件测试准则
    答:第一条准则没有任何作用,因为可以什么都不做就能满足它。它并不能衡量测试的质量。第二条准则同样无用。因为它与测试用例的质量无关,而且也不能实现测试目标,它下意识里鼓励编写发现错误可能性较低的测试用例。下面有三类较为有用的结束准则:第一类,但不是最佳的准则,根据的是特定的测试用例设计...
  • 敏捷软件开发团队关于关键原则的26条至理名
    答:我经常收集各种各样的至理名言,最近我重温敏捷开发;真正的问题是什么?下面是一份26条关键原则的清单,以指引敏捷软件开发团队。1.始终在签入之前运行测试:这条准则帮助你满足“不要破坏构建”准则。2.持续学习如何改善质量:这项工作永不会结束,因此你应经常留意可以改善的事情,并收集质量问题被确认...