软件测试的基本概念和方法:
六个有关软件测试方法的基本概念是很重要的:白盒测试、黑盒测试、灰盒测试、有效/无效用例、边界条件、等价类测试。
白盒测试:通过程序的源代码进行测试而不使用用户界面,需要从代码句法发现内部代码在算法、溢出、路径、条件等处的缺点或错误,进而加以改正。
黑盒测试:通过使用整个软件或某种软件功能来严格地测试,而并未通过检查程序的源代码或很清楚了解该软件或某种功能的源码程序具体是如何设计的。
灰盒测试:通过用户界面测试,但测试人员已经有所了解该软件或某种软件功能的源代码程序设计。如果你知道产品内部的设计和对产品有透过用户界面的深入了解,就能够更有效和深入地从用户界面测试其各项性能。
有效用例:那些已知软件程序能正确地处理的测试用例。一般指软件输入的测试用例。
无效用例:那些事先就知道软件程序不支持处理的测试用例。
边界条件:环绕边界值的测试。
等价类:如果有很多测试用例执行再多也不会找到新的缺陷,因为虽然输入和输出的结果有所不同,但是它们都通过同样的软件的源代码路径。
软件测试的理论及实践:
测试时交付成功的优质产品的保证
单元测试: 针对每个模块进行的测试,可从程序的内部结构出发设计测试用例。
集成测试:在单元测试的基础上,将所有模块按照设计要求组装为系统,必须精心策划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。
确认测试:验证软件的功能和性能及其他特性是否与用户的要求一致。
系统测试:将软件放在整个计算机环境下,在实际运行环境下进行一系列的测试。
作为测试经理,应该有足够的质量意识。评价质量风险的方法是:失败模式和效果分析。这种方法可以允许你在特定的质量风险和结果上映射需求、规范以及项目小组假设。然后,按照风险级别进行分类并按序排列。
测试小组有多大的规模,一般取决于项目规模、测试人员与开发人员的比例、项目经理对质量保证的认识和期望等,也取决于你的准确的测试计划。
技巧及经验:
- 在制定测试计划的时候,考虑到测试风险,并抉择要执行哪些测试,放弃哪些测试,测试计划的评审应该让开发人员参与
- 测试模型的制作尽可能贴近用户,或站在用户使用立场来测试,此时能发现更多问题
- 在测试发现的问题得到解决之后需要回归测试,因此时间可能比实际来得长一些
- 识别和注意少数重要的方面,这些问题将是测试结果中重要性最高的错误
不同视角的性能测试基本概念:
- 性能的相关因素: 网络环境、数据库服务器、应用服务器、业务逻辑的实现方式、系统采用的架构、代码优化的程度、使用者的使用方式等。
- 一般来说,性能是一种指标,表明软件系统或构件对于其及时性要求的符合程度,其次,性能是软件产品的一种特性,可以用时间来进行度量。性能的及时性用响应时间或者吞吐量来衡量。
- 对交互式应用(如典型的web应用)来说,我们一般以用户感受到的响应时间来描述系统的性能,而对非交互式应用(嵌入式系统或银行等业务处理系统)而言,响应时间是指系统对事件产生响应所需要的时间。
- 用户视角:
- 软件性能是软件对用户操作的响应时间,有客观,也有主观。
- 管理员视角:
- 系统响应时间
- 系统状态相关信息,如CPU、内存、应用服务器状态、JVM可用内存、数据库状态等
- 系统的可扩展性,处理并发的能力
- 系统可能的最大容量,可能的性能瓶颈,通过更换哪些设备或是进行哪些扩展能够提高系统性能
- 长时间运行的情况
- 管理员视角总结:
- 资源利用率
- 系统可扩展性
- 系统容量
- 系统稳定性
- 开发视角:
- 用户和管理员关心的软件性能
- 通过调整设计及实现等方式提高性能
- 发现并解决设计及实现过程中产生的性能瓶颈及其他缺陷
- 开发视角总结:
- 系统架构
- 数据库设计
- 代码
- 设计与代码