Monday, December 18, 2017

Overview Of Agile Model in Testing

Agile software development describes a set of values and principles for software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams (Wikipedia)
Agile testing is a software testing practice that follows the principles of agile software development. Agile testing involves all members of a cross-functional agile team, with special expertise contributed by testers, to ensure delivering the business value desired by the customer at frequent intervals, working at a sustainable pace. Specification by example is used to capture examples of desired and undesired behavior and guide coding. (Wikipedia)

Agile software development is a type of incremental model, developed based on the iterative development process. Agile does not necessarily follow the plan, it can have its own breakthroughs to create the perfect software.
Features of Agile model:
·         Each project is divided into several segments for ease of use and change when customers request changes
·         Small portions of the project will be tested during project implementation.
·         The requirement for frequent face-to-face meetings is because the whole team must focus on developing a piece of the project at each point of time in Agile.

The software testing works in Agile are performed according to the following procedure:

a. Kick Off:
·         Kick Off testing software, We :
·         Understand and analyze customer requirements
·         The first step in software testing process is to review customer requirements that must be thoroughly analyzed and tested. In case of any incomprehensible or unreasonable, report to the analysis team. This phase helps us to answer the question: What will be tested?
·         Prepare strategies and plans (test plans)
·         In the Agile model, test plans are written and updated continuously in each loop including:
·         The key functions of the project
·         Non-functional requirements
·         The approach and identification of test activities can be either manual or automated, or a combination of both
·         References
·         Estimate the cost of testing and building, reasonable time division.
·         Division of human resources for testing.
·         ......
·         Preparing the environment is the foundation for software testing to include the operating systems (Win 7, Win 8, IOS, ...), browsers (Opera, IE, ...), devices (Mobile, tablet , destop, ...)

b. Deployment Features, Functions in each sprint
The process is shown below:
As shown on pictures, the same work will be done in each development included:
·         Design
·         This stage is very important, it ensures all test situations "cover" all the testing requirements. Designing a test is not just a one-time. It will be repaired, updated, added or subtracted throughout the software testing period, at any time with any required change, or notice that it needs to be repaired or added after analysis.
 Writing test cases, writing Checklist, from functional and non-functional requirements of the software consists of three cases: True, Fail and unidentified results (case incurred, not in the specification document). Testcase should cover all aspects of testing for each software requirement. Write test scripts if you use the tool to perform automation tests for interfaces, functional tests....

·         Perform

After designing, we run the test in a variety of ways.
·         Run the test for each test case / test script
·         Perform special ad-hoc testing
·         Review bugs that have been fixed
·         The tester should report the bugs to the developer during the implementation and track them until the bugs are fixed.
·         And during the implementation, there may be some additional missing cases (if any).

·         Bug Report & Re-run the bug

After the test is done, report the bug to the developer to confirm and the developer will fix if it is the bug.
After fixed, the tester re-runs the bug to ensure that the bug runs correctly after fixed and does not damage other program functions.
After the Deployment stages are completed or each function is completed, the tester will test the entire development cycle, the whole system to make sure that the Deployment n is finally complete.
The tester performs a software test on the UAT. If there is a bug, it will be reported to the developer to fix and test until the software is complete. Then the software will be tested by the user.

c. Feedbacks
The system is uploaded to the UAT for the user to run the program.
Cases:
If the user feedback software is complete, the software will be launched.
If the user has any feedback about the bug, ask for the interface as well as adjust the software, the software testing team will receive feedback, record and make changes with the implementation of the development 1, development 2, .... basing on the customer requirements.

b4usolution group

Friday, November 24, 2017

Nhật ký làm Trainer - Tập 1

Nhật ký làm Trainer - Tập 1
Ngày Black Friday (24/11/2017), Sài Gòn, các tuyến đường không còn lối đi, người người, nhà nhà tham gia mua hàng giá rẻ cả online và offline. Và tôi nghĩ rằng không chỉ ở sài gòn, mà tất cả các thành phố lớn ở Việt Nam và cả nước ngoài, họ chờ mong những ngày như thế này được diễn ra.
Thế nhưng, có 2 bạn trẻ, tham gia trong dòng người đông đúc đó, trong buổi chiều mưa gió, sắm chớp ầm ầm diễn ra. Họ vội vã thực hiện cho một công việc khác, không phải lao nhanh đến các trung tâm mua sắm, mà họ đến chổ hẹn, ĐHHoaSen, để tham gia chia sẽ về chủ đề:
- Kiểm thử hiệu năng phong cách Agile
- NodeJS & Angular, bạn chọn phong cách nào?
Và chân thành cảm ơn các bạn đã tham gia cùng chúng tôi, với 2 chủ đề như trên.

Sunday, November 12, 2017

Overview Of Waterfall Model in Testing

I. Overview
Nowadays, the software that people create is more complex. Algorithms are increasingly difficult to build and manage. Therefore, software managers are constantly learning and researching to create better software development methods. Compared to the past, people have been constantly creating cheaper, faster computers and more powerful programming languages. The greater theoretical knowledge requires support tools and software.

On the other hand, to develop and launch such software, many models have been applied such as waterfall model, V-model, iterative model, spiral model, agile model… Along with the software development process is the testing process. Testing is performed as soon as possible in the software development process in order to find bugs within the software that could be potential harmful problems inside software. This helps to perfect the software applications to meet user requirements.
One of the most widely used models in companies around the world is the Agile model, which is considered to be an improvement over older model Waterfall. We will learn about these two models to understand the differences between them.

II. Overview of software testing using Waterfall
Waterfall model is a development process that looks like a flow with phases in strict order without turning or jumping phase. If any errors occur before the test period, it will have to be re-started.


 Software testing includes:
a. Figure out and analyze requirements  
The first step in software testing process is to review customer requirements that must be thoroughly analyzed and tested. In case of any incomprehensible or unreasonable, report to the analysis team. This phase helps us to answer the question: What will be tested?
b. Prepare strategies and plans
After figuring out the customer requirements, the next step is to set up a test strategy and plan. We need to determine the scope of the test in this step:
  • ·         The key functions of the project.
  • ·         Non-functional requirements.
  • ·         The approach and identification of test activities can be either manual or automated, or a combination of both.
  • ·         References
  • ·         Estimate the cost of testing and building, reasonable time division.
  • ·         Division of human resources for testing.
  • ·         ......
Regardless of the project, we need to have a strategy and plan. It will be difficult to implement without a clear strategy and plan.

c. Design & Setup environment
The next step after the planning is to design them. This stage is very important, it ensures all test situations "cover" all the testing requirements. Designing a test is not just a one-time. It will be repaired, updated, added or subtracted throughout the software testing period, at any time with any required change, or notice that it needs to be repaired or added after analysis.
Writing test cases from functional and non-functional requirements of the software consists of three cases: True, Fail and unidentified results (case incurred, not in the specification document). Testcase should cover all aspects of testing for each software requirement. Write test scripts if you use the tool to perform automation tests for interfaces, functional tests.
Preparing the environment is the foundation for software testing to include the operating systems (Win 7, Win 8, IOS, ...), browsers (Opera, IE, ...), devices (Mobile, tablet , destop, ...)

d. Perform: 
After designing, we run the test in a variety of ways         
  • Run the test for each test case / test script
  • ·         Perform special ad-hoc testing
  • ·         Review bugs that have been fixed.
  • ·         The tester should report the bugs to the developer during the implementation and track them until the bugs are fixed.
  • ·         And during the implementation, there may be some additional missing cases (if any).
e. Report and summarize
After the software is tested, we make a report.
  • ·         Create bug reports.
  • ·         Evaluate test results, list the changes made during the test.
  • ·         Make a summary of the test performance.
  • ·         Determine whether the software reachs the criteria for success or be completed...

b4usolution group



Monday, October 30, 2017

Journey to become Full Stack QA

Before talking about our story, let's find out what is Full-Stack Tester. As we know, fullstack developer is a developer can capture, set up each layer, each part of the program and the technologies used in that program from the back-end to the front-end. Similarly, the Full-Stack tester is a person who understands the qualities required in the product as well as the various test methods (Performance test, Usability test, Automation test, Security test) for each type of program to test their program. The Full-Stack tester is a person with diverse knowledge, skills and expertise in testing.

Why do we need a full-stack tester? Most companies now follow the Agile development model. Products are made in a short time and fast means that the time required for testing is also short and fast to ensure product progress. Testing is not simply a must-do and pre-launch process, but a process that needs to be completed at every Sprint. Therefore, the tester must know how to test and ensure the quality of the product. To do that, Tester must constantly study and research new technologies.


Surely everyone knows that today's films, as well as novels and old myths about heroes all have one thing in common, a familiar motif repeated over and over again is "The Hero's Journey" and today we will talk about the journey to become a Full-Stack Tester with such motifs.

How was the hero's journey that we can get it simulated as journey becomes Full-Stack Tester? Think of it as a cycle, the journey begins and ends in the ordinary world of the hero but the task must be done in a strange and mysterious world. During the adventure, there will be many important events happening. And the cycle of a full-stack tester would be the same. Please refer to the image below.
Status Quo
You are a new tester with no experience. Your initial luggage includes basic knowledge of testing (usually manual testing), a passion, the desire to develop yourself on the test track, a serious attitude that is willing to learn and is not afraid of pressure and obviously the most important thing is an environment for you to develop, a company gives you the opportunity to make your passion and dreams come true.

Call to adventure
A new project at your company has been kicked off and then you are invited by the Project Manager to participate in the project as a tester. There are so many new things you do not know about this as if it is a completely different world. You accept the invitation to experience and enhance your experience.

Assistance
Obviously, no matter how good you are, you can not do everything by yourself. You will need advice from the seniors in your team to be able to do a good job in the project. Besides, you also need help from other members with that new project.
 Departure + Trials
The project starts, you get acquainted with the project by reading and analyzing the requirements or user story, then start writing the test plan, test case and executing the test, knowing what the bug is? And when the bug is found, what are you going to do?
 Approach + Crisis
But the project is not always smooth, there will always be difficulties inside. For example, the deadline is approaching, demo day is tomorrow but today Dev team has just finished code and deployed to server test. You only have one day to test. You try to work overtime as hard as possible to test, find all bugs, urgently prepare demo scenarios and then also on demo project. But your demo failed as it could not be any worse. Although you tested very well yesterday, today there are still bugs, even very serious bugs. Then the customer sends a complaint to the whole group. Project Manager discusses with you privately. Even if they do not say bad words to you or scold you, just remind you. But your mood can not get any worse. You start asking yourself: "Should I give up?", "I do not have meticulous, how to be a tester if ignore bugs", "My English is not good, maybe that is reason I did not understand all the requirements and missed bugs","working for eight hours day by day is enough, no need to try", "I'm prepare to find another job, okay, I can not do this". Negative sentences are formed, mood affects the work. All tasks assigned to you begin to be delayed, not completed in time.
Then the senior tester on your team gives you advice. You finally know the key. You stand up and continue your work but with a solid spirit, and valuable lessons for yourself.

Treasure + Result
Of course, after each journey, each of us is reaping something. Here our treasure is the knowledge we have in the projects we go through, expensive lessons from the mistakes. Experiences help us to be more stable on the career path in the future.

Return + New Life + Solutions
Ending a cycle, we return to reality. But now we are different because we have reached another level through what we have experienced. We start knowing what to do, what to face, what to do to overcome those difficulties. And start preparing for future projects, as well as further plan to develop our career.

Maybe your journey will be different from this motif a little bit but in general everyone in the world is living and experiencing this cycle with different perspectives, different environments and different challenges. Journey to become a full-stack tester is not a simple and can be achieved in a short time. It is a long nonstop adventure from one cycle to another. Because technology is constantly innovating, we must constantly innovate ourselves to keep up with technology. As a tester, we have to get rid of old prejudices, expand our minds to accept new ones. And as a Full-Stack Tester, you have to know as much as you can.The most important thing is to learn from the failures we have experienced, stand up from those failures and overcome our weaknesses.


Wednesday, September 27, 2017

Part 1: HOW TO RUN PERFORMANCE TESTS USING JMETER ON MOBILE APPS

Introduction:
In this tutorial, we will look like overview of how to install and start Jmeter 3.2 and we will also learn about the basic Jmeter and how to run performance tests on mobile apps.
What is Jmeter?
JMeter is a 100% Java application, open source software, designed to load test for analyzing and measuring the performance of variety of applications , with a focus on web applications.
Why Jmeter?
  • Open source testing tool and the most popular performance tool.
  • Easy to download and install.
  • Have huge community support.
  • Can test for web app or mobile app
  • Can view result by table, graph
Prequities:
  • JMeter now requires Java 8.
  • JMeter logging has been migrated to SLF4J and Log4j 2.
Downloading and Installing Jmeter
Step 1: Download file and Install the latest  JRE or JDK. This is needed as JMeter is a pure Java application.
Step 2:  Download file and Install the latest  Jmeter (version 3.2)

  • Unzip the file on your desired path.

  • Steps to Launch JMeter : Go to your JMeter bin folder to launch JMeter, then run jmeter.bat (in windows )  file or jmeter.sh (in linux, MacOS) in here.
Launch of Jmeter




  • Example : How to run performance an App in Mobile with Jmeter
    Step 1: Create a Thread Group and Add Recording Controller.
    • First, add a Thread Group to Test Plan: Right-click on Test Plan > Mouseover Add > Mouseover  Threads (Users) > Click on Thread Group

    • Add User Defined Variables : - Click on Thread Group > Mouse over Add > Mouseover Config Element> Click on User Defined Variables



    • Then,  add a Recording Controller: Right-click on Thread Group > Mouse over Add > Mouseover Logic Controller > Click on Recording Controller


  • Step 2: Create a test script. First, add a HTTP(s) Test Script  Recorder to Test script: Right-click on WorkBench  > Mouseover Add > Non-Test Elements > Click on  HTTP(s) Test Script  Recorder
    • Add ‘8080’ as Port value and click the Start button. This will start the JMeter proxy on localhost


  • Step 3: On Android phone, get  CRT file from  apache-jmeter-3.2\bin and install on mobile. Then configure proxy of mobile



  • Android proxy configuration:
Go to Settings>Wi-Fi option > connected network and click the “Modify Network” option > Check the “Advanced options” check box > Set ‘Proxy’ option to “Manual” > Set “Proxy hostname” as your computer’s IP address and ‘Proxy port’ to 8080 as we have set up in JMeter configuration > Click “Save” option.

Step 4: Add Listener and  Run the Test Plan. Right-click the Thread Group (Users) > Choose Add > Listener > View Results Tree / Summary Report

  • Then click Start button

The way to create scenario and activities
* Input data to test by CSV file. 
First, create CSV file.  In This example, I saved the file as “xxx.csv” (telephone and code country)

  • Then go into JMeter and find the HTTP request step that you want to modify to use the values in this CSV file. Right click on it and go to Add > Config Element > CSV Data Set Config.


  • Next click on the CSV Data Set Config step to modify it
You’ll need to fill in at least 3 values on this screen:
 + Filename: if your file is in the /bin directory, this can be just the filename.
If it’s somewhere else, use the full path to the file.
 + Variable names: this is the equivalent to a “column name” in a spreadsheet.

 Delimiter: comma is the default delimiter.

After the CSV step is filled out correctly, go back to your HTTP request and change the value of the “phone” and “zone” fields to variables.

*The number users to test. Right-Click the Thread Group and add User Defined Variables Config Element in your JMeter test


  • Create a new variable: protocol with value https


  • Go to the HTTP Request and add the variable name where you want to be replaced with its value, use ${protocol}


  • Result -> CSV file -> report. Right click Thread Group and Add -> Listeners -> Aggregate Report


    • Configure the filename in the Filename field of the Aggregate Report. 
     Ex: [FULLPATH]/results.csv
    • Run the test script and  file with the results.csv name should now be created at the path specified
HoaLe