人工智能时代前沿技术社区

首页 > IT管理 > 热点

20年的老软件测试员告诉你,多数人不知道的功能测试内幕

应用程序或网站的功能测试是SDLC(软件开发生命周期)的最重要阶段之一。开发人员、测试人员、项目经理、运营人员,甚至管理人员都需要多多少少参与到整个项目的功能测试。测试工作由测试部门分配,测试部门提供服务的稳定性至关重要。

作者: | 2020-10-15 20:43:08 | 来源:51cto

1602766147242741.jpg

应用程序或网站的功能测试是SDLC(软件开发生命周期)的最重要阶段之一。开发人员、测试人员、项目经理、运营人员,甚至管理人员都需要多多少少参与到整个项目的功能测试。测试工作由测试部门分配,测试部门提供服务的稳定性至关重要。在建立多部分协作的工作文化的过程中,作为测试人员应当首先意识到,不仅可以对产品进行功能测试,还可以为公司的产品做出更多贡献。

在应用程序交付给用户面前之前,找出BUG并修复它们至关重要。软件的成功取决于用户的满意度,如果应用程序的界面中充斥着错误和BUG,不仅难以赢得新用户还会流失老用户。

大多数测试工程师对功能测试如何给企业创造价值都比较清楚也都很进行了很多的尝试和实践。通常,功能测试会占用测试人员一天工作当中的大部分时间。但是,除了执行功能测试之外,还有其他方法可以为产品增加更多的价值。

作为测试人员,可以通过应用程序的严格CI/CD管道帮助软件团队在保障软件质量的前提下更快地迭代。除了功能测试之外,测试人员还可以通过以下方法为网络产品增加价值。下面让我们一一道来。

利益相关者

每个项目的不同部分的成员对项目都有自己不同的需求和想法。但是当使用者是最终使用该产品的用户时,最重要的还是利益相关者的的看法吗?从利益相关者的立场上消除个人偏见和思维惯式可以极大地改善测试过程并增强应用程序或网站的健壮性。列出对交付内容表示兴趣的人,记录利益相关者的期望,并根据利益相关者的心态做出适当变化和指定相关的规范防止方向跑偏。

因此,除了提供功能测试以外,测试工程师还需要根据与利益相关者进行有效沟通并掌握情况以便及时了解进度。测试人员遇到BUG时,通常会报告该BUG并追踪BUG解决进度流程。但是,要增加价值,还需要报告的内容为对利益相关者影响方面。另外,还需要检查准备好的测试报告如何更多考虑全局情况,而不是专注于单个功能,让决策者更全面了解软件的前世今生,以便做出更合适的决策。

解决此问题的一个好方法是适应左移测试。左移测试是指即使在产品准备之前也要尽量进行测试。可以与利益相关者坐在一起,了解他们真实的需求和潜藏在这些需求之下的心理动机和期望,以便编写更加符合业务需求的测试用例避免漏测和过度测试。

过渡到QAOps

QAOps是指通过与DevOps团队进行良好协调来维护产品的软件质量。目标是提供具有更快的CI/CD流程的健壮的应用程序和软件服务。QAOps致力于与开发和运营团队与QA部门合作,以并行方式执行可扩展的测试自动化用例,以便更好地在DevOps中实现连续测试更好更快的进行软件的更新迭代。

倾听用户反馈

我们都知道,无论整个团队对产品的感觉如何良好,用户的意见都是最重要的。了解用户对产品的反馈以及功能的实用性、易用性甚至比功能实现更重要。在部分场景下,特定功能完全符合需求方和测试人员的期望,但会给用户带来额外的负担以及使用困难。

测试人员应报告可能困扰用户的风险。除了客户支持团队之外,还有谁能更好地了解用户的想法?毕竟,他们是直接与用户密切联系的人。将客户的反馈声音用作最有价值的数据,并在软件团队发挥巨大的作用。

了解用户故事

在敏捷开发框架中,测试人员应该多去了解用户故事,以评估发布周期所需必要的工作。它是从最终用户的角度对应用程序上的功能的描述。它描述了用户的分类和属性,他们的需求和想要的东西以及为什么他们想要特定功能。用户故事的主要目的是确定项目为用户带来的价值。产品负责人和测试人员了解用户情况并根据要求确定任务的优先级。

了解用户故事有助于制定验收标准并涵盖更多使用场景的测试方案。如果故事内容过于庞大,则必须将其分解为不同的模块,甚至根据不同用户分类分解。使用测试透视图来评估用户故事可以使清楚地了解每一个节点花费的时间。市场上有许多在线协作工具可帮助管理者将整个团队保持在一个仪表板上,可以在其中分配任务并跟进团队的进度。

探索新测试工具

很多迹象表明传统手动功能测试人员受到行业中使用频率较高的自动化测试工具的威胁。有些人试图抵制这种变化,觉得自己的某个技能或者某个方面的优势可以抵消这些技术带来的不确定性和威胁。不幸的是,一旦我们了解如何利用工具提高测试效率,大多数人都会意识到自动化是一个福音。作为一名测试人员,至少应具有有关测试自动化工具以及在领域的相关机会的基本知识。

使用自动化测试工具,测试人员可以保留用户操作记录的备份,并在适当的时间使用日志。其他一些用途包括检测日志中的不同模式、模拟用户行为、复制生产数据等。作为测试团队中的探索者,可能需要向他人展示如何轻松使用工具来解决问题的案例。

例如,如果我们考虑进行手动跨浏览器测试以验证网站的兼容性时,都知道这样的测试非常耗时且费力。如果不了解自动化测试或者对编程语言使用有困难,几乎没人愿意使用Selenium来提高工作效率。作为一名手动测试人员,一开始了解测试自动化时,可能会对Selenium自动化测试感到犹豫和不安全,但是一旦掌握了这些技巧,就会发现测试周期交付速度的提高会大幅提高。

代码审查

不要将所有时间都花在功能测试上。测试人员需要对代码更改保持更高的警惕,代码审查提供了一个很好的契机。在每个发布周期中,都需要有一段时间开发团队可以坐在那里审查满足发布要求所需的代码更改。要进行更深入的质量检查,测试工程师需要积极参与代码审查过程,并了解应用程序中可能发生的更改。测试人员不仅应该参与其中,而且还应该就这些更改做出自己的贡献。

作为功能测试员,每天都在与应用程序进行交互验证。每天都需要执行多个测试场景,记录问题,回归缺陷。虽然代码审查可能对你比较困难,但是从实际使用角度也可以提出一些有价值的建议。

用户体验

忽略用户体验,是在急于发布应用程序的软件公司中遇到的通病之一。急于发布功能组件或产品有时会优先于功能部件或产品的正确性、稳定性。在发布产品之前,必须进行深入的检查,条件允许的话可以通过Beta测试解决这些错误。采取必要的手段来收集信息,业务指标和广泛的意见,以从用户的角度评估产品的质量。记录证据留存(防止背锅),并提出建议以促进改进。

如果是超快速发版,很可能会开始出现不一致的死循环。一般经验来讲,多个开发人员的参与以及将开发任务的一部分外包给不同的团队会导致更多的不稳定风险。用户接触点、图标、操作、文本、功能、性能和关键流程是质量检查的一些重要元素。

严守Deadlines

很多测试人员比较苦恼的就是执行了许多重复的工作以及大量浪费在沟通上的时间,以至于整个流程会因此变得混乱导致拖延,有些测试人员戏称搬砖。但是事实上,任何项目规划最终的就是时间节点,必须严格遵守最后期限。最终目标必须是通过避免这些问题来节省时间。同时保持工作进展速度和工作质量,听起来像是一个大坑。但是如果将团队内部和跨部门沟通做好,这两者会在一定程度上达到统一,将会减少很多不必要的更改,给测试工作减少很多时间的浪费。

编写有效的测试用例和详细的测试报告是快速执行任务的另一种方法。这一句话中使用了详细和快速两个词,听起来可能是矛盾的,但是详细的报告需要一次性的努力。使用合适的工具和保持良好的使用习惯,你可以快速访问查看必要的日志内容、用户数据以及错误信息。

解决BUG

很多测试人员认为他们的工作有时候十分枯燥,看起来毫无意义,如果没有发现BUG,又会让他们觉得无法安心上线。一段时间后,像工具人一样运行测试脚本可能会变得有些乏味。执行一个测试用例,编写一个测试报告,将该BUG标记给开发人员,并验证该修复程序听起来很简单,在某种程度上的确是这样。

但是,如果你想提高自己在这个工作链条中的价值和地位,那么就不能仅仅把自己当做是一个提示BUG的人,该怎么办?那就成为一个解决BUG的人。

最常见的误解之一:测试人员就是在发现、报告、验证BUG之间循环。事实上测试人员的工作并不会因为报告BUG而结束。如果测试人员通过缩小搜索范围来找到避免大海捞针地找原因,那就离解决BUG还近了一步。例如,除了指出BUG外,测试工程师还可以为开发人员提供一种更轻松的修复方法。这样,测试人员就可以与开发人员合作并帮助团队节省时间、提高质量和效率。纵观全局,能够解决BUG的测试人员可以成为行业的稀缺物种!在求职市场上也会更加受到青睐。

学习数据科学

拥有大量原始数据,重要的是选择最相关的信息并熟练地使用它。在这里,我们谈论的是数据科学(俗称大数据),它正在挖掘存·储在数据仓库中的海量信息池。即使逐步交付和部署,也无法测试所有内容,即使是在最佳测试环境中也难以测试!

就生产用途而言,借助大数据相关技术,测试人员可以获得详细的信息。但是作为测试人员,需要学习如何充分利用所有数据。数据科学可以帮助测试人员集中精力进行更有效的测试。反过来,这将有助于整个组织提供更好的交付质量。

积极竞争

在当今快节奏的技术世界中,企业只需一晃神的功夫,就足够使竞争对手脱颖而出。随着互联网行业的发展,以及行业的内卷化的增强,企业之间的竞争将越来越激烈。导致公司产品出现地狱般漏洞的原因,最常见锅还是测试人员来背的。

在敏捷大行其道的软件行业,测试人员还需要筛选测试业务情况和其他风险,以将竞争对手产品与自己产品的优缺点进行比较。除了功能测试之外,还要考虑其他一些标准,包括可用性测试、安全性测试、性能测试和稳定性测试。

总结

虽然功能测试确实具有不可替代的重要性,但这并不意味着测试人员可以长期专注于此!大多数测试人员担心未知的变化,缺乏编码技能。真实情况是除了功能测试之外,还有其他方法可以为组织增加自身价值。

测试是确保产品在到达最终用户之前无可替代的环节。在某些组织中,测试人员的贡献经常被忽略。许多测试人员想知道他们何时可以与DevOps成员(即使团队宣城他们就是DevOps成员)一起坐在会议室上讨论产品和技术方案。QAOps将专注于DevOps中的连续测试,从而将尽可能改变这一现状。

因此,作为一名测试人员,想知道自己对服务或应用程序所做的贡献,可以自己先审视一下自己为产品增加的价值。即使决策权属于领导和项目经理,测试人员在其中的作用也不能忽视。测试人员可以为其他成员做出正确的决定奠定了基础,从而帮助团队充分发挥全部潜力。