2010-07-12 28 views
1

請給我指出任何欺騙或更好的地方發佈這個問題,你可能會發現。我以前從未銷售軟件,但是當我把自己放在客戶的鞋子裏時,我想,「我確實希望看到我購買的任何軟件的自動測試源代碼,它可以作爲真棒詳細的我正在購買的軟件的文檔!事實上,如果可能,我希望在購買之前將測試看作概念驗證。「使用封閉源代碼應用程序發佈自動化測試的源代碼是常見甚至是好主意嗎?

從賣家的角度來看,沒有理由隱藏測試代碼源(只要測試只通過「前門」訪問二進制文件並且不包含敏感數據),或者甚至將測試作爲開源源發佈從任何想要幫助我們的人那裏獲得幫助,並向潛在客戶證明軟件可以做些什麼。

那麼......是不是習慣,甚至是一個好主意,讓用戶看到(某些)自動測試代碼,甚至釋放它開源,對於你出售封閉源代碼的應用程序?

編輯:謝謝大家的有見地的意見。我應該澄清一下,我的目標是而不是來說「看看我的軟件質量如何!」而是「這是你如何使用軟件」(使用測試作爲文檔)。這是一個API;不涉及UI。我只是想演示如何使用它(公共接口),而不是內部工作。我真的很討厭那些很長的演示程序,但是通過API只展示「快樂的道路」,所以我一直在尋找一種改進的方法。

+1

什麼樣的應用程序?誰是預期的客戶? – 2010-07-12 17:11:20

+0

@Dave - 這是一個API。它歸結爲從一個普通的第三方實現到另一個第三方接口的適配器。客戶將是IT人員希望將第三方的服務用於後者的第三方系統。 – apollodude217 2010-07-13 05:06:26

回答

2

這個想法可能對客戶有好處,但對您不利。幾乎不可能創建一套自動化測試,不會利用您的實現的某些意外屬性,這些屬性沒有記錄,您希望稍後可以自由更改。一旦你讓這些測試出來,你基本上保證這些測試將在軟件的任何未來版本上運行。你不想把自己鎖在這樣的緊身衣上。

從理論上說,當然,你可以有一組將測試測試究竟什麼是公共接口暴露,不能多也不能少。但是隨着軟件的發展,這樣的測試套件的創建和維護將非常昂貴。 而這個想法令人想起其中一個次要apocrypha:

理論上,理論和實踐是相同的。在實踐中,他們不是。

+0

非常好的一點。我確實計劃發佈測試,顯示「到底公開界面中暴露的是什麼,不多也不少 - 正是演示應用會暴露的內容。我想問題在於要小心暴露的內容與我保留的內容對自己。 – apollodude217 2010-07-13 05:44:44

2

暴露你的人複製你的實現,如果他們能夠準確地測試兼容性。

發佈API或設計爲暴露區域的測試可能是有意義的,但如果產品是封閉源代碼,則揭示內部工作的線索似乎是交叉目的。

+0

感謝您的輸入。測試如何將內部工作的線索暴露出來 - 也就是說,測試中有哪些信息在API本身中不可用?此外,不會演示應用程序(通常是發佈)提供相同程度的線索?我想除了開發人員需要知道使用API​​之外,我沒有看到測試提供了什麼線索。 – apollodude217 2010-07-13 05:49:07

+0

說有人想製作一個免費版本的程序x。他們不得不猜測這個特徵y和z一樣。通過測試套件,他們可以檢查該功能是否按預期工作。您可以爲API兼容性創建一個測試套件,但爲API內部實現發佈測試套件將以相同的方式公開您。 – Metalshark 2010-07-13 07:52:43

2

它既不習慣也不是一個好主意,讓用戶看到任何自動化測試的測試結果。

想到這時候你去Ø醫生等。醫生可以通過將血液或其他物品送到實驗室進行任何測試。實驗室處理它並將結果發回給醫生。

如果您在之前發現之前的結果,您可能會完全誤解他們;而(s)他被訓練去理解什麼樣的價值觀是在正常的或者在正常範圍之外,更重要的是正常的東西對你來說是什麼。

同樣的道理也適用於這裏。您可能有一組測試始終失敗。最終用戶只會看到失敗,但不瞭解這些特定測試完全不會影響他們,因爲他們完全不會影響他們。例如,假設您的代碼庫中有一部分代碼不完整,並且已準備好供生產使用。但是,您可能已經設置了測試來強調該代碼。因爲知道您將在下個月完成該區域。

在這種情況下,您是否希望當前客戶說出一個觀點,即5%的測試失敗?或者,您願意讓您當前的客戶說「我使用的所有產品都完美無缺」。

- 我想補充一兩件事 -
最終用戶可以查看任何小故障作爲這意味着你的整個應用程序被打破的趨勢。大多數人唯一的參考是他們的車。如果電池沒電,那麼整個車都壞了。

這將導致你很多的挫折。特別是如果你對一些甚至可能無法在生產中重現的邊緣情況進行測試。所有的用戶都會看到有些東西壞了,因此不信任整個應用程序正常運行。

+0

FWIW,我的HMO讓我可以訪問網絡,我可以看到我所有的實驗室測試。它似乎爲他們工作。 – 2010-07-12 17:10:33

+0

我們在每個測試的基礎上練習紅色,綠色,重構,所以我們「保持酒吧綠色」。我的目標是向客戶提供關於他們可以用軟件做什麼的詳細信息,而不是通常提供的演示應用程序,而不是它的工作效果。 – apollodude217 2010-07-13 05:15:59

+0

@ apollodude217:即使在這種情況下,我堅持認爲給予你的單元測試是一個壞主意。隨着您的更新,更好的方法是與演示應用程序保持一致。 – NotMe 2010-07-13 15:30:23

0

取而代之的是,做自己的自動測試並公開顯示結果。連續的一百個複選標記肯定會提高軟件的感知可靠性。

2

不習慣,我從來沒有見過這個開箱即用的軟件。

但是,我已經看到客戶(在更科學和/或工程領域)誰會用他們自己的測試和數據「認證」軟件以確保軟件不偏離他們自己的標準這可能與開發人員設置的不同)。

當認證完成(並被接受)後,新版本的軟件即可投入生產。

+0

關於外部驗證的好處 - 內部產生的測試看起來太偏向於不被信任。 – Metalshark 2010-07-12 18:18:34

相關問題