我想解决一个您不太关注的问题:
关于如何开始应用不同的系统概念的更实用的建议呢?
系统思维对于测试人员的日常任务很有用:计划测试(测试什么以及如何测试?)、隔离缺陷(根本原因在哪里?)和验证修复(修复可能会影响什么?我会如果我只测试这个,就有足够的信心?)。
我不知道有任何具体的书可以从系统思维的角度解决这些任务。但是,根据我的经验,了解系统的行为如何从其组件和子系统的行为中产生是有帮助的。您可以通过分析系统架构和分析用户如何与系统交互(用户是系统的一部分!)来综合这些知识。
了解系统架构
有助于学习系统思维的书将是关于软件架构的一般性,特别是关于特定技术的。向开发人员、架构师和操作人员询问有关系统的问题也会有所帮助。为了全面了解系统,我经常提出以下问题:
- 这些组件如何相互作用?
- 系统不同层之间的关系是什么?X 是直接访问数据库还是通过某些门面、Web 服务或队列访问数据库?
- 它们的耦合程度如何?通过接口,格式?它们是同步交互还是异步交互?
- 系统中的数据流是什么?
- 如果这里发生错误,会影响吗?错误如何在系统中传播?
- 这些库是否在不同组件之间共享?更换这个库会导致这个缺陷吗?
- 操作系统和我们的系统有什么关系?假设您将应用程序从 64 位系统移植到 32 位系统。我们现在使用的 64 位 OS/VM 的哪些功能需要验证?
- 我们与这个 DBMS 的耦合度如何?我们是否使用了 MSSQL 不支持的 Oracle 的任何特定功能?
- 那些德国标签/区域设置文件是如何使用的?它们存储在前端还是后端?如果我更改它们,用户是否会立即看到更改,或者内容可能缓存在某处?
- 应用程序是有状态的吗?什么改变了应用程序的状态?应用程序的行为是否会根据其状态而有所不同?整个应用程序的状态是相同的还是每个用户/会话的特定状态?
用户是系统的一部分
与您的业务分析人员和现有用户交谈有助于了解他们与系统的关系。例如:
- 用户如何可以同时使用此功能?他们能互相干扰吗?
- 用户是否立即收到通知,或者链中涉及其他流程或流程?它可以阻止系统吗?
- 资源权限和用户权限是什么关系?也许她看不到它,因为她没有被授权看到它?
- 该功能的用户是谁?技术人员?