Category: Automated Testing

Embedded TestingEmbedded TestingEmbedded TestingEmbedded TestingSoftware TestingSoftware TestingSoftware TestingSoftware TestingSoftware Testing

White box testing

White box testing

Any one software product is definitely at fault because software products are built by humans. Therefore, an independent person, group, or organization will need to be tested to see if the product has any problems or errors. For software testing, we need to have effective testing strategies and techniques for each level of testing. Software testing consists of two parts that require different skills, white-box testing and black-box testing.

In this topic, I will delve into the white box testing. To better understand the technique of white box testing (White-box testing), we take a look at the following contents:

1.What is White box testing

White box testing is a software testing method in which the internal structure, design or implementation of the item being tested is known to the tester. The tester chooses inputs to exercise paths through the code and determines the appropriate outputs. So Programming know-how and the implementation knowledge is essential.

2. Subjects of application

The object to be tested is a software component. The software component can be a function, a function module,…

3. Levels Applicable To

White Box Testing method is applicable to the following levels of software testing:

  • Unit Testing: For testing paths within a unit.
  • Integration Testing: For testing paths between units.
  • System Testing: For testing paths between subsystems.

However, it is mainly applied to Unit Testing.

4. Pros and cons of White box testing

Pros

  • Testing can be commenced at an earlier stage. 
  • Testing is more thorough, with the possibility of covering most paths.

Cons

  • Since tests can be very complex, highly skilled resources are required, with a thorough knowledge of programming and implementation.
  • Test script maintenance can be a burden if the implementation changes too frequently.

5. Common white box testing techniques

5.1. Baseline test – Line graph

  • A technique used in white box testing was first introduced by Tom McCabe. The line graph is similar to the program control flow graph.
  • Baseline test – Line graph is one of many methods of algorithm description. Besides, this is a visual method that shows us easily the components of algorithms and relationships
  • Contacts in implementing these components.
  • Basic line techniques – flow graphs can help test case designers get a degree of procedural complexity.
  • Consists of 2 types of components: nodes and arcs connecting them.
  • Types of buttons in the control line graph:

White box testing-button-control line

  • Types of structure components of line graphs:

White box testing-structure-components

Example:

If the control flow graph contains only binary decision nodes, then we call it control flow graph of a binary. Also, we can always detail any control flow graph into a binary control flow graph.

White box testing

5.2 Testing based on control flow

  • Execution path is a script to execute the corresponding software unit. In addition, it is an ordered list of commands executed for a specific run of the software unit, starting from the entry point of the software unit to the ending point of the software unit.
  • Each software component has from 1 to n (possibly very large) different implementation paths.
  • The objective of the control flow test method is to ensure that all the execution paths of the software units under test are run properly. But in reality, the effort and time to achieve the above goal is very large, even on small software units.

For example: the following code

for (i=1; i<=1000; i++) for (j=1; j<=1000; j++) for (k=1; k<=1000; k++) doSomethingWith(i,j,k);

only one execution path, but very long

For more information about Testing services, please contact us

———————————————————–

Lotus Quality Assurance (LQA)

Tel: (+84) 24-6660-7474

Email: [email protected]

Website: https://www.lotus-qa.com/

Youtube: Lotus QA channel

Manual TestingManual TestingManual TestingManual TestingManual Testing

Black-box Test Design Techniques

What are Test Design Techniques? 

Basically test design techniques help us choose a good test set from the total number of tests possible for a given system. There are different types of software testing techniques, each with its own strengths and weaknesses.

Performing testing at different stages of the software development life cycle will find different types of bugs, component testing is more likely to find coding logic errors than system design errors.

In the series of test design techniques, I will start with Black box techniques.

Black-box Techniques

In the article I will mention the 4 most common techniques in black box testing

  • Equivalence partition
  • Boundary value analysis
  • BDecision table
  • State transition testing

1. Equivalence Partitioning

  • Inputs to the software are divided into groups that are  expected to exhibit similar behavior, so they are likely to be  processed in the same way
  • Equivalence partitions can be found for

+ Valid data – values that should be accepted.

          + Invalid data – values that should be rejected.

Example: A textbox can input integer numbers from 1 to 99 

    • Partition 1 – invalid: < 1 
    • Partition 2 – valid: 1 <= & <=99
    • Partition 3 – invalid: > 99

Equivalence-Partitioning-Techniques

2. Boundary Value Analysis

The maximum and minimum values of partition are its boundary values.

Boundary-Value-Techniques

Boundaries define 3 set of data:

  • In-bound
  • Out-of-bound
  • On-bound

Example: A textbox can input integer numbers from 1 to 99 

    • Select value for test case: 0; 1; 99; 100 

Boundary-Techniques

3. Decision Table

Equivalent partitioning and boundary value analysis are usually applied to an input. In the case of combining multiple inputs in a function, it is difficult to use an equivalent partition or boundary value analysis. In this case, we can use Decision table or State transition

Decision table includes:

  • Row of Cause (Condition) and Effect (Action/Expected Result)
  • Columns of possible combinations.

Columns-Possible-Combinations-Decision-Techniques

Example1: Login form

Login-Form-Decision-Techniques

Example2:

If you are the customer opening a credit card account, you will have a 15% discount on all shopping activities today. If you are a loyal customer, you have 10% discount interest. If you have an offer (coupon) (but not a new customer), you get a 20% discount today. From the above specification we have the following conditions:

  • New customer (15%)
  • Loyalty cart (10%)
  • Coupon (20%)

We have 3 conditions => we have 8 rules to test. Make a decision table as follows:

Decision-Techniques

4. State transition testing

State transition testing is used when certain aspects of the system are described by state machines. Put simply, the system can be in a (limited) number of states and sessions from one state to another that is governed by a state machine rule. This is the model that we will use as a basis for testing. Any system where you have different outputs from the same inputs and the output depends on the pre-existing state is called a “finite state system” and such a system will be able to be displayed by a State diagram.

For example:

If you want to withdraw $ 100 from an ATM, you put the card into the machine. After you complete all the steps required by the ATM Then you complete the steps required by the system, but the withdrawal is unsuccessful (because the balance in your account is not enough to make a withdrawal). The withdrawal is not successful because the bank account has changed the status from enough to make a withdrawal to not enough to make a withdrawal. This state transition is due to your previous withdrawals. A status diagram can be presented by a model under the view of the system, the account or the customer.

A state transition model consists of the following 4 parts:

  • The state that the program may have (e.g. insufficient balance, expired account …)
  • Transitions from one state to another
  • Events causing conversion (for example, entering a PIN code, closing a file …)
  • Actions are the result of a conversion (for example, an error message, returning an ATM card …)

State-Diagram-Pin -Entry-Techniques

For more information about Testing services, please contact us

———————————————————–

Lotus Quality Assurance (LQA)

Tel: (+84) 24-6660-7474

Email: [email protected]

Website: https://www.lotus-qa.com/

Embedded Testing

What should be checked to assure for mobile testing flow

In a mobile testing flow, there are lots of factors having influence on quality of products. So let’s find it down.

1. Mobile testing flow-App installing

・ Can the app be installed on your device?

・ What happens when the app is installed (the device runs out of battery, loses network, ..)

2. Mobile testing flow-Device memory

mobile-testing-flow-device-memory

・ App takes up a lot of device memory?

・ What happens if you install the app when full memory?

3. Mobile testing flow-Display

mobile-testing-flow-mobile-display

・ Check vertical and horizontal screen

・ Check actions, zoom in/out (all actions)

・ Check the interface is not cut

・ Check to see if objects overlap

・ Check to see the loading icon appears where needed or not

・ Characters should not move away from certain screens/ areas

・ Check to enable or disable images / icons and buttons

・ Check the screen title

・ Check the message title, description description, label (textbox title) match or not

・ Check if the focus position is set to the first field or the first control when the screen loads.

・ Display font (color, size …)

・ Scroll effects, smooth page transition

・ The data saved when the window is closed, …

4. Mobile testing flow-Function

mobile-testing-flow-function

・ Ensure the functions included in the design work well

・ Test out-of-stream functions

・ Click, swipe, otuch, scroll … fast to detect errors

・ Redirects from links in apps or social links (g・, facebook …)

・ Get data from the server while in background running, screen lock or listen

・ Check data synchronization when logging in to multiple devices (desktop, tablet, mobile)

・ Test camera if available in the application, (take photos, store …)

・ Content and images display well when sharing on Google, facebook …or phones with facebook and applications installed, and without those applications.

・ Notification from apps like updates, reminders …

・ On / Off sound occur error

・ Time on app, server, ..

・ Change the time on the Device

・ Shutdown network suddenly while using the app

・ Rotate the screen while using the app

・ Check app vibration if available

・ Check if using the app for a long time may cause heat

・ Check other actions interfering while using the app: making calls, texting, alarms, …

・ Attention to test for System Crash / Force Close cases

5. Mobile testing flow-Update new version

・ Check if an updated version available while using the app

・ Check if data loss when updating to a new version

For more information about Testing services, please contact us

———————————————————–

Lotus Quality Assurance (LQA)

Tel: (+84) 24-6660-7474

Email: [email protected]

Website: https://www.lotus-qa.com/

Automated TestingAutomated TestingAutomated TestingAutomated TestingAutomated TestingAutomated TestingBlogSoftware Testing

Testers Need to Know: Software Testing Basics, Principles, Skills, Phase

Software Testing has always been an indispensable part of a Software Development Life Cycle. While other processes of strategic analysis and software development help build up the “spine” of the whole product with basic functions and interface, software testing is for a well-rounded, fully-functioning product. Get to know the software testing basics in this article now.

Testing is often referred to as test implementation, which means running software and testing. Test implementation includes the process of executing a program or application such as designing tests or checking results, writing test reports, etc.

Check out our testing foundation video series

The Purposes Of Software Testing

The main purposes of the Test include the follows:

  • Detect bugs
  • Prevent the creation of errors in the system
  • Check if the product quality meets requirements
  • Provide information to support product decisions, such as if it’s market-ready or not

We need to distinguish the difference between Test and Debug. Test is to find errors, and Debug is to find out the cause of the errors and fix them. The responsibility of testing usually lies with testers, and the responsibility of debugging belongs to the developers.

These are the basic steps for the subsequent coverage of testing. How much effort and time to be spent on the testing process depends on the system structure and the complexity of that system.

To start your journey as a tester, either manual or automation, you need to get acquainted with these fundamentals of testing:

  • 7 principles of testing
  • 15 skills every software tester should master
  • The basic test phases
  • Psychology of testing

7 principles of software testing basics

Software Testing Principle -Software Testing basics

Software Testing Principle – Software Testing basics

Principle 1: Testing can only prove that the software has errors

Software Testing basics – Through testing, we can indicate that the software has errors, but can not prove that the software has no errors at all. Testing can reduce the number of errors in the software, but even in the absence of errors, we cannot claim that our software is error-free.

Principle 2: Testing the entire pattern is impossible

Testing the entire pattern (combining all conditions in data entry) is not possible, except for some extremely simple software. Instead of testing the whole thing, we should rely on risks or priority to focus on the points needed.

Principle 3: Test as soon as possible

To find bugs early, testing should start as soon as possible in the software development process. Different software system requires a different approach for an effective testing process. Test engineers can choose among the popular models, including V-model, Agile, Scrum, etc.

Principle 4: The uneven distribution of errors

It is likely that most errors detected before releasing or during operation are concentrated in certain modules.

Principle 5: The principle of pesticides

When you perform the same test case multiple times, it will eventually fail to find the errors. To avoid this, it is necessary to review and improve test cases periodically.

Principle 6: Testing depends on conditions

For different conditions, there will be different test methods. For example, testing the banking system will be completely different from testing a sales website.

Principle 7: The “bug zero” pitfalls

Do not be so focused on creating a system without errors that you forget the initial requirements from customers. In the end, we are developing a product for certain requirements and purposes, not building bug-free software but no one needs it.

Find the top 10 IT Outsourcing companies for your testing projects

10 Skills every software tester should master

Software Testing basics – Software Testing is evolving at a rapid pace with higher demand over the product and service’s quality. To ensure this, many are applying critical testing methodologies such as agile, DevOps, scrum, etc., all of which are part of the accelerated development and continuous deployment.

Listed below are the 10 skills that every tester needs to know. The skills are categorized as technical skills and non-technical skills.

Technical skills

– Testing Methods: Manual Testing & Automation Testing

Manual testing is usually the first door for testers to enter the testing world. This is when a test engineer rely on on pre-defined test cases and test scenarios, then carry out all test steps manually.

In addition to manual testing is automation testing. It deals with testing on a higher level which requires programming and coding skills. In exchange for a large amount of time spent on writing automation testing code, we can have higher accuracy with a lower cost once the automation testing is implemented.

manual-testing-vs-automation-testing

Manual Testing vs. Automation Testing

Still, both manual and automation testing have their own benefits and can co-exist in a specific testing process. During testing phase of one product, we may see this scenario should be manual while others better come with automated solutions.

The most outstanding feature of automation testing is how it can save up a fortune for business that applies it. With the increasing complexities and advances in software nowadays, the burden of testing is placed heavily on manual testers. Not to mention huge workloads, there are to be stress and tedious testing tasks that manual testers have to deal with. Once automation testing steps in the game, you can instantly recognize the faster pace of the product/service’s time to market.

– DevOps & Agile Methodology

The global market constantly needs more than what they’ve already had. To meet these ever-growing demands, strategists have to put more features, more applications available to the public. This pressing demand to meet delivery deadlines requires collaborative and iterative working models, which should be found in DevOps and Agile methodology.

When you apply Agile methodology, continuous integration and continuous delivery are pushed in an endless cycle of testing, which will eventually speed up the test project.

Software Testing basics – If you combine this methodology with DevOps, you can create cross-functional teamwork right from the development, analysis, and QA. This yields a high-quality product with a faster time to market.

– SDLC

SDLC stands for Software Development Life Cycle. Normally, you can find useful information on how software is made and what steps of it involve software testing. Once you’re familiar with the in-depth knowledge of SDLC, you can anticipate complexities in the application to handle and predict the right testing measures to be done.

– CI/CD

A mature CI/CD DevOps practice has the option of implementing continuous deployment where application changes run through the CI/CD pipeline and passing builds are deployed directly to production environments. Teams practicing continuous delivery elect to deploy to production on a daily or even hourly schedule, though continuous delivery isn’t always optimal for every business application.

– Testing Tools & Techniques

Testing techniques stand as the most practical requirement for test engineers to master. The most common testing techniques needed in the testing process of every product are black-box testing, penetration testing, regression testing, smoke testing. With these testing techniques in hand, testers become more versatile and can handle every task there is.

automation-testing-tools

Automation testing tool is also an important feature for a more cost-effective and high-quality work of testing. With a large number of tools available in the market such as test management tools, GUI testing tools, automation tools, etc., testers can find the suitable ones that can serve different requirements and test purposes in projects with different levels of complexity.

Non-technical skills

– Critical thinking

Although testing is infamous for being tedious and repetitive, once you’re part of the process, you will see that testing also requires a high level of logical thinking and strategic analysis. With these skills, test engineers can identify errors and understand product structure more easily, hence the suitable testing approach and test method.

With a skeptical and multifaceted assessment, testers can validate applications in different usage and scenarios, hence having a practical approach to test their elements dynamically.

– Communication skills

Communication in testing is as important as it is in other fields of the IT industry. These communication skills can help testers deliver their work process and project status to the stakeholders effectively.

An effective approach for communication in a testing project should also include how test engineers inform project requirements, collaborate among team members, etc. Achieving these skills will help in demonstrating a high level of competency on a managerial level.

– Test planning

Test planning skill is essential for any test engineers that want to climb the career path in testing. This skill helps you identify the right approach and appropriate steps to take in testing. Besides all that, test planning also helps in reporting and logging work, giving the stakeholders the overall picture of how the test project is done. To do this, many test engineers devise a well-documented report of the test process and record of what has been done throughout the work.

– Project Management

Consider the test career path with test manager stands at the higher ground, project management skill is a must for any tester want to continue on their career. With this skill mastered, test engineers can answer to stakeholders and be responsible for their team’s work. This also helps them in team management and team assessment.

– Reporting

A good tester must also possess good reporting skills to provide the exact status of the test project and application under test to stakeholders. This practice of reporting leads to better coordination of the overall test project and also gives transparency to the top management in terms of test cases executed, bug encountered, release timelines, etc. which eventually helps in taking the right decisions.

The basic test phases – Software testing basics

Software Testing Principles - Software Testing Phases

Software Testing Basics – Software Testing Phases

1. Planning and control

Software Testing basics – Test planning is the determination of the purpose of the test and the spec decision. Test control is the activity of comparing the plan with the progress during the test.

Overall, test planning is to identify the objectives of testing and what activities in order to meet these objectives. The main task of planning is to determine the test strategy or approach. Test planning should also clarify scope, risks, required test resources, test schedule, etc. Meanwhile, test Control is the ongoing activity to make sure everything is on track.

2. Test analysis and design

Convert abstract goals into specific test conditions or test designs. Specific example:

  • Review for test base such as risk analysis report, interface spec, etc.
  • Design test cases with their priority
  • Classify the necessary test data

3. Test implement and Test execution

At this stage we will create scripts or test sequences based on test cases and other necessary information, then set up the environment and execute testing.

4. Output and report evaluation

The output evaluation is the evaluation of whether the test implementation is satisfied with the purpose of the Test. For example:

  • Compare Test results with specified Test end criteria at the Test Planning stage
  • Judge whether you need additional tests or need to change the criteria for the output
  • Write Test reports

Psychology of testing

The Psychology of Testing - Software testing principles

The Psychology of Testing – Software testing principles – Software Testing Basics

Software Testing basics – Testers and Developers always have the same goal – to create a flawless solution for their client’s needs. But they work and think differently. If the developers have a suitable opinion then they can test it themselves. However, separating the environment for the developers and testers will be more effective, and testing from a completely independent standpoint from development by well-trained testers will be more beneficial.

Tester is a reliable and objective third side that can see the possible mistakes and errors that Developer hasn’t predicted. While testing is a constructive job but it is sometimes considered negative so creating a good relationship between testers and developers is extremely important.

To build a good relationship between testers and developers, the following things are needed.

  • There is a common goal of creating a good quality product, starting work with a cooperative attitude, not opposition.
  • The opinions about the product must be neutral and true
  • Try to understand the moods and reactions of others
  • Try to convey what you want to say and understand what others want to say

If you want to have more information about Testing services and the software testing basics, please contact us!

———————————————————–

Lotus Quality Assurance (LQA)

Tel: (+84) 24-6660-7474

Email: [email protected]

Website: https://www.lotus-qa.com/

BlogBlogBlogBlogBlogManual TestingMobile AppWeb App

Differences between mobile app testing and web testing

As we all know, technology is growing and mobile phones, smart devices are the trend, the future of the world. To meet such a large demand, applications must be of good quality, with rich and various content to meet the needs of users. That is also a big challenge for developers and software testers, especially for testers who are familiar with web testing but not yet aware of mobile testing.

So how is mobile testing different from web testing? 

1. Mobile testing has more flatforms

Mobile application testing will be much more complicated due to the variety of mobile devices. Ensuring that mobile applications work on all types of devices (smartphones, tablets or phablets) provided by a number of major vendors (such as Samsung, Sony, Nokia, HTC, Apple …) and on Operating systems (iOS, Android, Windows, Blackberry …) is really a challenge.

Therefore, testers need to have as many test cases as possible for each version, and perform as many tests on different devices as possible for good mobile application.

2. Screen size is constantly changing

iPhone-screen-sizes-mobile-web-testing

Major suppliers tend to change the size of their phones, tablets or phablets to fit users’ needs and tastes, as well as compete with other vendors. Then, when testing, we need to have test cases for screens of different sizes, to check for different screen sizes, whether the interface has broken layout or not; size buttons, the text box, radio button … have been changed or not.

3. User experience is needed for tester

For developers they only care about how the system functions work properly but for testers it is required user experience to support the users. An application can be considered a failure if it is difficult to use or can not be used in different situations, especially mobile applications need to support users to be able to use in all circumstances.

4. Users have more interactions than web applications

interaction-mobile-testing

When testing the web, the testers only interact with the system through a keyboard or mouse. But for mobile apps, we will interact with more ways such as touching, waving, eye movement, sound …..That’s why when testing, we will need to grasp catch those test cases.

5. Data security and privacy

Mobile applications such as pictures, videos are needed to be inaccessible to many other flatform feature. For mobile testing, there are also test cases of data access and privacy like camera access, photo data access, etc.

6. Excessive reliance on emulators and simulators leads to a lack of real-life device experiences

emulator-mobile-testing

When we test websites, the differences between browsers are quite small. However, for mobile apps, we often test in emulators and simulator environments. Those environments are not like real devices. Therefore, there are test cases that cannot be performed in emulators and simulator environments. As a tester, we need to control such cases.

7. Cases about installation, removal, update versions of application

Mobile applications are installed, removed and updated more frequently so that when testing, we need to catch how the next platform version changes and what it can affect the application.

remove-app-mobile-testing

What if the users have more than 1 device? What if those devices have different versions of the application? Compatibility, simultaneous support for multiple versions, data storage and the ability to install/ upgrade multiple times,… play an important part in application testing. 

8. Does the app work well when being interrupted

For mobile applications, users will often be interrupted by other applications such as SMS, incoming calls, notifications. After finishing those interruptions, how will the app work save actions in progress? These cases are often very rare when we test the web.

incoming-call-mobile-testing

9. Phone’s specific functions testing

There are many factors that need to be taken into account when testing.

・How much data is this application consuming?

・How much battery does this application consume? 

・Does this application work well if the battery is low? 

・How much junk data does it generate? 

—————————————————————

For more information about testing services, please refer to Testing services

Lotus Quality Assurance (LQA)

Tel: (+84) 24-6660-7474

Email: [email protected]

Website: https://www.lotus-qa.com/

Mobile testing tutorial 1: Brief introduction

Mobile technology and smart devices are current trends and will change the future of the world. Millions of applications are downloaded daily from the Appstore or Google Play for personal devices. Mobile applications are various to meet the needs of education, health care or entertainment of users. In order to have quality products that meet the needs of real society, mobile testing is a matter of great concern. It’s a vital factor in the development process that brings to market the high-quality product.

generation-divided-on-mobile-mobile-testing

1. What is meant by mobile testing?

Mobile testing is a process by which mobile devices is tested for its functionality, usability and consistency,…..to ensure quality products

See more Testing services

2. What are types of mobile testing

There are two types of mobile testing: hardware testing and software testing or mobile application testing

2.1. Hardware testing: includes testing of the processor, screen size, resolution, memory, camera, radio, Bluetooth, WIFI, etc.

2.2. Software or Mobile Application Testing: also known as mobile application testing to distinguish it from the above method.

mobile-app-testing

3Differences in mobile testing compared to other types of testing:

3.1. The variety of mobile devices: 

Different device manufacturers such as HTC, SamSung, Apple, Nokia … with different screen sizes and hardware configurations

・Multi-platform (iOS 6,7,8, Android 4.2; 4.3; 4.4, BB 5; BB6 …)

・Mobile devices have different application runtime

3.2. Challenging hardware of the device

・Processing speed limit

・Device memory capacity limit

・WAP / HTTP device protocol differences

3.3. Challenges of network connection

・Different types of networks (GSM / GPRS / WIFI / 3G …)

・No predictable time for data transmission

・Difference in connection speed via physical

・Diverse network operators with different network features

3.4. Types of testing

In addition, mobile application testing also includes the following types of testing:

  1. UI Testing: Test UI, Menu style, consistency of user interface on different devices
  2. Function Testing: Functional testing of major mobile application functions according to the device’s specification
  3. Performance and Load Test: Test mobile app behavior in low resources (Memory/ Storage Space) and when multiple users access the mobile app site together
  4. Usability Testing: Checking the usability aspects of mobile applications
  5. Compatibility Testing: Testing the compatibility of your application with native device features to ensure that your application does not interfere with other applications in the device.
  6. Interrupt checking: Because mobile devices have much lower memory than desktops, make sure that when there are voice calls, SMS messages, charging plugs, low memory notifications while the app is running does not cause any conflict.

mobile-testing-solution

For more information about testing services, please refer to Testing services


Lotus Quality Assurance (LQA)

Tel: (+84) 24-6660-7474
Email: [email protected]
Website: https://www.lotus-qa.com/