尽管说起软件安全,大多数人都会联想到网络攻击有关内容,但其实在功能性能上同样需要充分考虑。也就是说,一个应用软件在上线使用时,不仅要让人可以放心的把个人敏感信息存放在应用软件中,而且还需要软件“质量”好。
一、什么是软件“质量”?
提到软件“质量”就离不开应用软件的功能/性能等测试。高“质量”的软件很少出现错误,按时交付并在预算范围内,满足要求、验收标准和/或期望,并且是可维护的。但在“质量”要求上不同软件的标准不一。一般来说,软件质量包括以下这2个方面:
1、运行时的质量
1) 性能效率:软件系统及时提供相应服务的能力
a.速度; 通过平均响应时间来度量
b.吞吐量:通过单位时间处理的交易量来度量
c.持续高速性:保持高速处理速度的能力
2)信息安全性:
a.向合法用户提供服务
b.阻止非授权用户的使用
c.阻止恶意的攻击
3)易用性:
软件系统易于使用的程度
4)持续可用性
系统常时间无故障运行的能力
5)可伸缩性
指当用户和数据量增加时,软件系统保持高服务质量的能力
6)互操作性
指本软件系统和其他软件系统交换数据和相互调用服务的难易程度
7)可靠性
软件系统在一定时间以内无故障运行的能力
8)鲁棒性Robust(也称健壮性,容错性)
是指软件系统在以下情况下依然能够正常运行的能力,用户进行了非法操作,相连的软件系统发生了故障,其他非正常情况的发生。
2、开发期质量属性
1)易理解性:指设计被开发人员理解的难易程度
2)可扩展性:为适应新需求和需求的变化为软件增加功能的能力
3)可重用性:重用软件系统或其一部分能力的难易程度
4)可测试性:对软件测试以证明其满足需求规约的难易程度
5) 可维护性:为了达到这三种目的之一而定位修改点并实施的难易程度:修改bug,增加功能,提高质量属性。
6)可移植性:将软件系统从一个运行环境转移到另一个不同的运行环境的难易程度。
二、在保持高“质量”软件开发过程中,面对常出现的问题有哪些应对方案?
1、明确的需求和验收标准
清晰、完整、适当详细、有凝聚力、可实现、可测试的规范或所有参与者都同意的验收标准。在“敏捷”类型的环境中,与产品所有者或其代表的持续密切协调是必要的,这可以确保及时了解不断变化的/新出现的需求。
2、合理的时间表
留出足够的时间进行规划、设计、测试、错误修复、重新测试、更改和文档编制;开发人员应该能积极的完成项目并能以可持续的速度工作。
3、充分的测试
尽早开始测试,在修复或更改后重新测试,为测试和错误修复计划足够的时间。“早期”测试可以包括静态代码分析/测试、开源代码分析、测试优先开发、开发人员的单元测试、内置测试和诊断功能等。如果作为整体测试策略的一部分进行有效设计和实施,借助自动化测试工具可以帮助开发团队高效工作。
4、尽量坚持最初的要求/标准
在开发开始和最后阶段尽量避免过多增加或更改需求。如果需要更改,则应在相关日程更改或故事/点更改中充分反映,并与客户/最终用户密切沟通。在敏捷开发环境中,需求可能经常变化是可以接受的,需要真正的敏捷过程到位。同时,在敏捷开发过程中,事故不应该在最后阶段才进行修改。
5、沟通
加强团队成员之间的沟通及与客户的沟通,确保信息保持一致,这不但可以促进团队合作,也能提高敏捷开发效率。
参读链接:
https://www.woocoom.com/b021.html?id=ff6ba79fce4a42c3bf9d4eddfc8e321f
http://www.softwareqatest.com/qatfaq1.html
https://blog.csdn.net/bryangp/article/details/113663009
来源:freebuf.com 2021-07-02 10:57:34 by: 中科天齐软件安全中心
请登录后发表评论
注册