{
    "id": 459,
    "date": "2018-03-28T21:16:57",
    "date_gmt": "2018-03-28T21:16:57",
    "guid": {
        "rendered": "http:\/\/hayperek.pl\/?p=459"
    },
    "modified": "2018-04-08T20:02:18",
    "modified_gmt": "2018-04-08T20:02:18",
    "slug": "samochod-na-biurku-czyli-jak-testowac",
    "status": "publish",
    "type": "post",
    "link": "https:\/\/hayperek.pl\/pl_pl\/2018\/03\/28\/samochod-na-biurku-czyli-jak-testowac\/",
    "title": {
        "rendered": "Samoch\u00f3d na biurku czyli jak testowa\u0107 &#8211; cz. 1"
    },
    "content": {
        "rendered": "<p>Dzi\u015b zajmiemy si\u0119 czym\u015b bardziej praktycznym, ni\u017c ostatnio \ud83d\ude42<\/p>\n<p>Na pocz\u0105tek zadajmy sobie pytanie:<\/p>\n<blockquote><p>Jak testowa\u0107 system wbudowany, przeznaczony do samochodu&#8230; bez samochodu?<\/p><\/blockquote>\n<p>Ka\u017cda osoba zajmuj\u0105ca si\u0119 tworzeniem oprogramowania wie, jak istotne w procesie developmentu s\u0105 testy jednostkowe, komponentowe czy integracyjne. Pozwalaj\u0105 one bardzo wcze\u015bnie wychwyci\u0107 spor\u0105 cz\u0119\u015b\u0107 b\u0142\u0119d\u00f3w powsta\u0142ych na etapie pisania kodu. Zapewniaj\u0105 r\u00f3wnie\u017c tzw. regresj\u0119 &#8211; w przysz\u0142o\u015bci weryfikuj\u0105 czy istniej\u0105ca funkcjonalno\u015b\u0107 nie zostaje naruszona przez nowe fragmenty kodu.<br \/>\nO tym jak wa\u017cn\u0105 rol\u0119 pe\u0142ni\u0105 testy \u015bwiadczy fakt, i\u017c jedna z metodologii (kt\u00f3r\u0105 notabene osobi\u015bcie bardzo lubi\u0119) zach\u0119ca wr\u0119cz aby pisanie kodu rozpoczyna\u0107 od&#8230; wymy\u015blenia i napisania test\u00f3w. Mam tu na my\u015bli oczywi\u015bcie TDD <em>(ang. Test Driven Development)<\/em>.<br \/>\nA jak to si\u0119 ma do system\u00f3w wbudowanych? Ot\u00f3\u017c wszelkie zagadnienia testowania oprogramowania typowo komputerowego (do poziomu komponentu) mo\u017cna bez wi\u0119kszych przeszk\u00f3d przenie\u015b\u0107 r\u00f3wnie\u017c na grunt oprogramowania wbudowanego. Nieco trudniej przedstawia si\u0119 sprawa testowania integracyjnego, gdzie si\u0142\u0105 rzeczy potrzebujemy wszystkich s\u0105siad\u00f3w naszego systemu, z kt\u00f3rymi prowadzi on interakcj\u0119. W naszym przypadku b\u0119dzie to ca\u0142kiem spory kawa\u0142ek elektryki samochodowej. Pierwszym pomys\u0142em jest oczywi\u015bcie zabranie naszego urz\u0105dzenia, pod\u0142\u0105czenie go w aucie i rozpocz\u0119cie zabawy! Bierzemy wi\u0119c laptopa i idziemy odwiedzi\u0107&#8230;<\/p>\n<h5>Samoch\u00f3d w gara\u017cu<\/h5>\n<p>Wsiadamy do auta i niemal natychmiast pojawia si\u0119 pewne &#8222;ale&#8221;&#8230; Pod wzgl\u0119dem komfortu pracy, wn\u0119trze samochodu dalekie jest od idea\u0142u (czyli naszego biurka). Brakuje du\u017cego monitora, nawet z laptopem w fotelu kierowcy jest do\u015b\u0107 ciasno, kierownica przeszkadza w wygodnym roz\u0142o\u017ceniu matrycy, wpisywanie czegokolwiek jest bardzo niewygodnie, a u\u017cywanie myszki &#8211; praktycznie niemo\u017cliwe. Zbyt d\u0142ugie testy ko\u0144cz\u0105 si\u0119 roz\u0142adowaniem akumulatora w samochodzie lub baterii w laptopie. Niezmiernie trudno jest wymusi\u0107 r\u00f3wnie\u017c niekt\u00f3re b\u0142\u0119dy\/usterki, np. niski poziom p\u0142ynu ch\u0142odniczego lub zu\u017cyty klocek hamulcowy. Rozwi\u0105zaniem naszych problem\u00f3w jest &#8230;<\/p>\n<h5>Samoch\u00f3d na biurku<\/h5>\n<p>Czyli pr\u00f3ba odwzorowanie najwa\u017cniejszych fragment\u00f3w instalacji elektrycznej, tak aby zmie\u015bci\u0142a si\u0119 na naszym standardowym stanowisku pracy. Czego b\u0119dziemy potrzebowa\u0107? Na pocz\u0105tek wystarczy zestaw wska\u017anik\u00f3w &#8211; w ko\u0144cu to jest nasz g\u0142\u00f3wny obiekt zainteresowa\u0144 \ud83d\ude42 W przysz\u0142o\u015bci, w miar\u0119 potrzeb, mo\u017cna uzupe\u0142ni\u0107 go sterownikiem ECU, modu\u0142em komfortu i innymi urz\u0105dzeniami. <\/p>\n<p>Aby o\u017cywi\u0107 licznik na biurku b\u0119dziemy potrzebowa\u0107:<\/p>\n<ul>\n<li>wy\u0142\u0105cznik zasilania (kontakt 30),<\/li>\n<li>wy\u0142\u0105cznik zap\u0142onu (kontakt 15),<\/li>\n<li>czujniki: temperatury zewn\u0119trznej, temperatury p\u0142ynu, poziomu p\u0142ynu spryskiwaczy, p\u0142ynu ch\u0142odniczego, klock\u00f3w hamulcowych, itd.<\/li>\n<li>po\u0142\u0105czenie CAN mi\u0119dzy zestawem wska\u017anik\u00f3w a sterownikiem silnika,<\/li>\n<li>po\u0142\u0105czenie CAN mi\u0119dzy zestawem wska\u017anik\u00f3w a modu\u0142em komfortu,<\/li>\n<li>z\u0142\u0105cze diagnostyki OBD<\/li>\n<\/ul>\n<p>A wi\u0119c do dzie\u0142a! Pierwszym elementem uk\u0142adanki b\u0119d\u0105 odpowiednie wi\u0105zki z wtyczkami.<br \/>\n<a href=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/czesci_2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/czesci_2-1024x768.jpg\" alt=\"\" width=\"720\" height=\"540\" class=\"aligncenter size-large wp-image-462\" srcset=\"https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/czesci_2-1024x768.jpg 1024w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/czesci_2-600x450.jpg 600w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/czesci_2-300x225.jpg 300w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/czesci_2-768x576.jpg 768w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/czesci_2.jpg 1200w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><br \/>\nKilka wy\u0142\u0105cznik\u00f3w, kt\u00f3re b\u0119d\u0105 &#8222;symulowa\u0107&#8221; odpowiednie czujniki oraz stacyjk\u0119. Ca\u0142o\u015b\u0107 zamkni\u0119ta zostanie w plastikowej obudowie, a wszystkie przewody zostan\u0105 uj\u0119te w elastyczne odgi\u0119tki.<br \/>\n<a href=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/czesci_1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/czesci_1-1024x768.jpg\" alt=\"\" width=\"720\" height=\"540\" class=\"aligncenter size-large wp-image-461\" srcset=\"https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/czesci_1-1024x768.jpg 1024w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/czesci_1-600x450.jpg 600w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/czesci_1-300x225.jpg 300w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/czesci_1-768x576.jpg 768w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/czesci_1.jpg 1200w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><br \/>\nWy\u0142\u0105czniki u\u0142o\u017cy\u0142em w jednej linii, do\u015b\u0107 wysoko, tak aby przy ewentualnej rozbudowie mo\u017cna by\u0142o nawierci\u0107 drugi rz\u0105d otwor\u00f3w. Z lewej strony wyprowadzone zosta\u0142y przewody prowadz\u0105ce do z\u0142\u0105cza diagnostycznego oraz kable zasilaj\u0105ce +12V. Dwie zielone diody LED sygnalizuj\u0105 w\u0142\u0105czenie zasilania (kontakt 30) i przekr\u0119cenie stacyjki (kontakt 15).<br \/>\n<a href=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_1-1024x768.jpg\" alt=\"\" width=\"720\" height=\"540\" class=\"aligncenter size-large wp-image-463\" srcset=\"https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_1-1024x768.jpg 1024w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_1-600x450.jpg 600w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_1-300x225.jpg 300w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_1-768x576.jpg 768w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_1.jpg 1200w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><br \/>\nTrzy prze\u0142\u0105czniki chwilowe udaj\u0105 manetk\u0119 MFA, za\u015b po ich lewej stronie znajduj\u0105 si\u0119 niewielkie, precyzyjne potencjometry monta\u017cowe symuluj\u0105ce czujniki: poziomu paliwa (500ohm), temperatury p\u0142ynu (2k) oraz temperatury otoczenia (5k).<br \/>\n<a href=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_2-1024x768.jpg\" alt=\"\" width=\"720\" height=\"540\" class=\"aligncenter size-large wp-image-464\" srcset=\"https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_2-1024x768.jpg 1024w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_2-600x450.jpg 600w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_2-300x225.jpg 300w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_2-768x576.jpg 768w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_2.jpg 1200w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><br \/>\nZ ty\u0142u obudowy znalaz\u0142y si\u0119 dwa z\u0142\u0105cza DB-9. Lewe w przysz\u0142o\u015bci pos\u0142u\u017cy do pod\u0142\u0105czenia dodatkowych sterownik\u00f3w. Zawiera nast\u0119puj\u0105ce sygna\u0142y:<\/p>\n<ul>\n<li>CAN silnika,<\/li>\n<li>CAN komfortu<\/li>\n<li>linia diagnostyki (K)<\/li>\n<li>masa sygna\u0142owa (GND)<\/li>\n<\/ul>\n<p>\nPrawe gniazdo b\u0119dzie stanowi\u0107 \u017ar\u00f3d\u0142o sygna\u0142\u00f3w dla naszego urz\u0105dzenia, zanim zostanie ono zabudowane we wn\u0119trzu licznika. Znajduj\u0105 si\u0119 na nim:<\/p>\n<ul>\n<li>CAN silnika,<\/li>\n<li>CAN komfortu<\/li>\n<li>linia diagnostyki (K)<\/li>\n<li>masa sygna\u0142owa (GND)<\/li>\n<li>+12V po stacyjce<\/li>\n<\/ul>\n<p><a href=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_3-1024x768.jpg\" alt=\"\" width=\"720\" height=\"540\" class=\"aligncenter size-large wp-image-465\" srcset=\"https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_3-1024x768.jpg 1024w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_3-600x450.jpg 600w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_3-300x225.jpg 300w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_3-768x576.jpg 768w, https:\/\/hayperek.pl\/wp-content\/uploads\/2018\/03\/test_3.jpg 1200w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><br \/>\n<br \/>\nW ten spos\u00f3b niewielkim kosztem uda\u0142o si\u0119 nam stworzy\u0107 namiastk\u0119 samochodu, kt\u00f3r\u0105 mo\u017cna z powodzeniem zmie\u015bci\u0107 na biurku. W przysz\u0142o\u015bci na pewno zostanie ona rozbudowana, jednak ju\u017c w obecnym stanie znacz\u0105co u\u0142atwia testowanie naszego urz\u0105dzenia bez konieczno\u015bci biegania do gara\u017cu.<\/p>\n<h5>Szersze spojrzenie<\/h5>\n<p>Z punktu widzenia in\u017cynierii oprogramowania, to co dzi\u015b stworzyli\u015bmy jest swego rodzaju wewn\u0119trznym narz\u0119dziem. Buduj\u0105 je sami developerzy, aby u\u0142atwi\u0107 sobie pisanie kodu, testowanie czy wdra\u017canie. Zazwyczaj wi\u0105\u017ce si\u0119 to ze spor\u0105 inwestycj\u0105 czasu, i st\u0105d postrzegane jest cz\u0119sto jako co\u015b zb\u0119dnego czy wr\u0119cz szkodliwego. W ostatecznym rozrachunku niemal zawsze tego typu narz\u0119dzia znacz\u0105co poprawiaj\u0105 efektywno\u015b\u0107 pracy, u\u0142atwiaj\u0105 wczesne wykrycie b\u0142\u0119d\u00f3w oraz pomagaj\u0105 w ich p\u00f3\u017aniejszym naprawianiu.  <\/p>",
        "protected": false
    },
    "excerpt": {
        "rendered": "<p>Dzi\u015b zajmiemy si\u0119 czym\u015b bardziej praktycznym, ni\u017c ostatnio \ud83d\ude42 Na pocz\u0105tek zadajmy sobie pytanie: Jak testowa\u0107 system wbudowany, przeznaczony do samochodu&#8230; bez samochodu? Ka\u017cda osoba zajmuj\u0105ca si\u0119 tworzeniem oprogramowania wie, jak istotne w procesie developmentu s\u0105 testy jednostkowe, komponentowe czy integracyjne. Pozwalaj\u0105 one bardzo wcze\u015bnie wychwyci\u0107 spor\u0105 cz\u0119\u015b\u0107 b\u0142\u0119d\u00f3w powsta\u0142ych na etapie pisania kodu. Zapewniaj\u0105 [&hellip;]<\/p>",
        "protected": false
    },
    "author": 1,
    "featured_media": 475,
    "comment_status": "closed",
    "ping_status": "open",
    "sticky": false,
    "template": "",
    "format": "standard",
    "meta": {
        "footnotes": ""
    },
    "categories": [
        3
    ],
    "tags": [],
    "class_list": {
        "0": "post-459",
        "1": "post",
        "2": "type-post",
        "3": "status-publish",
        "4": "format-standard",
        "5": "has-post-thumbnail",
        "6": "hentry",
        "7": "category-stodni",
        "9": "post-with-thumbnail",
        "10": "post-with-thumbnail-large"
    },
    "_links": {
        "self": [
            {
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/posts\/459",
                "targetHints": {
                    "allow": [
                        "GET"
                    ]
                }
            }
        ],
        "collection": [
            {
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/posts"
            }
        ],
        "about": [
            {
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/types\/post"
            }
        ],
        "author": [
            {
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/users\/1"
            }
        ],
        "replies": [
            {
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/comments?post=459"
            }
        ],
        "version-history": [
            {
                "count": 12,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/posts\/459\/revisions"
            }
        ],
        "predecessor-version": [
            {
                "id": 599,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/posts\/459\/revisions\/599"
            }
        ],
        "wp:featuredmedia": [
            {
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/media\/475"
            }
        ],
        "wp:attachment": [
            {
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/media?parent=459"
            }
        ],
        "wp:term": [
            {
                "taxonomy": "category",
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/categories?post=459"
            },
            {
                "taxonomy": "post_tag",
                "embeddable": true,
                "href": "https:\/\/hayperek.pl\/pl_pl\/wp-json\/wp\/v2\/tags?post=459"
            }
        ],
        "curies": [
            {
                "name": "wp",
                "href": "https:\/\/api.w.org\/{rel}",
                "templated": true
            }
        ]
    }
}