Skip to main content

Posts

Testte Ciddiyet ve Sorumluluk Duygusu

Bir yazılım geliştirme organizasyonu içerisinde bir test gurubu var ise bu grup genel olarak yazılım geliştirme sürecinin en sonunda ve onay mekanızması konumundadır. Yani yeni bir geliştirmenin canlıya çıkılıp çıkılamayacağına karar veren kişilerden oluşur genelde. Bu süreç içerisinde kişilerin işlerine verdiği önem diğer adıyla ciddiyet ve sorumluluk duygusu belkide diğer bütün teknik ve teknik olmayan özelliklerin içerisinde en önemli olanlardır. Bu yazımda test uzmanında bulunması gerekli en önemli özellikler olan ciddiyet ve sorumluluk duygusu üzerine düşüncelerimi aktaracağım. Sorumluluk Nedir? Test etmek demek bir iş / servis / ürünün kullanıcıya sunulmadan önceki döneminde çalışıp çalışmadığını kontrol etmektir. Bu hizmetin çalışması ise yine kullanıcıdan gelen bilgilere bağlıdır yani kullanıcının isteklerini karşılamalı fakat standartları da ezmemeli. Peki standartlar nelerdir? Standartları, kendi varlığının gerekliliğini ispatlamış su götürmez gerçekler olarak tanı

Selenium Error "Element is not currently interactable and may not be manipulated"

Selenium webdriver can drive different browsers like as Firefox, Chrome or Internet Explorer. These browsers actually cover the majority of internet users, so testing these browsers possibly covers the 90% of the internet users. However, there is no guaranty that the same automation scripts can work without a failure on these three browsers. For this reason, automation code should be error-prone for the browsers you want to cover. The following error is caught when the test script run for Chrome and Internet Explorer, but surprisingly there is no error for the Firefox. Selenium gives an error like below: Traceback (most recent call last):   File "D:\workspace\sample_project\sample_run.py", line 10, in <module>     m.login()   File "D:\workspace\ sample_project \test_case_imps.py", line 335, in login     driver.find_element_by_id("id_username").clear()   File "C:\Python27\lib\site-packages\selenium-2.35.0-py2.7.egg\selenium\webdriver\r

How to Update Selenium Webdriver for Windows

As I tried to explain in my previous posts Selenium is an automation framework for web application and Webdriver is the newer version of Selenium RC. I have used Selenium Webdriver for automatizing web application with version of selenium-2.25.0-py2.7.egg which prepared for the Python. However there are newer version this Webdriver package.In this post I explain how to update Webdriver version on Windows. If you check the site-packages folder where the Webdriver installation folders are present, you can see the related folder. In this folder there is easy_install.py which is used upgrading. If you can't find this file first you need you install setuptool . To update the Selenium version, you can follow the instruction below: Check easy_install file in the directory like as C:\Python27\Lib\site-packages if there is easy_install go to next step, if you don't have it install setuptools from here. Download Selenium newer version from here . Select the link what language

Demands on Testing is Increased

Testing is a key element for software development life cycle (SDLC), the success of testing process can rescue projects from project risks. This awareness leads firms to increase their testing activities by means of having more qualified people and better testing process. Actually the firms are spending more budget for testing activity because of the competitions. The recent search which is made by Capgemini, Sogeti and HP , about the software testing resource of the firms, shows that comparing the 2012, in 2013 demands on testing is increased. As the beginning of this research, they are saying "As customers demand high performance, error-free application, organization are increasing their budgets and more testing functions are centralized." Let's look at the picture.  Since last year 18% of budget is spent on testing, this year it is increased to 23% of budget. Since last year 41% of the budget is spent on transformational project, this year it is increased to 46%.

The Importance of Static Analysis

Test is easy when you know how to test! However, test is hard if you know the just the meaning of 'test'. There are lots of test techniques, mainly static and dynamic tests . However the static test techniques focus on the code with out running it, dynamic test techniques focus on the functions with running the code. Therefore the differences can be explained by the meaning of static and dynamic .  In this post, I want to explain one of my experiences about the importance of static testing. Static testing has the following sub-title as: review, inspection, walk-through, desk-checking, proof-reading. Every item can be done by different people with different method and different level of formality. While the  inspection can be viewed by experienced person in very formal way leading by a moderator, walk-through can be performed by coder in order to give some information about the work. To get more information about static testing, you can read this post in Turkish.  Th

Google'de Test Otomasyonu Nasıl Yapılıyor?

Hepimizin internetle tanışmasından sonra belkide en çok kullandığı Google test nasıl yapılıyor hiç merak ettiniz mi? 2012 yılında katıldığım "Google ölçeğinde test" isimli bir sunumda benim de merak ettiğim bir çokta aydınlanmış oldu. Bu sayede test organizasyonun ve teste verilen önemin hangi boyutlara gelmiş olduğunu gözlemlemiş oldum. Bu yazımda önemli gördüğüm bazı noktaları aktarmak istiyorum. Öncelikle "Google ölçeğindenin" ne anlama geldiğini anlamak gerekir. Bir yılda çalıştırdıkları toplam test case sayısı yaklaşık olarak 100x10^9 başka bir söyleşle bir yılda yaklaşık olarak 14.000 yılda çalıştıralabilecek kadar test case çalıştırılıyor. Peki bunu nasıl becerebiliyorlar? Bu başarı ancak t est otomasyonu ve sürekli bütünleştirme (continious integration) ile gerçekleştirilebilir. Her test otomasyon altına alınamadığı için bazı testleri manuel olarak gerçekleştiriliyor. Burada aslında yazılımcı sadece yazılım işinden sorumlıu değildir aynı zamanda tes

Turkey Software Quality Report 2013 - Türkiye Yazılım Kalitesi Raporu 2013

Yazılım kalitesi adına yapılan ender araştırmalardan birisi olan "Turkey Software Quality Report" Turkish Testing Board (TTB) tarafından 2013 için yapıldı. 2011 yılından itibaren her yıl yapılan bu araştırmanın daha önceki özetlerine bakmak isterseniz konu üstüne yazdığın yazıya buradan ulaşabilirsiniz. Bu sene için yapılan araştırmada da her yıl olduğu gibi bir anket üzerinden kişilerin düşünceleri toplanarak sonuçları grafikler halinde sunulmuştur. Bu yazımda Turkey Software Quality Report (kısaca TSQR 2013) olarak adlandırılan çalışmanın üzerine düşüncelerimi bulabilirsiniz. Öncelikle vurgulanması gereken konu TTB tarafından geçen yıllarda yapılan araştırma ülke çapında yankı bulurken; bu yılki araştırma sonuçları International Software Testing Qualifications Board ( ISTQB ) tarafından 70 farklı ülkede yayınlandı. Bu anlamda bakıldığıda daha başarılı bir çalışma olmasını beklemekteyim. Bu sene düzenlenen Testistanbul konferasının konusunun " Testin Geleceği: Ye

Test Automation Methodologies

You can find a documantaion about test automation methodologies which is described what is test automation and how we can do it effectively. This document is a brief but beneficial for whom want to start automate his test cases. Test automation methodologies from Mesut Güneş

Yazılım Geliştirme Yaşam Döngüsü - Software Development Life Cycle

Bir yazılımın geliştirilmesi için duyulan ihtiyaçlar, geliştirme süreçleri, test ve kullanıcıya sunulmasıyla ilgili bilgilerin bulunduğu yani yazılım geliştirme yaşam döngüsü (SDLC) hakkında bilgiler bulunan sunumumu altta bulabilirsiniz.  Konu biraz farklı olarak yazılım testlerinin etkinliğinin arttırmak, başka bir bakış açısıyla daha kaliteli yazılım ürünlerinin üretilmesini, hedef alarak hazırlanmıştır. Sunumda SDLC boyunca testin daha etkin bir şekilde yer alması gerektiğinde yola çıkarak farklı yazılım geliştirme methodolojilerinde yazılım test süreçlerine ait daha fazla bilgiler bulabilisiniz. Software development life cycle yazılım geliştirme yaşam döngüsü from Mesut Güneş

Hataların Raporlanmasının Önemi

Hata (defect) saptandığında kimi organizasyonalarda hatanın türüne veya bazen türden de bağımsız hataya bakış açısıdan dolayı raporlanmasının gerekmediği üzerine durulur. Oysa hataların kayıt altına alınmaması demek bir ülkenin kurulumunda batışına kadar olan süreçteki tarihi kayıt altına almamakla aynı anlama gelir. Böyle bir durumda geçmişe bakılarak nerede hatalar yapıldığını nereden ders alınması gerektiğini anlamak zorlaşacaktır. Yazılım geliştirmesi sonrasında yine bir ürün ortaya çıkar bu ürürün geçmişine bakmak istediğimizde hataları kontrol etmek bizim geçmişteki önemli anlar hakkında bilgiler verecektir. Bir test mühendisi için hataların kayıt altında tutulmasının daha farklı anlamları vardır. Bu yazımda bunun üzerine duracağım. Öncelikle hataların kayıt altına almak için bir hata takip aracının varlığı gereklidir. Bu araçların açık kaynak kodlu (open sourced) yani ücretsiz türleri olduğu gibi piyasada çeşitli fiyatlarda ücretli türleride vardır. Peki neden hataları kayı

Yazılımda Kalite, Verimlilik ve Maliyet Çatışması

Kalite denilince akıllara hemen fiyat olgusu gelir yani bir hizmet veya malın daha kalitelisini edinmek daha fazla para ödemekle elde edilebilir. Hatta bir mal ne kadar kaliteli ise maliyette o kadar daha yüksektir bilinci biz tüketicelerde hakim olan duygudur. Fakat üretim olarak düşündüğümüzde ise bir mal veya hizmeti biraz daha iyi kalitede üretmek daha fazla maliyet anlamına gelmez. Her üretici için aksayan üretim süreçleri ve üretimde bir fiil görev alanların duygu ve yeterlilikleri gibi etmenler etkilidir, yani üretilen malın kalitesini doğrudan etkiler. Bu yazımda daha kaliteli yazılım ürünleri geliştirmek için yapılması gereken bazı noktalar üzerine duracağım. Kalitenin kelime olarak anlamına Oxford sözlükten baktığımızda, her hangi bir şeyin benzerlerine bakıldığında standartlaşmış olan bir takım özelliklerin ölçülmesi, mükemmelliğe olan yaklaşımı; veya başka bir açıdan ise her hangi bir şeyin sahip olduğu ayırtedici özellik olarak tanımlanıyor. Bu tanımı biraz daha yazı

Selenium Error Message: "Can't load the profile. Profile Dir:..."

Because of an upgrade, I needed to move to new computer and new operation system so I moved my automation code to new system which is from Window 7 to Windows 8. When run the code I got the following error indicating that the Selenium can't load the profile which means that the version of the browser is not supported by the Selenium yet. If you get an error like the following one, you need to find the supported version of the browsers. Traceback (most recent call last):   File "D:\workspace\ automation_project \run_test_cases.py", line 12 4, in <module>     m = Markafoni(browser, server)   File "D:\workspace\ automation_project \test_case.py", line 8 64, in __init__     self.driver = webdriver.Firefox()   File "C:\Python27\lib\site-packages\selenium-2.25.0-py2.7.egg\selenium\webdriver\firefox\webdriver.py", line 51, in __init__     self.binary, timeout),   File "C:\Python27\lib\site-packages\selenium-2.25.0-py2.7.egg\sele

Priority vs Severity

These two terms are sometimes misunderstand by non-testing-knowledge people. To exactly define the impact of a defect, it should be defined by two attributes which are priority and severity . This is necessary because, for a big project classifying the priority and severity of the defects can be helpful for making decision about the plan for the solving order and finishing testing cycle (exit criteria). In this post, I want to explain priority and severity and how to use it.  Severity: in terms of testing it means that when a defect raises in the system, how severely affects the application and how much user can see the effects of the defect. So the severity is related to the impact of the defect on the system. Generally types of severity are: Minor, Moderate, Major Priority: it is related to customer/bossiness need. It may be used for determination of the order of solving the defects. Defect may has a minor impact on the system but it can be classified as high priority in th

Sistem Analisti olarak "Testciyim"

"Yazılım Test Mühendisiyim" aslında ben bir "Test Mühendisi" değilim. Neden mi? Yazılım kelimesi içerisine havalı bir görüntü kattığı için (mi?), aslında test basit bir iş olduğu için ve daha teknik bir görüntü vermek için (mi?), aslında tam olarak ben de ne olduğumu bilmediğim için (mi?), aslında yazılım bilmiyorum ve testten bir gün yazılıma oradan da uzaya çıkmak (geçiş yapmak) için (mi?), aslında ben bilmiyorum neden olduğunu ama öyle (mi?). Hayır! Ben ne olduğumu bildiğim için (bu sefer size sormayacağım, evet ne olduğumu bilmeye çalışıyorum ve ben buyum, "here, what I am!"). Bu yazımda son zamanlarda rastladığım bir sıkıntıyı dile getirmek istedim. Ben Kimim? Son zamanlarda firmalarda "test mühendisliği" kavramına farklı açıdan bakmaları yönünde bir trend oluştuğunu farkettim. Bu ise artık firmalarda sadece test işiyle uğraşacak bir takım insanlar barındırmak yerine testi de yapmak istiyecek bir takım insanlar barındırma eğiliminde

Internet Explorer Launching Gives Errors in Selenium Webdriver

As selenium user know, Selenium script can be run via FireFox, Chrome and Internet Explorer if you set up the environments correctly, you may read this post if you are un-sure. If you face an error while launching Internet explorer in selenium test automation, you need to set all the security zone in the same mode (enabled, or disabled mode). If you change security zone, selenium gives the following errors, and the last one says " Protected Mode settings are not the same for all zones " so you can set the protected mode by Tool > Internet Options > Security Tab then set Internet, Local Internet, Trusted Sites, and Restricted Sites as same mode, enabled or disabled. Then click "Apply" and "OK" and repeat your tests. File "C:\Python27\lib\site-packages\selenium-2.25.0-py2.7.egg\selenium\webdriver\ie\webdriver.py", line 53, in __init__     desired_capabilities=DesiredCapabilities.INTERNETEXPLORER)   File "C:\Python27\lib\site-packa

Solution for Entegration of SpiraTest and Jira

SpiraTest is cheap but powerful test management tool. It has many useful features such integration to many open source and licensed testing and issue management tools, or automation host for HP QTP, IBM Rational Functional Tester, Selenium, TestComplete, the full list can be found here . Also it has requirement management, defect management, and there is a cycle for release - test set - test case - test run, and more can be found here . Jira is also well-known issue tracking tool and it used by many organisations. By Jira, you can track and follow the work items and easily manage the works. However it doesn't have basic testing activities so if you want to create test cases and manage the testing cycle Jira is not yet enough for these  activities. Using both of the tools, SpiraTest as test management tool, and Jira, as issue tracking tool, may lead some difficulties such as raising defect from SpiraTest and creating a related issue for development in Jira requires manual efforts.