介绍
哈布罗夫斯克居民,下午好。 刚才我正在解决一家金融科技公司的 QA 主管职位空缺的测试任务。 第一个任务是创建一个测试计划,其中包含用于测试电热水壶的完整清单和测试用例示例,可以轻松解决:
GOST 7400-81。 家用电热水壶、电茶炊。 规格(修订编号:1-8) GOST IEC 60335-1-2015 家用和类似电器。 安全。 第 1 部分:一般要求
很难想出一个带有完整清单的更好的测试计划。
但第二部分变成了一个问题:“是否存在所有测试人员共有的问题,导致他们无法更有效地工作?”
我首先想到的就是列出我在测试过程中遇到的或多或少值得注意的问题,剔除小问题,然后总结剩下的。 但我很快意识到,归纳法所回答的问题并不适用于“所有”测试人员,最多只适用于“大多数”测试人员。 因此,我决定从另一个角度来演绎,结果就是这样。
确定
解决新问题时,我通常做的第一件事就是尝试理解问题的全部内容,为此,我需要理解提出问题的单词的含义。 需要理解的关键词如下:
- 问题
- 测试员
- 测试员工作
- 测试仪效率
让我们转向维基百科和常识:
这没有多大意义,事实上,“问题”=“任何需要处理的事情”。
与“问题”一样,它没有什么意义:是工作的结果。
现金(收入)是可再生资源;
能源(生命力)是一种部分可再生资源;
时间是一种固定的、基本上不可再生的资源;
知识(信息)是一种可再生资源,它是人力资本的一部分,可以增长,也可以被破坏
我想指出的是,在我们的例子中,效率的定义并不完全正确,因为我们使用的知识越多,效率就越低。 因此,我将效率重新定义为“所取得的成果与所花费的资源之间的比率”。 那么一切都是正确的:知识在工作中不会被浪费,但它减少了测试人员唯一根本上不可再生的资源——他的时间的成本。
解
因此,我们正在寻找测试人员的全局问题,这些问题会损害他们的工作效率。
测试人员的工作中花费的最重要的资源是他的时间(其余的可以通过某种方式减少到它),并且为了让我们谈论正确的效率计算,结果也必须减少到时间。
为此,请考虑一个测试人员通过其工作确保其可行性的系统。 这样的系统是一个项目,其团队包括测试人员。 项目生命周期可以粗略地用以下算法表示:
- 处理需求
- 技术规范的形成
- 进入菜单
- 测试
- 发布到生产环境
- 支持(转到第 1 项)
在这种情况下,整个项目可以递归地划分为具有相同生命周期的子项目(功能)。
从项目的角度来看,花费的时间越少,其实施就越有效。
因此,我们从项目的角度来定义测试人员的最大可能效率——这是测试时间为零时项目的状态。 所有测试人员的一个共同问题是无法达到这个时间。
怎么处理这个?
结论非常明显,并且已经被许多人使用了很长时间:
- 开发和测试应该几乎同时开始和结束(这通常由部门完成)
QA )。 理想的选择是,当所有正在开发的功能在准备就绪时已经被自动测试覆盖时,使用某种类型的回归(如果可能的话,预提交)测试CI . - 项目拥有的功能越多(越复杂),就需要花费更多的时间来检查新功能是否会破坏旧功能。 因此,项目越复杂,就越需要自动化
回归测试 . - 每当我们错过生产中的错误并且用户发现它时,我们就必须花费额外的时间从第 1 点(处理需求,在本例中为用户)开始经历项目生命周期。 由于错过错误的原因通常是未知的,因此我们只剩下一条优化路径——用户发现的每个错误都必须包含在回归测试中,以确保它不会再次出现。
来源: habr.com