今天笔者和大家分享有关软件测试有关的基础知识,接下来几篇文章中会依次来做分享和交流。
对于计算机软件的分类,按层次划分为:系统软件,支持软件,应用软件;按结构划分为单机软件,分布式软件,C/S,B/S;按组织划分为开源软件,闭源(商业)软件。从软件测试定义两面性来分析的话可分为正向思维和逆向思维。正向思维的出发点:使自己确信产品是能够正常工作的评价一个程序和系统的特性或能力,并确定它是否达到期望的结果,软件测试就是以此为目的的任何行为。反向思维:测试是为发现错误而执行一个程序或者系统的过程。测试是为了证明程序有错,而不是证明程序无错误。一个好的测试用例在于它能发现以前未发现的错误。一个成功的测试是发现了以前未发现的错误的测试。
IEEE定义的测试在规定条件下运行系统或构件的过程:观察和记录结果,并对系统或构件的某些方面给出评价;分析软件项目的过程:检测现有状况和所需状况之间的不同,并评估软件项目的特性。广义软件测试定义是对软件形成过程中的所有工作产品(包括程序以及相关文档)进行的测试,而不仅仅是对程序的运行进行测试。其中有两个关键的术语比较关键:1.验证(Verification):通过检查和提供客观证据来证实指定的需求是否满足。2.确认(Validation)通过检查和提供客观证据来证实特定目的的功能或应用是否已经实现。
软件测试的目的以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷保障软件质量,避免软件发布后由于潜在的软件错误和缺陷造成的隐患所带来的商业风险。同时利用测试过程中得到的测试结果和测试信息,作为后续项目开发和测试过程改进的重要输入,避免在将来的项目开发和测试中重复同样的错误;采用更加高效的测试管理手段,提高软件测试的效率和软件产品的质量。
以上是这次和大家分享有关软件测试的理论知识,在后期的文章中,笔者将继续来进行归纳总结,希望对大家有所帮助。