zoukankan      html  css  js  c++  java
  • 功能开发的测试姿势

    测试优先!

    所谓测试优先,就是要先把测试准备好,以便在功能做了后马上可以测试

    提出测试优先,也很好地说明了测试的重要性,这是无数工程师呕心的体验得出的结论,不测试,或不能很好地进行测试,往往会付出惨重的代价。

    当不好进行测试时

    (1) 完成一次测试过于痛苦,极大降低工作效率;
    (2) 很可能选择不进行全面测试,在压力之下先上线,后患无穷。

    不正确的测试姿势

    (1)把简单的使用当作全部的测试
    把测试认为是简单的使用一下是不正确的。
    要正确认识测试的重要性,以开发同等重要的方式将测试作为工作内容,同时对测试分级别、场景、角色分别予以开展。
    (2)没有测试计划
    对测试没有进行系统化的分析,以碰运气的方式零星地进行。事实上,测试是需要工程化、系统化进行分析与设定的,它也应该有清晰的目标与范围。为了能全面覆盖方方面面,需要严谨地制定测试计划。即便简单点,至少需要列个涉及关键步骤的清单来进行,根据清单来能避免遗漏,呵呵。
    (3)没有测试记录
    测试发现的问题有多种,解决的方式也有多种选择,对测试不仅要记录测试的结果,同时要记录问题可能存在的隐性特性及处理办法,并要形成问题处理清单做为再次验证的基础。

    测试优先小小践行

    无论的大方面的系统,还是小方面的功能,都可以践行测试先行!
    举个小例,假如有以下代码,我们需要在 // 处添加功能部分 。

    $.ajax({
        type: "POST",
        url: "xxxx/yyyy",
        data: { act: "fetch" },
        success: function (resp) {
                var jo = eval("(" + resp + ")");
                var r0 = jo.calvalue; 
                // 添加功能部分,根据取得的值完成某些渲染
        },
        error: function (h) {
            alert(h.statusText);
        }
    });
    

    因为它的执行路径依赖于 url 的请求,所以对添加部分的测试很不方便。此时,如何能方便地测试就是重要的事情了。在做这件事之前,先应该规划好如何测试这部分代码确保它是可运行的。

    看得出,当我们以此为重去做的时候,很可能会把这一部分独立成一个方法,以便于独立地进行测试。于是对代码的组织就提出了要求,事实上它倒逼着我们更好的组织自己的代码。如此即方便测试,结构又更优雅。

    可能会形成这样的方法:

    function processCalvalue(calvalue) {
        // 具体处理代码;
    }
    

    上述 success 中则变成了简单的一句,功能在上边的方法中完成。

    success: function (resp) {
            var jo = eval("(" + resp + ")");
            var r0 = jo.calvalue; 
            // 添加功能部分,根据取得的值完成某些渲染
            processCalvalue(r0); 
    },
    

    在本地进行测试的代码就可能是:

    $(function () {
        // 测试运行
        processCalvalue(123456);    
    })
    

    良好的测试准备与习惯会为您节省非常多的时间,并让自己更有把握。共勉!

  • 相关阅读:
    Orcad Pspice仿真
    AD导入Allegro brd文件(导入后找不到PCB的解决方法)
    VJTAG转VME DTB
    win10 非Unicode应用程序显示设置
    MFC多文档视图编程总结
    VC MFC开发示例下载
    FPGA仿真及时序约束分析
    VMWARE Thin APP
    VPX技术基础概论
    SecureCRT脚本(VBS)运行
  • 原文地址:https://www.cnblogs.com/timeddd/p/11232730.html
Copyright © 2011-2022 走看看