投诉与举报有什么区别| 县级干部是什么级别| 磨平了棱角是什么意思| 望尘莫及的及是什么意思| 什么是西米| 疝气看病挂什么科| 举足轻重什么意思| 胆汁是由什么分泌的| 什么是c位| 酸菜鱼加什么配菜好吃| 得过且过是什么意思| 梦见血是什么预兆解梦| 渗湿是什么意思| 吃什么不便秘可以通便| 大学生村官是什么编制| 八月十八号是什么星座| 腰酸胀是什么原因| 胃胀气吃什么食物| 突然长胖很多是什么原因| 醴什么意思| 总流口水是什么原因| 虾吃什么| 长白班什么意思| 肺火大吃什么药| 邮箱是什么| 双相障碍是什么| 试管是什么意思| 鼻子两侧毛孔粗大是什么原因造成的| 什么时候洗头是最佳时间| 葡萄糖阴性什么意思| fte是什么意思| 狗感冒了吃什么药| 血糖高去医院挂什么科| 蹲着有什么好处| 喉咙痒想咳嗽吃什么药| 办理出院手续都需要什么| mic是什么单位| 椎间盘突出是什么意思| 鼻息肉是什么症状| 胎儿打嗝是什么原因| 平扫是什么意思| 大蒜泡酒有什么功效| 梦见黑色的蛇是什么意思| 什么的北风| 山药补什么| 孕酮低吃什么| 尿酸高会引起什么疾病| 腰疼肚子疼是什么原因引起的| 印度人口什么时候超过中国| 老年人手抖是什么原因| 结核t细胞阳性说明什么| 肾结石什么不能吃| 湿疹不能吃什么| 为什么会得口腔溃疡| 犒赏是什么意思| 胆结石是什么原因造成的| 护理和护士有什么区别| 法国的货币叫什么| 壤土适合种植什么植物| 番茄可以做什么菜| 走马灯什么意思| 交警中队长是什么级别| 九宫八卦是什么意思| 乙肝病毒表面抗体阳性是什么意思| 腹腔肠系膜淋巴结是什么病| 槐花什么时候开花| 为什么明星都不戴黄金| 变蛋吃多了有什么好处和坏处| 男性内分泌失调有什么症状| 喜金是什么意思| 宝宝蛋白质过敏喝什么奶粉| 老三篇是什么意思| 川字纹有什么影响| 混油皮是什么特征| 14年属什么生肖| 吃了螃蟹后不能吃什么| 88年属龙是什么命| 氨甲环酸又叫什么名| 山梨糖醇是什么| 九月十四号是什么星座| 试管婴儿是什么| 澄面是什么面粉| 血液循环不好吃什么药| 闲敲棋子落灯花上一句是什么| 无偿献血证有什么用| 手术后吃什么好| 什么食物对肺有好处| 蒙脱石散是什么成分| 氯雷他定片是治什么的| 结膜炎用什么眼药水效果好| 人老珠黄是什么动物| 劳动法什么时候实施的| 什么叫cd| 98年的属什么| 外阴瘙痒用什么洗| 排恶露吃什么药| bmi什么意思| 起付线是什么意思| 男人胡子长得快是什么原因| 阴灵是什么意思| 白细胞高说明什么| 宫颈光滑说明什么| 怀孕的尿液是什么颜色| 白炽灯属于什么光源| 葡萄胎是什么意思| 腱鞘炎有什么症状| 原图是什么意思| 888红包代表什么意思| 至少是什么意思| 后背痛是什么病的先兆| 三拜九叩是什么意思| 14年婚姻是什么婚| 心肌病是什么症状| 为什么会肚子疼| 假牛肉干是什么做的| 人黄是什么| 营养师属于什么专业| 潦倒是什么意思| 经常喝茶叶有什么好处| 胃阴虚吃什么药| 黄帝内经是什么时期的| 早上六点半是什么时辰| hpv跟tct有什么区别| 头上长了个包挂什么科| 颠是什么意思| 妇科病是什么| 煲汤放什么药材补气血| 2021年属什么生肖| 声线是什么意思| 精疲力尽是什么意思| bp在医学上是什么意思| pla是什么意思| ab和b型血生的孩子是什么血型| 天五行属什么| 为什么女娲是一条蛇| 缺钾吃什么补得最快| 梦见租房子住是什么意思| 御是什么意思| 血清高是什么原因| gy是什么意思| 安赛蜜是什么| 时迁是什么意思| 洗了牙齿要注意什么| 大姨妈期间适合吃什么水果| 药剂师是干什么的| 慢性肾功能不全是什么意思| 917是什么星座| 颅内缺血灶是什么病症| 心口疼是什么原因女性| 基础代谢率是什么意思| 做尿常规挂什么科| 有恃无恐什么意思啊| 什么老什么老| 信必可为什么轻微哮喘不能用| 生物公司是做什么的| 老人尿失禁吃什么药最好| 韩红是什么军衔| 尿道感染要吃什么药| 在什么情况下最容易怀孕| 奶粉二段和三段有什么区别| 蒸馏水是什么水| 7月11号什么星座| susie是什么意思| 六月二号什么星座| 什么是风湿病| 什么是盗汗| 左卵巢囊性结构是什么意思| 黄豆什么时候播种| apc是什么意思| 梦到兔子是什么征兆| 小分子肽能治什么病| 哺乳期牙龈肿痛可以吃什么药| 什么食物利尿| 梦到考试是什么意思| 冬至广东吃什么| 女人为什么要嫁人| 什么军官可以随身配枪| 克霉唑为什么4天一次| 刮脸有什么好处与坏处| 喝什么茶清肺效果最好| 俄罗斯信奉什么教| 便血鲜红色无疼痛是什么原因| 骨髓瘤是什么病| 女人脸色发黄吃什么补得最快| 胭脂是什么东西| 心肌缺血吃什么药效果最好| 生化全项包括什么| 什么时候同房最容易怀孕| 彩色相片什么时候出现| 七月份有什么节日吗| prbpm是什么意思| 血糖高的人早餐吃什么最好| 失眠吃什么食物| 经常催吐有什么危害| 淋巴细胞比率偏高是什么意思| 脑出血什么原因引起的| amy什么意思| 恐龙的祖先是什么| 经常做梦是什么原因| 梦见和死人说话是什么意思| 游离甲状腺素偏低是什么意思| 睡眠障碍吃什么药最好| 98年一月属什么生肖| 风情万种的意思是什么| 猴子捞月是什么生肖| 孕妇缺碘对胎儿有什么影响| 歹且念什么| tomboy是什么意思| 庆帝为什么杀叶轻眉| 三角梅什么时候换盆| 为什么大医院不用宫腔镜人流| 早搏什么症状| 哈气是什么意思| 1994年出生属什么| 西兰花是什么季节的蔬菜| 空调输入功率是什么意思| 吃核桃有什么好处| 高血脂吃什么药效果好| 母公司是什么意思| 荔枝有什么作用与功效| 道德什么意思| leep是什么手术| icd是什么意思| daks是什么品牌| 杨梅用什么酒泡最好| 社畜是什么意思| rm是什么币| 夺嫡是什么意思| 嘴角上火是什么原因| 阴道内壁是什么样的| 失眠是什么| john是什么意思| 撤退性出血什么意思| 肠胃炎吃什么水果比较好| 草是什么颜色的| 睡觉手麻是什么原因引起的女人| 公鸡的尾巴有什么作用| 什么人容易得格林巴利| 神经官能症挂什么科| 什么是性病| 脚长水泡是什么原因| 普洱茶是属于什么茶| 宫颈炎吃什么药最好| 流年花开讲的什么| 游坦之练的什么武功| 五大仙家什么仙最厉害| 为什么每次同房后都会尿路感染| 牛肉跟什么炒好吃| 全飞秒手术是什么| 刘五行属性是什么| 肝血管瘤有什么症状表现| 剖腹产坐月子可以吃什么水果| 6.3是什么星座| 属龙女和什么属相最配| 电磁炉用什么锅最好| 12月生日是什么星座| 黄瓜有什么营养价值| 一笑了之是什么意思| 胆大包天是什么生肖| 梦到女朋友出轨是什么意思| 85年五行属什么| 杭州菜属于什么菜系| 上火吃什么食物| 嘴苦是什么情况| 百度Jump to content

宫颈筛查是检查什么

From Wikipedia, the free encyclopedia
百度 该模式通过打造完整的跨境消费闭环,为消费者提供更好的消费体验和高品质商品,两种模式的结合将产生巨大潜力。

Random testing is a black-box software testing technique where programs are tested by generating random, independent inputs. Results of the output are compared against software specifications to verify that the test output is pass or fail.[1] In case of absence of specifications the exceptions of the language are used which means if an exception arises during test execution then it means there is a fault in the program, it is also used as a way to avoid biased testing.

History of random testing

[edit]

Random testing for hardware was first examined by Melvin Breuer in 1971 and initial effort to evaluate its effectiveness was done by Pratima and Vishwani Agrawal in 1975.[2]

In software, Duran and Ntafos had examined random testing in 1984.[3]

The use of hypothesis testing as a theoretical basis for random testing was described by Howden in Functional Testing and Analysis. The book also contained the development of a simple formula for estimating the number of tests n that are needed to have confidence at least 1-1/n in a failure rate of no larger than 1/n. The formula is the lower bound nlogn, which indicates the large number of failure-free tests needed to have even modest confidence in a modest failure rate bound.[4]

Overview

[edit]

Consider the following C++ function:

int myAbs(int x) {
    if (x > 0) { 
        return x;
    }
    else {
        return x; // bug: should be '-x'
    }
}

Now the random tests for this function could be {123, 36, -35, 48, 0}. Only the value '-35' triggers the bug. If there is no reference implementation to check the result, the bug still could go unnoticed. However, an assertion could be added to check the results, like:

void testAbs(int n) {
    for (int i=0; i<n; i++) {
        int x = getRandomInput();
        int result = myAbs(x);
        assert(result >= 0);
    }
}

The reference implementation is sometimes available, e.g. when implementing a simple algorithm in a much more complex way for better performance. For example, to test an implementation of the Sch?nhage–Strassen algorithm, the standard "*" operation on integers can be used:

int getRandomInput() {
    // …
}

void testFastMultiplication(int n) {
    for (int i=0; i<n; i++) {
        long x = getRandomInput();
        long y = getRandomInput();
        long result = fastMultiplication(x, y);
        assert(x * y == result);
    }
}

While this example is limited to simple types (for which a simple random generator can be used), tools targeting object-oriented languages typically explore the program to test and find generators (constructors or methods returning objects of that type) and call them using random inputs (either themselves generated the same way or generated using a pseudo-random generator if possible). Such approaches then maintain a pool of randomly generated objects and use a probability for either reusing a generated object or creating a new one.[5]

On randomness

[edit]

According to the seminal paper on random testing by D. Hamlet

[..] the technical, mathematical meaning of "random testing" refers to an explicit lack of "system" in the choice of test data, so that there is no correlation among different tests.[1]

Strengths and weaknesses

[edit]

Random testing is praised for the following strengths:

  • It is cheap to use: it does not need to be smart about the program under test.
  • It does not have any bias: unlike manual testing, it does not overlook bugs because there is misplaced trust in some code.
  • It is quick to find bug candidates: it typically takes a couple of minutes to perform a testing session.
  • If software is properly specified: it finds real bugs.

The following weaknesses have been described :

  • It only finds basic bugs (e.g. null pointer dereferencing).
  • It is only as precise as the specification and specifications are typically imprecise.
  • It compares poorly with other techniques to find bugs (e.g. static program analysis).
  • If different inputs are randomly selected on each test run, this can create problems for continuous integration because the same tests will pass or fail randomly.[6]
  • Some argue that it would be better to thoughtfully cover all relevant cases with manually constructed tests in a white-box fashion, than to rely on randomness.[6]
  • It may require a very large number of tests for modest levels of confidence in modest failure rates. For example, it will require 459 failure-free tests to have at least 99% confidence that the probability of failure is less than 1/100.[4]

Types of random testing

[edit]

With respect to the input

[edit]
  • Random input sequence generation (i.e. a sequence of method calls)
  • Random sequence of data inputs (sometimes called stochastic testing) - e.g. a random sequence of method calls
  • Random data selection from existing database

Guided vs. unguided

[edit]
  • undirected random test generation - with no heuristics to guide its search
  • directed random test generation - e.g. "feedback-directed random test generation"[7] and "adaptive random testing" [8]

Implementations

[edit]

Some tools implementing random testing:

  • QuickCheck - a famous test tool, originally developed for Haskell but ported to many other languages, that generates random sequences of API calls based on a model and verifies system properties that should hold true after each run.
  • Randoop - generates sequences of methods and constructor invocations for the classes under test and creates JUnit tests from these
  • Simulant - a Clojure tool that runs simulations of various agents (e.g. users with different behavioral profiles) based on a statistical model of their behavior, recording all the actions and results into a database for later exploration and verification
  • AutoTest - a tool integrated to EiffelStudio testing automatically Eiffel code with contracts based on the eponymous research prototype.[5]·
  • York Extensible Testing Infrastructure (YETI) - a language agnostic tool which targets various programming languages (Java, JML, CoFoJa, .NET, C, Kermeta).
  • GramTest - a grammar based random testing tool written in Java, it uses BNF notation to specify input grammars.

Critique

[edit]

Random testing has only a specialized niche in practice, mostly because an effective oracle is seldom available, but also because of difficulties with the operational profile and with generation of pseudorandom input values.[1]

A test oracle is an instrument for verifying whether the outcomes match the program specification or not. An operation profile is knowledge about usage patterns of the program and thus which parts are more important.

For programming languages and platforms which have contracts (e.g. Eiffel. .NET or various extensions of Java like JML, CoFoJa...) contracts act as natural oracles and the approach has been applied successfully.[5] In particular, random testing finds more bugs than manual inspections or user reports (albeit different ones).[9]

See also

[edit]

References

[edit]
  1. ^ a b c Richard Hamlet (1994). "Random Testing". In John J. Marciniak (ed.). Encyclopedia of Software Engineering (1st ed.). John Wiley and Sons. ISBN 978-0471540021.
  2. ^ Agrawal, P.; Agrawal, V. D. (1 July 1975). "Probabilistic Analysis of Random Test Generation Method for Irredundant Combinational Logic Networks". IEEE Transactions on Computers. C-24 (7): 691–695. doi:10.1109/T-C.1975.224289.
  3. ^ Duran, J. W.; Ntafos, S. C. (1 July 1984). "An Evaluation of Random Testing". IEEE Transactions on Software Engineering. SE-10 (4): 438–444. doi:10.1109/TSE.1984.5010257.
  4. ^ a b Howden, William (1987). Functional Program Testing and Analysis. New York: McGraw Hill. pp. 51–53. ISBN 0-07-030550-1.
  5. ^ a b c "AutoTest - Chair of Software Engineering". se.inf.ethz.ch. Retrieved 15 November 2017.
  6. ^ a b "Is it a bad practice to randomly-generate test data?". stackoverflow.com. Retrieved 15 November 2017.
  7. ^ Pacheco, Carlos; Shuvendu K. Lahiri; Michael D. Ernst; Thomas Ball (May 2007). "Feedback-Directed Random Test Generation" (PDF). 29th International Conference on Software Engineering (ICSE'07). pp. 75–84. doi:10.1109/ICSE.2007.37. ISBN 978-0-7695-2828-1. ISSN 0270-5257.
  8. ^ T.Y. Chen; F.-C. Kuo; R.G. Merkel; T.H. Tse (2010), "Adaptive random testing: The ART of test case diversity", Journal of Systems and Software, 83 (1): 60–66, doi:10.1016/j.jss.2009.02.022, hdl:10722/89054
  9. ^ Ilinca Ciupa; Alexander Pretschner; Manuel Oriol; Andreas Leitner; Bertrand Meyer (2009). "On the number and nature of faults found by random testing". Software Testing, Verification and Reliability. 21: 3–28. doi:10.1002/stvr.415.
[edit]
血小板分布宽度是什么意思 水滴石穿是什么变化 条子是什么意思 糖尿病的人可以吃什么水果 什么叫钝痛
手心热是什么原因 黄金为什么值钱 隐身是什么意思 杰字属于五行属什么 完全性右束支传导阻滞是什么意思
手上脱皮是什么原因 肝血不足吃什么补最快 理性什么意思 眼力见是什么意思 手脱皮吃什么维生素
乙肝五项第二项阳性是什么意思 什么叫三观不正 自来熟是什么意思 伦字五行属什么 血儿茶酚胺是查什么的
什么叫感统训练hcv9jop2ns5r.cn 一动就大汗淋漓是什么原因hcv8jop9ns6r.cn 运单号是什么hcv8jop3ns4r.cn 挖野菜是什么意思hcv9jop6ns8r.cn 吃什么可以修复子宫内膜hcv9jop6ns8r.cn
笑口常开是什么生肖hcv9jop1ns3r.cn 盐酸对人体有什么危害helloaicloud.com 女人眼睛干涩吃什么药hcv9jop4ns6r.cn 玛丽苏什么意思hcv8jop6ns7r.cn 过誉是什么意思hcv7jop7ns1r.cn
感冒头疼吃什么药好hcv8jop7ns4r.cn 尿道炎吃什么药好得快hcv8jop3ns9r.cn 骨外科是看什么病的hcv9jop5ns3r.cn 什么锅好1949doufunao.com 后背有痣代表什么意思hcv8jop4ns4r.cn
惨不忍睹是什么意思hcv9jop3ns0r.cn 什么中药补肾最好hcv9jop8ns3r.cn 6月18日是什么节hcv9jop6ns6r.cn 金鸡独立是什么意思hcv8jop3ns3r.cn 秦始皇陵为什么不敢挖hcv9jop6ns1r.cn
百度