ahasusie / job-hunting

0 stars 0 forks source link

test tools / platform / methodology #19

Open ahasusie opened 5 years ago

ahasusie commented 5 years ago

tools and platforms:

ahasusie commented 5 years ago

Continuous integration (CI) is a software engineering practice where members of a team integrate their work with increasing frequency. In keeping with CI practice, teams strive to integrate at least daily and perhaps multiple times per day, toward the aspirational term in which it’s couched: “continuous-ly.”

Historically, integration has been a costly engineering activity. So, to avoid thrash, CI emphasizes automation tools that drive build and test, ultimately focusing on achieving a software-defined life cycle. When CI is successful, build and integration effort drops, and integration errors are detected as quickly as practical.

Continuous delivery (CD) is to packaging and deployment what CI is to build and test. Software is built, configured, and packaged and its deployment orchestrated in such a way that it can be released to production in a software-defined manner (low cost, high automation) at any time.

High-functioning CI/CD practices directly facilitate agility because software change reaches production more frequently, providing more opportunities for customers to experience and provide feedback on change https://www.synopsys.com/blogs/software-security/agile-cicd-devops-glossary/ https://en.wikipedia.org/wiki/Continuous_delivery

Release management describes the steps that are typically performed to release a software application, including building and functional testing, tagging releases, assigning versions, and deploying and activating the new version in production.

to use Bamboo, you will need to already have the following set up:

ahasusie commented 5 years ago

machine leaning testing https://dzone.com/articles/qa-blackbox-testing-for-machine-learning-models In such cases where test oracles are not found, the concept of pseudo oracles is introduced. Pseudo oracles represent the scenario when the outputs for the given set of inputs could be compared with each other and the correctness could be determined. Consider the following scenario. A program for solving a problem is coded using two different implementations with one of them to be chosen as the main program. The input is passed through both the implementations. If the output comes out to be same or comparable (falling within a given range or more/less than a predetermined value), the main program could be said to working as expected or correct program. The goal is to find different such techniques to test or perform quality control checks on Machine Learning models from a quality assurance perspective.


The following represents some of the techniques which could be used to perform blackbox testing on Machine Learning models:

skills: Introductory knowledge of Machine Learning concepts (Different kind of learning tasks (such as regression, classification etc) and related algorithms. Knowledge of terminologies such as features, feature importance etc. Knowledge of terminologies related to model performance (Precision, recall, accuracy etc) General data analytics skills Scripting knowledge with one or more scripting language.

ahasusie commented 5 years ago

NLP decision trees

ahasusie commented 5 years ago

UI automation test robot framework selenium

ahasusie commented 5 years ago

UART usage on linux need jumper wires asynchronous serial communication between devices. The transmission speed and the data format are configurable. the development board offers multiple UART interface, each interface was mapped to linux devices. /dev/ttymxc0 There are 4 main pins that may be used on a UART interface: -RX, the pin that will receive data from another device -TX, the pin that will transmit data to another device -RTS, request-to-send -CTS, clear-to-send

serial terminal connected to the module, configure the UART_B baud rate using the stty command. We will use a baud rate of 9600 baud:
stty -F /dev/ttymxc1 9600 -echo

Use the cat command to listen for incoming data on the serial port:
cat < /dev/ttymxc1 &

Write to the serial port. The characters sent will be printed back to you in the next line:
echo "Testing UART" > /dev/ttymxc1
Testing UART

https://www.technexion.com/support/knowledgebase/using-a-serial-port-from-a-linux-shell/ image

ahasusie commented 5 years ago

All devices on Unix are mapped to a device file, the serial ports would be /dev/ttyS0 /dev/ttyS1 First have a look at the permissions on that file, lets assume you are using /dev/ttyS1. ls -l /dev/ttyS1 You will want read.write access, if this is a shared system then you should consider the security consequences of opening it up for everyone. chmod o+rw /dev/ttyS1 A very simple crude method to write to the file, would use the simple echo command. echo -ne '\033[2J' > /dev/ttyS1 and to read cat -v < /dev/ttyS1 You can have cat running in one terminal, and echo in a 2nd. If everything is gibberish, then baud rate, bit settings might need setting before you start sending. stty will do that. !! NOTE stty will use stdin as default file descriptor to affect. Equivilent commands. stty -speed 19200 < /dev/ttyS1 stty -speed 19200 -f /dev/ttyS1

ahasusie commented 5 years ago

commands for connecting to the serial console: screen: $ screen /dev/device baud-rate $ screen /dev/ttyS0 19200 $ screen /dev/ttySUSB0 19200,cs8

send shell command via UART stty -F /dev/ttyS1 speed 9600 cs8 -cstopb -parenb raw echo -ne "reboot\n\r" > /dev/ttyS1

ahasusie commented 5 years ago

pytest pytest will run all files of the form test_.py or _test.py in the current directory and its subdirectories

# Run tests in a module
pytest test_mod.py

# Run tests in a directory
pytest testing/

# To run a specific test within a module:
pytest test_mod.py::test_func

# Another example specifying a test method in the command line:
pytest test_mod.py::TestClass::test_method

# drop to PDB on first failure, then end test session
pytest -x --pdb   

# Calling pytest from Python code, equals to $pytest -x mytestdir
pytest.main(['-x', 'mytestdir'])