Publication: Automated refinement of models for model-based testing
Institution Authors
Authors
Journal Title
Journal ISSN
Volume Title
Type
PhD dissertation
Access
restrictedAccess
Publication Status
Unpublished
Abstract
Model-Based Testing (MBT) enables automatic generation of test cases based on models of a system. It has been successfully applied in various application domains, each of which might introduce specific challenges. In this dissertation, we introduce methods and tools for addressing some of these challenges for the consumer electronics domain. In particular, we focus on the testing of Digital TV systems as our case study. We identified the following 3 problems in this context: i) Models of the system are created based on requirement specifications, which are often incomplete and imprecise. Therefore, these models are subject to accidental omissions of certain system behavior. As a result, critical faults can be left undetected by the generated test cases. ii) Resources are extremely limited in the consumer electronics domain. It is not feasible to attain an extensive coverage of test models. iii) A product family in consumer electronics often includes hundreds of systems. The set of features can highly differ among these systems. Therefore, the MBT process and modeling must be flexible to systematically manage variability and increase the amount of reuse for test models. To tackle the first problem, we introduce an approach and tool for automatically extending test models based on a set of collected execution traces. These traces are collected during Exploratory Testing (ET) activities. Several critical faults were detected in 3 case studies after generating test cases based on extended models. These faults were not detected by the initial set of test cases. They were also missed during the ET activities. As a solution for the second problem, we iteratively update test models in 3 steps to focus the test case generation process only on execution paths that are liable to highly severe failures. We use Markov Chains as test models, in which transitions among states are annotated with probability values. First, we update these values based on usage profile. Second, we perform an update based on fault likelihood that is estimated with static code analysis. Our third update is based on error likelihood that is estimated with dynamic analysis. We generate and execute test cases according the updated values after each iteration of updates. New faults can be detected after each iteration. To address the variability problem, we document variations among tested systems explicitly with a feature model. We map optional and alternative features in the feature model to a set of states in the test model. Transition probabilities in the test model are updated according to the selected features so that the generated test cases focus only on these features. This approach facilitates the reuse of a test model for many systems.
Model-bazlı test (MBT), test edilen sistemin modelleri ile otomatik olarak test senaryoları oluşturulmasını sağlamaktadır. MBT, her biri kendine has zorlukları beraberinde getiren çeşitli uygulama alanlarında kullanılmaktadır. Biz bu tezde, tüketici elektroniği alanındaki zorlukları adreslemek için metot ve araçlar öneriyoruz. Özellikle vaka çalışması olarak Dijital TV sistemlerinin testine odaklanmaktayız. Bu bağlamda 3 problem belirledik; i) sistem modelleri gereksinim analizleri baz alınarak oluşturulmuştur ve bu gereksinimler genellikle tam ve açık değildir. Bu sebeple, bu modellerde bazı sistem davranışlarının eksik olma ihtimali vardır. Sonuç olarak da oluşturulan test adımları ile kiritik hatalar bulunamayabilir. ii) tüketici elektroniği alanında kaynaklar çok kısıtlıdır. Test modellerinin kapsamını ve böylece oluşturulan test adımlarının sayısını sürekli arttırmak elverişli değildir. iii) tüketici elektroniği alanındaki bir ürün ailesi genellikle yüzlerce sistem içerir. Bu sistemlerin barındırdıkları özellikler birbirlerinden farklıdır. Bu sebeple, MBT süreci ve test modelleri, çeşitliliğin sistematik olarak yönetimini ve test modellerinin tekrar kullanılabilirliğini sağlayacak şekilde esnek olmalıdır. İlk problemin üstesinden gelebilmek için, test modellerini, toplanan çalıştırma izlerini baz alarak, otomatik olarak güncelleyecek bir yaklaşım ve araç öneriyoruz. Bu izler araştırmaya yönetilik test aktiviteleri sırasında toplanmaktadır. Yapılan 3 vaka çalışması ile, güncellenen modeller üzerinden üretilen test adımları ile birçok kritik hata bulunmuştur. Bu hatalar daha önce araştırmaya yönetilik test aktiviteleri sırasında bulunamamıştı. İkinci hataya çözüm olarak, test modellerini, hataya neden olabilecek yollara odaklanarak test adımı üretilebilecek şekilde, 3 adımda iteratif olarak güncelliyoruz. Test modelleri olarak, durumlar arası geçişlere olasılık bilgilerini işleyebileceğimiz Markov Zincirlerini kullanıyoruz. İlk olarak, modeldeki bu olasılık bilgilerini kullanıcı profiline göre güncelliyoruz. İkinci olarak, statik kod analizlerinden çıkartılan hata ihtimaline göre modeldeki olasılık bilgilerini güncelliyoruz. Üçüncü güncelleme işlemimizi ise dinamik analizlerinden çıkartılan hata ihtimallerine göre gerçekleştiriyoruz. Her bir güncelleme iterasyonu sonrası, güncellenen olasılık bilgilerine göre, test adımlarını tekrar üretip çalıştırıyoruz. Vaka çalışmalarında, bu yaklaşım ile her bir iterasyon sonrası yeni hatalar bulunmuştur. Çeşitlilik problemini adreslemek için ise, test edilen sistemdeki varyasyonları açıkça özellik modelleri ile kayıt altına alıyoruz. Test modelindeki durumların tümünü, özellik modellerinde opsiyonel ve alternatif olarak işaretliyoruz. Üretilen test adımlarının bu özelliklere odaklanabilmesi için, test modellerindeki geçiş olasılıklarını seçilen özelliklere göre güncelliyoruz. Bu yaklaşım sayesinde birçok sistem için test modellerinin tekrar kullanılabilmesi sağlanmıştır.
Model-bazlı test (MBT), test edilen sistemin modelleri ile otomatik olarak test senaryoları oluşturulmasını sağlamaktadır. MBT, her biri kendine has zorlukları beraberinde getiren çeşitli uygulama alanlarında kullanılmaktadır. Biz bu tezde, tüketici elektroniği alanındaki zorlukları adreslemek için metot ve araçlar öneriyoruz. Özellikle vaka çalışması olarak Dijital TV sistemlerinin testine odaklanmaktayız. Bu bağlamda 3 problem belirledik; i) sistem modelleri gereksinim analizleri baz alınarak oluşturulmuştur ve bu gereksinimler genellikle tam ve açık değildir. Bu sebeple, bu modellerde bazı sistem davranışlarının eksik olma ihtimali vardır. Sonuç olarak da oluşturulan test adımları ile kiritik hatalar bulunamayabilir. ii) tüketici elektroniği alanında kaynaklar çok kısıtlıdır. Test modellerinin kapsamını ve böylece oluşturulan test adımlarının sayısını sürekli arttırmak elverişli değildir. iii) tüketici elektroniği alanındaki bir ürün ailesi genellikle yüzlerce sistem içerir. Bu sistemlerin barındırdıkları özellikler birbirlerinden farklıdır. Bu sebeple, MBT süreci ve test modelleri, çeşitliliğin sistematik olarak yönetimini ve test modellerinin tekrar kullanılabilirliğini sağlayacak şekilde esnek olmalıdır. İlk problemin üstesinden gelebilmek için, test modellerini, toplanan çalıştırma izlerini baz alarak, otomatik olarak güncelleyecek bir yaklaşım ve araç öneriyoruz. Bu izler araştırmaya yönetilik test aktiviteleri sırasında toplanmaktadır. Yapılan 3 vaka çalışması ile, güncellenen modeller üzerinden üretilen test adımları ile birçok kritik hata bulunmuştur. Bu hatalar daha önce araştırmaya yönetilik test aktiviteleri sırasında bulunamamıştı. İkinci hataya çözüm olarak, test modellerini, hataya neden olabilecek yollara odaklanarak test adımı üretilebilecek şekilde, 3 adımda iteratif olarak güncelliyoruz. Test modelleri olarak, durumlar arası geçişlere olasılık bilgilerini işleyebileceğimiz Markov Zincirlerini kullanıyoruz. İlk olarak, modeldeki bu olasılık bilgilerini kullanıcı profiline göre güncelliyoruz. İkinci olarak, statik kod analizlerinden çıkartılan hata ihtimaline göre modeldeki olasılık bilgilerini güncelliyoruz. Üçüncü güncelleme işlemimizi ise dinamik analizlerinden çıkartılan hata ihtimallerine göre gerçekleştiriyoruz. Her bir güncelleme iterasyonu sonrası, güncellenen olasılık bilgilerine göre, test adımlarını tekrar üretip çalıştırıyoruz. Vaka çalışmalarında, bu yaklaşım ile her bir iterasyon sonrası yeni hatalar bulunmuştur. Çeşitlilik problemini adreslemek için ise, test edilen sistemdeki varyasyonları açıkça özellik modelleri ile kayıt altına alıyoruz. Test modelindeki durumların tümünü, özellik modellerinde opsiyonel ve alternatif olarak işaretliyoruz. Üretilen test adımlarının bu özelliklere odaklanabilmesi için, test modellerindeki geçiş olasılıklarını seçilen özelliklere göre güncelliyoruz. Bu yaklaşım sayesinde birçok sistem için test modellerinin tekrar kullanılabilmesi sağlanmıştır.
Date
2017-07