软件产品质量属性中的功能性,是指软件产品在指定条件下使用时,提供满足明确和隐含要求的功能的能力。
从功能性的定义来看,产品的功能并不像表面上看起来那么简单 - 除了满足 “明确” 的要求,还有更深一层的 “隐含” 的要求。“明确”+“隐含” 才构成了用户对产品真正的、完整的功能要求。
功能性被分成了 5 个子属性:
可靠性被分成了 5 个子属性:
成熟性:软件产品为避免因软件故障而导致失效的能力。
容错性:软件产品在软件发生故障或者违反指定接口的情况下,维持规定的性能级别的能力。
可恢复性:软件产品在失效发生的情况下,重建规定的性能级别并恢复受直接影响的数据的能力。
可靠性顺从性:软件产品遵循与可靠性相关的标准、约定或规定的能力。
2.1.功能性:验证产品能否满足特定功能要求并做出正确响应。
2.2.安全性测试:验证产品是否有保护数据的能力,并能在合适的范围内承受恶意攻击。
2.3.兼容性测试:验证产品是否能够和其它相关产品顺利对接。
2.4. 配置测试:验证产品是否能够在推荐配置上流畅运行;验证产品为了完成特定功能的输入是否会出现故障。
2.5.可靠性测试:验证产品在长时间运行下能否满足保证系统的性能水平;在存在异常的情况下系统是否依然可靠。
2.6. 易用性测试:验证产品是否易于理解、易于学习和易于操作。
2.7. 性能测试:测试产品提供某项功能时的时间和资源使用情况。
2.8. 安装测试:测试产品能否被正确安装并运行。
测试出系统最好的性能值:
系统能够正确处理新业务的最大能力
系统能够同时正确处理的最大业务能力
分析会影响性能值的各种因素,测试它们对性能的影响
以场景为单位来测试性能
一致性测试法:
测试对象:用户界面,如 Web 页面、命令行等用户和产品直接进行交互的地方。
关注产品的用户界面:
风格、布局、元素上是否一致、统一。
布局的合理性、操作的合理性、提示等是否符合 UI 设计规范。
可用性测试法:
测试对象:用户界面。
关注产品提供的功能:对用户来说,是否易于学习理解、易于使用。
可用性测试,需要和功能测试结合,以场景作为测试粒度,以用户的视角进行测试。
特征一:“参数值” 的个数是有限的,可以通过遍历的方式来测试覆盖到;
特征二:系统会对不同的 “参数值”,作出不同的处理或响应。
特点一:数据的取值是一个范围,通常不能用遍历的方式来测试覆盖。
特点二:系统对允许输入的 “数据” 作出的处理或响应往往是一样的。
路径是指,完成一个功能,用户所执行的步骤,即通过程序代码的一条运行轨迹。
路径分析法:指对能够覆盖流程的各种路径进行分析,得到一个路径的集合。在测试时,只需要按照这个路径进行集合测试即可。
不同的覆盖策略,能够得到不同的路径集合。常见覆盖策略:语句覆盖、分支覆盖、全覆盖、最小线性无关覆盖。
使用四步测试设计法对参数类的测试点进行测试设计:
2.使用 “输入 - 输出表” 来建模:
3."输入 - 输出表"是一张分析测试点,在某种条件下,特定的 “输入” 会有怎样 “输出” 的表。
4.覆盖 “输入 - 输出表”,完成测试用例:
5.根据经验补充测试用例:
1.1. 等价类是指,对输入值按照测试效果进行划分,将测试效果相同的测试数据归为一类,然后在测试时,只需要在每类中选择一些测试样本来进行测试,而无测试所有的值。
2.使用 “等价类分析表” 来建模:
3.覆盖等价类分析表 - 完成测试用例:
4.根据经验补充测试用例:
1.使用 “因子表” 来建模:
2.使用 “PICT” 工具,生成测试用例:
3.根据经验补充测试用例:
1.控制用例粒度:用例粒度是对测试用例是精细还是笼统地描述测试点的通俗说法。测试用例越聚集到一个功能点上,这个功能点越小越细,用例粒度就越细;反之,如果一个测试用例包含了比较多的功能点,这个测试用例的用例粒度就会比较粗。
2.控制用例粒度,意味着要做以下两件事:
3.策略覆盖:
1.探索性测试 (exploratory testing),最早由测试专家 Cem Kanner 博士 在 1983 年提出,是一种强调测试人员同时开展测试学习、测试设计、测试执行,并根据测试结果反馈及时优化的测试方法。
2.探索式测试的基本思想-CPIE:
3.选择合适的探索式测试方法:
3.2.4 破旧区测试法:
3.2.5 旅馆区测试法:
3.2.6 旅游区测试法:
3.2.6 其它区测试法:
1.2 前期开发成本:
1.3 影响后期维护的成本:
1.1 产品测试中的沟通原则:
1.2 通过沟通来获得对产品测试有用的信息:
1.3 和测试团队成员沟通:
1.4 和领导或投资决策者沟通: