Category: Software Testing

Must known key points before testing mobile applications-Mobile testing tutorial

Before starting testing mobile applications, Tester needs to know a few things to be able to test better:

1. Analyze similar mobile applications

testing-mobile-applications

Try analyzing some other applications similar to yours. For example, if you have to test a file-sharing application on a mobile phone, look for some other similar applications and observe its features.

2. Keep the emulators ready

testing-mobile-applications-emulator

Sometimes it takes a lot of time to borrow or require mobile devices for testing. In this case, to take advantage of the time you might want to test a few cases on the emulator.

You can refer to http://responsivepx.com/ and http://quirktools.com/ to check how your website looks on the desktop and on various types of mobile devices.

3. Analysis of device-related issues

Once the target device has been identified, explore the issues related to that device. This will help you understand what you are and will encounter with a device or application.

4. Use an emulator but don’t fully trust it

You may need the emulators during testing, but keep in mind that you cannot perform 100% test cases on emulators. In addition, the response time in the emulator is very different from the actual device, so you may overlook some errors and these are the weaknesses of real devices.

5. Determine performance criteria

For any mobile application, performance is the biggest concern. Make sure you have performance parameters or requirements that you can rely on during testing. Memory is also one of the weaknesses of mobile devices, and application behavior depends on these conditions

Those are some information we find useful before testing mobile devices.

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 TestingEmbedded TestingManual TestingSoftware TestingSoftware TestingSoftware TestingSoftware TestingSoftware 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/

Manual TestingManual 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 AppMobile App

Mobile application testing-Mobile testing tutorial 2

Mobile application testing is 1 type of mobile testing. For more information, refer Mobile testing in series of Mobile testing tutorial

1. Mobile application categories

For mobile applications, it can be classified into three categories:

・Type 1: Native apps – apps written specifically for a platform like iOS, Android, or Windows Phone in their respective languages.

・Type 2: Web application (Web App) – web-based application, mobile device users will use different browsers such as Chrome, Firefox, Safari to access the web server to use, such as m.facebook.com.

・Type 3: Hybrid App – a combination of native application and web application, can be run both offline and online and often uses web-making techniques such as HTML5, CSS.

mobile-venn-mobile-testing

In view of this

・ Native applications can only run on a certain operating system while mobile web applications can run on all mobile browsers that support HTML and Javascript.

・The native application is written in platforms like the SDK while the mobile web application is written with web technologies like HTML, CSS, ASP.NET, JAVA, and PHP.

・ For a native application, it is necessary to install but with mobile web applications, there is no need to install.

・ The original application can be updated from the app store while the mobile web application is updated centrally.

・ The original application may work without an Internet connection, but for mobile web applications, an Internet connection is always required.

・ Native apps work faster when compared to mobile web apps.

2. Some special test cases for testing mobile applications:

・Battery consumption: It is important to track the battery drain when running applications on mobile devices.

・Application running speed: Track time response time on different devices with different memory capacities, different network speeds …

・Memory requirement: When downloading and installing an app, running the app ..

・Application’s function checking: To ensure the application does not crash when losing network connectivity or other external impacts.

3. Some automated testing tools for mobile applications

3.1. IOS has popular automatic testing tools like:

app-testing-tool-fonemonkey

FoneMonkey application testing tool

app-testing-tool-frank

Frank application testing tool

app-testing-tool-qtp

QTP application testing tool

3.2. Android operating system has some automated testing tools such as:

Robotium application testing tool

app-testing-tool-eggplant

Eggplant application testing tool (No free source)

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/

Automated TestingBlogBlogBlogBlogEmbedded Testing

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/