尽管提及软件安全,大多数人都会联想到网络攻击有关内容,但其实在功能性能上一样须要充分考虑。也就是说,一个应用软件在上线使用时,不只要让人能够放心的把我的敏感信息存放在应用软件中,并且还须要软件“质量”好。html
提到软件“质量”就离不开应用软件的功能/性能等测试。高“质量”的软件不多出现错误,按时交付并在预算范围内,知足要求、验收标准和/或指望,而且是可维护的。但在“质量”要求上不一样软件的标准不一。通常来讲,软件质量包括如下这2个方面:安全
1) 性能效率:软件系统及时提供相应服务的能力markdown
a.速度; 经过平均响应时间来度量网络
b.吞吐量:经过单位时间处理的交易量来度量工具
c.持续高速性:保持高速处理速度的能力oop
2)信息安全性:性能
a.向合法用户提供服务单元测试
b.阻止非受权用户的使用测试
c.阻止恶意的攻击spa
3)易用性:
软件系统易于使用的程度
4)持续可用性
系统常时间无端障运行的能力
5)可伸缩性
指当用户和数据量增长时,软件系统保持高服务质量的能力
6)互操做性
指本软件系统和其余软件系统交换数据和相互调用服务的难易程度
7)可靠性
软件系统在必定时间之内无端障运行的能力
8)鲁棒性Robust(也称健壮性,容错性)
是指软件系统在如下状况下依然可以正常运行的能力,用户进行了非法操做,相连的软件系统发生了故障,其余非正常状况的发生。
1)易理解性:指设计被开发人员理解的难易程度
2)可扩展性:为适应新需求和需求的变化为软件增长功能的能力
3)可重用性:重用软件系统或其一部分能力的难易程度
4)可测试性:对软件测试以证实其知足需求规约的难易程度
6)可移植性:将软件系统从一个运行环境转移到另外一个不一样的运行环境的难易程度。
一、明确的需求和验收标准
清晰、完整、适当详细、有凝聚力、可实现、可测试的规范或全部参与者都赞成的验收标准。在“敏捷”类型的环境中,与产品全部者或其表明的持续密切协调是必要的,这能够确保及时了解不断变化的/新出现的需求。
二、合理的时间表
留出足够的时间进行规划、设计、测试、错误修复、从新测试、更改和文档编制;开发人员应该能积极的完成项目并能以可持续的速度工做。
三、充分的测试
尽早开始测试,在修复或更改后从新测试,为测试和错误修复计划足够的时间。“早期”测试能够包括静态代码分析/测试、开源代码分析、测试优先开发、开发人员的单元测试、内置测试和诊断功能等。若是做为总体测试策略的一部分进行有效设计和实施,借助自动化测试工具能够帮助开发团队高效工做。
四、尽可能坚持最初的要求/标准
在开发开始和最后阶段尽可能避免过多增长或更改需求。若是须要更改,则应在相关日程更改或故事/点更改中充分反映,并与客户/最终用户密切沟通。在敏捷开发环境中,需求可能常常变化是能够接受的,须要真正的敏捷过程到位。同时,在敏捷开发过程当中,事故不该该在最后阶段才进行修改。
五、沟通
增强团队成员之间的沟通及与客户的沟通,确保信息保持一致,这不但能够促进团队合做,也能提升敏捷开发效率。
参读连接: