Hey guys, this is my first video !
Well… I know that it is in portuguese and there is some gaps but I think it will be helpfull 🙂
Bye !
Hey guys, this is my first video !
Well… I know that it is in portuguese and there is some gaps but I think it will be helpfull 🙂
Bye !
Hello everyone again 🙂
I will describe to you how we can use some data and variables in ours features of cucumber. For this I will use the same last example of feature, the search. To use this data, we will have to change somethings. Look:
Feature: Search
Scenario Outline: Search > Don’t forget to write Scenario Outline when you use Examples.
And look for: “<keyword>”
Examples:
|keyword |
|Nike |
|Paris |
The keyword is the variable, that I will use to substitute the data in the table of Examples. This table Examples should be this name “Examples:”. I already tried others name and the cucumber don’t recognise others names of BD. So this table with data should be this format too:
Examples:
|variable1|variable2|variable3|… >This is the title of each field, variables
|Data 1| Data 2| Data 3|… > This is the data of each column that will be used in the first interaction
|Data 4| Data 5| Data 6|… > This is the data of each column that will be used in the second interaction
|Data 7| Data 8| Data 9|… > This is the data of each column that will be used in the third interaction
… and this is the way ahead.
Don’t forget the |, these are the lines of each column, and they separate the datas. In my example, the cucumber will execute the first search with the keyword = Nike and the second search with keyword = Paris and after the execution will be stopped. Because I don’t have more data to use in the table.
You can just run the command: cucumber, and the calabash will show you in yellow of your terminal, what is the step missed. So you need copy this step and put in the file of ruby.
Given(/^look for: “(.*?)”$/) do |arg1|
After this you can implement the code in ruby that this step will do. Look that this step that calabash showed to you has a regex in the local of your variable. This is normal, and you have to have a regex in the local of the variables.
After this, you can just change the name of this variable. In the final of sentence this variable is showed like: |arg1| and I changedfor the title of the field in the feature’s table . Look, everything that between | is a variable that you can use in the code. And my code was:
#encoding: utf-8
require ‘calabash-cucumber’
require ‘calabash-cucumber/keyboard_helpers’
Given(/^look for: “(.*?)”$/) do |keyword|
tap ‘icon openmenu’
sleep STEP_PAUSE
touch(“Label text:’buscar'”)
keyboard_enter_text keyword
end
Just this, now it is only run the command cucumber and wait for results !
I hope that I have helped you guys 🙂
I will post many examples, with more fields after. Just an observation: Cucumber have a limit of this fields and you can’t have many tables inside of Examples. If you have many scenarios inside this feature you can have another table of Examples, but each table should be after each scenario.
Bye !!
Hello everybody !
Now you can write your steps in cucumber and implement in ruby and calabash… I am using Sublime, but you can use whatever IDE that supports ruby to write the features and the rb.
Steps – Example:
Feature: Search – True And False Results # This is the name of the feature
Scenario Outline: Search # This is the name of scenario
And look for: something # This is one step
And save the file like Search.feature -> in the folder features (Remember the folders of calabash have to stay inside of project’s folder), in this case I wrote a case of search of an app.
If you run now, without write the ruby file, the console will show the step you have to use in the ruby file, the calabash changes somethings of your feature to run in ruby.
And the code in ruby is:
#encoding: utf-8
require ‘calabash-cucumber’
require ‘calabash-cucumber/keyboard_helpers’
Given look for: something do # This is the step of the feature
tap ‘icon openmenu‘ # This is the command to tap in something in your app, you have to know first a id or label (I will explain how you can take this informations in a next post)
sleep 3 # This command is to stop the execution for 3 seconds
touch(“Label text:‘buscar‘”) # This command is to touch, like the tap, but you can use this command with querys too, different of tap that just use label or id
keyboard_enter_text “something“ # This command is to write something in the field wich you touched in the last command
end # This finalize this step, you have to write this every final of step
Save the file like Search.rb inside the folder step_definitions. Don’t forget the words in bold, every file of ruby and calabash have to have this words on head. This means that you have to import the lib of cucumber in this file and the file will accept the words of your feature file.
Run cucumber in the terminal, you have to inside of the project’s folder.
If the simulator don’t open, you have to write the local that your app is inside the param APP_BUNDLE_PATH. So will stay like this:
APP_BUNDLE_PATH=”Local of your app” cucumber
If you wants open the console, the command is:
calabash-ios console
If the console don’t open for the same reason in the step here, you have to write the param of APP_BUNDLE_PATH again.
APP_BUNDLE_PATH=”Local of your app” calabash-ios console
If you wants install another lib in ruby you have to install in your terminal. I had to install a lib to generate a CPF. The command is:
gem install cpf_cnpj
After this, I just had import in the file of ruby like we did with cucumber, and stay like this:
require ‘cpf_cnpj‘
For now it is this 🙂 I will write many things about this in next time !
Bye Bye !!
Hello Guys !
I hope that you didn’t had any problem with installation, BUT how I had, I will put some solutions and some things that I discovered using everyday.
1 – The calabash don’t support IOS 7, you have to start with instruments (But I still didn’t get) and nevertheless you can’t use the tool record and play for the drag gesture.
2 – If your app isn’t generated in the root folder, you have to write in the launch.app inside the Support’s folder where is your app builded with framework. Like, I generated with my user, rafaela, so the initial folder is: Users/rafaela/Library… and for calabash find the app alone, you have to builded the app in /var/root/Library….
3 – When I have to start the app with console, I have to write the folder where it is, for the same reasons in the step before, like: APP_BUNDLE_PATH=”XXX/XxxxxX/DerivedData/” calabash-ios console
Hello guys !
I will teach how configure the cucumber and calabash in your mac and some others issues that I had when I set up cucumber. Write this commands in the terminal and inside of the project’s folder.
– First you have to install and update the rvm and ruby stable in your mac:
\curl -sSL https://get.rvm.io | bash -s stable –ruby
– Uninstall others ruby and Clean the rvm if needed
sudo rvm uninstall 2.0.0
sudo rvm cleanup all
– Use the last stable version of the ruby
sudo rvm get stable
– Search in the list the latest version of ruby
sudo rvm list known
– Install the ruby
sudo rvm install 2.1.2
– Let the last version Default
rvm –default use 2.1.2
– And install cucumber
sudo gem install cucumber
– and calabash-cucumber
sudo gem install calabash-cucumber
– Create the folders of the cucumber
sudo calabash-ios gen
– In the folder of the X-code project
sudo calabash-ios setup
Just remember to install the calabash on Workspace, not on the Project.
Maybe you will have to install pods and other things of your project, like here I had. After that you can generate the build of the calabash of your project, but remember you have to change the target the project to YourProject-cal.
I had some problems, like to calabash to find the folder of the app’s build. And I just edited the line of APP_BUNDLE_PATH inside the 01_launch.rb in the folder features/support and put the full path where the app is.
– To test if the configuration is ok, just write in the terminal > inside project’s folder
cucumber
If you have any problem, just comment below. In next steps I will show how you can run the tests and functions in general.
Bye 🙂
Hello guys,
Sorry for my absence, but it is really necessary. I started study for my Exam CTAL-TM and the exam will be on December, 6.
For now, I will put a site that I am doing the simulate of the exam. It is very hard to find some simulated or files to study for this exam, and I didn’t know that until now.
http://www.free-online-exams.com/Pages/Exams/DumpsQA.aspx?d=ISTQB-iSQI&c=CTAL-TM-UK&q=1
Wish me Good studies !
Thank you 🙂
Hello guys, I feeling need of explain about what is the objectives in automation.
So let’s go !
Objectives of Automation
What automatize ?
What don’t automatize ?
Benefits of Automation
Automation offers system-wide and network-wide benefits by simplifying your operating environment. You can reduce the amount of manual intervention required to manage operating systems, subsystems, application programs, network devices, and many other products.
The need to simplify operations increases as you add hardware and software products to your data center, data centers to your network, and personnel to your data-processing staff. By simplifying your operations, NetView automation can help you meet required service levels, contain costs, and make efficient use of your operation staff.
NetView automation helps you:
Improve system and network availability
Remove constraints to growth
Increase operator productivity
Ensure more consistent operating procedures
Fonts:
http://www.bcs.org/upload/pdf/aug09-automationobjectives.pdf
http://www.slideshare.net/intellecta/introducao-a-automao-de-testes-de-softwares
Acess the folder plataform-tools of Android Sdk and execute:
./adb start-server
Verify if the device was connected on pc, list of device and emulator:
./adb devices
Ps. 1 : Case give some error telling that the device wasn’t connected, verify if the USB Debugging Mode are enable on device (Settings> Developer Options > USB Debugging)
Fonts: http://stackoverflow.com/questions/7394868/netbeans-android-compile-test-on-real-device-unix-osx
Ps. 2 :If the your environment be configurate to run with emulator on Eclipse is necessary adjust the configurations of execution, it is written on the link: http://www.donnfelker.com/running-your-android-app-on-a-device/
*Execute the Apk on Device:
– If you have an emulator and a device connected in the same time, execute:
calabash-android to run apkfile.apk ADB_DEVICE_ARG=SERIAL (Serial captured of the device’s list, previously)
– Execute the console irb of apk
Same way on emulator, execute:
calabash-android console apkfile.apk
* Don’t forget of do the start of server on shell:
start_test_server_in_background
Contributed by Lieuthier, Eduardo
Hello guys,
I will explain what is BDD in a simple way. It’s a development technique, who extends quality assurance, design, requirements and validations. The BDD is divided by cycles, the cycle outside-in.
1. Scenario: It’s is a specific functionality, very clear and exact.
2. Specification for the scenario: Write a specification that explains for steps how the scenario will work (for users).
3. Specification of unity: Write a specification that explains how the scenario will works, but this time the specification will be for development, in some class or function.
4. Make the specification of unity works: This artefact of software should be done of a minimum and simple way. The most simple way for the specification work.
5. Refactor: The specification that was made simple, will be re-structured for the new design.
6. Refactor: This re-structure will work in a different way , of the implementation (artifacts of software) to the requirements (user), in this level, new functions and design can be introduced.
Structure:
– (Given) that specify the pre-conditions for the occurrence of the action of the interest scene;
– (When), whose function is to specify the events that must occur to the scenario to run;
– (Then) that specify the expectations regarding the results of the execution of events in the scenario.
References:
ASTELS, D. Test-Driven Development: A Practical Guide. Upper Saddle River, NJ: Pearson Education, 2003.
BAIN, S. Emergent Design: The Evolutionary Nature of Professional Software Development. New York: Addison-Wesley, 2008.
BECK, K. Test-Driven Development By Example. New York: Addison-Wesley, 2002.
BECK, K. Implementation Patterns. New York: Addison-Wesley, 2007.
BECK, K.; ANDRES, C. Extreme Programming Explained: Embrace Change. 2. ed. New York: Addision-Wesley, 2004.
BOEHM, B. Software Engineering Economics. New York: Prentice-Hall, 1981.
CHELIMSKY, D. et al. The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends. Dallas: The Pragmatic Bookshelf, 2010.
COHN, M. User Stories Applied: For Agile Software Development. New York: Addison-Wesley, 2004.
CRISPIN, L. Driving Software Quality: How Test-Driven Development Impacts Software Quality. IEEE Software, IEEE, v. 23, n. 6, p. 70, 2006.
ERDOGMUS, H.; MORISIO, M.; TORCHIANO, M. On the Effectiveness of Test-First Approach to Programming. IEEE Transactions on Software Engineering, IEEE, v. 31, n. 3, p. 226, 2005.
EVANS, E. Domain-Driven Design: Tackling Complexity in the Heart of Software. New York: Addison-Wesley, 2004.
FOWLER, M. et al. Refactoring: Improving the Design of Existing Code. New York: Addison-Wesley, 1999.
FREEMAN, S.; PRYCE, N. Growing Object-Oriented Software, Guided By Tests. New York: Addison-Wesley, 2009.
JANZEN, D. Software Architecture Improvement Through Test-Driven Development. In: Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications. [S.l.: s.n.], 2005.
JANZEN, D.; SAIEDIAN, H. On the Influence of Test-Driven Development on Software Design. In: Proceedings of the 19th Conference on Software Engineering Education & Training. North Shore Oahu, HI: [s.n.], 2006. p. 141–148.
JEFFRIES, R.; MELNIK, G. TDD: The Art of Fearless Programming. IEEE Software, IEEE, v. 24, n. 3, p. 24, 2007.
KOSKELA, L. Test Driven: TDD and Acceptance TDD for Java Developers. New York: Manning, 2007.
MARTIN, R. Clean Code: A Handbook of Agile Software Craftsmanship. New York: Prentice-Hall, 2008.
MESZAROS, G. xUnit Patterns: Refactoring Test Code. New York: Addison-Wesley, 2007.
NORTH, D. Introducing Behaviour-Driven Development. 2006. Disponível em http://dannorth.net/introducing-bdd, acesso em 26/02/2010.
NORTH, D. What’s In a Story? 2007. Disponível em http://dannorth.net/whats-in-a-story, acesso em 01/03/2010.
PRESSMAN, R. Engenharia de Software. 6. ed. São Paulo: McGraw-Hill, 2006.
SOMMERVILLE, I. Engenharia de Software. 8. ed. São Paulo: Pearson Addison-Wesley,
2007.
WILLIAMS, L.; MAXIMILIEN, M.; VOUK, M. Test-Driven Development as a Defect Reduction Practice. In: Proceedings of the 14th International Symposium on Software
Reliability Engineering. [S.l.: s.n.], 2003.