Category: Software Testing

Top 5 Mobile Testing Trends in 2021

When B2C enterprises use mobile applications to attract consumers’ engagement in e-commerce, banking, and marketing; B2B firms use them to manage the company’s operations, tracking the performance of employees, and collaboration with partners. Come with the rising frequency of mobile application usage is the demand for increasing the application quality. If you want to update the latest movement in quality assurance for mobile applications, let’s look at our top 5 mobile testing trends below.

Test Automation

One of the characteristics of mobile applications is that the developers have to release the new version frequently to adapt to the demand of users. Due to this, numerous test cases need to run repeatedly. This is where test automation became an innovative solution. In the World Quality Report conducted by Capgemini, 57% of the companies said that test automation helps to reuse the test case. Meanwhile, 65% of them stated that the test cycle time is reduced.

mobile testing trends - automation test benefit

The greater return on investment in automation not only came from benefits in cost and efficiency but also came from achieving business objectives such as time-to-market. Moreover, it seems like this year CTO concerns more about transparency and security in testing. 69% of them responded that test automation helps them to have better control and transparency of test activities; 62% of respondents think test automation reduces the overall risk.

IoT Testing

The Internet of Things (IoT) allows us to control our assets such as smart home appliances, smart cars, or smartwatches by using a mobile application. Testers need to ensure the quality, security, connectivity, and performance of the application so the interaction between mobile apps and IoT devices is not interrupted. However, executing integration testing is not easy due to IoT devices often having a cloud-based interaction layer developed by a third party. Besides that, testers also concern about the enormous number of test cases needed to run because of the diversity of IoT devices. Testing on emulators, therefore, cannot fulfill the requirement of the QA team. As a result, testing in the cloud is becoming more popular.

Although facing many obstacles, firms are finding ways to adapt to the IoT trend. Many companies consider applying Artificial Intelligence capacity to test thoroughly and also conduct more IoT-experience testing.

Impact of 5G on Mobile Testing

Compared to the previous generation, 5G network has many innovative technologies, which greatly affect how testers conduct mobile testing. When it comes to 5G connectivity, three main technologies change the game: Enhanced mobile Broadband, Ultra-reliable Low Latency Communication, and Massive Machine Type Communication (mMCT)

5G provides greater bandwidth, which means faster data rate and better user experience. With this technology, the 5G network will allow 360-degree video streaming and VR / AR experience. Consequently, testing mobile applications in a high-speed internet office will not be efficient enough. Besides, the latency of data transfer is reduced. It allows faster information receiving within far distance, which has a huge impact on the performance of mobile applications. Meanwhile, mMCT supports connecting with a large number of IoT devices using less power; which leads to changes in battery testing for mobile devices.

Agile and DevOps Approach

Agile and DevOps has become a popular method in continuous testing. They combine the know-how and skill of both testers and developers to support each other with the ultimate goal of fastening the development and deployment of applications. Agile and DevOps approach helps enterprises to find and fix defects more efficiently and release new versions more frequently.

According to the World Quality Report, the Scale Agile Framework (SAFe) and the Dynamic Systems Development Method (DSDM) among Agile methodologies are the most favored by IT firms. From 2015 to 2017, SAFe increased from 31% to 58%; meanwhile, DSDM has grown by 31%. The same report also stated that over 88% of respondents applied DevOps principles in their IT team.

Testing Environment in Cloud

Mobile users reached 1.5 billion at the end of 2020. The mobile devices will have different OS versions, screen resolutions, and data storage. It causes obstacles in mobile testing since firms are not able to buy every kind of mobile phone. As a result, testers tend to use the cloud to test real devices.

Another reason for the increase in using cloud-based testing environments is the virtualization trend in recent years. This will push the demand for cloud and virtual testing tools higher and open more opportunities for firms to provide cloud-based testing services.

Blockchain Testing

Since the booming market of blockchain technology in the IT industry, many have predicted a new and exciting field of better security, higher authenticity and decentralized operations.

Since blockchain technology is rather an immature field of the IT industry, there is more to be explored with this. To ensure a system of decentralized, cost-effective and time-saving activities, blockchain engineers have to employ and adapt to cutting-edge technology and brand new concepts, making them more prone to mistakes.

Under this circumstance, blockchain testing is now an in-demand service that requires a thorough understanding of the blockchain architecture and full test strategy planning.

Blockchain testing should include:

  • Smart Contract testing
  • API Testing
  • Block Testing
  • Functional Testing
  • Performance Testing
  • Security Testing

Big Data testing

With the world’s economy stepping into the recovery phase after the pandemic, many enterprises are trying to revamp their performance with the adoption of big data in their operation and upcoming business plan.

The most prominent approach towards their customers is to collect and min huge data volumes and diverse data types to indicate user behaviors. From these analytical research and collection, one might categorize and analyze their behaviors to find the best matching solution to approach their customers.

To enhance the efficiency of big data in multiple fields with a bigger scope, you would want to implement big data testing, which can help to make improved decisions with accurate data validations. With big data testing facilitates the consistent application of how the datasets perform, market targeting and business manifestation are further streamlined to cope with the ever-changing market.

Cybersecurity Testing

Cybersecurity has always been at the top of the IT industry’s problem with billions of dollars stolen each year. In recent years, many companies have been applying an array of measures to assure cybersecurity within their system and products.

Especially with the fear of data breaches, cybersecurity is gaining its importance in business’ systems and becoming the foremost necessity.

This situation is common across many subdomains of the IT industry, leading to a growth in security testing of from USD 6.1 billion in 2020 to USD 16.9 billion by 2025, at a Compound Annual Growth Rate (CAGR) of 22.3% during the forecast period.

This growth of security testing has brought brighter prospects to the world’s cybersecurity. With the stronger and more effective security measures, cyberattacks, data breaches, malware, etc. will be reduced to their smallest. With this new implementation, digital transformation will be more successful than ever.

Machine Learning and Artificial Intelligence testing

Artificial Intelligence in general and Machine Learning in particular will be the omnipresent technology in the next few years.

As the need for virtual assistants, autonomous cars, etc. are more rival than ever, AI and ML will make a bigger step in the IT industry with top investment priority of CIOs in 2025. As predicted in 2020, the AI and ML market will grow to be about $6-7 billion in America. Technology for behavior prediction, speech recognition is beginning to be adopted and implemented in our daily lives, and it seems to be never enough.

The booming development of AI and ML demands better technology, bigger implementation and breakthrough advances, hence the need for a flawless operation of AI and ML. To achieve this, the most effective and viable solution is AI and ML testing. Since the AI and ML themselves are pretty new in the market, testing for them is quite challenging, yet exciting.

Scriptless automation testing

With Agile and DevOps are trending, requiring developers and testers “low-code” and “no-code” approach. With this approach, developers and testers spend less effort on programming and writing codes, making the software/delivery have a faster time to market.

Although automation testing is on the rise, many testers are struggling with the high-maintenance, script-based testing approach, not to mention the dragging training time. To make it easier and faster for testers to execute tests, many have followed scriptless automation testing.

Since it is scriptless, testers have to utilize multiple tools to acquire desirable test results.

All in all, the trends in 2021 made the QA team face many challenges. How to perform mobile testing with the right strategy remains a hard question. Knowing this constant problem, Lotus QA provides a free consultant for mobile application testing to help you enhance the quality of your product.

BlogBlogBlogBlogBlogBlogBlogBlogBlog

4 things every tester should know (2020 Video Series)

In this our new series, 4 things every tester should know, we will take you through the foundational knowledge of testing: Testing levels, Testing Types, Testing Processes and Principles of Testing.

We would like to contribute to the communities the take-away testing videos which are short but essential.

Hence, this series is named “Four Things Every Tester Should Know”, made for:

  • Junior testers who are building foundational knowledge in software quality assurance and testing
  • Senior testers who wants to revise their knowledge on testing
  • Business users who want to have a high-level view of the testing industry

You can watch our video series here, or read the transcription below. Turn on subtitles for English, Japanese, Korean and Vietnamese.

The series will include the following topics:

https://www.youtube.com/watch?v=1f9Ssis5SuE&list=PLI5JkQdCF-6ic2ceHiitDoIbYrZ1BYttG

Test levels

16 years ago, I came to know about some testing concepts and I think it’s very important.

Today, I want to share you one concept named “Testing Level”. So, let’s get started!

Have you ever heard about V-Model?

As you can see on our picture, there are 4 testing levels ordered from bottom to the top. Those are unit testing, integration testing, system testing, and acceptance testing.

Why do we need to distinguish those testing levels?

Because we can understand the specific objectives of each level you can integrate effectively using them to improve the qualities.

Following the timeline, we start with unit testing.

Unit testing, known as component testing,

is to verify the functional and non-functional behavior of the module in the system.

Normally the programmers do the Unit testing by isolating their module from the rest of the system.

They can do it manually or automatically by using a tool named Junit or Nunit.

The developer will base on detailed design to take the code,

data structure or the database in order to find out

if there are any data flow problems or any incorrect codes.

After finishing unit testing, we go to “Integration testing”

Integration testing is to verify the functional and non-functional interfaces

between components or systems of integration.

So, there are two types of integration.

First one is that component integration testing will be done by the programmer.

And system integration testing might be done by the independent testing team.

So, depending on each type, the input and the output,

and the system under test (SUT) might be differed.

But the objective seems to be same.

We focus on the integration between the component or the system.

The next step is system testing.

System testing focuses on the behavior and the capabilities

of a whole system or whole product as the end-to-end usage.

Independent testing team typically carry out system testing

and they will set up the test environment that is very similar to the production one.

They will produce the testing report which can be used

by stakeholders in order to make release decisions.

The typical defects could be missing the requirements or any incorrect functionalities of the system.

The last level is acceptance testing.

Acceptance testing is similar to the system testing

which will focus on the behavior and also the capabilities

of the whole system or the whole product.

But, it’s different from the system test.

It may produce information to assess

the system’s readiness for deployment and usage by the end-user.

Finding the bug is not the objective of acceptance test

because it will be too late if you find defects at this step.

The acceptance testing is the responsibility of

the customers, business user, product owner and also the operator of the system.

Normally, there are four common forms of the acceptance testing

including the user acceptance testing, the operational acceptance testing,

contractual and regulatory acceptance testing,

and the last one is the alpha and beta testing.

So, those are four important testing levels.

At the beginning of the project,

all stakeholders, including the product owner, the project manager and

also the quality assurance manager should sit together and

plan how to handle those four levels in the projects.

To ensure that, the product and software will meet the business needs and also the user requirement.

Otherwise, the product or the system will be NOT fit to use.

So if you want to see more videos, please subscribe to us.

Also, hit on the bell to receive the notification.

Thank you for watching and see you soon!

Testing types

A testing types are groups of test activities which are based on specific testing objectives. We could have different aspects to distinguish the different testing types.

For example, following the Quality Characteristic aspect , we could have Functional testing and Non-functional testing. Following the testing method, we could have Whitebox, Greybox, Blackbox testing or Manual/automated testing. Following the testing environment, we could have the alpha, beta and staging testing and so on.

In this video, let’s distinguish just based on the quality characteristic aspect.

So, what is Software Quality Characteristics? Testers need to verify if the software has good quality or not, hence it is necessary to understand how to define the quality.

ISO/IEC 25010 is an international standard which is issued by ISO(international standard organization) for the evaluation of software quality. It defines 8 main (quality) characteristics, namely: Functionality, Performance, Security, and also Compatibility, Reliability, Usability,Maintainability, Portability.

In this video, we will just explain some popular types.

Functional testing & Non-functional testing

First of all, Functional testing. It is a testing type which focused on the completeness, correctness and appropriateness of the software systems.

It can be done manually or automatically supported by many commercial and open source tools.

Meanwhile, Non-functional testing will focus on the “how well” of the system behaves.

Performance testing

The second one is Performance. Performance testing is the process of determining the speed, responsiveness and also the stability of the software prograM, a computer, network, or device under the specific workload.
There are two main performance testing methods: load testing and stress testing.

  • Load testing will help you to understand the behavior of a system under a specific load value.
  • Stress testing will place a system under the higher-than-expected traffic loads to evaluate ‘how well’ of the system works above its expected capacity limits.

Security testing

And the next testing type is Security testing.

Security testing is to check if the software or the product is secured or not. It checks if the system is vulnerable to attacks or if someone can hack the system or login into the application without the authorization.

Some sources claim that security testing is a functional testing. Because it can be compliant with the old version ‘ ISO 9126’. But following the latest ‘ ISO 25010’ , security testing is a non-functional testing type and it is one of the quality characteristics separately.

Compatibility testing

And the last one I want to introduce today is about Compatibility Testing.

Compatibility Testing is a testing type to check if our software is capable in the different testing environments such as hardware, operating systems, applications, network, mobile or different versions of the software.

Because the compatibility testing will be repeated on the different environment, so it is highly recommended to be automated testing.

From my experience, Testing type is a significant knowledge that every tester should know in order to test correctly. When you are consulting clients and also proposing the quality assurance solution, test experts also should define the important quality characteristics for that specific system and also point out the relevant testing types.

So, that is a take away video about the testing types. It’s quite short but hopefully, it’s helpful.

Testing processes

Continuing from the previous video about testing level and testing type, today I would like to introduce you another topic about testing process. Why do you need to know about the testing process? Because you will know what you need to do at each step and how to integrate testing into the development process. As you see in our picture, there are 5 steps when you do testing.

Test Planing and Test Control

Test planning is process to output the smart testing way. I often draw out an IMOC into one paper, and then document it later.

  • I – the input means Test basic including the software specification, test requirement, software, etc. I plan How and When I can receive input.
  • M – M is test Mechanism or how I will do the testing. I should think about the test strategy, schedule, and needed resources in order to do testing. 
  • O – Output of testing. Output is a test deliverable. For example, the test result, the test log, and bug report. I will plan of who I need to send the report to, and in which kind of format.
  • C – Test constraint. One important test constraint is exit criteria. It is when I can stop testing.

Test control is the process to compare the actual progress and actual reason with the plan at the beginning. You also need to plan how you can control your progress, and how you can control the quality. 

Test Analysis and Test Design

Test Analyzing is the process to analyze all of the test basics such as the test specification, requirement specification, and all additional documentation in order to define the test conditions. Test conditions could be a piece of functionality or anything you want to verify. 

Test Designing is the step to break down the test condition into different test scenarios and cases. It is very important to use different test technique to cover all the possibilities of the test cases.

Test Implementation and Test Execution

In this step, the testers will combine the different test scenarios or test cases into the test procedures following business flows or into the test suite following the purposes of testing. Testers will prepare the test environment and make the automation script if it needs.  After they get ready, the tester will execute the test cases, test suites, test procedures that they made before and log into the testing results. If they find bugs or any incidents, they will report it. 

Evaluation and Reporting

At this step, we will evaluate whether the test implementation is satisfied with the test purpose by comparing test results with the exit criteria at the planning stage. We judge if we need additional testing or not and send reports to all stakeholders.

Test Closure

All of the Test closure activities are done when software is delivered. Tester will check all the deliverable, and archive test ware. Then, they can do any handover or needed training to the maintenance team (organization). And then, they evaluate how the testing went and learn the lessons for future projects.

Those are five steps of the testing process. If you have any suggestion, please comment below. Thank you for watching, and see you soon.

Principles of Testing

Continuing the series  “Four things every tester needs to know about testing”, today will be the last topic named “7 Principles of testing”. We hope that the series of the video will be helpful for testers, especially freshers. Also through this series of the video, the experienced testers can be reminded about the basic but important knowledge. So, let’s get started! 

Testing can only prove that the software has error

Through the testing, we can find the bug and prove that the software has error. But we can not prove that the software has absolutely no error at all. Even in the absence of errors, we cannot claim that our software has no errors in the future.

Testing the entire pattern is impossible

Testing the entire pattern (combining all conditions of testing entry) is not possible, except for some extremely simple software. Instead of testing the whole system, testers will point out some risky modules to focus on. There are some testing techniques to support us to do that.

Testing should be involved as soon as possible

Testers should be involved in the project as soon as possible to find out the bug early. So, the correction cost will be reduced. Earlier testing, cheaper correction cost.

Defect Clustering – uneven distribution of errors

Most of the errors will be concentrated in some certain modules. It is like the 80-20 principle. So, the smart tester will spend time to analyze the most risky area to focus on.

The pesticides

Have you ever heard about it? The test cases are very similar to pesticides, and can not be used repetitively to eradicate insects during farming. It will over time lead to the insects developing resistance to the pesticide.
If you perform the test case multiple times, it will fail to find the errors. So, it is necessary to review and improve test cases frequently.

Testing depends on context

For different contexts, there will be different testing methods. For example, testing for the banking system will be differed from testing for the sales website; such as different quality characteristics, different testing types and different testing approaches.

“Bug zero” pitfalls

Please do not focus on creating the system without errors, but forget the initial requirements from customers and users. Software testing is not mere finding defects, but it also addresses if the software is fit with the requirement or not.

Those are 7  principles of testing. Please comment if you have any questions. Thank you very much for watching. Have a nice day.

If you like this series, you might also want to take a look at our series on Mobile testing and visit our Youtube channel.

Interested in our Testing Services?

Book a meeting with us now!

Mobile App

Mobile Application Testing Tools: Choosing the right solution

Smartphone applications are now capable of acting as sources of entertainment (gaming, music, movies), social media updates and even personal management tool. This means mobile apps are expected to perform much more complicated tasks; leading to focus on several areas in mobile application testing. With this trend, mobile application testing tools are also getting more and more diverse in scope.

Therefore, it is crucial to understand the strengths and weaknesses of each of these tools in order to choose the suitable one for specific tasks.

 

Appium

Mobile application testing tools | Appium

 

 

 

 

 

 

Appium is an open source testing tool for assessing Android and iOS applications. Developers can test mobile applications, web mobile, and hybrid applications by using this software.

To run the test, Appium uses the WebDriver interface which supports C#, Java, Ruby and many other languages that belong to the WebDriver library. The tester is also able to check initial applications written with the Android and iOS SDKs, mobile web apps, and hybrid apps that contain web views. As a cross-platform tool, it allows developers to reuse the source code between Android and iOS.

 

Robotium

Mobile application testing tools | Robotium

 

 

 

 

 

 

Robotium is an open source tool that allows testing Android applications of all versions; it supports the testing of native and hybrid applications. It uses JavaScript to prepare and execute test scripts. Therefore, Robotium is really popular in the case of automated black box testing for Android applications.

Moreover, it automates many of Android’s operations and creates solid test cases in a minimum of time.

 

Special Features

Multiple Android activities can be handled in parallel.

Robotium can create powerful test scripts in minimal time, without having a deep knowledge of the project.

You can even run test cases on pre-installed applications.

 

Espresso

Mobile application testing tools | Espresso

 

 

 

 

 

 

Espresso is one of the most popular mobile testing frameworks. Created by Google and integrated with Android Studio, this mobile application testing tool is familiar with anyone who develops native Android applications. Like TestComplete, this framework has several options for test script generation, but with Espresso, you can create Android UI tests only.

 

Special Features

A platform-specific solution

Supports all Android instrumentation

Supports manual creation of tests using Kotlin and Java

Has a simple and flexible API

Espresso UI tests can be executed on emulators as well as real devices

 

MonkeyTalk

Mobile application testing tools | MonkeyTalk

 

 

 

 

 

 

Next, MonkeyTalk automatically tests the functionality of Android and iOS applications.

Even non-technical people can run tests on this application because it requires no in-depth knowledge of programming and scripting. The scripts of MonkeyTalk are easy to understand, therefore, tester can also generate XML and HTML reports. Besides, it takes screenshots when the failure occurs. In addition, MonkeyTalk supports emulators, network devices and tethered.

 

EarlGrey

Mobile application testing tools | Earl Grey

 

 

 

 

 

 

EarlGrey is a native iOS UI automation test framework that enables developers to write clear and concise tests, developed and maintained by Google.

With this framework, testers have access to advanced synchronization features. For example, EarlGrey automatically synchronizes with the UI, network requests, and various queues; while still allows the developer to manually implement customized timings.

 

Special Features

Synchronization: From run to run, EarlGrey 2.0 ensures that you will get the same result in your tests, by making sure that the application is idle. These tasks are executed by automatically tracking UI changes, network requests, and various queues. In addition, EarlGrey 2.0 also allows you to manually implement custom timings.

White-box: EarlGrey 2.0 allows you to query the application under test from your tests.

 

Conclusion

Test automation is a complex process, and its adoption requires all the team members to put in a great deal of effort and time. The success of automated tests, however, mainly depend on the mobile testing tools you choose.

While looking for the right tool or framework for writing test scripts, pay attention to its features. Be sure to pick a reliable solution that allows different options for test creation, supports multiple scripting languages and mobile platforms.

Testing types | 4 things every tester should know (Part 2/4)

This is the second video of the series Four things every tester should know about testing. Xuan will talk about Testing types and categorize them by Software Quality Characteristics.

You can watch the previous video of the series on Test Levels to get a an bigger picture of the topic.

You can watch our video here, or read the transcription below. Turn on subtitles for English, Japanese, Korean and Vietnamese.

https://youtu.be/Oazr-CNIgpk

Hello, everyone. Welcome back to our LotusQA channel.

On recent days, corona virus is spreading in many countries and it’s impacting a lot in our lives. So, I hope you are safe, and let’s stay positive. And take the advantage of this time to improve our skill and knowledge.

It’s the series Four things every tester needs to know about testing. In the previous video, I introduced about ‘Testing Levels’. And now, I want to introduce about another information about ‘Testing Types’.

Let’s begin.

A testing types are groups of test activities which are based on specific testing objectives. We could have different aspects to distinguish the different testing types.

For example, following the Quality Characteristic aspect , we could have Functional testing and Non-functional testing. Following the testing method, we could have Whitebox, Greybox, Blackbox testing or Manual/automated testing. Following the testing environment, we could have the alpha, beta and staging testing and so on.

In this video, let’s distinguish just based on the quality characteristic aspect.

So, what is Software Quality Characteristics? Testers need to verify if the software has good quality or not, hence it is necessary to understand how to define the quality.

ISO/IEC 25010 is an international standard which is issued by ISO(international standard organization) for the evaluation of software quality. It defines 8 main (quality) characteristics, namely: Functionality, Performance, Security, and also Compatibility, Reliability, Usability,Maintainability, Portability.

In this video, we will just explain some popular types.

Functional testing & Non-functional testing

First of all, Functional testing. It is a testing type which focused on the completeness, correctness and appropriateness of the software systems.

It can be done manually or automatically supported by many commercial and open source tools.

Meanwhile, Non-functional testing will focus on the “how well” of the system behaves.

Performance testing

The second one is Performance. Performance testing is the process of determining the speed, responsiveness and also the stability of the software prograM, a computer, network, or device under the specific workload.
There are two main performance testing methods: load testing and stress testing.

  • Load testing will help you to understand the behavior of a system under a specific load value.
  • Stress testing will place a system under the higher-than-expected traffic loads to evaluate ‘how well’ of the system works above its expected capacity limits.

Security testing

And the next testing type is Security testing.

Security testing is to check if the software or the product is secured or not. It checks if the system is vulnerable to attacks or if someone can hack the system or login into the application without the authorization.

Some sources claim that security testing is a functional testing. Because it can be compliant with the old version ‘ ISO 9126’. But following the latest ‘ ISO 25010’ , security testing is a non-functional testing type and it is one of the quality characteristics separately.

Compatibility testing

And the last one I want to introduce today is about Compatibility Testing.

Compatibility Testing is a testing type to check if our software is capable in the different testing environments such as hardware, operating systems, applications, network, mobile or different versions of the software.

Because the compatibility testing will be repeated on the different environment, so it is highly recommended to be automated testing.

From my experience, Testing type is a significant knowledge that every tester should know in order to test correctly. When you are consulting clients and also proposing the quality assurance solution, test experts also should define the important quality characteristics for that specific system and also point out the relevant testing types.

So, that is a take away video about the testing types. It’s quite short but hopefully, it’s helpful.

Thank you for watching and see you in the next video. Don’t forget to share and subscribe to our LotusQA channel.

Interested in our Testing service?

Book a meeting with us now!

Automated TestingAutomated TestingAutomated TestingAutomated TestingAutomated TestingAutomated TestingAutomated TestingEmbedded Testing

The psychology of testing

The psychology of testing

The following factors influence the success of testing. All of the testers should keep these in mind before they start to do testing.

 

Comparison of the mindset of the tester and developer

The testing and reviewing of the applications are different from the analyzing and developing of it. By this we mean to say that if we are building or developing applications we are working positively to solve the problems during the development process and to make the product according to the user specification. However while testing or reviewing a product we are looking for the defects or failures in the product. Thus building the software requires a different mindset from testing the software.

 

The balance between self-testing and independent testing

The comparison made on the mindset of the tester and the developer in the above article is just to compare the two different perspectives It does not mean that the tester cannot be the programmer, or that the programmer cannot be the tester, although they often are separate roles. In fact programmers are the testers, they always test their component which they built. While testing their own code they find many problems so the programmers, architect and the developers always test their own code before giving it to anyone. However we all know that it is difficult to find our own mistakes.

So, programmers, architects, business analysts depend on others to help test their work. This other person might be some other developer from the same team or the Testing specialists or professional testers. Giving applications to the testing specialists or professional testers allows an independent test of the system. This degree of independence avoids author bias and is often more effective at finding defects and failures.

There is several level of independence in software testing which is listed here from the lowest level of independence to the highest:

  1. Tests by the person who wrote the item.
  2. Tests by another person within the same team, like another programmer.
  3. Tests by the person from some different group such as an independent test team.
  4. Tests by a person from a different organization or company, such as outsourced testing or certification by an external body.

 

Clear and courteous communication and feedback on defects between tester and  developer

We all make mistakes and we sometimes get annoyed and upset or depressed when someone points them out. So, when as testers we run a test which is a good test from our viewpoint because we found the defects and failures in the software. At the same time we need to be very careful as to how we react or report the defects and failures to the programmers. We are pleased because we found a good bug but how will the requirement analyst, the designer, developer, project manager and customer react.

  1. The people who build the application may react defensively and take this reported defect as personal criticism.
  2. The project manager may be annoyed with everyone for holding up the project.
  3. The customer may lose confidence in the product because he can see defects.

 

Embedded TestingEmbedded TestingEmbedded TestingEmbedded TestingEmbedded TestingEmbedded TestingEmbedded Testing

Test design techniques

1. What are the 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.
  • Exhaustive testing is not possible, so Manual Testing Techniques helps to reduce the number of test cases while ensuring the quality of the test, helping to identify test ranges and conditions that are difficult to identify.

2. Types of Test design techniques

There are many types of Test design techniques, but there are two main types:

2.1. Static testing technique

Static testing is a type of testing technique that does not execute source code or do not run software systems, such as checking, reviewing specification documents, design documents, source code to find errors.

It is done early in the software development life cycle and so it is done in the verification process.

Most static testing techniques can be used to test any form of documentation including source code, design and model documentation, functional specifications, and required specifications.

Static testing technique usually includes the following methods:

  • Informal review: an evaluation process that does not require an archive of the meeting, nor does it need to be recorded.
  • Walkthroughs: This is a type of instruction, explained by the person who is familiar with the software logic, in order to transfer knowledge to the participants in the test cycle.
  • Technical review: This method focuses on the technical evaluation of the software. Usually led by a moderator or someone with technical knowledge with technical experts involved. This is a discussion focused on reaching consensus on technical content to make a decision
  • Inspection: This method is also operated by moderators. Its purpose is to clearly define the role of each person in the process as well as the input and output criteria of the software. Thereby finding errors as well as aggregating and analyzing to optimize processes.

2.2. Dynamic testing technique

Dynamic testing technique is a type of testing to confirm the function of the application when the code is executed / by executing the code. In short, dynamic testing is performed by actually using the application and seeing if a function works the way it is expected.

Dynamic testing includes 2 types:

+ Whitebox testing: Consider how the code works inside. For this type of test, testers need an understanding of the code.

+ Blackbox testing: Check that the function of the software application is working as expected. Blackbox testing 2 types:

  • Functional testing
  • Non-Functional testing

Test design techniques

In the next articles, we will mention types of test design techniques in detail. 

Read  Black box test design technique and White box test design technique.

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

Automated TestingBlogManual TestingManual TestingManual TestingManual TestingManual TestingManual TestingManual 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

Software TestingSoftware TestingSoftware TestingSoftware TestingSoftware TestingSoftware TestingSoftware TestingSoftware TestingSoftware TestingSoftware 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/

Manual 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/

Mobile App

How to choose appropriate mobile devices for testing-Mobile testing tutorial

It is clear that the mobile application or mobile devices is very different from the desktop one. So, we should take this feature into the testing process.

Devices feature

mobile-devices

  1. Various mobile devices with different screen sizes and hardware configurations such as hard keyboard, virtual keyboard (touch screen) …
  2. Many mobile device manufacturers such as HTC, Samsung, Apple,…
  3. Various mobile operating systems such as Android, Symbian, Windows, IOS…
  4. Different versions of operating systems like iOS 5.x, iOS 6.x, BB5.x, BB6.x etc.
  5. Regular updates of the version – (such as android- 4.2, 4.3, 4.4, iOS 5.x, 6.x) – with each update need to ensure that no application functionality is affected .
  6. Mobile devices have smaller phone screen sizes than desktops.
  7. Devices have less memory than desktop computers.
  8. Mobile devices typically use a 2G, 3G, 4G or WIFI network connection, while desktop computers often use broadband or dial-up connections.
  9. Automated testing tools may not work on mobile applications

Devices limit

mobile-devices-data-limit

  1. CPU processor limit of devices
  2. Limited RAM
  3. Depends on the source
  4. Limited battery life
  5. And importantly, now in companies the equipment for testing is very scarce.

How to choose mobile devices

mobile-devices-selection

Compared to emulators or simulators, real devices are always the best choice for testing mobile applications. But it is not easy to choose appropriate devices. Here are some suggestions for mobile devices selection

・Perform an analysis to identify the most popular and used utilities in the market. Besides, if you must test on various devices, hiring devices from mobile stores is also an economical option.

・Choose devices with different screen resolutions, different operating systems,…

・Check other factors such as compatibility, memory size, connectivity,…..

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/