Android app audit

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Eppo ©
  • Registratie: Juni 2004
  • Niet online
Op mijn werk hebben ze een android app laten maken. In het begin leek dat allemaal goed te gaan, maar nu komen er steeds meer fouten boven tafel. Gedeeltelijk komt dat door gebrekkig testen in het begin, aan de andere kant komt het door (naar mijn idee) rommelig programmeer werk. Aangezien dat laatste niet is te bewijzen (we hebben de broncode niet) en als we de broncode wel hebben, zegt het ons niks (we laten het niet voor niets door een ander maken). Nu was mijn idee om een audit op de code te laten uitvoeren door een derde partij, om zo een reëel en eerlijk beeld te krijgen hoe het met de app er voorstaat. Het enige wat we weten over de broncode is dat ze Xamarin gebruiken voor het schrijven, dus dat hij waarschijnlijk in C# is geschreven.

Het lastige is dat als je gaat zoeken op Android en Audit dat je vaak geautomatiseerde tools krijgt die een audit kunnen uitvoeren. Dat zegt ons nog niet veel. Om die reden zijn we echt op zoek naar een bedrijf dat een audit kan uitvoeren en ons daarna kan vertellen wat de kwaliteit van de app is.

De vraag is dan ook, zijn hier speciale bedrijven voor? Hoe vind je die? Of zou elke Android programmeur een goede audit kunnen uitvoeren en moeten we opzoek naar bedrijven die android apps maken? Als dat laatste het geval is, hoe kan je die makkelijk vinden? Een google search komt vaak uit bij uitleg over hoe je een app moet maken, maar niet een bedrijf die het voor je kan doen (en daarnaast ben ik nog een iPhone gebruiker en zou zo snel niet weten welke apps voor Android goed zijn en welke niet).

Of is de beste optie om een advertentie te plaatsen in de Vraag en Aanbod sectie en kijken wat daar op reageert?

Acties:
  • 0 Henk 'm!

  • TheDevilOnLine
  • Registratie: December 2012
  • Laatst online: 06-06 22:54
Ik denk dat je het beste op zoek kan naar een bedrijf dat zelf ook apps maakt met de zelfde tools e.d., je moet daar alleen wel bij oppassen dat ze je niet van alles gaan wijsmaken om zo te proberen zelf een opdracht binnen te halen om die problemen op te lossen. Ik zou daarom ook duidelijk maken dat eventuele fouten die worden gevonden altijd door een andere partij zullen worden opgelost (zo zijn ze zo objectief mogelijk).

Let er wel op dat ze al hebben aangegeven dat ze Xamarin gebruikt hebben, hierdoor kan je niet bij de 'doorsnee' Android developer aankloppen, maar heb je wel een specialist nodig.

Xamarin heeft zelf op hun site een lijst van authorized/certified partners staan (https://xamarin.com/consulting-partners) mogelijk kan je daar eens aankloppen...

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 27-09 13:03
Hoe ga je die audit laten doen dan als je de broncode niet hebt?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • $n@p$hot
  • Registratie: Juni 2000
  • Laatst online: 09:46
Officieel mag ik natuurlijk geen reclame maken, maar dit is een van de services die wordt aangeboden naar mijn werkgever TIOBE Software. Wij zijn gespecialiseerd in het automatisch meten van code kwaliteit volgens de ISO 25010 standaard, maar voeren daarnaast ook regelmatig audits uit. Dagelijks checken we de code kwaliteit van meer dan 350 miljoen regels code en enkele van onze klanten zijn ASML, TomTom en Philips Healthcare. Sommige van onze klanten gebruiken ook Xamarin voor Android development en deze code wordt ook door ons gechecked.

De kwaliteit van code meten wij aan de hand van ons TQI label:

Afbeeldingslocatie: http://www.tiobe.com/content/company/images/TQI_small.png

Hierin zitten 8 metrieken verwerkt die een goed beeld geven van de algehele code kwaliteit, zoals abstract interpretation (welke code paden kunnen tot fouten leiden?) en cyclomatic complexity (hoe complex zijn mijn functies?). Voor meer informatie kun je kijken op onze website http://www.tiobe.com en een demo van ons product is te vinden op: http://demo.tiobe.com. Onze demo site laat de code kwaliteit van de open source project Git en OpenSSH zien.

Onze software kan je dus een goed beeld geven van de code kwaliteit, maar zal je in mindere mate helpen om fout gebruik en bad practices van bijvoorbeeld Xamarin op te sporen. Hiervoor kun je beter bij andere Android developes aankloppen.

Mocht je meer informatie meer informatie willen dan kun je een mail sturen naar sales (at) tiobe.com

offtopic:
Disclaimer voor mods: ;)

Ik weet dat er op GOT geen reclame mag worden gemaakt, maar ik kon in het profiel van de topic starter geen contact informatie vinden en zag ook geen optie om hem een direct message te sturen. Mochten jullie mijn post willen verwijderen, zouden jullie dan zo aardig willen zijn om hem door te sturen naar de topic starter?

Acties:
  • 0 Henk 'm!

  • Eppo ©
  • Registratie: Juni 2004
  • Niet online
farlane schreef op vrijdag 12 juni 2015 @ 17:34:
Hoe ga je die audit laten doen dan als je de broncode niet hebt?
We gaan het idee van de audit voorstellen. Als ze het accepteren, dan moeten ze de broncode gaan delen. Als ze weigeren, dan zegt dat misschien al voldoende en moeten we misschien overstappen naar iemand anders.

Voordat we het idee gaan voorstellen, willen we al een compleet plan hebben. Dit zorgt ervoor dat het niet tussen wal en schip raakt of dat de programmeurs een bevriende programmeur naar voren schuiven voor een audit.

@TheDevilOnLine, bedankt. Ik had er helemaal niet aan gedacht om te beginnen bij Xamarin gecertificeerde partners. Ondanks het niet alles zegt, hebben ze wel ervaring met Xamarin.

@$n@p$hot. Als ik het goed begrijp kijkt jullie software alleen maar of de code correct is en niet of het een logische code is? Op zich ook handig, maar denk dat de uitkomst voor ons nog een te ver van ons bed show is. Hoe dan ook, ik neem hem wel even mee in de vergelijking.

Acties:
  • 0 Henk 'm!

  • maxtz0r
  • Registratie: Februari 2007
  • Laatst online: 17-12-2022
Eppo © schreef op maandag 15 juni 2015 @ 16:41:
[...]
@$n@p$hot. Als ik het goed begrijp kijkt jullie software alleen maar of de code correct is en niet of het een logische code is? Op zich ook handig, maar denk dat de uitkomst voor ons nog een te ver van ons bed show is. Hoe dan ook, ik neem hem wel even mee in de vergelijking.
Ik denk persoonlijk dat je opzoek moet gaan naar een bureau wat je app test. Je geeft zelf al aan dat er in het begin niet goed getest is en dat alles goed leek te gaan. Dat doet vermoeden dat de code prima werkt voor de scenario's die in eerste instantie veel voorkomen.
Een audit doen op de code lijkt mij niet heel zinvol, dit zal je uiteindelijk alleen een beeld geven of de code architectuur goed is en of er netjes is geprogrammeerd. Maar zelfs met die gegevens kunnen er altijd bugs voorkomen omdat er voor bepaalde scenario's gewoonweg geen rekening is gehouden.

Wanneer je een bedrijf inhuurt om de app te testen kun je met de resultaten naar de bouwer gaan en zeggen, dit zijn de bugs los ze maar op.

Dying is God's way of telling you, you've been FIRED.


Acties:
  • 0 Henk 'm!

  • mighty84
  • Registratie: Augustus 2010
  • Laatst online: 27-05-2024
Xamarin heeft zelf een mooie tests voor je. Via het xamarin insights programma kan je app op meerdere test laten uitvoeren.

Maak de app gebruik van error Reporting.
Crash de app of geeft de app de verkeerde resultaten. In de eerste situatie doet hij het altijd of soms altijd op zelfde device of is het niet voorspelbaar.welke android versie wordt er gebruik. Werkt het op android vesie. 2.3 wel en 4+ niet. Nieuwe versies van een is android kan soms tot problemen lijden.

Functionelen problemen zou ik gaan bekijken wat er afgesproken is. Zijn deze veranderd ?.
Gebruikt je app veel afbeeldingen dan dient de ontwikkelaar daar op mee te leren. Ios gaat daar veel beter mee overweg

Acties:
  • 0 Henk 'm!

  • Eppo ©
  • Registratie: Juni 2004
  • Niet online
maxtz0r schreef op maandag 15 juni 2015 @ 16:55:
Ik denk persoonlijk dat je opzoek moet gaan naar een bureau wat je app test. Je geeft zelf al aan dat er in het begin niet goed getest is en dat alles goed leek te gaan. Dat doet vermoeden dat de code prima werkt voor de scenario's die in eerste instantie veel voorkomen.
Dat testen is nu mijn werk geworden, dus om mijn werk nu uitbesteden lijkt mij niet de beste oplossing. Het probleem is dat de programmeur aangeeft dat de code gewoon goed is, maar dat wij tegen de meest vage problemen aan lopen. Aangezien dat een discussie is geworden die niet kan worden beëindigd zonder dat er iemand anders naar de code kijkt dan de programmeur wilde we de audit laten uitvoeren.

Als voorbeeld waarom ik erg twijfel aan de code. Op verschillende momenten haalt de app zijn gps locatie op en stuurt die naar onze server. Lijkt mij 1 functie die je maakt en dan steeds blijft aanroepen. Het vreemde is dat hij op verschillende momenten de x en y coördinaten wisselt of gewoon 0 terug stuurt. Na dit te hebben aangegeven is het opgelost, maar later bleek dat als de telefoon op engels staat hij in 1 van de verschillende situaties weer doodleuk 0 gaat terugsturen. |:( Als ik dan aangeef dat het lijkt of de app veel gebruik wordt gemaakt van copy-paste werk en dat mij dat niet de handigste manier lijkt, dan krijg ik te horen dat niet het geval is. Dan maakt onze programmeur weer uren en heeft hij op de den duur toch het probleem gevonden (goh).

@mighty84 Na lang aandringen hebben ze die ook ingebouwd. Eerst had ik CrashLytics gevonden, maar die konden ze niet inbouwen. Het lastige is weer dat wij geen toegang krijgen tot de logs van insights en we vaak te horen krijgen dat insights weer niet goed werkt. Van geen logging zijn we naar te veel logging gegaan naar weer iets minder logging. Puntje bij paaltje, we hebben nu wel een logging waarvan ik niet weet hoe goed hij is en we hebben nog steeds vage problemen.

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Eppo © schreef op dinsdag 16 juni 2015 @ 19:21:
[...]
Als voorbeeld waarom ik erg twijfel aan de code. Op verschillende momenten haalt de app zijn gps locatie op en stuurt die naar onze server. Lijkt mij 1 functie die je maakt en dan steeds blijft aanroepen. Het vreemde is dat hij op verschillende momenten de x en y coördinaten wisselt of gewoon 0 terug stuurt. Na dit te hebben aangegeven is het opgelost, maar later bleek dat als de telefoon op engels staat hij in 1 van de verschillende situaties weer doodleuk 0 gaat terugsturen. |:( Als ik dan aangeef dat het lijkt of de app veel gebruik wordt gemaakt van copy-paste werk en dat mij dat niet de handigste manier lijkt, dan krijg ik te horen dat niet het geval is. Dan maakt onze programmeur weer uren en heeft hij op de den duur toch het probleem gevonden (goh).
Op zich is dit nog best een "redelijk moeilijk" probleem afhankelijk van de exacte wens.
Daadwerkelijke gps locatie gebruiken is een stroomvreter. Assisted GPS / network location is heel wat beter voor het stroomgebruik.
Dus er kunnen best meerdere functies zijn voor locatie ophalen (sommige plekken is exactheid nodig en dan moet GPS aan, maar andere plekken is wellicht exactheid minder belangrijk en dan hoeft geen GPS)

En als jullie bijv ook hebben aangegeven liever geen stroomvreter app te hebben dan zullen er keuzes gemaakt moeten worden.
Het is allemaal geen rocketscience en het is ook niet alsof er geen 10.000'en codevoorbeelden in library's en op internet etc staan, maar het is net even iets meer als 1 functie bouwen die enkel gps-locatie ophaalt.
@mighty84 Na lang aandringen hebben ze die ook ingebouwd. Eerst had ik CrashLytics gevonden, maar die konden ze niet inbouwen. Het lastige is weer dat wij geen toegang krijgen tot de logs van insights
Simpel gezegd : Als jij er geen inzicht in hebt is er niets ingebouwd qua jullie wens. Dat is tenminste over het algemeen mijn zwart-wit weergave van dit soort dingen.
Logging is zo'n ruim begrip (al loggen ze enkel wanneer het programma start dan loggen nog iets alleen je hebt er geen fluit aan) dat je er zelf inzage in moet hebben.
Qua debug-logging zeg ik altijd : Elke fout die ik kan vinden moet eerst een log-regel veroorzaken ook al moet die nog verzonnen worden en daarna pas gefixed. En ik moet die log-regel voorbij hebben zien komen, want als er dan later regressie oid optreed dan weten we direct waar te zoeken als die logregel getriggerd wordt.

Zeker als je er op hebt moeten aandringen moet je het ook kunnen inzien / controleren. Want er is dan blijkbaar weerstand bij die partij en dan zullen ze niet al te scheutig zijn met logregels verwacht ik.

Acties:
  • 0 Henk 'm!

  • maxtz0r
  • Registratie: Februari 2007
  • Laatst online: 17-12-2022
Eppo © schreef op dinsdag 16 juni 2015 @ 19:21:
[...]

Dat testen is nu mijn werk geworden, dus om mijn werk nu uitbesteden lijkt mij niet de beste oplossing. Het probleem is dat de programmeur aangeeft dat de code gewoon goed is, maar dat wij tegen de meest vage problemen aan lopen. Aangezien dat een discussie is geworden die niet kan worden beëindigd zonder dat er iemand anders naar de code kijkt dan de programmeur wilde we de audit laten uitvoeren.

Als voorbeeld waarom ik erg twijfel aan de code. Op verschillende momenten haalt de app zijn gps locatie op en stuurt die naar onze server. Lijkt mij 1 functie die je maakt en dan steeds blijft aanroepen. Het vreemde is dat hij op verschillende momenten de x en y coördinaten wisselt of gewoon 0 terug stuurt. Na dit te hebben aangegeven is het opgelost, maar later bleek dat als de telefoon op engels staat hij in 1 van de verschillende situaties weer doodleuk 0 gaat terugsturen. |:( Als ik dan aangeef dat het lijkt of de app veel gebruik wordt gemaakt van copy-paste werk en dat mij dat niet de handigste manier lijkt, dan krijg ik te horen dat niet het geval is. Dan maakt onze programmeur weer uren en heeft hij op de den duur toch het probleem gevonden (goh).
Als je door een derde partij laat testen, die dus ervaring heeft met dit soort situaties(ik weet niet in hoeverre jij die ervaring hebt?), krijg je waarschijnlijk een hele rapportage aan testresultaten die je zo kan doorspelen naar de ontwikkelaars. Daarbij kan je aangeven dat dit door een derde partij is gedaan en dus onafhankelijk is(al is het maar de vraag in hoeverre zon derde partij onafhankelijk is ;-)) en kan je aangeven: "los het maar op!". Zij zullen dat natuurlijk niet zomaar doen maar daar zal je dan samen uit moeten komen wil je het beste resultaat krijgen.

De reden waarom ik dit zeg is omdat ik je dingen hoor zeggen als "Lijkt mij 1 functie die je maakt en dan steeds blijft aanroepen." en "dat het lijkt of de app veel gebruik wordt gemaakt van copy-paste werk", dat zijn natuurlijk niet echt dingen die je als tester kan beoordelen. En al zou je een code audit laten uitvoeren om je vermoedens te laten bevestigen betekend dat natuurlijk nog niet dat zij zomaar de code gaan herschrijven om wel aan de audit te voldoen, wellicht dat zelfs de problemen daarmee niet eens worden opgelost.

Ben bang dat het teveel een vingerwijs spelletje is dan daadwerkelijk proberen samen het probleem op te lossen.

Dying is God's way of telling you, you've been FIRED.


Acties:
  • 0 Henk 'm!

  • mighty84
  • Registratie: Augustus 2010
  • Laatst online: 27-05-2024
Als de app altijd toegang heeft gps en deze aan zet kan hij 0,0 geven. Dit omdat er nog geen gps locatie heeft gevonden. 1 of meerdere functies maakt in dit geval niet uit.

Persoonlijk zie ik dit als een foutieve proces.
Oplossing.
1.
Ik laat mijn gps aan tijdens de app en blokkeert het als uit gaat.
2. Ik blijf gps signaal ophalen tot het een geldige gps heeft. Vaak word lat en long vergelijken met 0. Als beide niet nul zijn mag je uitsturen.
3. Vraag laatste bekende gps uit indien 0,0 pas versturen bij gevonden.
4. Vraag gps locatie op via netwerk. Deze is kan tot 50 - 150 onnauwkeurig zijn.

Note. Let op android heeft locatie functionaliteit waarbij elke wisseling gps locatie worden door gespeeld.

Note2 het kost tijd om gps op te vragen.

Het lijkt er op dat het om foute data gaat en niet fouten in de ontwikkeling.

Een vereiste is dus dat de functie nooit een 0,0 op mag leveren(foutieve business data)

Beschrijven van processen en minimale eisen en maximale eisen kunnen veel problemen voorkomen.

Wat voor jouw heel normaal is kan voor de ontwikkelaar als een verrasing komen.

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
mighty84 schreef op vrijdag 19 juni 2015 @ 10:10:
Persoonlijk zie ik dit als een foutieve proces.
Oplossing.
1. Ik laat mijn gps aan tijdens de app en blokkeert het als uit gaat.
Yikes, naast dat GPS altijd aan een accuvreter is zou ik bij opstarten van app de huidige gps-status uitlezen en opslaan en bij verlaten app die weer terugzetten.

Niet blind maar aan en uitzetten want dan kunnen andere apps weer in de problemen komen. Gewoon kijken waar hij op staat en netjes terugzetten.
2. Ik blijf gps signaal ophalen tot het een geldige gps heeft. Vaak word lat en long vergelijken met 0. Als beide niet nul zijn mag je uitsturen.
Dit kan dus (relatief) lang duren en als je het bijv bij voertuigen die 120 over een snelweg wil toepassen dan kan je een verkeerde lokatie koppelen.
Het is maar net afhankelijk van je toepassing of dit wel of niet toegestaan is.

Acties:
  • 0 Henk 'm!

  • mighty84
  • Registratie: Augustus 2010
  • Laatst online: 27-05-2024
Gomez12 schreef op vrijdag 19 juni 2015 @ 11:28:
[...]

Yikes, naast dat GPS altijd aan een accuvreter is zou ik bij opstarten van app de huidige gps-status uitlezen en opslaan en bij verlaten app die weer terugzetten.

Niet blind maar aan en uitzetten want dan kunnen andere apps weer in de problemen komen. Gewoon kijken waar hij op staat en netjes terugzetten.


[...]

Dit kan dus (relatief) lang duren en als je het bijv bij voertuigen die 120 over een snelweg wil toepassen dan kan je een verkeerde lokatie koppelen.
Het is maar net afhankelijk van je toepassing of dit wel of niet toegestaan is.
Klopt gps aan laten staan kost veel batterij. Aan en uit zetten is soms niet handig wat je wel kan doen is je zelf aan en afmelden op location update.

Punt 1 was bedoeld als gps noodzakelijkerwijs en een vereiste. Ik weet dat veel apps dit gewoon doen helaas

Een goede manier is op tijdens data invoer gps op te halen.
Dit is Google antwoord er op http://developer.android....gies.html#BestPerformance
Pagina: 1