精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

變異測試:如何利用故障?

開發(fā) 測試
本文探討了在構(gòu)建包含某些依賴項的解決方案時使用 DevOps 的好方法。

使用事先設(shè)計好的故障以確保你的代碼達到預(yù)期的結(jié)果,并遵循 .NET xUnit.net 測試框架來進行測試。

 

[[279678]]

在變異測試是 TDD 的演變 一文中,我談到了迭代的力量。在可度量的測試中,迭代能夠保證找到問題的解決方案。在那篇文章中,我們討論了迭代法幫助確定實現(xiàn)計算給定數(shù)字平方根的代碼。

我還演示了最有效的方法是找到可衡量的目標(biāo)或測試,然后以最佳猜測值開始迭代。正如所預(yù)期的,第一次測試通常會失敗。因此,必須根據(jù)可衡量的目標(biāo)或測試對失敗的代碼進行完善。根據(jù)運行結(jié)果,對測試值進行驗證或進一步加以完善。

在此模型中,學(xué)習(xí)獲得解決方案的唯一方法是反復(fù)失敗。這聽起來有悖常理,但它確實有效。

按照這種分析,本文探討了在構(gòu)建包含某些依賴項的解決方案時使用 DevOps 的好方法。第一步是編寫一個預(yù)期結(jié)果失敗的用例。

依賴性問題是你不能依賴它們

正如邁克爾·尼加德Michael Nygard在《沒有終結(jié)狀態(tài)的架構(gòu)》中機智的表示的那樣,依賴問題是一個很大的話題,最好留到另一篇文章中討論。在這里,你將會看到依賴項給項目帶來的一些潛在問題,以及如何利用測試驅(qū)動開發(fā)(TDD)來避免這些陷阱。

首先,找到現(xiàn)實生活中的一個挑戰(zhàn),然后看看如何使用 TDD 解決它。

誰把貓放出來?

 

[[279679]]

一只貓站在屋頂

在敏捷開發(fā)環(huán)境中,通過定義期望結(jié)果開始構(gòu)建解決方案會很有幫助。通常,在 用戶故事user story 中描述期望結(jié)果:

我想使用我的家庭自動化系統(tǒng)(HAS)來控制貓何時可以出門,因為我想保證它在夜間的安全。

現(xiàn)在你已經(jīng)有了一個用戶故事,你需要通過提供一些功能要求(即指定驗收標(biāo)準(zhǔn))來對其進行詳細(xì)說明。 從偽代碼中描述的最簡單的場景開始:

場景 1:在夜間關(guān)閉貓門

  • 用時鐘監(jiān)測到了晚上的時間
  • 時鐘通知 HAS 系統(tǒng)
  • HAS 關(guān)閉支持物聯(lián)網(wǎng)(IoT)的貓門

分解系統(tǒng)

開始構(gòu)建之前,你需要將正在構(gòu)建的系統(tǒng)(HAS)進行分解(分解為依賴項)。你必須要做的第一件事是識別任何依賴項(如果幸運的話,你的系統(tǒng)沒有依賴項,這將會更容易,但是,這樣的系統(tǒng)可以說不是非常有用)。

從上面的簡單場景中,你可以看到所需的業(yè)務(wù)成果(自動控制貓門)取決于對夜間情況監(jiān)測。這種依賴性取決于時鐘。但是時鐘是無法區(qū)分白天和夜晚的。需要你來提供這種邏輯。

正在構(gòu)建的系統(tǒng)中的另一個依賴項是能夠自動訪問貓門并啟用或關(guān)閉它。該依賴項很可能取決于具有 IoT 功能的貓門提供的 API。

依賴管理面臨快速失敗

為了滿足依賴項,我們將構(gòu)建確定當(dāng)前時間是白天還是晚上的邏輯。本著 TDD 的精神,我們將從一個小小的失敗開始。

有關(guān)如何設(shè)置此練習(xí)所需的開發(fā)環(huán)境和腳手架的詳細(xì)說明,請參閱我的上一篇文章。我們將重用相同的 NET 環(huán)境和 xUnit.net 框架。

接下來,創(chuàng)建一個名為 HAS(“家庭自動化系統(tǒng)”)的新項目,創(chuàng)建一個名為 UnitTest1.cs 的文件。在該文件中,編寫第一個失敗的單元測試。在此單元測試中,描述你的期望結(jié)果。例如,當(dāng)系統(tǒng)運行時,如果時間是晚上 7 點,負(fù)責(zé)確定是白天還是夜晚的組件將返回值 Nighttime

這是描述期望值的單元測試:

  1. using System;
  2. using Xunit;
  3.  
  4. namespace unittest
  5. {
  6. public class UnitTest1
  7. {
  8. DayOrNightUtility dayOrNightUtility = new DayOrNightUtility();
  9.  
  10. [Fact]
  11. public void Given7pmReturnNighttime()
  12. {
  13. var expected = "Nighttime";
  14. var actual = dayOrNightUtility.GetDayOrNight();
  15. Assert.Equal(expected, actual);
  16. }
  17. }
  18. }

至此,你可能已經(jīng)熟悉了單元測試的結(jié)構(gòu)。快速復(fù)習(xí)一下:在此示例中,通過給單元測試一個描述性名稱Given7pmReturnNighttime 來描述期望結(jié)果。然后,在單元測試的主體中,創(chuàng)建一個名為 expected 的變量,并為該變量指定期望值(在該示例中,值為 Nighttime)。然后,為實際值指定一個 actual(在組件或服務(wù)處理一天中的時間之后可用)。

最后,通過斷言期望值和實際值是否相等來檢查是否滿足期望結(jié)果:Assert.Equal(expected, actual)

你還可以在上面的列表中看到名為 dayOrNightUtility 的組件或服務(wù)。該模塊能夠接收消息GetDayOrNight,并且返回 string 類型的值。

同樣,本著 TDD 的精神,描述的組件或服務(wù)還尚未構(gòu)建(僅為了后面說明在此進行描述)。構(gòu)建這些是由所描述的期望結(jié)果來驅(qū)動的。

app 文件夾中創(chuàng)建一個新文件,并將其命名為 DayOrNightUtility.cs。將以下 C# 代碼添加到該文件中并保存:

  1. using System;
  2.  
  3. namespace app {
  4. public class DayOrNightUtility {
  5. public string GetDayOrNight() {
  6. string dayOrNight = "Undetermined";
  7. return dayOrNight;
  8. }
  9. }
  10. }

現(xiàn)在轉(zhuǎn)到命令行,將目錄更改為 unittests 文件夾,然后運行:

  1. [Xunit.net 00:00:02.33] unittest.UnitTest1.Given7pmReturnNighttime [FAIL]
  2. Failed unittest.UnitTest1.Given7pmReturnNighttime
  3. [...]

恭喜,你已經(jīng)完成了第一個失敗的單元測試。單元測試的期望結(jié)果是 DayOrNightUtility 方法返回字符串 Nighttime,但相反,它返回是 Undetermined

修復(fù)失敗的單元測試

修復(fù)失敗的測試的一種快速而粗略的方法是將值 Undetermined 替換為值 Nighttime 并保存更改:

  1. using System;
  2.  
  3. namespace app {
  4. public class DayOrNightUtility {
  5. public string GetDayOrNight() {
  6. string dayOrNight = "Nighttime";
  7. return dayOrNight;
  8. }
  9. }
  10. }

現(xiàn)在運行,成功了。

  1. Starting test execution, please wait...
  2.  
  3. Total tests: 1. Passed: 1. Failed: 0. Skipped: 0.
  4. Test Run Successful.
  5. Test execution time: 2.6470 Seconds

但是,對值進行硬編碼基本上是在作弊,最好為 DayOrNightUtility 方法賦予一些智能。修改 GetDayOrNight 方法以包括一些時間計算邏輯:

  1. public string GetDayOrNight() {
  2. string dayOrNight = "Daylight";
  3. DateTime time = new DateTime();
  4. if(time.Hour < 7) {
  5. dayOrNight = "Nighttime";
  6. }
  7. return dayOrNight;
  8. }

該方法現(xiàn)在從系統(tǒng)獲取當(dāng)前時間,并與 Hour 比較,查看其是否小于上午 7 點。如果小于,則處理邏輯將 dayOrNight 字符串值從 Daylight 轉(zhuǎn)換為 Nighttime。現(xiàn)在,單元測試通過。

測試驅(qū)動解決方案的開始

現(xiàn)在,我們已經(jīng)開始了基本的單元測試,并為我們的時間依賴項提供了可行的解決方案。后面還有更多的測試案例需要執(zhí)行。

在下一篇文章中,我將演示如何對白天時間進行測試以及如何在整個過程中利用故障。 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2019-10-25 10:34:49

變異測試單元測試

2022-07-12 09:02:36

探索性測試測試

2019-11-14 11:05:32

ARP命令故障

2021-12-09 09:58:50

黑客新冠變異病毒攻擊

2009-05-12 10:36:38

OracleREDO恢復(fù)

2013-01-28 10:18:36

無線信號無線網(wǎng)絡(luò)路由器

2020-02-25 21:32:59

TmuxkubectlKubernetes

2010-08-25 10:39:58

路由器故障

2022-08-11 16:37:55

單元測試代碼

2020-04-19 21:10:11

機器學(xué)習(xí)病毒數(shù)據(jù)

2011-01-24 13:58:24

TCPIP協(xié)議棧

2013-05-24 10:15:55

CDNCDN故障

2010-08-30 19:51:08

DHCP故障

2015-01-23 09:38:31

2022-03-03 09:43:34

人工智能電網(wǎng)機器學(xué)習(xí)

2016-12-09 11:02:39

大數(shù)據(jù)

2011-03-04 09:09:07

BlueJ

2023-10-25 09:26:23

Linux工具

2011-04-26 16:35:35

噴頭故障噴墨打印

2011-07-04 18:12:09

功能測試故障模型
點贊
收藏

51CTO技術(shù)棧公眾號

天堂av在线免费| 国产黄色录像视频| 午夜伦理福利在线| 国产亚洲综合性久久久影院| 国产精品专区第二| 久久久精品99| 国产成人高清| 欧美一区二区播放| 国产淫片免费看| 日本中文字幕电影在线免费观看| 国产盗摄视频一区二区三区| 日本欧美国产在线| 9999热视频| 亚洲区小说区| 日韩精品在线网站| 国产精品视频黄色| av影片在线| 白浆在线视频| 99在线精品视频在线观看| 夜夜嗨av一区二区三区四区| 特黄特色免费视频| 成人国产综合| 精品人伦一区二区三区蜜桃免费| 99亚洲精品视频| 青青久在线视频| 国产成人午夜视频| 国产精品揄拍500视频| 伊人365影院| 久久精品欧美一区| 国产亚洲欧美另类中文| 波多野结衣加勒比| 欧美9999| 欧美日韩午夜影院| 成人在线观看黄| 国产精品蜜臀| 亚洲视频 欧洲视频| 日本一区二区三区视频在线播放| 成人午夜福利视频| 精品制服美女丁香| 国产精品久久久久久久久久久久久| 黄色小说在线观看视频| 久久久久av| 色哟哟入口国产精品| jizz欧美性20| 国产在线播放精品| 欧美v国产在线一区二区三区| 亚洲第一成人在线| 成人av在线网址| 少妇又紧又色又爽又刺激视频| 在线视频观看日韩| 欧美韩国理论所午夜片917电影| 免费在线观看a级片| 清纯唯美亚洲综合一区| 国产亚洲日本欧美韩国| 日韩精品无码一区二区三区久久久| 欧美一区二区三区久久| 亚洲国产欧美自拍| 毛茸茸free性熟hd| 免费看久久久| 日韩成人高清在线| 成人无码www在线看免费| 精品国产影院| 日韩精品在线私人| 欧美熟妇精品黑人巨大一二三区| 国产精品丝袜在线播放| 亚洲成成品网站| 99久久免费看精品国产一区| 精品少妇3p| 日韩电影在线观看永久视频免费网站| 国产xxxxxxxxx| 亚洲调教一区| 国产午夜精品一区二区三区| 毛片视频免费播放| 91精品亚洲| 欧美日韩国产成人在线| 在线看成人av| 欧美一级久久| 国产精品视频永久免费播放| 一本色道久久综合熟妇| 国产一区二区三区高清播放| 成人自拍爱视频| 日本午夜在线视频| 青草在线视频| 蜜臀精品一区二区三区在线观看| 国产精品亚洲激情| 国产熟女一区二区三区五月婷| 国产盗摄女厕一区二区三区| 精品国产乱码久久久久久88av | 免费日韩精品中文字幕视频在线| 热久久99这里有精品| 日韩欧美一级大片| 国产精品一级在线| 蜜桃视频日韩| 午夜老司机在线观看| 一区2区3区在线看| 无码精品国产一区二区三区免费| 全球最大av网站久久| 日韩欧美视频在线| 天天躁日日躁aaaxxⅹ| 国产精品久久久久蜜臀| 久久男人资源视频| 青娱乐在线免费视频| 黑人精品欧美一区二区蜜桃 | 久久久免费高清电视剧观看| 国产专区第一页| 精品亚洲porn| 久久久久久艹| 成人a在线视频免费观看| 天天影视色香欲综合网老头| 色噜噜狠狠永久免费| 精品深夜福利视频| 日韩在线视频免费观看| 国产精品xxxx喷水欧美| 久久成人免费日本黄色| 黑人中文字幕一区二区三区| 黄色免费在线看| 欧美日韩一区二区精品| 下面一进一出好爽视频| 波多野结衣在线播放一区| 国外成人在线播放| 国产成人毛毛毛片| 国产精品人成在线观看免费| 欧美日韩在线一| 国产一区二区在线观| 国产一区二区三区在线| 日本三级欧美三级| 国产一区二区美女| 日本电影一区二区三区| 亚洲精品国产久| 在线毛片网站| 色婷婷狠狠综合| 男人网站在线观看| 欧美福利影院| 成人激情在线观看| www.在线播放| 在线免费观看成人短视频| 视频免费在线观看| 欧美婷婷在线| 99久久免费国| a在线免费观看| 91麻豆精品久久久久蜜臀| 精品熟妇无码av免费久久| 欧美亚洲专区| 欧美日产一区二区三区在线观看| 1区2区3区在线| 亚洲精品在线观看网站| 青草草在线视频| 国产在线观看一区二区| 中文字幕一区二区三区最新 | 色综合网站在线| jizz欧美性20| 久久综合导航| 日韩av一级大片| 亚洲欧美在线成人| 一区二区三区黄色| 中文字幕一区二区三区四区视频| 国产欧美日韩久久| 污视频免费在线观看网站| 精品日韩免费| 国产精品欧美激情在线播放| 都市激情在线视频| 欧美日韩国产综合久久| 香蕉成人在线视频| 久久av中文字幕片| 在线观看三级网站| japanese色系久久精品| 国语对白做受69| 欧美日韩国产中文字幕在线| 欧美在线一二三| 欧美性生交大片| 国产一区三区三区| 男人的天堂狠狠干| 伊人春色之综合网| 国产精品欧美激情| 自拍亚洲图区| 日韩成人在线观看| 少妇久久久久久久| 亚洲男人的天堂网| 日本道中文字幕| 日日欢夜夜爽一区| 欧美一级一区二区| 成人一区二区av| 丁香一区二区| 国产精品av网站| av在线免费网站| 日韩成人黄色av| 夜夜躁狠狠躁日日躁av| 亚洲中国最大av网站| 免费黄色在线视频| 精东粉嫩av免费一区二区三区| 日本aa在线观看| 国模吧精品视频| 亚洲自拍高清视频网站| 在线手机中文字幕| 欧美成人免费全部| 九九在线视频| 欧美大片国产精品| 中文字幕手机在线视频| 一区二区在线免费观看| 亚洲精品成人无码熟妇在线| 精东粉嫩av免费一区二区三区| 女性女同性aⅴ免费观女性恋| 日韩大片在线播放| 国产精品.com| 精品美女一区| 668精品在线视频| 国内精品不卡| 亚洲无亚洲人成网站77777| 国产高清视频免费| 在线精品视频小说1| 国产一级特黄视频| 国产精品福利av| 巨胸大乳www视频免费观看| 国产乱码精品一区二区三区五月婷| heyzo国产| 欧美久久成人| 亚洲精品日韩成人| 色狼人综合干| 国产精品免费一区二区| gogo大尺度成人免费视频| 清纯唯美亚洲激情| av免费不卡国产观看| 久久影院资源网| av影片在线看| 亚洲欧美日韩第一区| 欧洲精品久久一区二区| 日韩视频免费观看高清完整版在线观看| 亚洲自拍一区在线观看| 性做久久久久久久久| 久久久久久久久久一区二区三区| 中文字幕一区二区三区蜜月| 色欲AV无码精品一区二区久久| www.爱久久.com| 亚洲欧美综合视频| 国产福利一区二区三区视频| 五月天丁香花婷婷| 久久精品国产999大香线蕉| 人人爽人人av| 久久久久亚洲AV成人无在| 久久国产免费| 精品中文字幕av| 国产一区二区三区久久| 三上悠亚久久精品| 亚洲日本视频| 国产精品久久中文字幕| 最新亚洲视频| 黄色网页免费在线观看| 亚洲美女色禁图| 国产69精品久久久久999小说| 在线成人黄色| 日本人体一区二区| 亚洲精选国产| 欧美亚洲国产成人| 久久精品91| 88av.com| 久久99久久精品欧美| 午夜国产福利在线观看| 国内精品免费**视频| www.污网站| 国产成人亚洲精品青草天美| 第一页在线视频| 成人免费av在线| 国产xxxxxxxxx| 久久久久久久久岛国免费| 91网站免费入口| 欧美黑人激情| 日韩国产高清污视频在线观看| 五月婷中文字幕| 亚洲欧美中文字幕| 337p日本欧洲亚洲大胆鲁鲁| 日韩有码在线电影| 中文在线观看免费| 97久久精品视频| 国精产品一区二区三区有限公司| 国产精品永久免费| 精品国产欧美| 精品国产一区二区三区日日嗨| 视频一区欧美| 四虎影院一区二区| 亚洲国产精品一区制服丝袜| 黄色片视频在线播放| 麻豆成人免费电影| 一二三区视频在线观看| 91啪亚洲精品| 来吧亚洲综合网| 亚洲成人一区二区| 中文天堂在线播放| 日韩欧美中文字幕制服| 日本天堂影院在线视频| 精品国产拍在线观看| 牛牛在线精品视频| 国产成人精品免费久久久久| 国产精品1区| 美女一区视频| 91精品电影| 中文字幕乱码人妻综合二区三区| 精品一区二区三区免费观看| 在线视频 日韩| 中文字幕五月欧美| 国产成人无码精品久久久久| 欧美三级在线看| 欧美一区二区三区黄片| www.久久撸.com| 日本黄色免费在线| 97se在线视频| 第一会所亚洲原创| 成人黄色av片| 国产一区二区三区四区在线观看| 亚洲国产果冻传媒av在线观看| 国产精品久久久久国产精品日日 | 欧美肥老太太性生活| 欧美成人三级在线视频| 久久er99热精品一区二区| 黄色性生活一级片| 一区二区三区 在线观看视频| 国产精品xxxxxx| 亚洲国产精品久久精品怡红院| 免费在线看a| 国产国语videosex另类| 精品按摩偷拍| 欧洲精品在线播放| 激情亚洲综合在线| 亚洲日本精品视频| 欧美日韩国产激情| 亚洲第一页视频| 久久综合免费视频影院| 高清av一区二区三区| 欧美lavv| 国产日韩欧美| 久久久久久久人妻无码中文字幕爆| 自拍偷拍亚洲激情| 中文字幕av资源| 亚洲人成电影网站色| 午夜不卡影院| 久久99精品久久久久子伦| 国产精品第十页| 永久免费看片在线观看| 亚洲你懂的在线视频| 国产麻豆一精品一男同| 精品国产一区二区三区在线观看 | xxxwww国产| 亚洲午夜私人影院| 亚洲av色香蕉一区二区三区| 久久手机免费视频| 91久久青草| 天天做天天爱天天高潮| 国产综合色在线| 日韩国产第一页| 这里是久久伊人| 国产秀色在线www免费观看| 国产日本欧美视频| 91综合在线| 两性午夜免费视频| 亚洲品质自拍视频| www男人的天堂| 久久免费视频在线| 亚洲动漫在线观看| www.色偷偷.com| 国产精品久久精品日日| 中文字幕免费观看视频| 日韩在线免费观看视频| 国产95亚洲| 成人免费看片'免费看| 成人午夜av电影| 五月天激情国产综合婷婷婷| 亚洲人a成www在线影院| 日韩综合久久| 国产性生活免费视频| 成人午夜视频网站| 国产尤物在线视频| 这里只有视频精品| 1024av视频| 国产毛片精品国产一区二区三区| 91porn在线视频| 日韩av在线看| 成人国产精品入口免费视频| 中文字幕乱码免费| 99久久婷婷国产综合精品电影| 久久夜色精品国产噜噜亚洲av| 国产亚洲激情在线| 国产精品日本一区二区不卡视频| 欧美乱做爰xxxⅹ久久久| 91丨九色丨国产丨porny| 最新在线中文字幕| 欧美老少配视频| 在线看成人短视频| 亚洲精品免费一区亚洲精品免费精品一区 | 国产精品成久久久久三级| 永久91嫩草亚洲精品人人| 一区二区三区四区影院| 色天使久久综合网天天| 成人av福利| 欧美日韩亚洲在线| 国产精品系列在线观看| 伦av综合一区| 色综合久综合久久综合久鬼88| 免费精品国产| 野花视频免费在线观看| 在线看日本不卡| 国产高清视频色在线www|