通俗的理解“软件测试"
以我们的STTE系统举例
假设北京行所志软件公司原来做软件测试培训的时候,只有纸介质的教材。
后来,他们觉得这样的教材不利于教学的开展。
因为学员即使拿着教材,在没有讲师的时候,也很难根据教材进行学习。
因此,他们决定开发一套软件,用于软件测试的培训。
此时,平常对学员进行授课的讲师就成为了该软件的业务需求提出角色。
他们花费了2个月的时间,思考、讨论、研究
这个软件应该做成什么样子?
这个软件能帮他们解决什么问题?
这个软件要能自动的做哪些事情?
总结来说,就是他们确定了这个软件应该做什么事情,而且这个软件不应该去做它不该做的事情。
我们可以将这件事情称之为“业务需求分析”
在这些讲师确定了“业务需求”之后,软件开发人员就开始他们的工作了。
首先是软件需求分析师,这种人是一种高级软件人员,他们负责将已经确定的“业务需求”转化为“软件需求”。即,如果依据前期制订的“业务需求”去开发这么一个软件,那么这个软件要包含哪些功能,同时,这个软件要符合哪些非功能性的要求。
然后是软件的架构师,这种人也是一种高级软件人员,他们负责依据“软件需求”对软件的各子系统之间如何传递数据进行接口的定义,等。我们称之为“软件的概要设计”。
最后是软件的开发员,这种人有的是高级软件人员,具备多年的软件开发经验,有的是初级软件人员,软件开发经验不多。
这些软件开发员将依据“软件需求”和“软件的概要设计”,对软件的小功能进行详细设计,例如界面上包含哪些元素(输入框、按钮、下拉框等)、小功能的程序怎么编写等。
在这些软件开发员依据“软件详细设计”开发出相应的程序后,软件测试人员就该登场了。
那么,这些软件测试人员要做什么呢?
第一、软件测试人员依据“软件功能的详细设计”中规定的内容逐项检查软件开发人员开发出来的程序。他们设计出来一个一个的测试用例(功能操作步骤、所使用的数据、预期结果),依据这些测试用例去一次一次的操作软件的功能,检查这些软件的功能是否像“软件功能详细设计”中描述的那样。
我们称之为“软件单元测试”。
第二、软件测试人员依据“软件的概要设计”中规定的内容将多个软件功能联合起来一起测试,检查这些软件的多个功能组合是否像“软件概要设计”中描述的那样。
我们称之为“软件集成测试”。
第三、集成测试也做完了之后,别忘了我们还有一个“软件需求”。此时,所有的软件功能已经都能放在一起协同工作了,我们称之为“一个完整的软件”或者“一个完整的系统”。软件测试人员要依据“软件需求”中规定的内容对这个“完整的软件”进行功能上的检查和非功能性方面的检查。以判断,这个软件的所有特性是否像“软件需求”中描述的那样。
我们称之为“系统测试”。
第四、软件开发人员配合软件测试人员的测试工作就基本完成了。此时,软件的业务人员就该登场了。就是提出“业务需求”的那些讲师。软件测试人员可以与这些讲师一起,依据“业务需求”中的规定对软件进行最后的测试。我们称之为“用户接受测试”或者“验收测试”。因为这些讲师将是这个软件的最终使用者,通常称之为“最终用户”。这个软件是否合格,得他们说了算。
我们称之为“验收测试”。
以上,就是对“软件测试”的一个完整的、通俗的理解。