automated testing using python (ate)

33
1 YUVARAJA.R - M.TECH EMBEDDED SYSTEMS TECHNOLOGIES REG NO - 13PEES1005 PROJECT INCHARGE - K.Bhaskar.,B.Tech.,M.E.(Ph.D) COLLEGE - VEL TECH Dr.RR & Dr.SR TECHNICAL UNIVERSITY AUTOMATED HARDWARE TESTING USING PYTHON

Upload: yuvaraja-ravi

Post on 21-Jan-2017

424 views

Category:

Devices & Hardware


5 download

TRANSCRIPT

Page 1: AUTOMATED TESTING USING PYTHON (ATE)

1

YUVARAJA.R - M.TECH EMBEDDED SYSTEMS TECHNOLOGIES

REG NO - 13PEES1005

PROJECT INCHARGE - K.Bhaskar.,B.Tech.,M.E.(Ph.D)

COLLEGE - VEL TECH Dr.RR & Dr.SR TECHNICAL UNIVERSITY

AUTOMATED HARDWARE TESTING

USING PYTHON

Page 2: AUTOMATED TESTING USING PYTHON (ATE)

ABSTRACT2

Design a Embedded Prototype test hardware interact with Python software shows presence of defects in UUT. Python test script can download the test cases to the target system one by one, receive test output, compare with specifications then verify it, and generate log files. Log files inside test steps results are stored as PASS/FAIL.

It’s a cost effective test system for SS Electronic hardware manufacturers

Page 3: AUTOMATED TESTING USING PYTHON (ATE)

TESTING3

Testing is an organized process to verify the behavior, performance, and reliability of a device

It ensures a device or system to be as defect-free as possible

Testing is a manufacturing step to ensure that the manufactured device is defect free.

Manual TestingAutomated Testing

Page 4: AUTOMATED TESTING USING PYTHON (ATE)

Manual & Automated Testing4

Testing is carried out manually by test engineers. Consuming a lot of time and effort huge for spending the time for manual testing.

Automated test equipment need a special fixture to place the board and test the device using instruments

Page 5: AUTOMATED TESTING USING PYTHON (ATE)

EXISTING SYSTEM5

Testing is carried out manually by test engineers. Consuming a lot of time and effort huge for spending the time for testing.

NI Lab View designing a ATE .But measurements are taken by reputed instruments or NI PXI only

PXI HW and its software is huge amount.Certified engineer only able to access the softwareAdd-on software needed for Test case and Report

generation .

Page 6: AUTOMATED TESTING USING PYTHON (ATE)

PROPOSED SYSTEM6

To overcome the existing problem, we construct Embedded hardware test module to measure the

Resistance test applied to signal traces (short/open) Voltage /current measure with help of analog pins. IO pins used to trigger the on/off or control the hw. Protocols testing are done by the test hardware.Tested data packets serially communicated to the

Python scripts Python scripts collect the complied data's then

compare with test case input and generate the test reports..

Page 7: AUTOMATED TESTING USING PYTHON (ATE)

PROJECT – ENTIRE SYSTEM7

SERIAL INTERFACE

Page 8: AUTOMATED TESTING USING PYTHON (ATE)

EMBEDDED TEST HW DESIGN 8

Atmega 8-bit AVR controller used for Embedded Test Hardware system.

Necessity to test the every protocols chips, Analog and Digital IC.

Current, Voltage and Resistance measurements using 10bit ADC

I2C >> | RTC | EEPROM | SENSORS | DEVICES |UART >> RS232 <<RS485 >> 75176-IC <<RS422 >> 75176 TX+ ->>75176 RX+ -<<

Page 9: AUTOMATED TESTING USING PYTHON (ATE)

PYTHON 9

Python is a clear and powerful object-oriented programming language, comparable to Perl, Tcl and Java.

It’s a FOSS Programming language.Runs on many different computers and

operating systems: Windows, MacOS, many brands of Unix, OS/2

Python Code can be grouped into modules and packages

Page 10: AUTOMATED TESTING USING PYTHON (ATE)

HW DESIGN – VOLTAGE ,CURRENT & RESISTANCE MEASUREMENT

10

Voltage measured by using AVR Controller 10bit ADC .

Constant current probing to the voltage net through voltage divider circuit. Impedance measured by the ADC.

Current measurement taken by ACS712 Current sensor IC.

Page 11: AUTOMATED TESTING USING PYTHON (ATE)

CURRENT MEASURMENT USING ACS712

AUTOMATED HARDWARE TESTING

11

Hall-effect sensor ICs (especially the ratio metric linear types) are superb devices for 'open-loop' current-sensing designs

Page 12: AUTOMATED TESTING USING PYTHON (ATE)

HW DESIGN – PROTOCOLS TESTING-I2C

12

I2C (Inter-Integrated Circuit, pronounced "I squared C") is also a synchronous protocol.I2C uses only 2 wires, one for the clock (SCL) and one for the data (SDA). That means that master and slave send data over the same wire, again controlled by the master.

Page 13: AUTOMATED TESTING USING PYTHON (ATE)

I2C PROTOCOLS TESTING –SCANNER METHOD

AUTOMATED HARDWARE TESTING

13

Sequence of 7-bit address send to the slave device . Wire.beginTransmission(address);ack = Wire.endTransmission();

ACK=‘0’ device found.

>I2C Device found at adress 0x48,0x57,0x67>[3 device found ]

Page 14: AUTOMATED TESTING USING PYTHON (ATE)

HW DESIGN – PROTOCOLS TESTING-UART / RS232 SERIAL

14

 Serial communication is the process of sending data one bit one by one sequentially, over a communication channel.

UART communication of Full duplex TX and RX communication through the COM devices.

Page 15: AUTOMATED TESTING USING PYTHON (ATE)

HW DESIGN – PROTOCOLS TESTING – RS422

15

The RS422 Standard defines a serial communications standard. RS422 is a high speed and long distance data transmission. Each signal is carried by a pair of wires and is thus a differential data transmission system.

Page 16: AUTOMATED TESTING USING PYTHON (ATE)

HW DESIGN – PROTOCOLS TESTING – RS485

16

 RS-485 is a superset of RS-422; thus, all RS-422 devices may be controlled by RS-485. RS-485 hardware may be used for serial communication with up to 4000 feet of cable.

The main difference is that up to 32 transmitter receiver pairs may be present on the line at one time. RS485 Differential communication A <-> B Signal lines.

Page 17: AUTOMATED TESTING USING PYTHON (ATE)

SOFTWARE DESIGN - PYTHON

AUTOMATED HARDWARE TESTING

17

An open source software used to Automate the Hardware Testing

UNITTEST module supports test automation, sharing of setup and shutdown code for tests, aggregation of tests into collections, and independence of the tests from the reporting framework.

PySerial module supports serial communication between device to pc data transmission.

File handling function used to generate the log file report.

Page 18: AUTOMATED TESTING USING PYTHON (ATE)

UNIT TEST MODULE CONCEPTS

AUTOMATED HARDWARE TESTING

18

Test Fixture : It represents the preparation needed to perform one or more tests, and any associate cleanup actions. This may involve, for example, creating temporary or proxy databases, directories, or starting a server process.

Test Case: is the smallest unit of testing. It checks for a specific response to a particular set of inputs. Unit test provides a base class, Test Case which may be used to create new test cases.

Test Suite: Test suite is a collection of test cases, test suites, or both. It is used to aggregate tests that should be executed together.

Page 19: AUTOMATED TESTING USING PYTHON (ATE)

REQUIREMENTS & TEST CASE RELATIONSHIP

AUTOMATED HARDWARE TESTING

19

Page 20: AUTOMATED TESTING USING PYTHON (ATE)

UUT CODE SAMPLE

AUTOMATED HARDWARE TESTING

20

Def ScaledInput(data):rc = NO_ERRscaled_data = dataif data >= DATA_MIN and data <= DATA_MAX:

scaled_data = (data * data_scale) + data_offsetif scaled_data > SCALE_MAX:

scaled_data = SCALE_MAXrc = ERR_MAXSCALE

elif scaled_data < SCALE_MIN:scaled_data = SCALE_MINrc = ERR_MINSCALE

else:rc = ERR_OVER

return (rc, scaled_data)

Function code getting one input argument

Function Returning two o/p values

Page 21: AUTOMATED TESTING USING PYTHON (ATE)

Function with argument code table

AUTOMATED HARDWARE TESTING

21

A unit test is constructed such that all possible inputs are used to force the execution to traverse all possible paths. In the case of ScaledInput(), we can see that there are three obvious input test cases. Too low,

Too high, Within range.

Page 22: AUTOMATED TESTING USING PYTHON (ATE)

PYSERIAL MODULE

AUTOMATED HARDWARE TESTING

22

This module encapsulates the access for the serial port. The module named “serial” automatically selects the appropriate backend

Same class based interface on all supported platforms.

Access to the port settings through Python properties.

Support for different byte sizes, stop bits, parity and flow control with RTS/CTS and/or Xon/Xoff.

Working with or without receive timeout.

Page 23: AUTOMATED TESTING USING PYTHON (ATE)

PY SERIAL COM PORT CODE

AUTOMATED HARDWARE TESTING

23

class AHT_Serial(object): def __init__(self, serial_port='COM3',

baud_rate=9600,read_timeout=5): self.serial = serial.Serial(serial_port,

baud_rate) self.serial.timeout = read_timeout def read_line(self): """Reads the serial buffer""" return self.serial.readline()Rxvalue=AHT_Serial.readline()

Page 24: AUTOMATED TESTING USING PYTHON (ATE)

FILE HANDLING IN PYTHON24

Python generally divide files into two categories, text file and binary file. Text files are simple text where as the binary files contain binary data which is only readable by computer.

File openingTo open a file we use open() function. It requires

two arguments, first the file path or file name, second which mode it should open. Modes are like

“r” -> open read only, “w” -> open with write power, means if the file

exists then delete all content and open it to write“a” -> open in append mode

Page 25: AUTOMATED TESTING USING PYTHON (ATE)

LOG FILE GENERATION CODE

AUTOMATED HARDWARE TESTING

25

class fileHand(object): tMess="" curTime=[]

def fileWrite(self,varlnk): lp=0

tMess="" varlnk=list(varlnk) selfvarcall=fileHand() tm=selfvarcall.write_dummy() for lp in varlnk: print(lp) tMess+=time.ctime()+" >> "+ "Voltage test{}\n".format(lp)

fileOpen = open('LogfileV1.2.txt','w',encoding='utf-8',errors='ignore') fileOpen.write("########## AHT LOG FILE ############"'\n')

fileOpen.close() return 'writed'

Page 26: AUTOMATED TESTING USING PYTHON (ATE)

TEST RESULT REPORT

AUTOMATED HARDWARE TESTING

26

############################ AHT LOG FILE ############################Wed Apr 27 10:16:52 2016 >> Testing Started....Wed Apr 27 10:16:52 2016 >> Tester Initialization done..Wed Apr 27 10:16:52 2016 >> TH Version 1.0Wed Apr 27 10:16:52 2016 >> Test Sequence Started -> || PS UNIT || I2C Protocols ||Wed Apr 27 10:16:52 2016 >> Test Case Loaded Successfully

##########################################################################Wed Apr 27 10:16:52 2016 >> Voltage test 3.3V => 3.25V =>PassWed Apr 27 10:16:53 2016 >> Voltage test 5v => 4.85V =>PassWed Apr 27 10:16:53 2016 >> Resistance test 3.3V => 120E =>Pass Wed Apr 27 10:16:54 2016 >> Resistance test 5V => 0E =>FailWed Apr 27 10:16:54 2016 >> Current Test 3.3V => .55A =>PassWed Apr 27 10:16:55 2016 >> Current Test 5V => .85A =>PassWed Apr 27 10:16:56 2016 >> I2C Test Device Found=> 0x30,0x48,0x54 =>PassWed Apr 27 10:16:56 2016 >> RTC INC Test => - =>PassWed Apr 27 10:16:57 2016 >> Temp Test =>29.1c =>PassWed Apr 27 10:16:58 2016 >> EEPROM Test => - =>PassWed Apr 27 10:16:58 2016 >> RS232 Test => ABCD =>PassWed Apr 27 10:16:58 2016 >> RS422- RS485 => ABCD =>Pass###########################################################################

Wed Apr 27 10:16:59 2016 >> Test Sequence Stopped >>FAIL

Page 27: AUTOMATED TESTING USING PYTHON (ATE)

ADVANTAGES27

Boards, components and interface cable separately tested in modes of test case.

Manual testing has been reduced Locating the Hardware(components) and

software bugs using test reports.Low Cost (Pursuing software’s are Open

source)Reduced human efforts

Page 28: AUTOMATED TESTING USING PYTHON (ATE)

DISADVANTAGES28

Embedded controllers are single task at a instant. So measuring data goes to the pc with delay. Output data packets compared with test case help of Python Script. So report generating time taken more.

Page 29: AUTOMATED TESTING USING PYTHON (ATE)

CONCLUSION

29

Automatic hardware testing using Python is a ATE technique to increase throughput without a corresponding increase in cost, by performing tests on protocols are handling and test without error. It has been quantitatively to reduce test cost more effectively than low-cost ATE. Because it reduces all test cost contributors, and not only capital cost of ATE.

In this paper, we described the AHT using python strategy adopted for hardware testing and protocols testing without measuring instruments .

CONCULSION

Page 30: AUTOMATED TESTING USING PYTHON (ATE)

FUTURE ENHANCEMENT30

In this project in future we can add a FPGA or CPLD used to get the data packets at instant of time without delay.

Parallel Testing method introduces to test the multiple boards at same instant time.

Page 31: AUTOMATED TESTING USING PYTHON (ATE)

BASE PAPERS31

[1] Jambunatha, K .,Design and implement Automated Procedure to upgrade remote network devices using Python, Advance Computing Conference (IACC), 2015 IEEE International, Bangalore, June 2015.

[2] H.J. Zainzinger and S.A. Austria, "Testing embedded systems by using C++ script interpreter," in Proceedings of the 11 th Asian Test Symposium(ATS’02), 2002, pp.380 – 385

[3] Kovacevic, M.; Kovacevic, B.; Pekovic, V.; Stefanovic, D., Framework for automatic testing of Set-top boxes., Telecommunications Forum Telfor (TELFOR), 22ndYear: 2014

[4] Karmore, S.P.; Mabajan, A.R., Universal methodology for embedded system testing., Computer Science & Education (ICCSE), 2013 8th International Conference on Year: 2013,IEEE Conference Publications, 26-28 April 2013

[5] Kim H. Pries, Jon M. Quigley-Testing Complex and Embedded Systems-CRC Press (2010)

[6] Python software Foundation https://www.python.org/

Page 32: AUTOMATED TESTING USING PYTHON (ATE)

INTERNATIONAL CONFERENCE CERTIFICATE

AUTOMATED HARDWARE TESTING

32

Page 33: AUTOMATED TESTING USING PYTHON (ATE)

THANK YOU33