Autonomous Vehicles in Public Transportation

Abstract—The purpose of this research is investigating the usage of Autonomous Vehicles (AVs) in public transportation and proposing a new system using AVs and data sources to increase efficiency in public transportation provided by busses and taxis.
This paper states the parameters of AVs in public transportation and discusses how it will result in an efficient way of managing the public transportation according to collected data such as waiting passenger count, current traffic density, timetables etc. The words “autonomous” and “connected” can be used in this case, because the system that paper suggests, uses dynamic data also from current view (via multiple sensors) of the vehicle and other sources from the internet as it can come from other connected vehicles etc.

Index Terms—Autonomous vehicle (AV), traffic optimization, smart city, public transportation.


During the last years, the autonomous driving subject seems more popular than ever, as the technology improves and more companies announcing that the works have been started about this subject, it has become a hot topic. By 2020 companies like Audi, GM, Daimler, Mercedes-Benz, Nissan, BMW, and Renault expect to sell vehicles that are close to fully-autonomous driving. By 2035 it is predicted that most cars would be fully autonomous. [2] It has been a while for the semi-autonomous features that have been used in vehicles such as automatic braking, lane keeping etc. but the future of AVs seems more complicated. While the AVs world has some developments and works, there is no doubt that the autonomous vehicles issue would not affect public transportation. After widely usage of AVs in traffic, it will be impossible to consider using them in public transportation.

This research will be consisted of three main aspects of AVs in public transportation which are;
– Technology
– Optimization
– Safety

In Technology part, the features of AVs which provided by latest improvements in autonomous driving can be useful for public transportation and how they will be used in a matter will be discussed.

While debating the Optimization issues, beyond the general problems of AVs, it is especially will be investigated for public transportation and how it will affect the efficiency of managing it.

Lastly in Safety part, it will be discussed that if we can trust a vehicle that carries many passengers without a driver and what are the cases that should be considered.


Autonomous driving is one of the hottest topics in technology world in the last decade. Many companies work on new technologies and techniques to improve the efficiency and usage of the AVs.
The main concept is, an autonomous vehicle should operate without any human intervention. That appears new tasks to a vehicle, such as;

  • Vehicle should sense its environment with multiple sensors and identify appropriate behaviors according to them. From sensing cars, pedestrians, road objects to weather conditions, many input should be detected by the vehicle.
  • It should follow a navigation path. In the case of public transportation and proposed system, the navigation path can have multiple stops and instantaneous changes based on the information that is got from other data resources.
  • The vehicle should follow the traffic rules.
  • Unexpected situations should be handled. An odd behavior from a random pedestrian in the street or an accident should be recognized and the most suitable behavior of the vehicle should be applied.

This technology can be used in public transportation with a management system using different data sources and resulting an efficient system. These data can be used;

  1. Traffic Density. Bus routes are pre-determined and changes rarely. With the live traffic density data, bus route can be changed for maximizing the efficiency. In case of an accident which is on the bus route, or taxi’s route to destination, new calculated road can be a better solution to avoid the traffic jam and it definitely saves time.
  2. Passenger Density in Vehicles. This data can be gathered by using an observing technology in the vehicles. It will be used for distributing passenger numbers uniformly among the vehicles and lines.
  3. Bus Stop (Waiting) Passenger Density. This data can be gathered by using an observing technology at the bus/taxi stops. Measuring the crowd in the stops, will give data about demands for the numbers of vehicles that passes from the related stop.
  4. User Requests by a Mobile App. Waiting Passenger Destiny would not be useful when it is used solely, there can be many bus routes that passes from the same stop so destiny does not indicate how many passengers are waiting for a specific bus. Via a mobile application, bus line requests can be taken from the potential passengers.
  5. Vehicle Number and Timetable Data. For managing an efficient autonomous public transportation system, beyond the data that is collected from the sources must be coalesced with current numbers of vehicles and timetable data.

All these data that gathered and merged together, can be converted into a significant data which will be used in managing and optimization of an efficient public transportation system with autonomous vehicles.
In the system, buses and taxis are considered for the research and in the Figure 1, there are some differences mentioned in related vehicle types.


While comparing different type of public transportation AVs, there appears different properties. These properties are stated and compared as follows:

  1. Route. Bus routes are pre-determined and changes rarely. This provides an information about the behavior of AVs. An autonomous vehicle used for a taxi should be prepared for any destination that requested from the passenger and process it. In the case of buses, route is not a considerable problem as it appears in case of taxis. If we ignore the route changes in case of traffic jam or any related problems, changes in bus routes are not expected.
  2. Stops. Bus routes have many stops, although taxis have only two stop including departure and destination. In some occasions (for example in case of one of the passengers can get off at a location between departure and destination and taxi can continue its trip) there can me more than 2 stops but that will occur often. That results as different application styles of autonomous driving techniques in different type of vehicles when you consider about stops.
  3. Size. When we analyze in terms of maneuver capability and easiness of movement, taxis have much more advantages. As it is difficult for a human to drive a big vehicle like bus, same challenges (and more) appears when it becomes autonomous. For busses, it results as a disadvantage in the traffic on the contrary of capability of carrying many passengers. It will affect the behaviors of the vehicle, as it should maneuver differently in comparison of middle or small sized vehicles. For example; turning problems, changing lines, drawing close to bus stops.


Data from different sources must concentrate meaningfully, and can be used while targeting an efficient public transportation system with AVs usage. Without human drivers and with an internet connection to a management center, these AVs in a public transportation system can result in good scores.
We can catalogue optimized results within an efficient public transportation system with AVs;

  • Route Optimizing. This can be done also in human controlled vehicles, but costs will be remarkably less while managing AVs.
  • Human Factors. Both drivers and other staff, the cost of scheduling and asset utilization would be none.
  • Controlled Vehicle Behaviors. Better control of measuring speed, acceleration and braking. This will result as better passenger safety and comfort through improved driving style.


Beyond the issues of AVs about safety and reliability, public transportation vehicles have other cases that should be considered. There exists further points that can affect both passengers, vehicles and all traffic around the vehicles.
We can examine these issues under two separate headline, as safety and reliability;


In AVs, there are basic safety issues that are associated with driving assistance attributes together [8]:

  • Vision enhancement
  • Collision avoidance
  • Lateral and Longitudinal collision avoidance
  • Safety condition
  • Pre-crash restraint development
  • Automatic vehicle drive

These issues are also considered in public transportation vehicles, but there can vary other topics that should be studied.
Firstly, a public transportation vehicles (especially buses) have different maneuver styles and capabilities in comparison to personal AVs.
Secondly, Passenger get in/off the vehicle another issue. This includes, opening-closing doors and braking-speeding safely.
Lastly, another issue that related to ethical reasons, what should be the behavior of a 60 passenger carrying bus [10] in case of an unexpected situation? Discussions still continue what will be the behavior of an autonomous vehicle when to interfere with an accident. Essentially it is an important issue to consider, as it is explained in the paragraph below [9];

“Here is the nature of the dilemma. Imagine that in the not-too-distant future, you own a self-driving car. One day, while you are driving along, an unfortunate set of events causes the car to head toward a crowd of 10 people crossing the road. It cannot stop in time but it can avoid killing 10 people by steering into a wall. However, this collision would kill you, the owner and occupant. What should it do?”

And when it comes to discuss for public transportation it becomes more complex and hard to solve. What will happen when a 59 passenger carrying bus heading toward a crowd of 60 people crossing the road? Should we assume that as a correct decision when the bus steers into a wall to save 60 people, but killing 59 people? Unless final decisions have been made the AVs will be remained unsecure for the most of people with these vague ethical issues.


Reliability issues are mostly related to security issues, by the evaluation of the passengers. This results consequential effects on the future of AVs in public transportation also.
In a survey [11] of 2000 people, %80 of survey respondents said they would not buy an autonomous car if one were available today. This is a strong reluctance when you consider the people habits in last decades evolving with technology. People had been started to follow latest trends, buying latest technology stuff and if they withstand a technology, it can be better stop and consider there may be some things going not well. There can be many reasons to people think like this, but it shows us it is a susceptible topic and should be considered carefully.
Even people have some trust issues with personal AVs, there are more complicated and harder problems to solve when it comes to subject of public transportation with AVs. Even so most of the people keep at a distance while considering buying an autonomous vehicle, think how they reflect using public transportation with AVs.
Lastly, a fragile issue to contemplate is the test results in the road tests. When people start to hear bad accidents, uncontrolled situations, unexplainable behaviors of AVs that can result as a stillborn technology with disappearing promises and future plans. Namely, it is a delicate subject to many people with skeptical questions in their mind.


There would not seem a future without autonomous vehicles, as the improvements and numbers confirmed. [2] AVs in public transportation figures as an inevitable development after seeing many personal vehicles around over the next years.
All over the world, especially in subway systems [7], autonomous vehicle systems are being used and while some of them need a human operator as helper, some of them operates without any human assistant. With developing technology and growing numbers of companies that are working on AVs, it would not take so long time to be used in public transportation systems. After consideration of the problems of AVs in public transportation that are mentioned and applying the recommended system in this research may lead an efficient usage.




Comparative Evaluation of iOS and Android API’s

AbstractThe purpose of this research is to compare two API’s provided by two main mobile application development platforms. Categorized aspects are user interface, device compatibility, security and general architecture.  Many developers/companies develop applications on different platforms to get most of the customers, but that comes with problems during development processes.

This paper includes detailed comparisons of the main features of each API, which aims to facilitate development processes of the application with the same features on different platforms.


In the last decade, mobile phones has evolved remarkably from communicating devices to little computers with the same purposes of using: browsing on the web, social networks, online banking, and more. As the devices are being improved gradually, the companies are trying to develop smarter mobile applications to make the devices more useful. There are two main development platforms, spread because of their popularity and divergent approaches, iOS and Android. [1] In this paper, it will be compared the API’s that are supplied by Apple and Google, and how these API’s are affecting the mobile application development processes.

II.User Interface

  • Android

Android has a hierarchy    of Views                and ViewGroups that can be arranged in a simple or complex way. Graphical Layout (Figure 2) can be used for design in the layout design tool built-in the IDE or in XML file, view properties can be manageable by coding. Drag-drop feature is available while arranging objects on the screen.


Fig. 1: Android Layout Design Preview

Main difference from iOS API, Android has Activities and Fragments in the applications. Applications formed by many activities and every activity may behave independently from each other. Developers can use fragments as components on the screen which consists of many sub-objects like buttons, labels etc., and these fragments can also be used in different activities as components. That feature provides reusability in designing and coding, which results as time saving for the developer.

Android provides “Widgets” for the end-user. Widgets are an essential aspect of home screen customization [2], which can give a view of the applications data, and also give access to the application from the home screen.


Figure 2: Widget Example of “1Weather” App

Beyond the prebuilt UI components that provided in the Android application framework, it allows the developers to code customized components with using the prebuilt View and Viewgroup subclasses. This feature gives all control over the appearance and functions of a screen element. Developers can define their own customized UI components, and use them in their projects. For example, a customized submit button can be defined in the project, and can be used after that.

  • iOS

iOS has a development architecture with Models, Views, Controllers (uses MVC), thus Xcode can separate design and interface coding from backend functions.

  • Models: Works on logic and core data. Any change in the views does not need to revise the background services.
  • Views: The interface part of the application that intended to the end-user.
  • Controllers: Acts as intermediary between model and view. Objects connect to a ViewController which communicates with the Model.

As a result; models manage the data and the functions background, views interact with the user and viewcontrollers communicate two of these.

Storyboard is the tool used for designing user interfaces. In the screen, it allows to drag-drop the items from “The Objects Library” and uses them on the screen. Storyboard allows developers to create transitions between screens. This feature is the most beneficial part for iOS developers on the design process that works integrated with iOS API.


Figure 3: iOS Storyboard Preview

III. Device Compatibility

  • Android

Device compatibility is one the main problems that Android API is dealing with. There are many different manufacturers that produce mobile phones have Android OS, so that brings a diversity of devices with different features like screen size, variety of buttons, OS differences etc. Major differences between devices are the screen sizes and also OS version differences. Even though the Android API gives supports to solve these problems, there are many things that the application developer has to considerate about.

  •  iOS

Apple produces iPhone models with most common specifications, but in some versions of iPhone there are significant screen size difference between some models. (eg. iPhone 4/4S: 3.5 in – iPhone 5/5S: 4 in  [7,8]) As the models change, this caused many of the applications have to be revised. In newer iOS versions, API supports the changes for new device features. Also the new OS is forced to update, so that results same version of the OS by the most of the users except with the older versions of iPhone and iPads.

IV. Security

Security is a big issue which is even enough to discuss in another research, but main parts will be discussed as General Issues, Malware, Permissions, Restrictions and Application Submit Process.

  • General Issues

Both Android and iOS has a sandboxing feature for every application that installed. Application Sandbox includes a limited portion of the hard disk that assigned for the application and gives access to device features (via user permissions). Android API allows the developer to decide the files of the application are accessible by the other applications. This storage mechanism controlled by Content Providers, thus the developer can define the controls in manifest file to give access or not to the other applications. iOS does not have this control, but it gives the ability to share the files on cloud (iCloud), so the application that installed on different devices can work on the same application files.

In general, Android has a policy to give most of the control on the features to the developer, unlike iOS has many restrictions and features that are controlled by OS mostly. In common, these are the security features provided by two APIs; [15]

  • App Permission Notification
  • App Vetting Process (to publish the application in the store)
  • App Digital Signing
  • App Binary Encryption
  • App Sandboxing
  • Data Encryption
  • Damage Control
  • Address Space Layout Randomization


  • Malicious Threats

In order to prevent malicious attacks on mobile phones, both Android and iOS use review processes and user permissions. The most malware application attacks are collecting user information and sending premium-rate SMS messages. [15] Other attacks are named as credential theft, SMS spam, search engine optimization fraud, and ransom. There is no definite answer which OS defends user against vulnerable attacks better, but we can say each API has many solutions for every case.

There are three types of threats: malware, grayware, and personal spyware. [15]

Malware applications use two methods, making user to install the malicious application or remote access to the mobile phone using the device’s vulnerability. Grayware are the legal applications that are published in the App Store or Play Store, which collect the user data to use in user profiling or marketing. This type of applications does not harm users, collected data is used by the companies only. Personal spywares are used for collecting user data and transferring it to another device.

Each API has own methods and solutions against these attacks by the applications, it will be discussed as permissions and restrictions by the OS in the next topics.

  • Android

Android users can download applications from any resource. This entails security vulnerability of some cases, because within flexible boundaries of development on Android, developers may benefit with malicious applications. For the applications in Google Pay, Google has a review process for submitting applications [12], not much detailed as the Apple review process. Review process consists of default controls as memory management, personal info access etc. Before installing an application, an app permission notification is shown to the user so that the user would know which system features will be used by the application. That is a precaution for the malicious applications.

  • iOS

Malware in iOS is prevented mostly during the review process to submit the application to App Store. [6] The applications must follow Apple standards like Objectivity, Consistency as Transparency to get “Approved”. That concludes a strict review process does not allow developers to use malware in their applications, otherwise the application is “Rejected”.

Users cannot install from anywhere else but App Store. On the other hand jailbreaking iOS gives the ability to the user to install applications from unknown resources, which depends on user responsibility.

  • Permissions

  • Android

Android has a core element of security model that is called manifest file. This file includes all the necessary information to the Android platform for running the application. Developer defines the permissions that the application needs in this file and before installing it, user is asked to accept for these permissions. Please refer to [6] to find the complete list. These permissions have control for two states: (a) the way the application interacts with the Android API to use resources, and (b) the way the API and the other applications interact with the application’s component to use. [18]

Users cannot choose which permission to give separately, all of them has to be accepted before installing the application. Some researches claim that Android is better since the application shows all permissions list to the user before installing, so the user can choose to install or not. For example, if a sound effect application requesting access to contacts, there is probably a reason to think before installing the application. There is only one problem with the permissions list in Android applications, there is no option like choosing separately between the permissions, user has to accept all of them to continue installing.

  • iOS

An iOS application asks to use location data, push notifications, contacts reminders, calendars and photos. It asks for user permission, when it is required, from the user runtime consent for the first time the service is called.  When the method called, system asks the user to allow it. With iOS 7, user is asked for permission of microphone and motion activity also. Unlike Android applications, iOS API does not ask for permissions just before installing the applications. In contrast, iOS allows users to give permissions separately while running the application, which leads user can decide for each permission.

  • Restrictions

  • Android

Android OS allows applications to run services in the background, so developers can develop services with Android API. Services watch some conditions that defined and respond in actions without user starting the application. These services run under OS controls, so that memory management and preventing suspicious requests can be provided by the OS.

In compare to iOS, Android is more open. There are a few issues listed below as more free if it is compared to iOS;

  • Android apps can publish data, which other apps can consume. As an example, call history is available to reach from any application.
  • Apps can send notifications and other applications can subscribe to them. For example any application can subscribe to status change of outgoing and incoming calls.
  • Apps can invoke functionality from other apps just in a few lines of code.


  • iOS

It is allowed to prepare services that run in the background on Android OS, on the contrary, iOS does not provide to run background services. Services may use memory excessively, and may work as malicious programs which can cause security vulnerabilities and user experience problems. For that reason, iOS does not allow background services. Rather than this, there are some issues that handled by OS such as location services. iOS does not allow the developer to prepare some code to run in the background to monitor the location of the user via the application. Instead, the operating system is always (in case the user allows this feature) tracking the location of the mobile device, and triggers the code of the application that prepared by the developer and run it when the device enters an area that defined. In Android, OS allows the developer to run the services background, so it can collect its own data from system resources. Also because of iOS sandbox for applications, there are very limited possibilities                for communicating with the other applications.

  • Application Submit Process

  • iOS

Getting the application published in the App Store is the most tedious part for developers. [9] This process could take so long because review includes even the slightest errors. Although this approval duration (Apple’s vetting process) causes concerns about getting rejected, review teams report back with detailed reasons about the rejection which leads the review and improving mobile development skills for the developer. Also that maintains for the problems which can be skipped by developers and also testers. This review process leads to determine malware and potentially malicious in the applications, that is how Apple handles security issues as a precaution before accepting the applications to the App Store.

  • Android

In comparison with iOS review process, Android has an easy duration for submitting an application to Play Store. In App Store, it can take 3 or 4 days finishing the review, but in the Play Store it almost takes 5-6 hours to get your application listed in the store. Play Store has check list [10] for submitting application to the store, but not detailed review process therefore that may cause malicious applications to appear on the lists.

In addition to, Android application is required to be digitally signed by the developer to get published in the Play Store. However, signing the application by the certificate of the developer is mandatory, but it is not compulsory that the certificate has to be signed by a trusted certificate authority. Thus this leads anonymous developers to sign their applications as potential attackers.

V. General Architecture

  • Configuration

  • Android

Android app configuration is simple and elegant to work with, which is handled by a single manifest file and Eclipse builds the application in its entirety every time you save any file in the project.

  • iOS

iOS configuration is a little messy to work around with macros, header files, projects and targets, schemes, build configurations, build settings etc.

  • Programming Language


  • Android

Android apps are written in Java, which has the ability of using garbage collector and better stack traces.

  • iOS

iOS applications are written in Objective-C, and although syntax of Objective-C is much different from other object oriented languages it has many advantages in compare to Java for mobile application programming. It has blocks, categories and also it does not require to include try/catch exception-handling code blocks for error handling like in Java.


  • Development Environment

It is still available writing code in a notepad and command lines, yet still so many coders doing that, developers can use an integrated development environment for iOS and Android.


  • Android

Eclipse is used for Android development with customized Android plugins, but it need more time to be used effectively. The biggest problem with the usability of the IDE is Android emulator. It is still a big problem to develop application with an emulator that loads in approximately 10 minutes, and have many problems with the IDE when debugging.

  • iOS

Xcode is a fast, powerful IDE that has been developed by Apple, at it makes easy and joyful to develop an application for iOS devices. The debugger works usually seamlessly, and the simulator is fast and responsive.


  • Search

  • Android

Adding a search feature to the Android application is simpler/possible in compare to iOS. Developer can create a virtual table, using the FTS3[21] feature of SQLite that stored a user’s tasks.

  • iOS

Core data in iOS does not provide full text search natively, so an iOS developer has to implement a basic functionality through using “Like” clauses of SQL.

VI. Conclusion

In conclusion, as we discussed in main differences of two API, each of them has positive and negative aspects especially according to the developers. UX design is easily done using Storyboard of iOS, on the other hand, Android gives control of design by using visual designer and XML formatting together. Android API has fewer restrictions which seem that security has to be handled by developer mostly, nevertheless iOS API gives less control to the developer and has some strict restrictions.  Some resources claim that Android API is more secure because of open source development, against that iOS API does not allow the developers an open source development, but it gives almost more features than API within the restrictions and controls by the OS which results more secured applications to the end-user.

VII. References

[1] Mark H. Goadrich and Michael P. Rogers, “Smart Smartphone Development: iOS versus Android”, SIGCSE ’11 Proceedings of the 42nd ACM technical symposium on Computer science education Pages 607-612, March 2011

[2] Android Developers Reference – Widgets

[3] Neuburg, M.  2014. iOS 7 Programming Fundamentals. O’Reilly.

[4] Meier, R.  2010. Professional Android 2 Application Development. Wrox.

[5] M. Linares-Vásquez, G. Bavota, C. Bernal-Cárdenas, M. Di Penta, R. Oliveto, D. Poshyvanyk, “API Change and Fault Proneness: A Threat to the Success of Android Apps”, ESEC/FSE 2013: Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, August 2013

[6] Android Developers Reference – Manifest.Permission. Retrieved from

[7] Wikipedia – iPhone 5, retrieved from

[8] Wikipedia – iPhone 4, retrieved from

[9] Apple – App Review, Retrieved from

[10] Android Developers Reference – Launch Checklist.

[11] Jin Han, Qiang Yany, Debin Gaoy, Jianying Zhou, Robert Dengy, “Comparing Mobile Privacy Protection through Cross-Platform Applications”, Policies for Distributed Systems and Networks (POLICY), 2012 IEEE International Symposium on, July 2012

[12]  “Trend Micro: Android much less secure than

iPhone,” electronista News, January 2011. http:



[13]  “Why Android App Security Is Better Than

for the iPhone,” PCWorld News. August 2010.

[14] Jin Han, Qiang Yany, Debin Gaoy, Jianying Zhou, Robert Dengy, “Comparing Mobile Privacy Protection through Cross-Platform Applications”, Policies for Distributed Systems and Networks (POLICY), 2012 IEEE International Symposium on, July 2012

[15] Adrienne Porter Felt, Matthew Finifter, Erika Chin, Steven Hanna, David Wagner, “A Survey of Mobile Malware in the Wild”, SPSM ’11 Proceedings of the 1st ACM workshop on Security and privacy in smartphones and mobile devices, October 2011

[16] Jianying Zhou , Mobile Platform and Application Security, KACST IT’13, Riyadh, Saudi Arabia, November 19, 2013

[17] Minzhe Guo, Prabir Bhattacharya, Ming Yang, Kai Qian, Li Yang,

Learning Mobile Security with Android Security Labware, SIGCSE ’13 Proceeding of the 44th ACM technical symposium on Computer science education, June 2013

[18] Smartphone security evaluation – the malware attack case,

Alexios Mylonas, Stelios Dritsas, Bill Tsoumas, Dimitris Gritzalis, SECRYPT, 2011

[19] “iOS vs. Android Development Comparison”

[20] “Android vs. iOS Development: Fight!”

[21] “SQL Lite FTS3 and FTS4 Extensions”


Agile Software Testing


  • Introduction
  • What is Agile?
  • Principles of Agile Testing
  • Agile vs. Waterfall
  • Role of Testing in Agile
  • Challenges of Testers in Agile
  • Agile Tester Should be
  • Pros and Cons
  • Role of Testing in Agile
  • Conclusion


In the world of software development, the term agiletypically refers to any approach to project management that strives to unite teams around the principles of collaboration, flexibility, simplicity, transparency, and responsiveness to feedback throughout the entire process of developing a new program or product.

And agile testing generally means the practice of testing software for bugs or performance issues within the context of an agile workflow.

What is Agile

Agile Software Development is a group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.

It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change.

  • Agile => Speed
  • Speed requires discipline

It is not;

  • Compressing the schedule
  • Throwing out the documentation
  • Coding up to the last minute

Agile methodology may result in short term speed, but at the cost of long term pain.

Principles of Agile Testing

  • Testing moves the project forward
  • Testing is not a phase
  • Everyone tests
  • Shortening feedback loops
  • Keep the code clean
  • Lightweight documentation
  • From Test-last to Test-driven

Testing moves the project forward


On traditional projects, testing is usually treated as a quality gate, and the QA/Test group often serves as the quality gatekeeper. It’s considered the responsibility of testing to prevent bad software from going out to the field. The result of this approach is long, drawn out bug scrub meetings in which we argue about the priority of the bugs found in test and whether or not they are sufficiently important and/or severe to delay a release.

On Agile teams, we build the product well from the beginning, using testing to provide feedback on an ongoing basis about how well the emerging product is meeting the business needs. This results as decreasing the hard path of the test process, which can prevent of cause the Project deadline to be exceeded.

Testing is not a phase


Agile teams test continuously. It’s the only way to be sure that the features implemented during a given iteration or sprint are actually done.

Continuous testing is the only way to ensure continuous progress.

Everyone Tests


In traditional projects, the independent testers are responsible for all test activities. In Agile, whole team is responsible for testing.

Agile need speed, testing duration would not slow down if the whole team joins the testing phase. Sprints are planned according to the development phases, so testing phase has to be as fast as development phase.

Shortening feedback loops


Feedback loop:

  • Programmer writes code
  • Someone executes code
  • Provides info about how it behaves

If the software isn’t tested until the very end of a long release, the feedback loops will be extended and can be measured in months. In Agile it cannot be done in this way.

Shorter feedback loops increase Agility in the project.

Keep the code clean


  • This principle in an example of the discipline that Agile teams have.
  • Buggy software is harder to test, harder to debug-modify, and slows everything down.
  • Every developer should keep the code clean and fix bugs fast.

Lighweight documentation


Instead of writing verbose, comprehensive test documentation, Agile testers:

  • Use reusable checklists to suggest tests
  • Focus on the essence of the test rather than the incidental details
  • Use lightweight documentation styles/tools
  • Capturing test ideas in charters for Exploratory Testing
  • Leverage documents for multiple purpose

From Test-last to Test-driven


In traditional environments, tests are derived from project artifacts such as requirements documents. The requirements and design come first, and the tests follow. And executing those tests happens at the end of the project

Defining the tests with the requirements, rather than after, and using those tests to drive the development effort, gives us much more clear done criteria and shared focus on the goal. T. This is a “testlast” approach.

Agile vs. Waterfall

Waterfall is 

  • Structured
  •  One big project
  • A sequential process
  • Suited for situations where change is uncommon
  • Internal
  • A process that requires clearly defined requirements upfront

Agile is

  • Flexible
  • Many small projects
  • Highly collaborative
  • Best for those who want continuous improvements
  • Involves customers
  • A process in which requirements are expected to evolve and change

In Waterfall Projects

  • Test is planned before testing phase
  • Test plan is rarely reviewed during testing phase.

In Agile Projects

  • Test is planned before project start and during project often
  •  Test plan is reviewed each sprint


Software Quality improves because testing starts from day one.

Role of Testing in Agile

  • Testing is the headlights of the project – where are you now? Where are you headed?
  • Testing provides information to the team – allowing the team to make informed decisions
  • A “bug” is anything that could bug a user – testers don’t make the final call
  • Testing does not assure quality – the team does (or doesn’t)
  • Testing is not a game of “got you!” – find ways to set goals, rather then focusing on mistakes

Challenges of testers in Agile

  • No traditional style business requirements or functional specification documents. We have small documents (story cards developed from the 4×4 inch cards) which only detail one feature. Any additional details about the feature are captured via collaborative meetings and discussions.
  • You will be testing as early as practical and continuously throughout the lifecycle so expect that the code won’t be complete and is probably still being written
  • Your acceptance Test cases are part of the requirements analysis process as you are developing them before the software is developed
  • The development team has a responsibility to create automated unit tests which can be run against the code every time a build is performed
  • With multiple code deliveries during the iteration, your regression testing requirements have now significantly increased and without test automation support, your ability to maintain a consistent level of regression coverage will significantly decrease

Agile Tester Should be

  • Provide continuous feedback.
  • Deliver value to the customer.
  • Enable face-to-face communication.
  • Have courage.
  • Keep it simple.
  • Practice continuous improvement.
  • Respond to change.
  • Self-organize.
  • Focus on people.
  • Enjoy.

Pros and Cons


  • Flexible model, adaptive planning
  • Customer feedback simultaneously with development and testing
  • Facilitates interaction and communication between stakeholders


  • Active user involment needed
  • Intense collobration needed
  • Hard to predict timeline-budget
  • Everthing in the plan is vague-uncertain


Future of Agile Testing

Agile has already won the battle for mainstream acceptance, and by all indications its general precepts are going to remain viable for some time. While much of this success is undoubtedly due to its effectiveness when used in appropriate circumstances, liberating software teams from old, tired ways of doing business, it’s also at least partially the result of the changing territory of computing itself.

The speed of software sales and numbers of downloads are increasing, and development processes should follow this trend. Agile is the best solution for this problem that we have, but for now.



  • An “agile testing mind-set” is customer-focused, results-oriented, collaborative, creative, eager to learn, and passionate about delivering business value in a timely manner.
  • Attitude is important, and it blurs the lines between testers, programmers, and other roles on an agile team.
  • Agile testers apply agile values and principles such as feedback, communication, courage, simplicity, enjoyment, and delivering value in order to help the team identify and deliver the customer requirements for each story.
  • Agile testers add value to their teams and their organizations with their unique viewpoint and team-oriented approach.



Robotics and Artificial Intelligence

Abstract—This research will present about the robots with artificial intelligence and in which areas that AI have been used in the history for robotics. It will be discussed if the robots can have the capability of dominating humans, as they get better intelligence. The paper also includes the history of robot science, robots anatomy and working principles of the robots, robots with AI, and the future with today’s robotics technology.


In the decades following the Industrial Revolution, machines has become an important part of human life. Hand production methods transacted to machines, manufacturing processes is handled by machines. That led to the development of machine tools which includes operating machines autonomously. Robots are not just in manufacturing anymore, they have become to take part in many areas of human life. The strength of the robots, working precisely, durability and many features has made them popular. Throughout history, functionalities and capabilities of the robots are not increased remarkably until 20th century. Now AI techniques are being tried to make robots more complex, to make them more intelligent machines which do not need human assistance to finish their tasks. Progress in computer science and mechanics, robotics science has a rapid growth and it seems that it will continue.


The term “Robot” was firstly used in a play by Karel Capek named “Rossum’s Universal Robots” [2] in 1921. The story of the play is about human making robots and these robots are destroying the people. As usual in the human history, the dream world of the man has led the way and then real world followed it. Especially after the Industrial Revolution in the start of 19th century, with complex mechanics and electrics the robotics science started to appear and develop. In the early stages of robots, they are built to complete tasks in producing without any human assistance. M. Turing asked “Can machines think?” [6] in his paper in 1950. It is a common question if the machines can have intelligence, even if they would become as complex as our body. Thus, AI community is in doubt between recreating the human intelligence on the machine, and creating intelligence that is unique to the machine. There are many events in robotics history, but a summarized list of some main events can be seen at the table on Fig 1.


Fig. 1. Timeline of Robotics History


Even though the variety of the robots’ types and features may be myriad, they have basic similarities between their constructions. These similarities can be grouped into three categories as; – Mechanical Construction – Electric Circuit – Computer Programming Basically a robot consists of these three parts. Complexity and numerous types of every component in these parts, gives us an infinite possibilities of combustion to build a robot.

A. Mechanical Construction

Mechanical construction provides physical movement to robots which includes a moveable body and a sensory system. According to the type of the robot which is building may need many different mechanical components. For example for building a space robot, that is needed a physical body that can resist high pressure and heat changings, or it is needed small robotic arms if you build a scientific robot to work on experiments with precisely.

B. Electric Circuit

Electric circuit is responsible connection between mechanical components that need electric. It consists of an actuator, a power source and a sensor system. These components may be electrical stuff which designed for a special tasks, microcontrollers, lcd displays, camera systems etc.

C. Computer Programming

A robot is just a motor and electric circuit, if there is nothing there to manage these physical components. This is handled by embedded software that installed into the robot. Robot software is used to perform tasks and automate tasks. There are many software systems and frameworks that can be used for programming robots. Artificial intelligence techniques are used in the software that will be installed to the robot. These include some basic methods like probabilistic inference, planning and search, localization, tracking and control etc. When it comes to robots, there may appear some other problems rather than programming a computer using AI. A computer compares info with the stored data decides about the situation, but a robot gathers facts about a situation through sensors and human point, which makes a robot to analyze the data and decide about it more complex. Some robots have the ability of learning and interacting socially. Not good as a human but robots can absorb the data and get information about the interaction. Techniques of AI are keep developing, also programming these techniques to the robots will come afterwards.


There are lots of different fields and tasks that robots are used in, so it will be better to categorize them by application. The robot types which will be discussed:

  • Medical Robots
  • Space Robots
  • Industrial Robots
  • Military Robots
  • Service Robots
  • Entertainment Robots

Each group works on different domains, although the theories of artificial intelligence may be common, domains may have different appliances.

A. Medical Robots

Usage of artificial intelligence in Medicine has increased in the most a few years. Primarily concerned subject is to construct robots which can perform diagnosis and make therapy recommendations. There are smart robots that can diagnose the illnesses, or talented robots can join the surgeries and they can even get injected into human body and collect data about the health and condition of the body. Technological advancements led the medical robotic systems to be used in many application areas in medicine.

There are some types of medical robots also, including Surgical Robot, Rehabilitation Robotics, Telemedicine, Assistive Robots, Orthotics, Prosthetics, Radio Surgery, Exoskeleton etc. Medical robots are generally used for helping doctors especially during the surgeries. Also robots are used in pharmacies to mix some drugs accurately. As the machine technology and computer science develop, these robots are getting smarter and have better capabilities, accuracies.

Works about AI in medical robotics systems are aimed to configure them as expert or knowledge-based systems or both. There are different types of clinical tasks:

  • Generating alerts and reminders. These tasks include an important aim as monitoring the patience situation. In the surgery or during the patience’s resting, it is vital to monitor and react as soon as possible. A robot that is equipped with necessary sensors, with knowledge and precise working as reduced to a minimum tolerance of error, it can monitor the situation and send reminders or alerts in case of emergency immediately.
  • Diagnostic assistance. When patience’s case is rare or complex, the robot with AI can help on diagnosis compiling the data of patience’s history and similar cases.
  • Therapy critiquing and planning. An intelligent robot can advise for revising a treatment plan based upon accepted treatment guidelines. Also it can formulate the treatment model according to the patience’s previous illnesses and history.
  • Agents for information retrieval. These robots are designed to get information through internet, especially from similar cases happened before relevant to the patience’s situation. It needs to medical knowledge to refine the information that matches the patience’s illnesses.
  • Image recognition and interpretation. Medical images can be analyzed by automated robots and in unusual situations, it can be asked for a doctor attention. Smart robots developed with AI can analyze X-rays, angiograms, CT and MRI scan and diagnose the problem.


Fig. 2. A robot developed for surgery operations.

B. Space Robots

Outside of the Earth is always a challenge for the human history, through the advances in robotics science it led new opportunities to discover extraterrestrial life. As well as the robotics has been developed, outside of the Earth has many though conditions in compare to our planet. First of all there is no gravity. Secondly the temperatures can change wildly in any moment and in any situation. Lastly, the biggest problem is the space is not a habitable place for humans, thus a robot is at its own when it is outside of the world. There comes the artificial intelligence and its applications that the robots must have while they are on their own in the space.

Expected attributes of a space robot are imagining, exploring, self-maintenance, data mining-reporting. Imagining is a must-have feature of the space robots, observing the space or the planet that they are visiting is one of the important events. Exploring attribute pairs with imagining, a space robot is expected to explore the place it visits, take pictures and videos. Data-mining and reporting includes the data which is got from exploring the area and it is a though aim for a robot also. Lastly feature of selfmaintenance is also a must-have for space robots. When a robot is sent to a few million kilometers far away from the Earth, it is not expected to get it back if there is a problem with the robot. Unless there is a big mechanical or electrical problem, it is aimed that the robots that are sent to the space have to fix or at least analyze what the problem is. All these tasks cannot be without artificial intelligence applicants. Computer science has an important part of space robots projects with electrics and mechanics.


Fig. 3. Robonaut 2 – developed by NASA [14]

C. Industrial Robots

Industrial robots have main attributes that differs from the other type of robots. These are, min failure rate, time consuming working and durability. In manufacturing, failure rate is a consuming problem and the systems are expected to work near “0” failure rate. The most considering problem of the industrial robots is decreasing the failure rate. With good programmed robot, this rate can be decreased to minimum even “0”. These robots are built to work fast. With a failure rate near zero, they are built to work in a fast way to make production faster. Lastly, after all of the costs that spent on an industrial robot on mechanics and programming, it expected to have a long durability time.

The applications of industrial robots are welding, painting, assembly, pick and place, product inspection and testing. [16]

In addition to the robots work precision and speed, they can work in dangerous task and use so much power than a human. With the capability of making decision via using knowledge, these robots can manage to do important tasks without any human assistance. Especially in manufacturing, cost of the workers are big expenses, instead of the workers many factory would prefer buying these intelligent machines.


Fig. 4. Industrial robots

D. Military Robots

One the usage area of the robots is military. Autonomous robots and remote-controlled devices are designed for military.


Fig. 5. A defensive military robot

In today’s world the majority of military robots are tele-operated and not equipped with weapons. Artificial intelligence is not related to these remote controlled robots, because they are just mechanics controlled by humans and it is not expected them to do tasks on their own. Especially the autonomous robots have very important advantages when it is compared to humans that is the reason why artificial intelligence is needed for military robots. In 1987 Major Kenneth Rose of the US Army’s Training and Doctrine Command said; “Machines don’t get tired. They don’t close their eyes. They don’t hide under trees when it rains and they don’t talk to their buddies … A human’s attention to detail on guard duty drops dramatically in the first 30 minutes … Machines know no fear.” [17] These words show us the importance of the robots for military. When it comes to reality, if you build 1.000.000 robots for the service and tried to control them by commands remotely, it will just lead to chaos.

Military robots are used in many areas, such as defense, bomb removal, ammo carriage, enemy detect etc. With artificial intelligence, smart robots can detect the movements around a certain area, remove the bombs landmines, or carry the ammo between places.

In another aspect, it makes sense to use smart robots in dangerous and suspicious situations which is too risky for humans to include.

E. Service Robots

Main goal of service robots is to perform useful services to humans especially on household operations. These robots can be studied in three main categories.

  • Domestic and household

Bill Gates claimed that robots will become more common in the future. [19] As well as the robots spread in many areas, domestic and household robots will reach big numbers eventually. These robots are built for helping people at their home. In recent years, to give an example robotic vacuum cleaners and cat litter robots started to find customers to buy. It is inevitable to see expert robots that can do household jobs in the near future with artificial intelligence these do not need any human assistance. These robots can learn the household’s habits and set time and other attributes of the services that it provides.


Fig. 6. Household robot is filling the dishwasher

  • Restaurant and Bar

Smart robots can be used for delivery and cleaning tasks in the restaurants and cafes. With AI, without human assistance these robots can complete daily tasks and also deliver foods to the customers’ tables.

  • Scientific

Robots are helpful in laboratory experiments such as in repetitive tasks. When they are programmed well, they have the capabilities of designing and running experiments, analyzing the data and even forming hypotheses. For example, a robot called “Adam”, became the first robot conducting experiments and make a scientific theory from it. [20] Adam made logical assumptions based on information that he was programmed into it about metabolism of yeast and the way proteins and genes work in other animals. After all that he proved its assumptions are correct.


From the science-fiction movies, books, people are used to hear about robots and have concern about if the robots get intelligence and dominate in the world. Near future does not seem like the robots conquer the world. The robots are already a parts of our lives. In manufacturing industrial robots are widely used, military robots are used for assist in dangerous situations, space robots are investigating the other planets and reporting, house robots vacuuming the floors at homes.

Joanne Pransky, who has been involved in robotics for twenty years and calls herself the World’s First Robotic Psychiatrist, “”Within the next 10 years, I hope to be able to afford to lease or purchase a domestic robot that not only does the household cleaning and prepare and serve my meals, but could carry me to the bathtub if I can’t walk, monitor my vital signs, and if I need a medical specialist from afar, could remotely become his or her eyes, hands, and ears.” Robotics science keeps developing beyond the mechanics and computer science. It will keep changing and the human will have the power to make a robot think some day.


Robots are already in many areas, and their numbers are increasing, their features are developing. With the improvements in mechanics, electronics, and computer science it seems like the robots will be the main parts of our daily life. Applying of the artificial intelligence techniques to these powerful machines will make them powerful and more useful, but robots dominating the world idea does not seem so realistic for the next 30 years.


[1] History of Robots,

[2] A short history of robots,

[3] Three Laws of Robotics, Robotics

[4] Renato M.E. Sabbatini, “Imitation of Life: A History of First Robots”, PhD,

[5] History of Robotics,

[6] A. M. Turing, “Computing Machinery and Intelligence”, 1950

[7] M. Du Sautoy, “AI Robot: How machine intelligence is evolving, The Observer” , 1 April 2012

[8] Types of Robots,

[9] “Global Medical Robots Market (SurgicalRobot, Rehabilition Robotics, Telemedicine, Assistive Robots, Orthorics, Prosthetics, Radio Surgery, Ex oskeleton) – Forecasts to 2018”, Normans Media Ltd., May 19, 2014

[10] Paolo Dario, “Smart Surgical Tools and Augmenting Devices”, IEEE, October 2003

[11] R. H. Taylor, “Robots as Surgical Assistants: Where We Are, Wither We Are Tending, and How to Get There” The John Hopkins University,

[12] E. Coiera, Guide to Health Informatics, Chapter 19, “Artificial Intelligence in Medicine: an Introduction”, CRC Press, October 2003

[13] E. Keravnou, C. Garbay, R. Baud, J. Wyatt, Artificial Intelligence in Medicine, March 199, pages 3-11.

[14] Robonaut 2, Robonaut: Home,

[15] Learn about robouts,

[16] Industrial robot,

[17] B. Pokorny, “Creating the ideal soldier; U.S. Sekkes a Pfc. Robot”, March 1987

[18] “Current use of Military Robots”, current-use-military.html

[19] W.B. Gates, “A Robot in Every Home”, Jabuary 2007

[20] “Industrial and Service Robots”, International Federation of Robotics,

[21] “Adam becomes first robot to make a scientific discovery after conducting its own experiments”, Daily Mail, April 2009

[22] M. Bay, M. Ford, “Robots: The future is now”, April 2006

Hello World

The title sounds still exciting and meaningful for most of the developers, and still is the first sentence to print on the screen when you start writing codes on any programming language. The reason that I am using this sentence is pretty obvious, this is my first blog. I’m planning to start sharing my research articles that I wrote during my master classes. After that I will write my blog posts mostly about technology, computer sciences and life.

That’s pretty amazing for me, even though that I am following the latest technology trends I have always been away from writing blog posts. But now I am feeling that I can share some of my researches, my experiences and maybe discuss it with my friends online. That’s what I am gonna do, I will write some things here.

Comments are welcomed, also feel free to contact me.