自动化测试&&shell总结
学习软件工程,小有所成
自动化测试
自动化测试,使用自动化工具(脚本等<应该可以这么理解?>),自动测试工程
关于测试
测试即为测试代码,但是测试代码的方式又有很多,在没有学习软件工程之前,我自己以为的测试就是写一个函数,调用所写的函数,传入参数,然后根据传出的参数来判断函数的功能是否正确;学习软件工程之后,测试是传入测试的指令,预制工程的状态,然后由原工程进行代码的运行之后,最后导出运行之后的状态,与正确的状态对比,判断工程运行是否正确
1.单元测试
单元测试就是学习软件工程之前的测试方法,即:写测试函数,调用工程中的某一个功能函数,根据调用该函数之后的返回值,来判断该功能函数实现的是否正确. 这就是单元测试(测试诸多功能中的一个)
2.集成测试
集成测试就是学习软件工程之后的测试方法,即:在工程中留有接口,准备接收预置工程状态的命令,和导出工程状态的指令,根据导出的状态,来与正确的状态进行比较,来判断整个工程是否正确. 这就是集成测试(测试整个工程)
关于自动化测试
测试实现自动化, 就是将导入工程状态和比较程序状态的过程由工具实现,比如可以写一个脚本,自动导入要预置的工程的状态,然后对比导出的状态与正确的状态是否一致
心得:
- 将预置的状态的命令写入表格中,便于管理测试用例
- 将正确的状态写入表格,便于管理
- 将表格内容生成文件
Shell
这次软件工程实践,在自动化测试这一块采用的shell脚本来实现测试的自动化
关于文件的对比: 对比肯定是需要两个文件的,但是两个文件又在不同的文件夹中, 若采用for循环遍历文件夹,则只能遍历其中一个文件夹 ,并且shell中没有同时遍历两个文件夹的for循环<解决思路: 先用一个for循环遍历其中一个文件夹,将遍历到的文件路径存于数组中, 然后再去遍历另外一个文件夹,并且依次读取数组中的内容,便实现了同时遍历的效果>
关于操作对象的确定性: 本来使用的for循环遍历文件夹是使用的for m in $(ls someFilePath)的形式,然后m就是其中的一个文件,但是使用这种形式操作下,我们并不清楚m是什么,(ls的顺序虽然是按照一定的顺序排列的,但是对于m的未知性,这种操作也有一定的危险性<解决思路,对文件命名采用数字标识,加前缀表明文件类型,例如:dump1,dump2....right1,right2.... for循环的时候就可以循环坐标>
脚本风格:在微机原理课上学到,所有的变量及其赋值应该放置在一处以便于管理的思想, 所以所有的可见的字符都应该用变量名字标识,然后在后边的脚本中只对变量名字操作,这样,如果想修改变量的值,只在统一的地方修改就可以,不用修改使用变量的诸多地方(类似于c语言中的宏)
精确浮点数计算:"scale=2;算术表达式" | bc