软件测试中系统测试之我见
系统测试的计划阶段最早开始,最晚执行,是一个严重“脱节”的测试阶段。但我认为这恰恰保证了系统测试的质量:评估一个软件产品首先要知道它的框架,从总体上认识了软件结构之后就开始安排测试过程、测试方案,例如是否安排预测试,采用什么测试工具,搭建什么样的测试环境等,但这些都不会是一成不变的,需要评审和等待后续工作的检验,会有在单元测试和集成测试阶段回头修改软件需求说明书的情况,单元测试其中一个主要目的就是检验需求能否实现,所以说系统测试方案与实现不是固定的,把系统测试的执行放在最后从整体上测试软件系统的好坏,是产品发布最后一道关(这里省略了用户测试)
软件质量模型总介绍质量与6大特性、27个子特性,这些可以知道我们进行系统测试。系统测试包括:功能测试function testing、性能测试performance testing、安全测试security testing、GUI测试、兼容性测试compatibily testing、压力测试pressing testing、容量测试volume testing、易用性测试usiblity testing、安装测试installing testing、配置测试configuration testing、文档测试documentation testing、备份测试backup testing、负载测试loading testing、在线帮助测试online help testing、网络测试webworking testing、稳定性测试stability testing、健壮性测试robustness testing、异常测试exception testing
这些测试之间有些交叉,有些测试涵盖了其他测试的内容,但这不说可以替代或者省略其他测试,每个测试的侧重点不同,就好比一台电脑,如果运转速度慢说明它的性能测试不通过,同时也说明了易用性测试也很差,但两者的侧重点不同,测试之后的提交的bug解决办法也不同。
功能性测试主要测试软件的功能性,有四种情况:没做该做的;做了不该做的;测试人员发现效果不好;隐性需求没有转化成显性需求;上面提到的该做什么是指那些呢?是软件需求说明书上罗列的需求。
性能测试从时间和空间上诠释性能的好坏,空间所指的是软件对资源的利用情况,一个简单的例子:在定义结构变量的过程中,结构的中的变量在定义的过程中内存都要分配相应的空间,变量在内存中的首地址必须能被变量的字节大小整除,这条规则导致了变量并不会连续存储在内存中,造成了空间的浪费,程序要做一些优化等等;时间所指软件的效率,运行速度等。
安全性测试用户之间的通信时需要协议支持,局域网有TCP,互联网有TCCP,不同的协议级别规定了用户的权限;数据库访问权限等。
GUI测试全拼是graphic use interface,图形使用接口,包括的内容很好理解,例如窗口的排版、颜色、大小、激活、纠错等等很好理解了。
压力测试的目的是寻找系统的压力点。
负载测试是测试系统的负载能力是否在用户的使用范围内,跟踪系统状况。
容量测试构造了几组容量不同的数据包,运行一种或几种业务,确定系统的容量大小。
文档测试时测试人员要把自己相像成一名用户,根据文档提示操作软件,找出软件中的问题,这也是编写测试用例的入口。
异常测试是指测试人员模拟异常情况,观察软件的容错以及恢复性,有些多发的异常情况在编程初期就应该考虑到,并设计出解决办法,比如可以修改代码规避错误,有些异常虽然可以估计到,但通过代码无法规避,最有效的办法运用冗余技术,包括时间冗余、信息冗余、结构冗余其中包括静态冗余、动态冗余、硬件冗余、附加冗余等,举个简单的例子:Internet与局域网连接中间加了一层防火墙,防火墙有两个系统,一个运行中一个处于静止,当其中一个被攻破时另一个可以接替工作,这个过程中间断的发送心跳信息。
系统测试也用到一些工具比如性能测试:loadrunner robot
功能测试工具:robot
缺陷管理工具:bugzilla freebug clear questions
测试管理工具:QC