Архив за месяц: Февраль 2016

Android: Разработка и тестирование приложений без долгих рассуждений

На чём пишут Android приложения (языки и технологии)

В основном, на Java. Также для некоторых задач (например, 3D-графика) могут использовать C++ и даже C# (проект Xamarin). В целом, синтаксис всех трёх языков довольно схож и если вы знакомы хотя бы с одним из них, а также с принципами ООП, то проблем с чтением кода не возникнет.

 В чём пишут Android приложения (IDE)

В основном, так как мы в основном будем иметь дело с Java, используют Eclipse и Intellij IDEA. Первый бесплатный и менее удобный (зато можно бесплатно использовать в коммерческой разработке), второй — платный и более удобный (есть бесплатная версия, но она для «домашнего» использования). Для разработки под Android есть плагины к этим IDE.

Кроме того, компания Google сама распространяет IDE под названием Android Studio, основанную на IDEA и включающую также Android SDK (набор классов и инструментов для разработки) и AVD Manager (для создания и запуска виртуальных устройств Android). В настоящее время предпочтительно использовать именно её, она бесплатна и удобна в использовании.

 Где проверять работу Android приложений (устройства vs. эмуляторы)

Идеальный вариант — сочетать обе возможности. Реальные устройства дадут вам больше возможности в тестировании и покрытии приложения тестами (ведь работа мобильных приложений, в отличие от десктопных, зависит от множества факторов — уровень сигнала, смена уровня батареи, положения экрана, входящий звонок или действие «соседнего» приложения), эмулятор же интегрирован с IDE и можно быстро собрать, задеплоить и запустить приложение в эмуляторе и посмотреть как оно работает. Если вы занимаетесь функциональным или юзабилити тестированием, то лучше это делать на реальных устройствах (хотя бы на нескольких самых распространённых), если же тестированием защищённости — то лучше в эмуляторе (в нём можно контролировать и отслеживать работу приложения на системном уровне, к тому же это безопасней если мы ковыряем malware).

 Android Studio — Установка и настройка

Идём на страницу Android Studio, читаем и соглашаемся с лицензионным соглашением. Жмём Download. Установщик весит 1,2 Gb и при установке потребует 4,5 Gb на диске.

Далее запускаем инсталлятор. Ставить будем на Windows (можно на виртуалку, как вам удобней). Есть также сборки для Linux и Mac OS, но возможно там будут свои заморочки при установке 😉

Читать далее

OWASP Mobile Security Project and its defined Top 10 Mobile Risks

Let me introduce the OWASP (Open Web Application Security Project) — worldwide not-for-profit charitable organization focused on improving the security of software.

These guys are investigating the quality of software, not only web- or mobile-apps, and their site contain tonns of useful info for everyone interested in security testing.

Today I would like to tell about one of their projects — OWASP Mobile Security Project.
As it coming from the name of project — it’s about security of mobile OS (like Android or iOS), applications and devices itself.

OWASP had defined  Top 10 Mobile Risks that applicable to any mobile platform:

Mobile_Top_10_2014_570

They’ve also provided comprehensive description per each risk, so if you’re curious about what they mean, click on the image above or per links below:

Also, a full Risks description, including examples of vulnerable code, available at this presentation: Owasp_top_10_mobile_risks.pdf

In addition, OWASP maintains and distributes a check list to go through the system under test, it can be used in the work: OWASP Mobile App Checklist v1.0.pdf

 

Announce for ‘How to Deliver Robust and Secure Software’ webinar

17-02-2016_HowToDeliverRobustAndSecureSoftware

Creating software is easy—anyone can do it. But creating secure, robust software with high quality is extremely challenging.

The short game of software development is all about bringing functionality to market as quickly as possible. In the long game, it’s your delivery process that ensures software is created with low risk and high quality.

Join this web seminar to learn how to implement a robust, secure software delivery process that ensures effective management of the supply chain, license compliance, management of known and unknown vulnerabilities, and reduced risk for both developers and consumers of software.

You’ll learn how to:

  • Examine the short-term and long-term drivers of software development
  • Understand the risks involved in the assembly and use of software
  • Appreciate how better processes helps minimize risk for software creators and consumers
  • Evaluate the available tools for minimizing the risks of creating and consuming software

Event Date: Wednesday, February 17, 2016
Event Time: 2:00 p.m. ET/11:00 a.m. PT
Event Registration: Free. Use this link to register

Memory leaks in software — What is and how to reveal them using build-in Windows tools

Recently it became known two sites that are hung your browser and operating system. The first one crushes all once you visited it via Google Chrome and the second one in case if it is loaded via Safari (iOS).

Basically, both sites has used the same mechanism to do so — Memory overloading via embedded java-script:

<!-- CrashChrome -->
<!-- CrashSafari -->
<script>
 var total = "";
  for( var i = 0; i < 100000; i++ ) {
   total = total + i.toString();
   history.pushState(0,0, total );
  }
</script>

Whilst these sites are deliberate destructive they show us how sensitive software and even OS could be to memory leaks.

In fact, memory leaks may occur accidentally if the source code contain inefficient use of memory. And yes, memory leaks is a kind of software bugs tester must reveal before it go to production.

There is numerous of software in modern world that designed to work 24/7 (e.g., all websites, POS and embedded systems), thus if we testing it, we should bear in mind:

  • Dedicate a server where your software will run all the time, without reboot of system.
  • Periodically collect performance metrics from the application on this server — memory, processor and disk usage would be enough

Windows already contain some tools to measure resource usage, so you don’t have to buy anything else. Just start Task Manager (taskmgr.exe in command line or from Ctrl+Alt+Del window) and switch to Processes tab. Sort list by eithther Image Name (if you’re looking for a specific process) or Memory (Private Working Set) and it’ll show you which processes are the most voracious. Look at the picture below, Lync (which is currently known as Skype for Business) uses twice more memory than the Skype (usual one)!

memory-leaks_task-manager

Now switch to Performance tab. Run Resource Monitor from there (another way is to call resmon from command line). This tool provides detailed info regarding your system resources consumption, including charts and diagrams that would help to analyze metrics over the time:

memory-leaks_resource-monitor-580px

You could leave these tools running on your systems and collect memory/processor/disk consumption of your application time to time, to be able to detect memory leaks (and another unexpected behaviour of your application).