2010-08-11 51 views
0

我正在準備面試,並且遇到了這些問題。有人可以幫助解決這些問題。關於出列和測試的問題

  1. 想象一下,你已經二維繫統,它只是測試2個矩形是否碰撞狀態或沒有,你應該做一個程序來這個系統從開發人員的代碼,並自動進行測試,看看如果它運行良好,並輸出代碼中錯誤的百分比?

  2. 爲在兩個對象之間共享的固定長度隊列寫出隊列和出隊方法。這裏對象指的是什麼?線程同步?

感謝&問候,

像老鼠

回答

1

對於1)您應該測試矩形中的重疊。我將開發的第一個測試只是將矩形放在彼此的頂部,慢慢移開,直到沒有發現碰撞。錯誤很可能必須衡量重疊的百分比或重疊的像素數量。我會這樣做......誰知道他們可能已經開發了算法來精確到像素誤差或對象誤差的大小。即......對於較小的物體更精確。在這個初步的「快速測試」之後,我試圖開發一個更一般的案例,其中重疊的變化更大。即...左上角的1​​個像素與另一個矩形的左下角的1個像素重疊,矩形的大小各不相同。測試一些聰明的角落案例和一些僞隨機重疊三角形對我來說似乎是一個很好的測試設計。

我總是先開發簡單的測試以獲得即時反饋,然後嘗試轉向更全面和更徹底的測試。顯然,如果你把兩個完全重疊的矩形放在一起,並且沒有碰撞,那麼就是錯誤的。

對於2)計數信號量想到的方法來解決這個問題。你希望它在輸入端隊列滿時阻塞,當隊列在出隊端是空的時候阻塞。我不確定這兩個對象是否可以排隊和出隊,但是如果使用信號量來跟蹤隊列的狀態,這並不重要。每當您修改隊列時,您也希望獲得排他鎖。

+0

我認爲問題中的對象是生產者和消費者問題中的生產者和消費者。 – 2010-08-11 03:21:35

0

對於第一個,只要插上一個已知的數據集,並把結果寫入。聽起來更像是一個編碼任務,而不是概念測試。

對於第二個,寫一個循環隊列。一般來說,如果您正在編寫一般數據結構而不是使用庫,那麼您的工作就會出現問題。

除非他們提到線程,否則我不會做大量的事情。但是把所有的關鍵部分放在一起都不會讓人受傷。