产品开发测试会以Feature形式介入,参与需求分析,开发设计,集成验证等各个阶段。
1. 测试设计阶段,根据需求文档做分析并设计用例场景,和需求开发交流测试场景,如证书初始化。
2. 参与开发澄清讨论,主要还是集中在需求及实现方面问题,确保各方对业务需求理解的一致性和合理性。另外砍不必要的如一些重复告警等功能,去掉不需实现功能。
3. 前端功能测试,不同模块组件的集成测试,单个功能点的验证。由于受需求拆分不合理及需求开发用户故事理解上偏差,业务场景未考虑到,如多次初始化证书,周期更新证书,需求另外增加来实现。测试参与晚,需求讨论没有充分,和敏捷开发测试不在同个团队有关。
4. 后端系统测试,端到端的系统设备集成验证,包括不同业务功能模块的间的集成测试,更加符合真实的用户场景。发现一些接口定义规范问题,如0,1,还有系统不同功能间需求或设计上问题较多,特别是软件架构设计上未考虑到安全与业务冲突场景,如路由和防火墙,CLI连接不支持安全退出因没有保活机制。安全意识在产品开发初期,对其它功能的开发和设计人员推广上增加安全业务的理解,落实到设计,开发和测试的不同阶段。
5. 安全测试,合规,漏洞,协议健壮性,可靠性。
系统设计者的任务就是要把系统设计为想要攻破系统而付出的代价大于攻破系统之后得到的信息的价值。
很多组织均使用自动化和人工安全测试,但要明确的是,自动化测试是扫描,而不是真正的渗透测试。两者都有价值,但人类找到了打破系统的方法,至少目前机器做不到。经验、创造力和好奇心是渗透测试的核心,通常在自动化结束时进行测试。