我正在准备面试,我遇到了这些问题。有人可以帮助解决这些问题。
想象一下你的2D系统只测试2个矩形是否处于碰撞状态,你应该制作一个程序,从开发人员那里获取该系统的代码并自动测试它它是否正常工作,并输出代码中错误的百分比?
为两个对象共享的固定长度队列写出队列和解除队列方法。这里的对象是指什么?线程同步?
谢谢&的问候,
mouseY的
答案 0 :(得分:1)
对于1)您应该测试矩形中的重叠。我将开发的第一个测试只是从彼此顶部的矩形开始,然后缓慢地将它们分开,直到没有检测到碰撞。错误很可能必须测量重叠的百分比或重叠的像素数。我会做两个......谁知道他们可能已经开发出算法精确到像素错误或对象错误的%大小。即......对于较小的物体更准确。在最初的“快速测试”之后,我试图开发一个更一般的情况,重叠有更多的变化。即...左上角的1个像素与另一个矩形的左下角中的1个像素重叠,具有不同大小的矩形。测试一些智能角落情况和一些伪随机重叠三角形对我来说似乎是一个很好的测试设计。
我总是首先开发简单的测试以获得即时反馈然后尝试转向更一般和彻底的测试。显然,如果你把两个完全重叠的矩形放下来并且没有碰撞就会出错。
For 2)计算信号量是解决这个问题的一种方法。您希望它在输入端的队列已满时阻塞,并在队列在出列端为空时阻止。我不确定这两个对象是否可以排队和出列,但是如果你使用信号量来跟踪队列的状态则无关紧要。您还希望在修改队列时获得独占锁。
答案 1 :(得分:0)
对于第一个,只需插入已知数据集并编写结果即可。听起来更像是编码分配而不是概念测试。
对于第二个,写一个循环队列。通常,如果您正在编写通用数据结构而不是使用库,那么您的工作就会出现问题。
除非他们提到线程,否则我不会做很多事情。但是围绕一切抛出关键部分也不会受到伤害。