目錄
正確性(計算機科學)
在理論計算機科學中,如果一個算法的行為符合規定,那么它對于一個規范來說就是正確的。探討得xxx的是功能正確性,它指的是算法的輸入-輸出行為(即,對于每個輸入,它產生一個滿足規范的輸出)。在后者的概念中,部分正確性,即要求如果返回的答案是正確的,與完全正確性是有區別的,后者還要求最終返回一個答案,即算法的終止。相應地,要證明一個程序的完全正確性,只需證明其部分正確性和終止。后一種證明(終止證明)永遠不可能完全自動化,因為停止問題是不可判定的。例如,連續搜索整數1,2,3,......,看我們是否能找到某個現象的例子--比如說一個奇數完全數--寫一個部分正確的程序是很容易的。但是說這個程序是完全正確的將是斷言目前在數論中不知道的東西。證明必須是一個數學證明,假設算法和規范都是正式給出的。特別是,它不應該是一個在特定機器上實現算法的特定程序的正確性斷言。這將涉及到對計算機內存的限制等考慮。證明理論中的一個深層結果,即Curry-Howard對應關系,指出構造邏輯中的功能正確性證明對應于λ微積分中的某個程序。以這種方式轉換一個證明被稱為程序提取。霍爾邏輯是一個特定的形式系統,用于嚴格推理計算機程序的正確性。
它使用公理技術來定義編程語言語義,并通過被稱為Hoare三要素的斷言來論證程序的正確性。軟件測試是任何旨在評估程序或系統的屬性或能力并確定其符合所需結果的活動。盡管對軟件質量至關重要,并且被程序員和測試人員廣泛部署,但由于對軟件原理的理解有限,軟件測試仍然是一門藝術。軟件測試的困難源于軟件的復雜性:我們不可能完全測試一個具有中等復雜度的程序。測試不僅僅是調試。測試的目的可以是質量保證,驗證和確認,或可靠性估計。測試也可以作為一個通用指標。正確性測試和可靠性測試是測試的兩個主要領域。軟件測試是預算、時間和質量之間的權衡。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/163144/