软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据与功能和预期的输出结果组成了测试用例)。如何才能设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。

软件开发工具是用于辅助软件生命周期过程的基于计算机的工具。通常可以设计并实现工具来支持特定的软件工程方法,减少手工方式管理的负担。与软件工程方法一样,他们试图让软件工程更加系统化,工具的种类包括支持单个任务的工具及囊括整个生命周期的工具。软件需求工具,包括需求建模工具和需求工具。软件设计工具,用于创建和检查软件设计,因为软件设计方法的多样性,这类工具的种类很多。软件构造工具,包括程序编辑器、编译器和代码生成器、解释器和调试器等。软件测试工具,包括测试生成器、测试执行框架、测试评价工具、测试管理工具和性能分析工具。

软件开发工作量的规模:依照一些度量标准来确定,比方功能点、人-月数,或者仅仅依照成本。新颖程度:对于软件开发***,这个软件新颖程度怎样有多新,尤其是该软件是否为第二次或更后面的周期。这项差别包含了***和过程的成熟度、资产、技术水平,当前的技状况,以及诸如组建并培训团队、获取工具及其它资源这种问题。应用类型,目标领域:MIS,命令和控制系统, 嵌入式实时系统, 软件开发环境工具等等, 尤其时详细的应用领域会给开发提出特殊的约束条件:安全性、性能、国际化、内存限制等。