精华内容
下载资源
问答
  • 洞悉手工测试和自动化软件测试的区别 两者又有何关系和优缺点?
    千次阅读
    2022-04-11 19:37:36

    一、 手工测试

    1、 什么是手工测试?

    手工测试是由测试工程师手动测试软件各项功能以发现缺陷的过程。测试人员应该从最终用户的角度出发,并确保所有功能都按照项目的需求文档中的说明工作。在此过程中,测试人员执行测试用例 并手动生成报告,而无需使用任何自动化工具。

    >> 下载300G软测学习资料包【视频教程+PPT+课件+项目源码】

    2、 什么阶段适合使用手工测试?

    • 探索性测试:探索性的测试一般由测试领域的专家来进行。他们仅通过检查应用程序的功能来执行测试,而无需了解需求。

    • 可用性测试:验证应用程序是否对用户友好,并且能否保障最终用户的使用体验。此测试的主要重点是检查最终用户是否可以轻松理解和操作应用程序。

    • 临时测试:临时测试与正式测试完全相反。它是一种非正式的测试类型。在 Adhoc 测试中,测试人员在不遵循任何文档和测试设计技术的情况下随机测试应用程序。测试人员在没有任何测试用例或任何业务需求文档的情况下随机测试应用程序。

    3、什么情况下选择手工测试而非自动化?

    • 在以下场景中,我们更喜欢使用手工测试而不是自动化:
    • 当项目处于初始开发阶段时。
    • 在测试程序界面时,尤其是程序的视觉方面。
    • 当需要执行探索性或临时测试时。
    • 如果项目是短期的,与手工测试相比,编写脚本会很耗时,相对来讲手工更方便
    • 如果测试用例不能自动化执行时会选择手工测试。比如,较为复杂的登录验证码测试。

    4、手工测试的优缺点

    ①手动测试的优点:

    • 可以对各种应用程序进行手动测试
    • 更适合生命周期较短的产品
    • 适用于需求频繁变化的项目和GUI不断变化的产品
    • 与自动化测试相比,手工测试的初始投资更便宜
    • 手工测试可以执行临时测试
    • 测试人员无需了解自动化工具

    ②手工测试的缺点:

    • 手工测试在进行回归测试时,非常耗时。
    • 与自动化测试相比,手动测试的可靠性较低,因为它是由人工进行的。所以总会容易出现错误和失误。
    • 从长远来看,相比自动化测试,手工测试代价过于昂贵
      在这里插入图片描述

    二、 自动化测试

    1、什么是自动化测试?

    自动化测试是使用自动化工具测试软件以发现缺陷的过程。在此过程中,执行测试脚本并生成结果由自动化工具自动执行。一些最流行的自动化测试工具是Selenium WebDriver、appium、postman、Loadrunner等

    2、一些常见的自动化测试工具

    • HP QTP(Quick Test Professional)/UFT(Unified Functional Testing):惠普关键字驱动测试工具
    • Selenium:web自动化测试工具
    • LoadRunner:性能测试工具
    • SilkTest:功能测试工具
    • TestComplete:自动化功能测试平台
    • WinRunner:企业级功能测试工具
    • WATIR:Web自动化测试工具

    3、 什么阶段使用自动化测试?

    • 回归测试:在修改后对已经测试过的程序进行重复测试,以发现由于正在测试的软件或其他相关或不相关的软件组件中的更改而引入或发现的任何缺陷。因此,回归测试最适合自动化测试,因为代码更改频繁,及时执行测试的复杂程度超出了手工的能力范围。

    • 负载测试:验证系统/应用程序是否可以处理预期数量的事务,并验证系统/应用程序在正常和峰值负载条件下的行为。在负载测试方面,自动化测试也是高效完成测试的最佳方式。它最适合自动化测试。

    • 性能测试:这种类型的测试确定或验证被测系统或应用程序的速度、可扩展性和/或稳定性特征。性能与实现满足项目或产品性能目标的响应时间、吞吐量和资源利用水平有关。它最适合自动化测试。

    4、哪些测试不能自动化测试?

    • 探索性测试
    • 用户界面测试
    • 临时测试

    5、什么时候选择自动化测试优势更大?

    • 处理重复和耗时的任务
    • 进行并发测试
    • 进行非功能性测试,如负载、性能、压力测试
    • 为避免人为错误

    6、自动化测试的优缺点

    ①自动化测试的优点:

    • 自动化测试执行速度更快
    • 从长远来看,它比手动测试更利于企业长久发展
    • 自动化测试得到结果更可靠
    • 自动化测试更强大、更通用
    • 它主要用于回归测试
    • 可重复使用,可以记录自动化过程
    • 它不需要人工干预。测试脚本可以在无人值守的情况下运行
    • 它有助于增加测试覆盖率

    ② 自动化测试的缺点:

    • 仅适合长期迭代更新的产品
    • 自动化测试在最初搭建时成本会比较高
    • 大多数收费的自动化工具费用都比较高
    • 它有一些限制,例如处理验证码,获取 UI 的视觉方面,例如字体、颜色、大小等,不适合使用自动化测试
    • 需求反复变化的项目,进行大量维护的项目都不适合自动化
    更多相关内容
  • 当然自动化测试也不是万能的,不要拿手工测试自动化测试相比,而应该把自动化测试看做是对测试员能力的扩充,能够完成手工测试所不能完成的工作。 来看看业界对自动化测试的看法吧。 《Google软件测试之道》...

     

    自动化测试的重要性自然不用多说,没有自动化测试敏捷开发和CI/CD几乎不可能存在。

    当然自动化测试也不是万能的,不要拿手工测试与自动化测试相比,而应该把自动化测试看做是对测试员能力的扩充,能够完成手工测试所不能完成的工作。

     

    来看看业界对自动化测试的看法吧。

     

    1. 《Google软件测试之道》3.4 章节,YouTube测试工程师apple chow的观念:“如果测试或者自动化过于难以维护,不如放弃它并试着去实现更有韧性,更好的东西。密切关注一段时间维护和排错的成本。遵守70-20-10法则:小型的用来验证单个类或者功能的单元测试占70%,中型的用来验证一个或者多个应用模块之间的测试占20%,大型的高级别的用来完整应用的测试(一般是系统测试和端到端测试)占10%。”
    2. 《Google软件测试之道》3.4 章节,YouTube测试工程师apple chow的观念:“安排好优先级,寻找小成本大回报的自动化项目。一定要记住自动化并不能解决所有问题,尤其是前端项目和设备测试。总是会需要聪明的,探索式的测试并跟踪测试数据。”
    3. 《Google软件测试之道》4.4 章节,Google Gmail测试工程经理Ankit Mehta谈Gmail的测试经验是:“20%的测试人员进行探索式测试,任何关注用户体验的产品都需要探索式测试。还有30%的测试工程师关注于产品的整体性测试,他们和测试开发工程师一起来保证测试的效果。另外50%的工作,是测试开发工程师开发相关的自动化测试和工具,以保持代码库的健壮和提高开发人员的工作效率。”
    4. 《Google软件测试之道》4.6 章节,Google Chrome测试工程经理Joel Hynoski认为:“测试本身就是一种平衡的艺术。一方面,我们必须能让产品发布,对每个发布版本做所需的检查以保证没有问题。另一方面,我们必须开发优秀的自动化测试,并为自动化投入开发自己的框架和基础设施。再有,我们需要围绕着“开发-构建-测试-发布”的流程模式计划和安排我们的工作。还有,测试专家不断地向世界展示我们进行测试的最新方法,如果你不实验这些新东西,你会觉得自己是在原地踏步。”。
    5. 《软件测试经验与教训》中,关于自动化测试

    表格 1 手工测试和自动化测试的比较

    比较点

    手工测试

    自动化测试

    定义

    人工进行的测试

    利用自动化工具或平台进行的测试

    执行时间段

    在测试早期往往使用得比较多

    测试中后期,或者回归测试上。

    执行效率

    执行效率较低

    一般执行效率较高

    执行代价

    每次的执行代价相对固定

    取决于自动化的代价和执行频率

    测试质量

    取决于测试用例的质量和测试人员的素养

    取决于测试用例的质量和自动化测试用例的质量

    重复执行

    每次执行都需要相应的执行代价,但是不同的人执行同一个用例可能看出不同的问题

    执行可以复用,但重复执行不能提高有效性

    性能测试场景

    对于大量用户的测试,不可能同时让足够多的测试人员同时进行测试,手工测试几乎不可能。

    可以自动化测试模拟同时有许多用户,从而达到测试的目的。

    局限性

    许多与时序、死锁、资源冲突、多线程等有关的错误通过手工测试很难捕捉到;

    很多和界面相关的场景自动化测试很难检测到问题。

    发展方向

    手工测试者最适合成为领域专家,他们可以把相当复杂的业务逻辑存在最强力的测试工具——大脑里。而且手工测试速度比较慢测,试者就有时间可以观察分析细微的逻辑问题。速度虽然慢些,但是比较容易。

    自动化则胜在测试底层的细节。自动化可以测试崩溃、挂起、错误返回值、返回码、异常和内存使用等等。速度快但是也困难些。想对业务逻辑进行自动化测试比较困难,风险也大。

     

    手工测试和自动化测试具体选择要看看项目规模,客户需求,公司能力等,绝大多数时候都是结合在一起使用才能发挥最大威力。

    展开全文
  • 现在自动化软件测试工具逐渐深入软件测试领域,但是关于自动化测试与手动测试的争议一直存在,各有各的优点,很难一分高下。对于专业的测试人员来说,两者都是软件测试过程中常用到的,那么今天就来讲讲的自动化软件...

           现在自动化软件测试工具逐渐深入软件测试领域,但是关于自动化测试与手动测试的争议一直存在,各有各的优点,很难一分高下。对于专业的测试人员来说,两者都是软件测试过程中常用到的,那么今天就来讲讲的自动化软件测试和手动化测试的区别有哪些。

    一、软件测试是什么?

           首先,在了解测试工具前,我们先了解下软件测试的定义。软件测试是伴随软件开发而产生的,用于度量软件质量。通过对测试环境下的程序进行操作,发现软件缺陷,评估产品质量。

    早期很多公司都选择开发人员进行调试,随着人们对软件质量的要求提高,第三方软件测试机构应运而生。

    二、自动化测试与手动测试

            从软件测试执行时使用的工具角度分类,测试可以分为手工测试和自动化测试。目前自动化测试工具的不断完善,手动测试在测试过程中也不可或缺,两者在软件测试过程中各有优点。

    自动化测试

    • 它使用自动化工具来执行测试用例。

    • 与手动方法相比,它速度很快。

    • 它不允许进行随机测试。

    • 初期投资高。

    • 从长远来看,投资回报更好。

    • 这是可靠的。

    • 它由工具和脚本执行。

    • 没有测试疲劳。

    • 即使是微不足道的更改,也必须修改自动化测试脚本。

    • 它是昂贵的。

    • 所有利益相关者都可以登录自动化系统并检查执行结果。

    • 它不涉及人类;因此它不能保证用户友好或提供积极的客户体验。

    • 负载测试、压力测试、尖峰测试等性能测试必须通过自动化工具进行测试。

    • 它可以在不同的操作平台上并行完成。

    • 如果并行完成,它会减少测试执行时间。

    • 多个测试脚本可以在一个批次中组合在一起。

    • 自动化测试需要编程知识。

    • 它需要一个不太复杂的测试设置。

    • 在执行同一组测试用例时很有用。

    • 它在使用构建验证测试 (BVT) 时很有用。

    • 错过预先决定的测试的风险为零。

    • 它使用数据驱动器、关键字、混合等框架来提高自动化过程的速度。

    • 这些测试的行为就像一个文档,并为自动化单元测试用例提供培训价值。

    • 新开发人员可以查看这些单元测试用例并快速理解代码库。

    • 这样做是为了强制执行测试驱动开发 (TDD)。

    • 它是 DevOps Cycle 的重要组成部分。

    • 它最适合回归测试、性能测试、负载测试或高度可重复的功能测试用例。

    手动测试

    èªå¨åæµè¯æ¡æ¶

    • 测试用例由人和软件执行。

    • 这很耗时。

    • 它使用人力资源。

    • 探索性测试可以使用手动测试来完成。

    • 与自动化测试相比,初始投资较少。

    • 与自动化测试相比,投资回报较低。

    • 它不准确,因为它可能会导致人为错误。

    • 诸如 id、class 之类的小更改不会妨碍手动测试器的执行。

    • 人力资源需要投资。

    • 它不符合成本效益。

    • 手动测试记录在 Excel 或 Word 文档中。

    • 测试结果并不容易获得。

    • 它允许人类观察;因此它可能是用户友好的。

    • 这是不可行的。

    • 它们可以并行进行,但需要更多的人力资源,这将是昂贵的。

    • 不能分批。

    • 无需具备编程知识。

    • 它需要一个简单的测试执行设置。

    • 它可能很无聊且容易出错。

    • 当测试用例需要运行一次或两次时,它很有用。

    • 很难执行构建验证测试 (BVT)。

    • 这也很耗时。

    • 错过预先确定的截止日期的风险更高。

    • 它不使用任何框架。

    • 他们可能会使用指南、检查表、严格的流程来起草特定的测试用例。

    • 它们不提供培训价值。

    • 他们不强制执行测试驱动开发。

    • 它可以与探索性、可用性和临时测试一起使用。

    • 它可以用于 AUT 频繁变化的地方。

    展开全文
  • 软件测试:比较手工测试和自动化测试 争论的焦点在于何时选取哪种测试方法,以及何种情况下手工测试更合适或自动化测试更合适。有种观点认为自动化测试更适合回归测试API测试,手工测试更适合做验收测试GUI测试...
  • 测试是最后一道屏障保证,如果不能提供充分的时间,测试用例可能会漏,甚至于该做的性能测试,安全测试会被忽略,日后产生很多的不良影响;且这些影响可能是毁灭性的,比如锁表,比如数据泄露 开发通常都会偶延期...

    1064427-20180808144516457-1450322155.png

    1064427-20180808144523311-1547972512.png

    针对第一种瀑布流程,开发完了在进行测试,最终回归测试结束了再上线,就会比较赶;

    测试是最后一道屏障和保证,如果不能提供充分的时间,测试用例可能会漏,甚至于该做的性能测试,安全测试会被忽略,日后产生很多的不良影响;且这些影响可能是毁灭性的,比如锁表,比如数据泄露

    开发通常都会偶延期,而上线时间固定,测试的时间会被缩减

    但是如果项目是一次性的,并且只要甲方接收签字就算完工,中间没有被发现的缺陷会有甲方的运维部分承担。那这种组织架构可行。。。

    1064427-20180808144529339-436236595.png

    针对第二种,可以看成稍有迭代的项目;

    开发在Coding的时候,测试准备测试脚本和数据,开发转测的时候,由测试直接执行测试用例即可,就缩短了整个流程的时间;

    测试给开发提交了bug,开发fix了,测试要回归测试;

    测试有了自动化测试脚本,执行就可以验证回归测试是否全部通过,是不是很方便快捷;

    项目之后迭代,做一丢丢的修改,那为了整个项目全部功能正常,测试是否需要对新增功能,修改功能,原始功能做全面的测试

    发现两款新工具,基于Web页面的
    1. 百度脑图 http://naotu.baidu.com/ , 和思维导图差不多, 保存在互联网上随时查看随时更新,更方便;
    2. teambition https://www.teambition.com , 和tap/task 差不多,记录工作任务,任务紧急程度等等

    所谓测试准备测试脚本和数据,也就是在自动化测试,对于第二种项目周期很方便快捷。

    自动化测试和手工测试,都是黑盒测试。 手工测试可能使用点点点的操作来进行,自动化测试就模拟点点点,让脚本来执行;

    自动化测试,就是减少处在测试验证阶段的时间大大减少,就是测试前置,与开发并行。

    测试存在于各个阶段:

    需求测试---》单元测试---》集成测试---》系统测试---》性能测试---》用户测试---》回归测试

    需求测试

    • 完整性&正确性
    • 一致性&可行性
    • 无二义性&健壮性
    • 必要性&可测试性
    • 可修改性

    单元测试

    又称模块测试,就是对程序代码中最小的涉及模块单元进行测试。
    在单元测试中主要采用静态测试与动态测试相结合的办法。
    单元测试要求需要代码编写经验,并且要十分熟悉当前的被测系统,以及该系统是否与其他系统的接口关联情况。
    单元测试在编码阶段占据非常重要的地位。可以降低编码的错误率,提高编码质量

    集成测试

    又称组装测试,是将软件产品各个模块组装起来,检查接口是否存在问题,以及组装后的整体功能、性能表现。
    一般可采用非增式集成方法、增式集成方法(自底向上集成、自顶向下集成、组合方式集成)等策略进行测试,利用黑盒测试为主,白盒测试为辅的测试方法进行测试。
    主要解决各个组成但源代码是否符合开发规范、接口是否存在问题,整体功能有无错误、界面是否符合设计规范、性能是否满足用户需求等。

    系统测试

    将通过集成测试的软件部署到某种较为复杂的计算机永华环境进行测试。
    目的:通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。
    这个阶段主要进行的是安装卸载测试、兼容性测试、功能确认测试、安全测试等。
    采用黑盒测试法,主要考察被测软件的功能与性能表现。

    性能测试

    性能测试要求被测软件在业务处理速度、处理能力和所耗用的硬件系统资源比率满足用户的需求。
    不要尝试用手动方式进行性能测试,应当编写一段相应的程序或者使用专门的工具进行,如利用自动化性能测试工具。
    性能测试相对难度较大,要求测试人员掌握编程语言,精通业务流程,拥有深厚的项目经验。

    用户测试

    可称为用户确认测试。
    正式验收前,需要用户对本系统做出一个评价,用户可对交付的系统做测试,并将测试结果反馈回来,进行修改、分析。
    用户测试环节是被测试软件首次作为正式的系统交友用户使用,用户会根据他们的实际使用情况进行测试、使用,并提出实际使用过程中的问题。
    用户测试是软件生产流程中的最后质检关。

    回归测试

    回归测试是经过一段时间以后再回过头来对以前修复过的Bug重新进行测试,看该Bug是否会重新出现。
    可采用自动化测试工具来进行回归测试,或者由测试工程师手动的执行以前的测试用例。来检查用例通过情况。

    就我自己而言,开发自动化测试脚本对回归测试很重要,大大减少回归测试的时间。

    转载于:https://www.cnblogs.com/qianjinyan/p/9173098.html

    展开全文
  • 手工测试自动化测试区别

    千次阅读 2019-06-05 11:39:00
    1、手工测试自动化测试其实并不是对立的 并不是所有的功能自动化测试都可以实现,它的效率也不高,但是可以完成一部分场景的功能回归。自动化测试发展了这么多年,也没有把手工测试给取代。 2、手工测试的特点 ...
  • 在软件测试行业,手工测试和自动化测试哪个更好,算是最热门的争论话题之一。
  • 1 引入测试的原因 信息技术的飞速发展,使软件产品应用到社会的各个领域,软件产品的质量自然成为人们共同关注的焦点。不论软件的生产者还是软件的使用者,均生存在竞争的环境中,软件开发商为了占有市场,必须把...
  • 1. 前言手工测试用例是针对手工测试人员,自动化测试用例是针对自动化测试框架,前者是手工测试用例人员应用手工方式进行用例解析,后者是应用脚本技术进行用例解析,两者最大的各自特点在于,前者具有较好的异常...
  • 1、手工测试用例和自动化测试用例对比 手工测试用例 较好的异常处理能力,能通过人为的逻辑判断校验当前步骤的功能实现正确与否。 人工执行用例具有一定的步骤跳跃性。 人工测试步步跟踪,能够细致的定位问题。 ...
  • 自动化测试和手工测试如何互补? 自动化测试和手工测试如何互补?如何将自动化测试用例和手工测试用例相辅相成? 一、测试用例选型问题: 1、不是所有的手工用例都要转为自动化测试用例。 2、考虑到脚本开发的成本,...
  • 1 提高测试质量:软件开发的过程就是一个持续集成改进的过程,而每一次修改都有可能产生错误。因此,当软件产品的一部分,或者全部,或者应用环境 被修改时都需要对软件产品重新进行测试,其目的是验证修改后的...
  • 自动化测试基础PPT

    2018-10-25 12:30:25
    对自动化实施时机,自动化测试工具的选择,以及自动测试和手工测试关系作了阐述,一份基础而全面介绍自动化的PPT
  • 黑盒测试把产品软件当成是一个黑箱子,只有出口入口,测试过程中只要知道往黑盒中输入什么东西,知道黑盒会出来什么结果就可以了,不需要了解黑箱子里面是如果做的。  即测试人员不用费神去理解软件里面的具体...
  • 1.谈谈手工测试用例和自动化测试用例 手工测试用例是针对功能测试人员的,而自动化测试用例是针对自动化测试用例框架或工具的。 a. 手工测试用例特点: 1.较好的异常处理能力,能通过人为的逻辑判断校验当前步骤是否...
  • 自动化测试大总结

    千次阅读 2021-10-22 19:27:47
    这是我能想到的关于自动化测试的一些要点,然后根据一篇我三年前写的关于自动化测试的随笔更新了一下,当然遗憾的是到目前为止,我接触的成功的敏捷开发项目还很少,虽然敏捷近些年一直很火......
  • 1、功能测试 根据产品特性、操作描述用户方案,测试一个产品的特性和可操作...(5)初始化和终止错误 用例设计方法 (1)等价类划分方法 (2)边界值分析方法 (3)错误推测方法 (4)因果图方法 (5)判定表驱动分
  • 其实正确的观点:区分手工测试和自动化测试的,实际上与API还是GUI,回归测试还是功能测试都没有关系。应该从代码是业务逻辑相关还是基础性代码这两个方面出发考虑。 业务逻辑代码:对应终端用户使用的哪些功能,是...
  • ‍目录一、前言二、自动化目的三、自动化分类四、自动化实现五、历史文章指路一、前言在一些测试交流群经常会看到有小伙伴在问,"怎么做自动化测试?学习自动化测试有什么资料吗?自动化测试是不是很牛逼?" ,甚至...
  • 先表明观点:自动化测试手工测试的有效补充,这个观点我很认同。 但是自动化测试能主导甚至取代手工测试,小编觉得是不可能的。 自动化测试是什么呢? 自动化测试是按照我们事先编写好的脚本,按照一定顺序或随机...
  • 软件自动化性能测试

    2021-03-23 15:04:54
    应用可以使用数十数百种组件完成曾经使用纸张或手工的工作。复杂性直接导致业务过程中出现更多的潜在故障点,从而使分析问题的根源更为困难。  此外,软件应用的运行与汽车不同。它们没有那些当
  • 软件测试关系到软件开发维护成本的重要环节。任何软件产品在正式发布之前都必须经过严格的测试。随着计算机技术的迅速发展,软件的结构越来越复杂,同业竞争越来越激烈。为了保证软件产品的高度可靠性竞争力,...
  • 接口测试与接口测试自动化

    千次阅读 2021-01-09 18:33:22
    5.2 结果校验 在手工测试接口的时候,我们需要通过接口返回的结果判断本次测试是否通过,自动化测试也是如此。 对于本次的接口,我们搜索“q=刘德华”,我们需要判断返回的结果中是否含有“演职人员刘德华或片名...
  • 测试用例的字段一般包含用例标识的字段、请求信息的字段响应信息的字段,响应信息的字段一般作为接口用例执行结果的断言字段;另外由于本书的接口涉及 cookies 信息及接口之间的关联信息,所以需要加上 cookies ...
  • 而这种工作是比较适合机器而不是人类来完成,外加人们对软件的需求更多,大家对使用手工方式来完成软件测试感到的越来越力不从心,自动化测试的使用率日益增高,那么自动化测试已经能完全取代手工测试吗?...
  • 自动化测试解决方案

    2020-07-08 17:08:48
    一、自动化测试背景 随着如今 5G 网络的广泛应用,网络系统的规模复杂度日益提升,对于网络 设备的要求越来越高,网络设备的测试也面临新的挑战。 在设备的研发阶段,测试人员对于设备每个功能点往往需要做很多...
  • 1.你们自动化测试使用的代码框架是什么样的 我们使用的测试框架以数据驱动测试为思路, 在unittest与ddt基础上进行二次封装,实现了 代码元素分离、代码数据分离、selenium二次封装,日志、 批量执行用例生成报告、...
  • 之前写过一篇关于 JMeter 手工测试的文章(https://www.jianshu.com/p/b5d2fd5e2b9d),今天我们在原来的基础上修改一下看看如何做接口的自动化。 首先来回顾一下前面写好的脚本: 这里请求发送的参数我们还是只...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 68,998
精华内容 27,599
关键字:

自动化测试和手工测试的关系和区别

友情链接: IOCPServerForCSharp.rar