2010-08-11 70 views
0

我正在准备面试,并且遇到了这些问题。有人可以帮助解决这些问题。关于出列和测试的问题

  1. 想象一下,你已经二维系统,它只是测试2个矩形是否碰撞状态或没有,你应该做一个程序来这个系统从开发人员的代码,并自动进行测试,看看如果它运行良好,并输出代码中错误的百分比?

  2. 为在两个对象之间共享的固定长度队列写出队列和出队方法。这里对象指的是什么?线程同步?

感谢&问候,

像老鼠

回答

1

对于1)您应该测试矩形中的重叠。我将开发的第一个测试只是将矩形放在彼此的顶部,慢慢移开,直到没有发现碰撞。错误很可能必须衡量重叠的百分比或重叠的像素数量。我会这样做......谁知道他们可能已经开发了算法来精确到像素误差或对象误差的大小。即......对于较小的物体更精确。在这个初步的“快速测试”之后,我试图开发一个更一般的案例,其中重叠的变化更大。即...左上角的1​​个像素与另一个矩形的左下角的1个像素重叠,矩形的大小各不相同。测试一些聪明的角落案例和一些伪随机重叠三角形对我来说似乎是一个很好的测试设计。

我总是先开发简单的测试以获得即时反馈,然后尝试转向更全面和更彻底的测试。显然,如果你把两个完全重叠的矩形放在一起,并且没有碰撞,那么就是错误的。

对于2)计数信号量想到的方法来解决这个问题。你希望它在输入端队列满时阻塞,当队列在出队端是空的时候阻塞。我不确定这两个对象是否可以排队和出队,但是如果使用信号量来跟踪队列的状态,这并不重要。每当您修改队列时,您也希望获得排他锁。

+0

我认为问题中的对象是生产者和消费者问题中的生产者和消费者。 – 2010-08-11 03:21:35

0

对于第一个,只要插上一个已知的数据集,并把结果写入。听起来更像是一个编码任务,而不是概念测试。

对于第二个,写一个循环队列。一般来说,如果您正在编写一般数据结构而不是使用库,那么您的工作就会出现问题。

除非他们提到线程,否则我不会做大量的事情。但是把所有的关键部分放在一起都不会让人受伤。