一、健壮性测试
健壮性测试(Robustness Testing):
1.主要用于测试系统抵御错误的能力;
2.这里的错误通常是指由于设计缺陷而带来的系统错误。(自身的问题)
3.测试的重点为当出现故障时,是否能够自动恢复或忽略故障继续运行。
健壮性测试的现状:
1.企业往往分配少量的资源用于确定系统的异常处理,从而忽略系统健壮性。
2.一个好的软件系统必须经过健壮性测试才能最终交付给用户。
健壮性的含义:
1.一是高可靠性。体现了软件系统的质量;需要根据符合规格说明的数据选择测试用例,用于检测正常情况下的系统输出的正确性。
2.二是从错误中恢复的能力。体现了软件系统的适应性。需要在异常数据中选择测试用例,检测非正常情况下的系统行为。
健壮性的评价:
1.通过;
2.灾难性失效:最严重的;
3.重启失效:一个系统函数的调用没有返回,使得调用它的程序挂起或停止;
4.夭折失效:异常输入,系统发出错误提示,程序中止;
5.沉寂失效:异常输入,系统发出错误提示,但是测试结果没有发生异常;
6.干扰失效:系统异常时返回了错误提示,但是该错误提示不是期望中的错误;
自动化实现上述内容时需要把握的原则:
1.可移植性:健壮性测试基准程序是用来比较不同系统的健壮性,因此可移植性是测试基准程序的基本要求;
2.覆盖率:一般选用使用频度较高的模块进行测评;
3.可扩展性;
4.测试结果的记录;
二、安全性测试
安全性测试:
1.检查系统对非法入侵的防范能力。(外部的攻击)
2.其目的是为了发现软件系统中是否存在安全漏洞。
3.软件安全性是指在非正常条件下不发生安全事故的能力。
系统安全设计的准则:
使非法侵入的代价超过被保护的信息的价值。
安全性测试手段:
测试者扮演一个试图攻击系统的角色。
安全性的层次:
1.应用程序级别的安全性:对数据或业务功能的访问;
2.系统级别的安全性:对系统的登录或远程访问;
3.应用程序级别的安全性可确保在预期的安全性情况下,操作者只能访问特定的功能或用例,或者只能访问有限的数据;
4.系统级别的安全性对确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的入口来访问;
安全性测试方法:
1.功能验证:黑盒测试方法,主要是验证涉及安全的软件功能是否有效;
2.漏洞扫描:安全性漏洞扫描通常借助于特定的漏洞扫描器完成;
分为主机漏洞扫描器和网络漏洞扫描器:主机漏洞扫描器是指在本地运行检测系统漏洞的程序,网络漏洞扫描器是指基于网络远程监测目标网咯和主机系统漏洞的程序。
3.模拟攻击:模拟攻击来验证软件或信息系统的安全防护能力;
冒充;重演;消息篡改;拒绝服务(Dos);内部攻击;外部攻击;陷阱;木马;
4.侦听技术:实际上实在数据通信或数据交互过程中,对数据进行截取分析的过程。
目前最为流行的是网络数据包的捕获技术,通常称为Capture;
该项技术主要用于对网络加密的验证;
三、可靠性测试
软件可靠性:
在规定的时间、规定的运行剖面上运行规定的软件,测试其是否能正常执行的能力;
度量指标:
1.平均无故障时间是否超过规定时限;
2.因故障而停机的时间在一年中应不超过多少时间等;
3.可用软件可靠性模型来评估这些指标的有效性;
基本参数:
1.t1,t2,...,tn是系统正常工作的时间;T1,T2,...,Tn是系统的维护时间;
2.故障率:λ=n/Σti=总失效次数/总工作时间;单位是FIT,1FIT=10^-9/小时;
3.维修率:u=n/ΣTi=总失效次数/总维护时间;
4.平均无故障时间:MTBF=1/λ;
5.平均维护时间:MTTR=1/u;
6.有效度:A=总工作时间/(总工作时间+总维护时间)=MTBF/(MTBF+MTTR)=u/λ+u;
7.残留的缺陷数目No:可以采用第二章叙述的方法进行估计;
8.可靠性:R(t)=e^(-∫0t λ(t)dt);
四、恢复性测试
恢复性测试:
1.主要检查系统的容错能力;
2.恢复测试要采用各种方法强迫系统失败,然后验证系统是否能尽快恢复;
涉及恢复性测试用例时,需要考虑的问题:
1.测试是否存在潜在的灾难,以及可能造成的损失;
2.保护和恢复工作是否为灾难提供了足够的准备;
3.当真正需要时,恢复过程能否正常工作;
五、备份测试
1.备份测试是恢复性测试的一个补充,也是恢复性测试的一个部分;
2.备份测试的目的是验证系统在软件或者硬件失败时备份数据的能力;
3.备份测试需要考虑的角度;
六、兼容性测试
兼容性测试是指检查软件之间是否能够正确地进行交互和共享信息。
软件兼容性测试需要解决的问题:
1.软件设计需求与运行平台的兼容性;
2.软件的行业标准或规范,以及如何达到这些标准和规范的条件;
3.被测软件与其他平台、其他软件交互或共享的信息;
兼容性测试:
1.向前和向后兼容;
2.不同版本之间的兼容;
3.标准和规范;
4.数据共享兼容性;
七、安装性测试
1.安装性测试是软件测试首要解决的问题;
2.不仅要考虑在不同的操作系统上运行,还要考虑与现有软件系统的配合使用问题;
八、可用性测试
可用性测试是对于用户友好性的测试,是指在设计过程中被用来改善易用性的一系列方法。
可用性测试方法:
一对一用户测试;启发式评估;焦点小组;
测试人员应关注的问题:对于用户是否太过于复杂或者是否传递信息不够清晰。
九、配置测试
验证系统在不同的系统配置下能否正常工作。
目的:促使被测软件在尽可能多的硬件平台上运行。有时会和兼容性测试或安装测试一起进行。
十、文档测试
1.软件产品由可运行的程序、数据和文档组成。
2.一个好的软件文档可以提高软件产品的可用性和可靠性,降低支持费用。
3.文档测试目标是验证软件文档是否正确记录系统的开发全过程的技术细节。
4.文档测试的内容:文档的正确性;文档的完备性;文档的可理解性。
5.文档测试方法:文档走查;数据校对;操作流程检查;引用测试。
十一、GUI测试
十二、验收测试
1.验收测试是部署软件之前的最后一项测试,目的是确保软件准备就绪,并且可以让最终用户使用。
2.正式验收测试;非正式验收测试;Beta测试。
十三、回归测试
1.回归测试是在软件发生变动时保证原有功能正常运作的一种测试策略和方法。
2.不需要进行全面的测试,只需要根据修改的情况进行有选择性的测试。
十四、网站测试
文字测试;链接测试;图形测试;表单测试;动态内容测试;数据库测试;服务器性能和加载测试;安全性测试。
接下来大概是要复习现代操作系统或者计算机网络了。