zoukankan      html  css  js  c++  java
  • 程序员修炼之道系列 | 无情的测试

    视频地址:https://www.zentao.net/programmer/programmer-test-80388.html

    测试是怎么来的?

    时间退回到很久之前,大多数程序员都不写测试。直到程序员葛丽丝·霍波发现了那只被夹扁在电脑主机内的飞蛾,开始了程序的调试工作,这就是软件测试的前身。

    硬件工程中的Bug很难查,一旦出现,修复成本也很高,稍不留神就需要重新做一套模具。所以硬件工程往往有层层测试,来极早发现问题,尽量保证简单且质量高。

    同样,软件开发也不甘示弱。毕竟Bug被发现得越早,维护的成本就越低。SmallTalk世界里不是有句话这样说:“编一点,测一点”。

    怎样测试?

    软件开发中,需要测试的工作很多,主要有以下分类:

    • 按测试阶段分类:单元测试、集成测试、系统测试、验收测试
    • 按测试手段分类:黑盒测试、白盒测试、手工测试、自动化测试
    • 按测试类型分类:功能测试、性能测试、兼容性测试

    所有的软件功能最终都会被测试,这是一场测试人员和终端用户的赛跑。  

    测试人员没有检查出的Bug,最终都会由用户测试出来,不良体验会增加我们的用户维护成本。为了避免这种情况,可以通过各种测试来抓住漏网的Bug:

    1. 回归测试——确认今天的Bug修正有没有影响到昨天可以工作的代码

    2. 测试数据——测试的数据不能局限于理想数据,要给出正常、异常状态下的各种数据 

    3. 对测试进行测试——故意引入Bug,证实这个Bug确实是个Bug

    4. 彻底测试——测试所有场景,但穷尽测试是不可能的,应设定及时终止的条件

    5. 对测试进行设计——编码的同时,加入测试思维,使最终的代码不仅仅能工作,还有利于后期的代码维护

    6. 自动化测试——易出错、需多次重复的测试,可以用自动化测试代替人力

    测试中的二八原则

    二八原则始于Pareto(帕雷托)原则,就是这个人(意大利经济学家Villefredo Pareto)发明的,其实他就想告诉我们,做事要抓重点。二八原则用在软件中,具体可以表达三个含义。

    1、80%的错误是由20%的模块引起的

    系统中20%拥有复杂逻辑的关键模块,往往会引起80%的错误,只有关键模块稳定了,整个系统才能稳定。

    2、80%的测试成本花在20%的软件模块中

    测试工作中,用低效且量多的用例来测试核心模块,在测试执行过程中必将导致一部分关键Bug找不到。

    3、80%的测试时间花在20%的软件模块中

    复杂的模块或全新系统,需要投入充足的时间来设计思考测试用例,用时越短,风险越大。

    好项目的测试代码可能比产品代码还要多。而事实证明,编写这些测试所花的时间是值得的。因为只有通过了全部测试,编码才算完成,这份高度自信,就是测试给的。

    更多精彩视频分享:https://www.zentao.net/page/college.html

  • 相关阅读:
    POJ 1113--Wall(计算凸包)
    博弈论笔记--06--纳什均衡之约会游戏与古诺模型
    atan和atan2反正切计算
    POJ 1410--Intersection(判断线段和矩形相交)
    FirstBird--项目流程
    POJ 2653--Pick-up sticks(判断线段相交)
    POJ 1066--Treasure Hunt(判断线段相交)
    POJ 2398--Toy Storage(叉积判断,二分找点,点排序)
    Jetty数据同步使用
    Linux小知识(1): bash中执行数据库的相关操作
  • 原文地址:https://www.cnblogs.com/zentao/p/15160560.html
Copyright © 2011-2022 走看看