1.竞争条件和时序错乱:在真正的多任务环境中软件设计不能想当然,必须处理随时被中断的情况,能够与其他任何软件在系统中同时运行,并且共享内存、磁盘、通信设备以及其他硬件资源。这一切的的结果可能导致竞争条件问题。这些问题的几个事件恰好挤在一起,软件未预料到的操作过程被中断,时序会发生错乱。竞争条件测试难以设计,好是首先仔细查看状态转换图中的每一个状态,以找出哪些外部影响会中断该状态。考虑要使用数据如果没有准备好,或者在用到时发生了变化,状态会怎样。数条弧线或者直线同时相连的情形如何。

下是要面临竞争条件的典型情形:

A.两个不同的程序同时保存或打开同一个文档。

B.共享同一台打印机、通信端口或者其他外围设备。

C.当软件处于读取或者修改状态时按键或者单击鼠标。

D.同时关闭或者启动软件的多个实例。

E.同时使用不同的程序方位一个共同数据库。

2.重复、压迫和重负

测试的目标是处理那些连程序员都没有想到的恶劣条件下产生的问题的能力。

A.重复测试是不断执行同样的操作。简单的是不停地启动和关闭程序,或者反复读写数据或者选择同一个操作。这种测试的主要目的是看内存是否不足。如果内存被分配进行某项操作,但操作完成时没有完全释放,会产生一个常见的软件问题。

B.压迫测试是使软件在不够理想的条件下运行??内存小、磁盘空间少、CPU速度慢、调制解调器速率低等等。观察软件对外部资源的要求和依赖程度。压迫测试是将支持降到低限度,目的在于尽可能的限制软件的必要条件。

C.重负测试和压迫测试相反。压迫测试是尽量限制软件,而重负测试是尽量提供条件任其发挥。让软件处理尽可能大的数据文件。大限度的发掘软件的能力,让它不堪重负。比如:软件对打印机或通信端口进行操作,把能连的都连上;服务器可以处理几千个模拟连接,按他说的做。
三者应联合使用,同时进行。

注意事项:

A.项目管理员和小组程序员可能不完全接受软件测试员这样打破软件的做法。但是软件测试员的任务是确保软件在这样恶劣的条件下正常工作,否则报告软件缺陷。如何以佳方式报告软件缺陷,使其得到严肃对待和修复,也是一门学问。

B.无数次重复和上千次的连接对于手工操作是不可能的。因而需要借助自动化测试工具来实现。