什么是死锁,死锁的四个必要条件以及处理死锁的策略

什么是死锁?如果一个进程集合里面的每个进程都在等待只能由这个集合中的其他一个进程(包括他自身)才能引发的事件,这种情况就是死锁。

这个定义可能有点拗口,一个最简单的例子就是有资源A和资源B,都是不可剥夺资源,现在进程C已经申请了资源A,进程D也申请了资源B,进程C接下来的操作需要用到资源B,而进程D恰好也在申请资源A,那么就引发了死锁。这个肯定每个人都看过了。然后套用回去定义:如果一个进程集合里面(进程C和进程D)的每个进程(进程C和进程D)都在等待只能由这个集合中的其他一个进程(对于进程C,他在等进程D;对于进程D,他在等进程C)才能引发的事件(释放相应资源)。
Continue reading “什么是死锁,死锁的四个必要条件以及处理死锁的策略”

正交矩阵在测试用例设计中的应用

正交矩阵测试策略Orthogonal Array Testing Strategy (OATS)

其实我本身没有负责这个项目的测试,不过是不想闲着所以拿这个做做玩玩:)有这样一个弹出窗口,上面有很多CheckBox,我只选了其中的7个作为例子的测试对象,意在举例子。


Continue reading “正交矩阵在测试用例设计中的应用”

《Software Testing》第二十一章 – 软件质量保证

Quality Is Free – 质量是免费的。

质量为什么是免费的呢?因为其实一个公司可以不花费额外的开销就能生产出一个高质量的产品。回到前面书中已经提过了,越晚发现缺陷,付出就越大,而且这个不是呈现线性增长,而是指数增长。

把达到高质量产品的花费划分为两种不同类型,一种是conformance cost另一种是nonconformance cost。conformance的开销是指-计划测试并且运行一次测试证明软件是正常工作的,对于这些活动的总开销,就是conformance cost。如果软件存在缺陷,那么投入到隔离缺陷,提交缺陷报告,回归测试等相关活动的开销,就算是nonconformance cost的一部份。以上的错误都是在产品发布之前发生的,所以归类未内部错误(internal failures),而且总体的付出的不多的。
Continue reading “《Software Testing》第二十一章 – 软件质量保证”

《Software Testing》第二十章 – 度量你的工作

Using the Information in the Bug Tracking Database – 善于利用缺陷跟踪系统的数据。

我们把缺陷提交到数据库以后,其实我们得到不单只是一条记录那么简单,我们还能从里面得到更多。例如在1个月前项目的进展情况,在哪些模块上发现了多少的bug,上周的情况如何?我们还能根据这些数据来预测将来大概会是一个什么样子的情况。我们可以定义许多度量标准。有些公司可能用一个测试员发现多少bug来作为一个标准,其实这是不科学的,因为有可能刚好那个测试员所测的模块是由一个高手来写的,或者那个模块特别复杂然后做这个模块的人特别没经验,那么结果就相反了。

Metrics That You’ll Use in Your Daily Testing – 日常工作中常用的度量
除了提交bug,缺陷管理系统里面另外一个常用的功能莫过于查询出我们感兴趣的bug了。呵呵。我自己在公司就有几个查询,就是用来查找自己提交的bug的。随时跟踪情况。还有就是查询特定ID的bug,查询一下BUG的标题,看有没有重复提交的。
Continue reading “《Software Testing》第二十章 – 度量你的工作”