Installing RIDE on Rasbian 64 OS

prepare wxpython installation:

sudo apt update
sudo apt -y build-essential
sudo apt-get install libgtk-3-dev

Install wxpython for build on Pi:

sudo pip3 install -U wxpython

Remark this process can take hours for buiding installer!

Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting wxpython
  Using cached https://files.pythonhosted.org/packages/b0/4d/80d65c37ee60a479d338d27a2895fb15bbba27a3e6bb5b6d72bb28246e99/wxPython-4.1.1.tar.gz
Requirement already satisfied, skipping upgrade: pillow in /usr/lib/python3/dist-packages (from wxpython) (5.4.1)
Requirement already satisfied, skipping upgrade: six in /usr/lib/python3/dist-packages (from wxpython) (1.12.0)
Requirement already satisfied, skipping upgrade: numpy in /usr/lib/python3/dist-packages (from wxpython) (1.16.2)
Building wheels for collected packages: wxpython
  Running setup.py bdist_wheel for wxpython ... done
  Stored in directory: /home/andie/.cache/pip/wheels/54/32/da/dc5c828a12bc9a1ca58d5555f1076fd7d2984ae9c0e03eb510
Successfully built wxpython
Installing collected packages: wxpython
  The scripts helpviewer, img2png, img2py, img2xpm, pycrust, pyshell, pyslices, pyslicesshell, pywxrc, wxdemo, wxdocs and wxget are installed in '/home/andie/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed wxpython-4.1.1

Install RIDE:

sudo pip3 install robotframework-ride

now you can start it via terminal:

nohup ride.py &

Migrasi Pi OS dari SD card ke M2-SSD pada Pi 4 8G

seiring dengan keluarnya Raspberry pi4 8G , saya memigrasikan seluruh sistim development saya ke Raspbian 64 OS,

ini adalah hardware yang saya gunakan:

  • Raspberry Pi 4 Computer Modell B, 8GB RAM
  • Argon ONE M.2 Case für Raspberry Pi 4
  • Kingston M.2 SSD A400 240GB
  • Raspberry Pi USB-C Netzteil 5,1V / 3,0A, EU

Alasan saya memigrasikan dari SD card 64G ke SSD 240 adalah karena kebutuhan tempat untuk code saya, juga kecepatan boot dan operasi dari Pi yang saya pergunakan.

Referensi info untuk migrasi bisa anda lihat dengan detail di sini:

Using Olympus Zuiko OM Macro Lens on Nikon DSR Camera

Dalam artikel ini saya mencoba untuk menjabarkan mengapa saya menggunakan lensa olympus macro untuk membuat slide copy dengan nikon DSR kamera saya.

Seiring dari migrasi PC saya dari windows XP ke MAC, saya menemui hal yang agak mengganggu dalam kegiatan fotografi saya, sebelum berpindah ke MAC semua slide Analog saya selalu saya digitalisasi dengan Film Scanner (Canon Canoscan 2700) , scanner ini mesih menggunakan SCSI2 interface untuk dihubungkan dengan PC, setelah migrasi ke MAC , ternyata sangat sulit untuk mencari Driver serta Adapter untuk menghubungkan USB ke SCSI2, karena itu saya mencari solusi bagaimana mendigitalisasi film atau slide saya.

Beberapa waktu yang lalu saya temukan solusi yang menarik untuk digitalisasi Slide dan Negativ saya dengan Lensa Macro (Olympus OM Zuiko Auto Macro 50mm/F3.5 ).

Transfer Slide to digital with Nikon PB4 and PS4 on D850 & Zuiko 50mm Macro lens

Adalah sangat mudah dan nyaman untuk mengatur focus lensa secara manual, dengan Live view mode dengan D850. Waktu digitalisasi juga sangat cepat dibandingkan dengan menggunakan film scanner.

Allow user agent on local/client host to ssh remote server without a password.

  1. Create Authentication SSH-Keygen Keys on client: ssh-keygen -t rsa
  2. Create .ssh Directory on the remote server: ssh user@192.168.XXX.XXX mkdir -p .ssh
  3. Upload Generated Public Keys to remote server: cat ~/user/.ssh/id_rsa.pub | ssh user@192.168.XXX.XXX ‘cat >> .ssh/authorized_keys’
  4. Set Permissions on remote server: ssh user@192.168.XXX.XXX “chmod 700 .ssh; chmod 640 .ssh/authorized_keys”
  5. Test passwordless ssh connection: ssh user@192.168.XXX.XXX

Requirements based Testing with Robotframework

Contoh Struktur Persyaratan dengan RIDE

Dalam artikel ini saya ingin sedikit berbagi pengalaman saya dalam penerapan test automatisasi dengan Robotframework dalam bentuk pengujian bersyarat (Requirements based Testing)

Sebelum itu mari kita lihat dan pahami , apa arti Pengujian berbasis Persyaratan (Requirements based Testing) secara umum.

Apa itu Pengujian Berbasis Persyaratan?
Pengujian berbasis persyaratan adalah pendekatan pengujian di mana kasus pengujian, kondisi, dan data berasal dari persyaratan. Ini termasuk tes fungsional dan juga atribut non-fungsional seperti kinerja, keandalan atau kegunaan.

Tahapan dalam Pengujian berdasarkan Persyaratan:

  • Menentukan Kriteria Penyelesaian Test :
  • Pengujian selesai hanya jika semua pengujian fungsional dan non-fungsional selesai.
  • Desain Kasus Uji: Kasus uji memiliki lima parameter yaitu:
    • keadaan awal atau prasyarat,
    • penyiapan data,
    • masukan,
    • hasil yang diharapkan,
    • hasil aktual.
  • Jalankan Test: Jalankan kasus uji terhadap sistem yang sedang diuji dan dokumentasikan hasilnya.
  • Verifikasi Hasil Test: Verifikasi apakah hasil yang diharapkan dan aktual cocok satu sama lain.
  • Verifikasi Cakupan Test: Periksa apakah pengujian mencakup aspek fungsional dan non-fungsional dari persyaratan.
  • Lacak dan kelola Kesalahan Software: Setiap
    Kesalahan yang terdeteksi selama proses pengujian melewati siklus hidup Kesalahan dan dilacak hingga penyelesaiannya. Statistik
    Kesalahan dipertahankan yang akan memberi kita status keseluruhan proyek.

Persyaratan Proses pengujian:

  • Pengujian harus dilakukan tepat waktu.
  • Proses pengujian harus menambah nilai siklus hidup perangkat lunak (software), oleh karena itu harus efektif.
  • Menguji sistem secara menyeluruh tidak mungkin dilakukan sehingga proses pengujian juga harus efisien.
  • Pengujian harus memberikan status keseluruhan proyek, oleh karena itu harus dapat dikelola. Dan biasanya untuk tujuan ini digunakan Test Management Tools (salah satu contohnya adalah Mantis / TestLink/ HP-ALM-Quality Center / Jira Plugin XRAY)

Contoh Desain Kasus Uji dengan Robotframework:

*** Settings ***
Documentation     *Kriteria Penyelesaian Test:*
...               Ein SGD ePA MUSS Folgendes sicherstellen: Wenn über dessen HTTPS-SGD-Schnittstelle (vgl. ) ein POST- Request mit dem Request-Body nach [gem_SGD_ePA#Tab_KeyDerivation-Request] eintrifft, so MUSS die RVE des SGD
...               - das Zertifikat im Datenfeld *Certificate* gemäß TUC_PKI_018 prüfen und
...               dabei Ergebnisse nach \ \ berücksichtigen.
...
...               - die Kodierung und die Signatur der ""PublicKeyECIES"" prüfen (vgl. \ und ).
...               Falls eine der Prüfungen ein nicht-positives Ergebnis liefert, so MUSS die RVE des SGD mit einer entsprechenden Fehlermeldung aus [gemSpec_SGD_ePA#] dem Client antworten und die weitere Requestverarbeitung abbrechen.
...
...               Die RVE des SGD MUSS die Informationen aufbereiten und an das für den Request avisierte SGD-HSM übergeben (vgl.). Liefert das SGD-HSM ein OK, so MUSS die SGD die Antwort den HTTP-POST-Request mit folgender Nachricht beantworten:
...               {
...               \ ""Status"" : ""OK"",
...               \ ""EncryptedMessage"" : ""... Base64-kodiertes Chiffrat. Das Chiffrat wurde vom SGD-HSM erzeugt ...""
...               }
...               Anderenfalls (SGD-HSM meldet einen Fehler) MUSS die RVE des SGD mit einer entsprechenden Fehlermeldung aus [gemSpec_SGD_ePA#] \ dem Client antworten.


*** Test Cases ***
A_17898-1
    [Documentation]    *Definisi Test:*
    ...    - Am SGD ePA trifft über die HTTPS-SGD-Schnittstelle (vgl. A_17889) ein POST-Request mit dem Request-Body nach [gem_SGD_ePA#Tab_KeyDerivation-Request] ein: die RVE des SGD prüft das Zertifikat im - Datenfeld ""Certificate"" gemäß TUC_PKI_018 \ und berücksichtigt dabei Ergebnisse nach A_17896.
    ...    - Die RVE des SGD prüft die Kodierung und die Signatur der ""PublicKeyECIES"" (vgl. A_17900 und A_17901).
    ...
    ...    *Hasil Test:*
    ...    - Beide Prüfungen liefern ein positives Ergebnis.
    ...    - Die RVE des SGD bereitet die Informationen auf.
    ...    - Die RVE des SGD übergibt die aufbereiteten Informationen an das für den Request avisierte SGD-HSM.
    ...    - Das SGD-HSM liefert ein OK.
    ...    - Die SGD beantwortet den HTTP-POST-Request mit folgender Nachricht:{\ ""Status"" : ""OK"",\ ""EncryptedMessage"" : ""... Base64-kodiertes Chiffrat. Das Chiffrat wurde vomSGD-HSM erzeugt ...""}"
    [Tags]    A_17898    gemSpec_SGD_ePA    owner-at    prio-1
    [Setup]    Enable Strict Validation
    sgd-clientjavaWF.Vorbedingungen für Überprüfung
    sgd-clientjavaWF.Schritt1
    sgd-clientjavaWF.Schritt2
    sgd-clientjavaWF.Schritt3
    sgd-clientjavaWF.Schritt4
    sgd-clientjavaWF.Schritt6

Kriteria Penyelesaian Test dapat anda implementasikan dalam fungsi [Documentation] pada Robotframework Test.

Verifikasi Cakupan Test dapat anda implementasikan dalam fungsi [Tags] pada Robotframework Test.

Verifikasi Hasil Cakupan Test akan dihasilkan oleh Robotframework Test Report dan Test Log, yang didalamnya menggambarkan jalur dan urutan Test anda.

Anda tidak membutuhkan Aplikasi atau Software extra untuk mengimplimentasikan Kriteria yang saya sebutkan di atas.

Hasil dan dokumentasi dari Test anda akan anda dapatkan selalu dari hasil akhir automatisasi Test anda dengan Robotframework.

Vintage Lens 2 on Nikon DSLR

Lensa macro kedua yang menarik yang saya pergunakan untuk makro fotografi dengan kamera DSLR, adalah Olympus Zuiko Macro Auto1:1 85mm f4.

Olympus sebagai produsen Fotografi optik juga terkenal, dengan Produk (lensa macro) yang mempunyai kwalitas yang sangat baik , lensa ini menarik untuk saya karena jarak ke motiv yang sangat nyaman untuk pemotretan, dan kalau digunakan langsung dengan nikon D50 & Dandelion Chip Tube saya (22mm). saya dapat menggunakan on Body Flash untuk pemotretan macro saya.

Lensa: Olympus OM Zuiko 1:1 Macro Lens 80 mm f/4

Assesori: Adapter Lensa Olympus OM ke Nikon F MountDandelion chipping Tube.

Contoh hasil foto dengan D50 & D850

Vintage Lens 1 on Nikon DSLR

Exa Bellow Tessar 50mm/f2,8 adalah salah satu lensa macro yang terbaik, yang pernah dibuat oleh firma Exakta.

Lensa ini terdapat dalam 2 model pertama dengan Exakta Bajonet (lens body chrom) dan , kedua dengan M42 Bayonet(lens body black).

Dengan rana mulai dari 2,8 sampai 22, yang menarik adalah jumlah daun rana yang lebih banyak(12 element) dari lensa macro jaman sekarang serta kontur rana yang bulat!. Ini membuat bokeh yang sangat baik untuk lensa yang relativ sudah lama diproduksi ini.

yang menarik adalah dengan solusi dandelion chipping tube, saya dapat menggunakan lensa ini di nikon DSLR saya (D50) .Lensa : M42 Exa Bellow Tessar 50mm/f2,8 Jena DDR

Lensa: M42 Exa Bellow Tessar 50mm/f2,8 Jena DDR

Assesori: Zörk Mini Macro dengan nikon F bajonet, Dandelion chipping Tube.

Contoh Foto Macro dengan Below Tessar:

Extension tube with dandelion chip

Asal usul ide ini sebenarnya telah lama timbul dibenak saya.

Asal informasi modifikasi lensa Nikkor Manual dengan chips dari internet.

Asal informasi bagaimana memasang chips ini pada lensa Nikon AI-S dari Internet

Asal informasi bagaimana mengatur rana dan F lensa pada chips lewat Nikon Body

Untuk anda yang tertarik untuk membeli chip ini silahkan menghubungi langsung Ebay seller ini 

Seperti anda ketahui saya adalah kolektor beberapa kamera dan lensa analog Nikon. Seiring dengan perubahan waktu , saya mencari solusi untuk menggunakan lensa dan assesori Nikon saya di body Kamera DSLR saya (D50, D850).

Kalau anda menggunakan lensa AI, AIS , Bellow dan Macro Tube maka di display body kamera akan menunjukkan “F – -“ dan kamera tidak dapat mengambil foto, untuk “Profesional Level” model kamera nikon DSLR memiliki setting manual Lens dimana anda bisa memasukkan data focus length & rana terbesar lensa.

Kebanyakan lensa Nikkor AI, AIS tidak dapat berfungsi secara full di Body “Entry level” Model dari Nikon DSLR (contoh D50).

Sebenarnya ini adalah “Marketing Triks” Produser nikon untuk membatasi fungsi kamera terhadap lensa atau assesori tertentu untuk bisa dipakai dibody DSLR.

Solusi saya adalah memasang dandelion chip , sehingga body DSLR dapat di overide seolah olah mengetahui data maximal rana dan Focal length , sehingga bisa dipakai di entry Level DSRL (D50). Seperti jika anda menggunakan lensa Ais-P (45mm f/2.8 P, 500mm f/4 P dan 1200-1700mm f/5.6-8 P) ) atau seperti lensa-lensa dari Voigländer SLII dan Carl Zeiss ZF.2.

Tentu saja Focus lensa harus dilakukan manual.

Fungsi:

Tanpa harus memodifikasi, assesori aslinya sehingga tidak mengurangi nilai koleksi PB4 & Lensa.

Migrating CodedUI Test to Robotframework for Testing Sharepoint 2019 Websolution

just one sample migrating ATDD Test from Coded UI to Robotframework.

Before Test Structure:

CodedUI Unit Test Structure

Comparison Unit Test & ATDD Test Structure:

Structure Comparison C# and Python with Selenium API

Reason for Migration from CodedUI to Robotframework:

  1. CodedUI is now deprecated.
  2. Test Tools and Ways of testing didn’t fullfill the requirement for doing ATDD test (E2E test) scopes.
  3. Long test run .
  4. Needs of proper test logging
  5. Test run should be independance from SW build.
  6. Only IE as browser is supported.

Proposed Robotframework ATDD Structure:

Robotframework ATDD Structure

Project / Test & Development enviroment Limitation:

  1. Test Object: Sharepoint 2019 customisation
  2. OS used for test object and testing: Microsoft Windows 10 OS
  3. Build and test requrement tools: Microsoft TFS
  4. Diffrent targets and build environment for: Development, Integration and Preproduction.

Needed Infrastukture and Software for Testing with Robotframework:

  1. Python 3.x
  2. Robotframework
  3. Robotframework SeleniumLibrary
  4. Robotframework Whitelibrary
  5. Test editor Notepad ++ with Robotframework plugin
  6. Test should be able to run as Selenium Hub trigger from MS TFS which consuming Robotframework xUnit reports as test run results.

Benefit of using Robotframework:

  1. Test run faster than CodedUI
  2. Test cases are written as Keyword Driven test, instead of Unit Test, these speed up the test cases creation and migration also simplify reusable of test cases.
  3. No need using Visual Studio for creating test sases, you can use simple text editor r write tests.
  4. Test results are more understandable for non-technical team members ( Test Manager, Project Manager, Environment Team, Solution Team)
  5. Using RF Tag functionally and RF Report (Rebot) custom report can be created without any additional effort,
  6. Report implementations of build on TFS over Xunit report flag on Robot runner.
  7. Tests can run independently outside build tool.

Starting the MIgration Steps:

  1. Separating & creating all needed sharepoint UI keywords in UI Keyword resources.
  2. Separating & creating all needed sharepoint 2019 application workflow as Keyword resources.
  3. Creating template of sharepoint masterpage sites mapping as keyword resources.
  4. Defining needed static and dynamic variables regarding to TCs and target test enviroment as variable resources
  5. Creating RF runner files as batchfile for each target deployment enviroment (development, integration, or regresion)
  6. Creating test suites regarding requirement (sanity test, fuctional test or regresion test)
  7. Creating folder structure to map sharepoint functional requirement implementation
  8. Creating folder structure for test reports, test suites and test runner.
  9. Tagging related test suites regarding requirement coverage

Reports & Logs: