本人博客文章网址:https://www.peretang.com/basic-knowledge-of-software-testing/



软件测试的目的


    1.  确认软件的质量

        a.  是确认软件做了你所期望做的事情(Do the right thing)
        b.  是确认软件以正确的方式来做了这个事情(Do it right)

    2.  是提供信息

        比如提供给开发人员或程序经理的回馈信息,为风险评估所准备的信息

    3.  是在测试软件软件产品本身,而且还包括软件开发的过程。

        如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此,软件测试的第三个目的是保证整个软件开发过程是高质量的。


软件测试的五种类型

     1.  单元测试

     2.  集成测试

     3.  功能测试

     4.  压力和负荷测试

     5.  验收测试


软件测试策略和要求

     1.  开发

         a.  测试覆盖率

         b.  编写可测试的代码

            ● 公共API是协议
            ● 减少依赖关系
            ● 减少依赖关系
            ● 简单的构造函数
            ● 遵循最少知识原则
            ● 避免隐藏的依赖关系和全局状态
            ● 避免使用静态方法
            ● 组合优于继承
            ● 多态优于条件语句            

          c.  测试驱动开发(TDD) 测试–>编码–>重构–>(重复)–>提交

             

     2.  测试

        a.  stub机制           粗粒度测试
        b.  mocks               细粒度测试
        c.  容器内测试        完整性测试