一、测试的本质
1、测试其实是发现并解决问题的过程,而其 目标则是让软件产品以尽可能高的质量交付给客户,使软件产品中存在的问题尽可能少、运用风险分析和不同系统功能的测试优先级,来确定测试的关注点,从而替代穷尽 测试。
2、软件开发本身是追求产出和投入比的工程性过程。因此,考虑测试的内容和方式时, 都应当以高产出投入比为最终目标
二、测试的抽样特性
除了小型项目,进行完全(各种输入和前提条件的组合)的测试是不可行的三、测试类型的多样性
1、单元测试:和开发最接近的一种测试。开发人员编写单元测试用例并执行,验证单元 模块是否得出预期的结果。
在敏捷开发模式中,有一种流行的开发模式叫做测试驱动开发。测试驱动开发的核心就是把单元测试用例先做好,功 能开发以通过相应的单元测试用例为目标。
敏捷开发从根本上避免了瀑布模型的弱点,它有两个核心点——迭代开发和增量开发
3、性能测试:重点验证软件的非功能性需求 的测试。通过自动化的方 法模拟真实用户并发访问的场景,以验证系统的性能指标(吞吐率、稳定性、可靠性)或发现其性能瓶颈
4、兼容性:版本、浏览器等等兼容检查
5、探索性测试:“无目的” + 站在用户角度“随机”使用系统
四、测试的目标
软件潜在问题尽可能的减少软件测试结果对软件的拥有者/用户负责
五、开发团队做的远不仅是开发
1、开发人员的开发技能与 软件是 否以高质量完成有重要的关系2、软件提测质量直接关系到测试人员的工作量,甚至产品上线质量
3、不规范的开发过程给测试、上线、乃至风险控制带来巨大困难