今天的一个面试问题:如何从设计角度保证软件的稳定性?
回来后google一下,没有发现软件稳定性的定义。
不知道稳定性测试都要做些什么?
12 个解决方案
#1
没人知道吗?
#2
一个软件的稳定与否是很难去量化和定义的,与具体的环境是有关系的。
#3
那稳定性测试怎么做啊?
#4
系统测试中应该包含
有很多类型,如压力测试,负载测试,硬件测试等
有很多类型,如压力测试,负载测试,硬件测试等
#5
软件的稳定性也就是软件自身在运行环境条件下的鲁棒性。
这需要作边缘测试来检验,而边缘测试的定义和实施都是需要很多经验来支持的,这对于新手来说是无法做到的。
边缘测试,举个例子:在压力测试中,可以在压力的最大值、最小值附近取值进行测试,甚至考虑超过最大值和最小值的方式进行测试。这就属于边缘测试。
这需要作边缘测试来检验,而边缘测试的定义和实施都是需要很多经验来支持的,这对于新手来说是无法做到的。
边缘测试,举个例子:在压力测试中,可以在压力的最大值、最小值附近取值进行测试,甚至考虑超过最大值和最小值的方式进行测试。这就属于边缘测试。
#6
软件的稳定性,指软件在持续操作时间内出错的概率,例如一天时间内会出错1次或几次。具体来定义它是否属不属于稳定,根据软件的具体要求来定义。
#7
软件的稳定性应该和软件的可靠性是不同的。软件的稳定性从软件开发的角度出发,强调软件架构的稳定,也就是说需求、代码等的变更对软件系统的影响尽可能地小,这也是架构设计要解决的首要任务。
#8
只有通过完善的测试,才能保证软件的稳定性。理想情况:当软件的所有路径都事先走一遍,所有可能的数据都执行一次,所有可能的外界影响都经历,那么,软件就会稳定了。我们无法达到理想状况,但我们要做到最接近于理想状况。
#9
还是我来解释一下吧
软件的稳定性,指软件在一个运行周期内、在一定的压力条件下,软件的出错机率、性能劣化趋势等。并观察其运行环境内的应用服务器、数据库服务器等系统的稳定性
#10
同意fierygnu(va_list)的说法。平均无故障时间等指标是说明系统的可靠性的。系统的稳定性应该是指系统的一些边缘故障。比如系统运行一直很好,只是偶尔出现一些奇怪的问题,但是找不到原因,经过重启或者重装之后就恢复正常,这就在考验系统的稳定性。从系统本身来说,没有无缘无故的爱也没有无缘无故的恨,出现问题一定是在某个方面有缺陷,而且问题往往是出在设计上。如果要从设计角度去保障软件的稳定性就需要设计人员充分的考虑系统各个模块之间的关系,减少耦合度,是问题隔离起来。很多问题都是出在模块之间的调用上的。模块内部也是一样,最大的问题就出在内存的使用上,不过这就到编码的问题了。总之,稳定的系统需要专业的有丰富经验的设计人员,合理的划分系统,详细设计做到足够细,避免在开发阶段出现问题。
#11
非常赞同fierygnu(va_list)和hunyahun(哈哈哈)的观点,学习!
#12
mark
#1
没人知道吗?
#2
一个软件的稳定与否是很难去量化和定义的,与具体的环境是有关系的。
#3
那稳定性测试怎么做啊?
#4
系统测试中应该包含
有很多类型,如压力测试,负载测试,硬件测试等
有很多类型,如压力测试,负载测试,硬件测试等
#5
软件的稳定性也就是软件自身在运行环境条件下的鲁棒性。
这需要作边缘测试来检验,而边缘测试的定义和实施都是需要很多经验来支持的,这对于新手来说是无法做到的。
边缘测试,举个例子:在压力测试中,可以在压力的最大值、最小值附近取值进行测试,甚至考虑超过最大值和最小值的方式进行测试。这就属于边缘测试。
这需要作边缘测试来检验,而边缘测试的定义和实施都是需要很多经验来支持的,这对于新手来说是无法做到的。
边缘测试,举个例子:在压力测试中,可以在压力的最大值、最小值附近取值进行测试,甚至考虑超过最大值和最小值的方式进行测试。这就属于边缘测试。
#6
软件的稳定性,指软件在持续操作时间内出错的概率,例如一天时间内会出错1次或几次。具体来定义它是否属不属于稳定,根据软件的具体要求来定义。
#7
软件的稳定性应该和软件的可靠性是不同的。软件的稳定性从软件开发的角度出发,强调软件架构的稳定,也就是说需求、代码等的变更对软件系统的影响尽可能地小,这也是架构设计要解决的首要任务。
#8
只有通过完善的测试,才能保证软件的稳定性。理想情况:当软件的所有路径都事先走一遍,所有可能的数据都执行一次,所有可能的外界影响都经历,那么,软件就会稳定了。我们无法达到理想状况,但我们要做到最接近于理想状况。
#9
还是我来解释一下吧
软件的稳定性,指软件在一个运行周期内、在一定的压力条件下,软件的出错机率、性能劣化趋势等。并观察其运行环境内的应用服务器、数据库服务器等系统的稳定性
#10
同意fierygnu(va_list)的说法。平均无故障时间等指标是说明系统的可靠性的。系统的稳定性应该是指系统的一些边缘故障。比如系统运行一直很好,只是偶尔出现一些奇怪的问题,但是找不到原因,经过重启或者重装之后就恢复正常,这就在考验系统的稳定性。从系统本身来说,没有无缘无故的爱也没有无缘无故的恨,出现问题一定是在某个方面有缺陷,而且问题往往是出在设计上。如果要从设计角度去保障软件的稳定性就需要设计人员充分的考虑系统各个模块之间的关系,减少耦合度,是问题隔离起来。很多问题都是出在模块之间的调用上的。模块内部也是一样,最大的问题就出在内存的使用上,不过这就到编码的问题了。总之,稳定的系统需要专业的有丰富经验的设计人员,合理的划分系统,详细设计做到足够细,避免在开发阶段出现问题。
#11
非常赞同fierygnu(va_list)和hunyahun(哈哈哈)的观点,学习!
#12
mark