The document discusses software localization quality assurance from the tester's perspective. It provides an overview of the localization process, including internationalization, translation, testing, and bug reporting. It then focuses on the testing process, describing the types of issues tested for (linguistic, layout/formatting, functionality), giving examples, and providing tips for testers. The key points are that testers aim to break the software to find bugs, document issues thoroughly, and work in cycles of testing and retesting updated software builds.
Qualidade de Software em zOS usando IBM Debug Tool e RDzPaulo Batuta
Eu e meu Amigo Claudio fizemos esta apresentação sobre qualidade de software usando IBM Debug Tool e Rdz.Ela foi submetida e aprovada no 2013 World Congress in Computer Science em Las Vegas. O Claúdio foi lá apresentá-la. Foi na Terça passada!
Slides of a talk given at the American Translators Association's 55th conference.
Abstract:
The presentation will give a very brief overview over the localization process for software and mobile apps before covering the quality assurance process in detail. The talk will not only discuss the fundamentals of the testing process, but will also help you become a better tester by presenting some tips, tricks, best practices, and pitfalls. The presentation is intended for beginning and intermediate localization testers and discusses the testing process from the tester's perspective. The talk will not cover other steps in the localization process such as file preparation, translation, etc., which have been covered at past ATA conferences.L10n
Localization testing means checking quality of a product's localization targeted for a specific culture or locale. Depending on globalization testing results, this test verifies the functional support given to that specific locale or culture.
The document discusses software testing concepts and processes. It covers definitions of testing, objectives of testing, types of defects and their costs. It also describes the typical software testing process which includes test planning, preparation, execution, reporting and defect tracking. Additionally, it discusses test strategies such as unit testing, integration testing, system testing and acceptance testing. The overall purpose is to provide an introduction and overview of basic software testing concepts.
Coding and testing in Software EngineeringAbhay Vijay
The document discusses various aspects of software engineering coding practices. It describes the coding phase where design is transformed into code and tested. It emphasizes the importance of coding standards and guidelines to ensure uniform and understandable code. It also discusses code review, documentation, testing approaches like black box and white box testing, and the objectives of testing.
IRJET- Research Study on Testing Mantle in SDLCIRJET Journal
This document discusses the role and importance of testing in the software development life cycle (SDLC). It describes the typical phases of the SDLC, including requirement gathering, design, coding, testing, deployment, and maintenance. Testing is involved throughout the SDLC to improve quality, reliability, and performance. The key roles of testing include finding bugs, improving product standards, demonstrating feasibility, and avoiding faults migrating between phases. Testing helps deliver high quality software that meets requirements and manages risks.
The document discusses various types of software testing concepts including manual vs automated testing, test beds, test data, positive and negative test cases, defect priority and severity levels, test plans, security and recovery testing, and more. It provides definitions and explanations of these key testing concepts.
The document discusses testing concepts such as code with tests vs without tests, test-oriented development, and different types of testing including unit testing, integration testing, and acceptance testing. It provides examples of test-driven development (TDD) and behavior-driven development (BDD) processes. The document also discusses tips for testing, including only testing what is necessary and identifying the appropriate types of testing for an application. Frameworks and tools for test automation and continuous integration are also mentioned.
Qualidade de Software em zOS usando IBM Debug Tool e RDzPaulo Batuta
Eu e meu Amigo Claudio fizemos esta apresentação sobre qualidade de software usando IBM Debug Tool e Rdz.Ela foi submetida e aprovada no 2013 World Congress in Computer Science em Las Vegas. O Claúdio foi lá apresentá-la. Foi na Terça passada!
Slides of a talk given at the American Translators Association's 55th conference.
Abstract:
The presentation will give a very brief overview over the localization process for software and mobile apps before covering the quality assurance process in detail. The talk will not only discuss the fundamentals of the testing process, but will also help you become a better tester by presenting some tips, tricks, best practices, and pitfalls. The presentation is intended for beginning and intermediate localization testers and discusses the testing process from the tester's perspective. The talk will not cover other steps in the localization process such as file preparation, translation, etc., which have been covered at past ATA conferences.L10n
Localization testing means checking quality of a product's localization targeted for a specific culture or locale. Depending on globalization testing results, this test verifies the functional support given to that specific locale or culture.
The document discusses software testing concepts and processes. It covers definitions of testing, objectives of testing, types of defects and their costs. It also describes the typical software testing process which includes test planning, preparation, execution, reporting and defect tracking. Additionally, it discusses test strategies such as unit testing, integration testing, system testing and acceptance testing. The overall purpose is to provide an introduction and overview of basic software testing concepts.
Coding and testing in Software EngineeringAbhay Vijay
The document discusses various aspects of software engineering coding practices. It describes the coding phase where design is transformed into code and tested. It emphasizes the importance of coding standards and guidelines to ensure uniform and understandable code. It also discusses code review, documentation, testing approaches like black box and white box testing, and the objectives of testing.
IRJET- Research Study on Testing Mantle in SDLCIRJET Journal
This document discusses the role and importance of testing in the software development life cycle (SDLC). It describes the typical phases of the SDLC, including requirement gathering, design, coding, testing, deployment, and maintenance. Testing is involved throughout the SDLC to improve quality, reliability, and performance. The key roles of testing include finding bugs, improving product standards, demonstrating feasibility, and avoiding faults migrating between phases. Testing helps deliver high quality software that meets requirements and manages risks.
The document discusses various types of software testing concepts including manual vs automated testing, test beds, test data, positive and negative test cases, defect priority and severity levels, test plans, security and recovery testing, and more. It provides definitions and explanations of these key testing concepts.
The document discusses testing concepts such as code with tests vs without tests, test-oriented development, and different types of testing including unit testing, integration testing, and acceptance testing. It provides examples of test-driven development (TDD) and behavior-driven development (BDD) processes. The document also discusses tips for testing, including only testing what is necessary and identifying the appropriate types of testing for an application. Frameworks and tools for test automation and continuous integration are also mentioned.
DURGASOFT is INDIA's No.1 Software Training Center offers online training on various technologies like JAVA, .NET, ANDROID,HADOOP,TESTING TOOLS , ADF, INFORMATICA,TALLEAU,IOS,OBIEE,ANJULAR JA, SAP...courses from Hyderabad & Bangalore - India with Real Time Experts.
This document provides an overview of software testing concepts, including:
- Definitions of software testing and related terms
- The software testing process, including test planning, preparation, execution, reporting, and analysis
- Types of testing such as unit, integration, system, and acceptance testing
- Tester competencies including both soft skills and technical testing skills
- Common testing documents and resources used
Software development has shifted focus from efficiency to productivity, reusability, and user-friendliness. Object-oriented programming (OOP) models objects that contain data and methods. Key OOP concepts include inheritance, where subclasses extend and modify superclass features. An integrated development environment (IDE) combines tools like editors, compilers, linkers, and debuggers. Java uses a hybrid approach of compiling to bytecode, then interpreting for platform independence. Console applications use text input/output. Graphical user interface (GUI) applications use menus and buttons. Applets run in web browsers.
Manual testing involves manually testing software by playing the role of an end user and using test cases to ensure correct behavior. It is important early in development when automation is not possible and for testing visual elements. A test plan is a document that outlines test objectives, workflows and processes while a test case specifies conditions to determine if a feature works as intended. Both exploratory and black/white box testing have pros and cons for finding bugs. Bugzilla is a bug tracking system that helps developers manage issues.
1. Acceptance testing is conducted by users/customers to determine if a software product meets agreed criteria.
2. Accessibility testing verifies a product is accessible to people with disabilities.
3. Automated testing uses software tools to execute tests without manual intervention and compare outcomes to predictions.
TOPS Technologies offer Professional Software Testing Training in Ahmedabad.
Ahmedabad Office (C G Road)
903 Samedh Complex,
Next to Associated Petrol Pump,
CG Road,
Ahmedabad 380009.
http://www.tops-int.com/live-project-training-software-testing.html
Most experienced IT Training Institute in Ahmedabad known for providing software testing course as per Industry Standards and Requirement.
Manual testing is the process of manually testing software for defects. It requires a tester to play the role of an end user whereby they use most of the application's features to ensure correct behavior.
The document discusses software testing concepts like the software development life cycle, testing objectives, principles, types, and techniques. It covers topics such as test planning, test case design, test execution, defect management, test reporting and test tools. The key aspects covered include the testing life cycle, test case components, black box testing techniques like equivalence partitioning and boundary value analysis, attributes of test logs and reports. It also includes sample questions to assess understanding of software testing fundamentals.
The document provides an overview of software testing techniques and strategies. It discusses unit testing, integration testing, validation testing, system testing, and debugging. The key points covered include:
- Unit testing involves testing individual software modules or components in isolation from the rest of the system. This includes testing module interfaces, data structures, boundary conditions, and error handling paths.
- Integration testing combines software components into clusters or builds to test their interactions before full system integration. Approaches include top-down and bottom-up integration.
- Validation testing verifies that the software meets the intended requirements and customer expectations defined in validation criteria.
- System testing evaluates the fully integrated software system, including recovery, security, stress,
Software engineering provides a standard process to design and develop software using the software development life cycle (SDLC). The SDLC includes requirements analysis, design, implementation, testing, deployment, and maintenance. Common SDLC models include waterfall, iterative, spiral, V-model, and prototyping. Software must be thoroughly tested at various levels including unit, integration, system, and acceptance testing to ensure quality.
This document discusses software testing principles and concepts. It defines key terms like validation, verification, defects, failures, and metrics. It outlines 11 testing principles like testing being a creative task and test results needing meticulous inspection. The roles of testers are discussed in collaborating with other teams. Defect classes are defined at different stages and types of defects are provided. Quality factors, process maturity models, and defect prevention strategies are also summarized.
This document outlines the content of a training course on software testing lifecycles. The targeted audience is new testers and those with experience in ad-hoc testing who want to learn formal processes. The course content includes defining software testing, the role of testers, testing in the SDLC, test planning, design, execution, the V-model, bug lifecycles, documentation, and checklists. It provides details on each topic through explanations, diagrams and examples of templates.
Software Testing accounts a very good percentage of the software development market worldwide. With the boom of the third party software testing business, the need for quality and trained manpower has become a critical issue in the industry. Get quality training from us. Visit us at TOPS Technologies http://www.tops-int.com
This document discusses software engineering and software testing. Software engineering is concerned with developing large software through applying engineering principles. The challenge is to produce high quality software within budget and schedule constraints. Software testing is the process of finding errors in software and involves both manual and automated testing. Different types of testing include unit, integration, system, and acceptance testing. The goal of testing is to uncover defects early and reduce costs.
The document provides information on various testing concepts:
1. It differentiates between QA and QC, describing QA as process-oriented and prevention-focused, while QC is product-oriented and detection-focused.
2. A bug is defined as an error in a computer program that prevents correct functioning or results.
3. A test case is a set of inputs, execution conditions, expected results, and postconditions developed to exercise a program path or verify a requirement.
4. The purpose of a test plan is to outline the testing strategy, scope, responsibilities, and schedule to guide testing for a project.
The document discusses different types of software review techniques, including informal reviews, formal technical reviews, and sample-driven reviews. It provides details on the goals, participants, and processes involved in formal technical reviews like walkthroughs and inspections. Metrics for evaluating the effectiveness of reviews are also presented, such as defects found per hour of preparation or inspection time. Overall, the document provides an overview of best practices and considerations for conducting effective software reviews.
Software testing tools (free and open source)Wael Mansour
This document discusses various tools used for test automation including Cobertura, Selenium, JMeter, Bugzilla, and Testia Tarantula. Cobertura is a code coverage tool that calculates test coverage percentages. Selenium is described as a tool for automating web application testing across browsers. JMeter is introduced as a load testing tool focused on analyzing performance of web applications. Bugzilla and Tarantula are mentioned as tools for bug tracking and project/test management respectively in agile software development. The document also discusses integrating these various tools together for a complete test automation framework.
Testing involves finding errors in a program. The goal is to assume a program contains errors and test to find as many as possible. Different testing techniques include white box testing by developers and black box testing by testers. Testing levels include unit, integration, system, and user acceptance testing. Developers and testers have different goals - developers want code to work while testers try to make code fail. Good development practices from a tester's view include doing own acceptance tests, fixing bugs, writing helpful error messages, and not artificially adding bugs. Good relationships between project managers, developers and testers help ensure quality.
DevLabs Alliance Top 20 Software Testing Interview Questions for SDET - by De...DevLabs Alliance
DevLabs Alliance Software Testing Interview Questions for SDET will help SDETs to prepare for their interviews. Learn top 20 questions with their answers for Software Testing which are majorly asked in interview for SDET role.
1. The document discusses various types and levels of software testing including manual and automated testing. It describes unit, integration, and system testing which are done at different stages of the software development life cycle.
2. Software testing is explained as a process to ensure software code performs as intended without unexpected behavior. It aims to find defects, gain confidence in quality, and prevent defects. Complete testing of even simple programs is impractical due to the large number of potential inputs and outputs.
3. Economics and human psychology must be considered in testing as it is not possible to test all permutations of a program. Strategies like black-box and white-box testing help address challenges of testing economics.
11 steps of testing process - By Harshil BarotHarshil Barot
The 11-step software testing process involves verifying requirements, design, code, and installation as well as validating that user needs are met. The key steps include:
1) Developing a test plan based on an assessment of the development status.
2) Testing requirements, design, code during construction, and software changes to find defects.
3) Executing tests, recording results, and reporting findings throughout the process.
4) Conducting acceptance testing with end users to validate software meets needs.
The goal is to deliver high-quality, bug-free software through a rigorous process of verification and validation activities.
Istqb intro with question answer for exam preparationKevalkumar Shah
The document provides an overview of software testing concepts including definitions of software testing, who can perform testing, common terminology, the software development life cycle (SDLC), testing methods and levels, and more. It defines software testing as the process of comparing expected and actual results to identify defects. It outlines the typical stages of the SDLC as initial, analysis, design, coding, testing, and delivery/maintenance phases. It also describes black box, white box, and grey box testing methods and the five levels of testing: unit, module, integration, system, and acceptance.
DURGASOFT is INDIA's No.1 Software Training Center offers online training on various technologies like JAVA, .NET, ANDROID,HADOOP,TESTING TOOLS , ADF, INFORMATICA,TALLEAU,IOS,OBIEE,ANJULAR JA, SAP...courses from Hyderabad & Bangalore - India with Real Time Experts.
This document provides an overview of software testing concepts, including:
- Definitions of software testing and related terms
- The software testing process, including test planning, preparation, execution, reporting, and analysis
- Types of testing such as unit, integration, system, and acceptance testing
- Tester competencies including both soft skills and technical testing skills
- Common testing documents and resources used
Software development has shifted focus from efficiency to productivity, reusability, and user-friendliness. Object-oriented programming (OOP) models objects that contain data and methods. Key OOP concepts include inheritance, where subclasses extend and modify superclass features. An integrated development environment (IDE) combines tools like editors, compilers, linkers, and debuggers. Java uses a hybrid approach of compiling to bytecode, then interpreting for platform independence. Console applications use text input/output. Graphical user interface (GUI) applications use menus and buttons. Applets run in web browsers.
Manual testing involves manually testing software by playing the role of an end user and using test cases to ensure correct behavior. It is important early in development when automation is not possible and for testing visual elements. A test plan is a document that outlines test objectives, workflows and processes while a test case specifies conditions to determine if a feature works as intended. Both exploratory and black/white box testing have pros and cons for finding bugs. Bugzilla is a bug tracking system that helps developers manage issues.
1. Acceptance testing is conducted by users/customers to determine if a software product meets agreed criteria.
2. Accessibility testing verifies a product is accessible to people with disabilities.
3. Automated testing uses software tools to execute tests without manual intervention and compare outcomes to predictions.
TOPS Technologies offer Professional Software Testing Training in Ahmedabad.
Ahmedabad Office (C G Road)
903 Samedh Complex,
Next to Associated Petrol Pump,
CG Road,
Ahmedabad 380009.
http://www.tops-int.com/live-project-training-software-testing.html
Most experienced IT Training Institute in Ahmedabad known for providing software testing course as per Industry Standards and Requirement.
Manual testing is the process of manually testing software for defects. It requires a tester to play the role of an end user whereby they use most of the application's features to ensure correct behavior.
The document discusses software testing concepts like the software development life cycle, testing objectives, principles, types, and techniques. It covers topics such as test planning, test case design, test execution, defect management, test reporting and test tools. The key aspects covered include the testing life cycle, test case components, black box testing techniques like equivalence partitioning and boundary value analysis, attributes of test logs and reports. It also includes sample questions to assess understanding of software testing fundamentals.
The document provides an overview of software testing techniques and strategies. It discusses unit testing, integration testing, validation testing, system testing, and debugging. The key points covered include:
- Unit testing involves testing individual software modules or components in isolation from the rest of the system. This includes testing module interfaces, data structures, boundary conditions, and error handling paths.
- Integration testing combines software components into clusters or builds to test their interactions before full system integration. Approaches include top-down and bottom-up integration.
- Validation testing verifies that the software meets the intended requirements and customer expectations defined in validation criteria.
- System testing evaluates the fully integrated software system, including recovery, security, stress,
Software engineering provides a standard process to design and develop software using the software development life cycle (SDLC). The SDLC includes requirements analysis, design, implementation, testing, deployment, and maintenance. Common SDLC models include waterfall, iterative, spiral, V-model, and prototyping. Software must be thoroughly tested at various levels including unit, integration, system, and acceptance testing to ensure quality.
This document discusses software testing principles and concepts. It defines key terms like validation, verification, defects, failures, and metrics. It outlines 11 testing principles like testing being a creative task and test results needing meticulous inspection. The roles of testers are discussed in collaborating with other teams. Defect classes are defined at different stages and types of defects are provided. Quality factors, process maturity models, and defect prevention strategies are also summarized.
This document outlines the content of a training course on software testing lifecycles. The targeted audience is new testers and those with experience in ad-hoc testing who want to learn formal processes. The course content includes defining software testing, the role of testers, testing in the SDLC, test planning, design, execution, the V-model, bug lifecycles, documentation, and checklists. It provides details on each topic through explanations, diagrams and examples of templates.
Software Testing accounts a very good percentage of the software development market worldwide. With the boom of the third party software testing business, the need for quality and trained manpower has become a critical issue in the industry. Get quality training from us. Visit us at TOPS Technologies http://www.tops-int.com
This document discusses software engineering and software testing. Software engineering is concerned with developing large software through applying engineering principles. The challenge is to produce high quality software within budget and schedule constraints. Software testing is the process of finding errors in software and involves both manual and automated testing. Different types of testing include unit, integration, system, and acceptance testing. The goal of testing is to uncover defects early and reduce costs.
The document provides information on various testing concepts:
1. It differentiates between QA and QC, describing QA as process-oriented and prevention-focused, while QC is product-oriented and detection-focused.
2. A bug is defined as an error in a computer program that prevents correct functioning or results.
3. A test case is a set of inputs, execution conditions, expected results, and postconditions developed to exercise a program path or verify a requirement.
4. The purpose of a test plan is to outline the testing strategy, scope, responsibilities, and schedule to guide testing for a project.
The document discusses different types of software review techniques, including informal reviews, formal technical reviews, and sample-driven reviews. It provides details on the goals, participants, and processes involved in formal technical reviews like walkthroughs and inspections. Metrics for evaluating the effectiveness of reviews are also presented, such as defects found per hour of preparation or inspection time. Overall, the document provides an overview of best practices and considerations for conducting effective software reviews.
Software testing tools (free and open source)Wael Mansour
This document discusses various tools used for test automation including Cobertura, Selenium, JMeter, Bugzilla, and Testia Tarantula. Cobertura is a code coverage tool that calculates test coverage percentages. Selenium is described as a tool for automating web application testing across browsers. JMeter is introduced as a load testing tool focused on analyzing performance of web applications. Bugzilla and Tarantula are mentioned as tools for bug tracking and project/test management respectively in agile software development. The document also discusses integrating these various tools together for a complete test automation framework.
Testing involves finding errors in a program. The goal is to assume a program contains errors and test to find as many as possible. Different testing techniques include white box testing by developers and black box testing by testers. Testing levels include unit, integration, system, and user acceptance testing. Developers and testers have different goals - developers want code to work while testers try to make code fail. Good development practices from a tester's view include doing own acceptance tests, fixing bugs, writing helpful error messages, and not artificially adding bugs. Good relationships between project managers, developers and testers help ensure quality.
DevLabs Alliance Top 20 Software Testing Interview Questions for SDET - by De...DevLabs Alliance
DevLabs Alliance Software Testing Interview Questions for SDET will help SDETs to prepare for their interviews. Learn top 20 questions with their answers for Software Testing which are majorly asked in interview for SDET role.
1. The document discusses various types and levels of software testing including manual and automated testing. It describes unit, integration, and system testing which are done at different stages of the software development life cycle.
2. Software testing is explained as a process to ensure software code performs as intended without unexpected behavior. It aims to find defects, gain confidence in quality, and prevent defects. Complete testing of even simple programs is impractical due to the large number of potential inputs and outputs.
3. Economics and human psychology must be considered in testing as it is not possible to test all permutations of a program. Strategies like black-box and white-box testing help address challenges of testing economics.
11 steps of testing process - By Harshil BarotHarshil Barot
The 11-step software testing process involves verifying requirements, design, code, and installation as well as validating that user needs are met. The key steps include:
1) Developing a test plan based on an assessment of the development status.
2) Testing requirements, design, code during construction, and software changes to find defects.
3) Executing tests, recording results, and reporting findings throughout the process.
4) Conducting acceptance testing with end users to validate software meets needs.
The goal is to deliver high-quality, bug-free software through a rigorous process of verification and validation activities.
Istqb intro with question answer for exam preparationKevalkumar Shah
The document provides an overview of software testing concepts including definitions of software testing, who can perform testing, common terminology, the software development life cycle (SDLC), testing methods and levels, and more. It defines software testing as the process of comparing expected and actual results to identify defects. It outlines the typical stages of the SDLC as initial, analysis, design, coding, testing, and delivery/maintenance phases. It also describes black box, white box, and grey box testing methods and the five levels of testing: unit, module, integration, system, and acceptance.
Testing software is essential to ensure it works properly and performs as intended. Various testing levels are described from unit testing of individual components to system testing of integrated modules. An overview of the software development lifecycle is provided from requirements gathering to maintenance, and key testing activities are outlined at each stage like test planning, case design, execution, and reporting. Standard documents involved in testing are also summarized such as test plans, cases, and bug reports to track issues.
Comprehensive Guide on Software Development Process.pdfSmith Daniel
This is a comprehensive guide to the software development process. You’ll learn how to choose a technology stack, the best development models, and more.
Software development involves planning, implementing, testing, and maintaining software. The main stages are gathering requirements, designing and coding the software, testing it, and deploying it to users. Once deployed, software often requires maintenance to fix bugs and add new features. Effective development requires clearly defining requirements, managing scope, and providing user training and support during and after deployment.
White box testing involves testing the internal logic and structure of a program's source code. It is conducted by developers on each line of code before the software is passed to testers. The main goals are to test paths through the code, loops, conditions, memory usage, and performance. Techniques include path testing, loop testing, condition testing, memory perspective testing, and performance testing. White box testing helps ensure code quality and catch defects early before the software is given to testers for black box testing.
Modern Software Testing Techniques: A Practical Guide for Developers and TestersLucky Gods
**Modern Software Testing Techniques: Level Up Your Bug-Stomping Game **
Tired of flaky apps and buggy software crashes? Ditch the frustration and master the art of modern software testing like a pro! This ain't your grandpa's testing manual - we're talking cutting-edge automation, AI-powered tools, and ninja-level debugging skills that'll leave your code sparkling clean ✨.
Get ready to:
Unleash the power of automation ✨ - say goodbye to repetitive manual testing and hello to efficient, reliable bots!
**Tap into the magic of AI ** - let artificial intelligence be your bug-hunting bestie, sniffing out issues before they even appear.
Master the art of exploratory testing ️♀️ - think like a hacker, break the system, and uncover hidden vulnerabilities.
**Get your API testing game on ** - ensure seamless communication between your software and the outside world.
**Write rock-solid test cases ** - build a fortress of tests that catch every bug in its tracks.
This ain't just for professional testers anymore! ♀️ Developers, product managers, even curious cats - anyone can learn these practical techniques and boost the quality of their software projects.
So buckle up, code warriors! Your software testing adventure starts now! ⚔️
DevOps is a shorthand term that combines “development” and “operations.” It
entails performing the various tasks of application development in a specific order.
DevOps is a broad term for a combination of software development and IT
operations. The DevOps approach adopts continuous innovation, agility, and
scalability to build, test, consume, and develop software products. It fosters an
environment of experimentation, feedback, and constant learning to reinvent
products, services, and processes.
It is the approach rehearsed by the development team and operational engineers
from the beginning to the final stage of the product. However, to implement
DevOps, a thorough understanding of the various stages of the DevOps lifecycle is
required
Why Software Testing is Crucial in Software Development_.pdfXDuce Corporation
Software testing is the process of verifying and then confirming that a software application or product
performs as expected or not. Testing has its own set of advantages like bug prevention, lower costs of
development, and comparatively better performance.
The software cannot be said to be bug-free from the start. Therefore, software developers might strive
to write code that will reduce the number and severity of flaws that are already there. However, the
majority of bugs are latent and only emerge when the conditions are right.
The document provides an overview of manual software testing concepts and processes. It discusses why testing is important, the different levels of testing (unit, integration, system acceptance), test planning including test cases and test data preparation, defect reporting, and test tracking and reporting. The software development lifecycle of requirements, design, coding, testing, release and maintenance is also summarized.
This document discusses software testing and quality. It defines software quality as conformance to functional and performance requirements as well as development standards. It also discusses why testing is needed to ensure software works correctly and avoids costly errors. The document outlines the stages of testing including test planning, running tests, comparing results, and correcting errors. It describes different types of testing like white box, black box, and GUI testing. It provides examples of test plans and reports and emphasizes the importance of documentation. Overall, the document provides an overview of software testing processes and techniques.
Embedded software static analysis_Polyspace-WhitePaper_finalTAMILMARAN C
This document discusses the challenges of testing embedded software and the limitations of traditional techniques like manual code reviews and dynamic testing. It introduces Polyspace Bug Finder and Polyspace Code Prover as static analysis tools that can overcome these limitations by automatically finding bugs, proving the absence of runtime errors, and providing stronger assurance of code reliability compared to non-exhaustive testing methods. The document argues that these static analysis tools allow businesses to reduce costs while accelerating delivery of reliable embedded systems.
The document discusses software maintenance and its relationship to software testing. It explains that software maintenance is less understood than development due to its different characteristics, including randomly occurring work requests and a focus on user services. It also discusses the importance of software maintenance for controlling system functions and modifications. The document then explains that software testing is important for software maintenance as regression testing verifies modifications do not cause unintended effects, but testing can be difficult to coordinate and schedule.
What is Regression Testing Definition, Tools, Examples.pdfRohitBhandari66
In the ever-evolving world of software development, change is inevitable. As software applications undergo updates, enhancements, and bug fixes, it’s crucial to ensure that these changes don’t introduce new issues or disrupt existing functionality.
Effective defect tracking begins with logging all defects systematically throughout the software development lifecycle. This includes attributes of each defect, types of defects, priority and severity levels, and statuses. Analyzing defects by parameters like status, priority, severity and source helps evaluate software quality. Defect reports show trends over time or as a function of parameters. Effective defect tracking reduces costs and enhances quality by identifying issues early.
ISTQB Chapter 1 Fundamentals of Testingssuser2d9936
Software testing is a process of validating and verifying software to ensure it meets requirements and works as expected. It takes place throughout the software development lifecycle. Testing helps prevent defects from being introduced into code and catch any issues. Software testing is necessary because even with careful development, mistakes can be made, so independent testing helps identify flaws. The objectives of testing include finding defects, gaining confidence in quality, preventing defects, and ensuring requirements are met.
Analysis and Design of Algorithms (ADA): An In-depth Exploration
Introduction:
The field of computer science is heavily reliant on algorithms to solve complex problems efficiently. The analysis and design of algorithms (ADA) is a fundamental area of study that focuses on understanding and creating efficient algorithms. This comprehensive overview will delve into the various aspects of ADA, including its importance, key concepts, techniques, and applications.
Importance of ADA:
Efficient algorithms play a critical role in various domains, including software development, data analysis, artificial intelligence, and optimization. ADA provides the tools and techniques necessary to design algorithms that are both correct and efficient. By analyzing the performance characteristics of algorithms, ADA enables computer scientists and engineers to develop solutions that save time, resources, and computational power.
Key Concepts in ADA:
Correctness: ADA emphasizes the importance of designing algorithms that produce correct outputs for all possible inputs. Techniques like mathematical proofs and induction are used to establish the correctness of algorithms.
Complexity Analysis: ADA seeks to analyze the efficiency of algorithms by examining their time and space complexity. Time complexity measures the amount of time required by an algorithm to execute, while space complexity measures the amount of memory consumed.
Asymptotic Notations: ADA employs asymptotic notations, such as Big O, Omega, and Theta, to express the growth rates of functions and classify the efficiency of algorithms. These notations allow for a concise comparison of algorithmic performance.
Algorithm Design Paradigms: ADA explores various design paradigms, including divide and conquer, dynamic programming, greedy algorithms, and backtracking. Each paradigm offers a systematic approach to solving problems efficiently.
Techniques in ADA:
Divide and Conquer: This technique involves breaking down a problem into smaller subproblems, solving them independently, and combining the solutions to obtain the final result. Well-known algorithms like Merge Sort and Quick Sort utilize the divide and conquer approach.
Dynamic Programming: Dynamic programming breaks down a complex problem into a series of overlapping subproblems and solves them in a bottom-up manner. This technique optimizes efficiency by storing and reusing intermediate results. The Fibonacci sequence calculation is a classic example of dynamic programming.
Greedy Algorithms: Greedy algorithms make locally optimal choices at each step, with the hope of achieving a global optimal solution. These algorithms are efficient but may not always yield the best overall solution. The Huffman coding algorithm for data compression is a widely used example of a greedy algorithm.
Backtracking: Backtracking involves searching for a solution to a problem by incrementally building a solution and undoing the choices that lead to dead-ends.
The document discusses the iterative software development process (SDP). It describes the main stages as analysis, design, implementation, testing, documentation, evaluation, and maintenance. At each stage, specific tasks are undertaken, such as creating requirements in analysis, designing algorithms and diagrams in design, coding in implementation, testing in testing, creating user guides in documentation, and fixing bugs in maintenance. People involved include clients, analysts, project managers, and programmers. Documents created include specifications, algorithms, test reports, guides, and evaluation/maintenance reports.
Fundamentals of Testing - Andika Dwi Ary CandraAnd11ka
1. The document introduces software testing fundamentals, defining key terms like defect, error, failure, and quality.
2. It explains that testing is necessary to find software defects that can cause problems, and that the cost of fixing defects rises significantly if found later in the development process.
3. The roles of testing are to identify defects during development and maintenance to reduce failures and improve quality in operations. Rigorous testing helps deliver software that meets specifications and customer needs.
Types of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating systemTypes of operating system
Similar to Software Localization (L10N) Quality Assurance from the Tester's Perspective (20)
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
WWDC 2024 Keynote Review: For CocoaCoders AustinPatrick Weigel
Overview of WWDC 2024 Keynote Address.
Covers: Apple Intelligence, iOS18, macOS Sequoia, iPadOS, watchOS, visionOS, and Apple TV+.
Understandable dialogue on Apple TV+
On-device app controlling AI.
Access to ChatGPT with a guest appearance by Chief Data Thief Sam Altman!
App Locking! iPhone Mirroring! And a Calculator!!
What to do when you have a perfect model for your software but you are constrained by an imperfect business model?
This talk explores the challenges of bringing modelling rigour to the business and strategy levels, and talking to your non-technical counterparts in the process.
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfVALiNTRY360
Salesforce Healthcare CRM, implemented by VALiNTRY360, revolutionizes patient management by enhancing patient engagement, streamlining administrative processes, and improving care coordination. Its advanced analytics, robust security, and seamless integration with telehealth services ensure that healthcare providers can deliver personalized, efficient, and secure patient care. By automating routine tasks and providing actionable insights, Salesforce Healthcare CRM enables healthcare providers to focus on delivering high-quality care, leading to better patient outcomes and higher satisfaction. VALiNTRY360's expertise ensures a tailored solution that meets the unique needs of any healthcare practice, from small clinics to large hospital systems.
For more info visit us https://valintry360.com/solutions/health-life-sciences
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
UI5con 2024 - Bring Your Own Design SystemPeter Muessig
How do you combine the OpenUI5/SAPUI5 programming model with a design system that makes its controls available as Web Components? Since OpenUI5/SAPUI5 1.120, the framework supports the integration of any Web Components. This makes it possible, for example, to natively embed own Web Components of your design system which are created with Stencil. The integration embeds the Web Components in a way that they can be used naturally in XMLViews, like with standard UI5 controls, and can be bound with data binding. Learn how you can also make use of the Web Components base class in OpenUI5/SAPUI5 to also integrate your Web Components and get inspired by the solution to generate a custom UI5 library providing the Web Components control wrappers for the native ones.
Unveiling the Advantages of Agile Software Development.pdfbrainerhub1
Learn about Agile Software Development's advantages. Simplify your workflow to spur quicker innovation. Jump right in! We have also discussed the advantages.
Preparing Non - Technical Founders for Engaging a Tech AgencyISH Technologies
Preparing non-technical founders before engaging a tech agency is crucial for the success of their projects. It starts with clearly defining their vision and goals, conducting thorough market research, and gaining a basic understanding of relevant technologies. Setting realistic expectations and preparing a detailed project brief are essential steps. Founders should select a tech agency with a proven track record and establish clear communication channels. Additionally, addressing legal and contractual considerations and planning for post-launch support are vital to ensure a smooth and successful collaboration. This preparation empowers non-technical founders to effectively communicate their needs and work seamlessly with their chosen tech agency.Visit our site to get more details about this. Contact us today www.ishtechnologies.com.au
8 Best Automated Android App Testing Tool and Framework in 2024.pdfkalichargn70th171
Regarding mobile operating systems, two major players dominate our thoughts: Android and iPhone. With Android leading the market, software development companies are focused on delivering apps compatible with this OS. Ensuring an app's functionality across various Android devices, OS versions, and hardware specifications is critical, making Android app testing essential.
Measures in SQL (SIGMOD 2024, Santiago, Chile)Julian Hyde
SQL has attained widespread adoption, but Business Intelligence tools still use their own higher level languages based upon a multidimensional paradigm. Composable calculations are what is missing from SQL, and we propose a new kind of column, called a measure, that attaches a calculation to a table. Like regular tables, tables with measures are composable and closed when used in queries.
SQL-with-measures has the power, conciseness and reusability of multidimensional languages but retains SQL semantics. Measure invocations can be expanded in place to simple, clear SQL.
To define the evaluation semantics for measures, we introduce context-sensitive expressions (a way to evaluate multidimensional expressions that is consistent with existing SQL semantics), a concept called evaluation context, and several operations for setting and modifying the evaluation context.
A talk at SIGMOD, June 9–15, 2024, Santiago, Chile
Authors: Julian Hyde (Google) and John Fremlin (Google)
https://doi.org/10.1145/3626246.3653374
Most important New features of Oracle 23c for DBAs and Developers. You can get more idea from my youtube channel video from https://youtu.be/XvL5WtaC20A
Oracle 23c New Features For DBAs and Developers.pptx
Software Localization (L10N) Quality Assurance from the Tester's Perspective
1. SOFTWARE LOCALIZATION (L10N) QUALITY ASSURANCE FROM THE
TESTER’S PERSPECTIVE
Carola F. Berger
CFB Scientific Translations
Abstract:
The presentation will give a very brief overview over the localization process for software and
mobile apps before covering the quality assurance process in detail. The talk will not only
discuss the fundamentals of the testing process, but will also help you become a better tester by
presenting some tips, tricks, best practices, and pitfalls. The presentation is intended for
beginning and intermediate localization testers and discusses the testing process from the tester's
perspective. The talk will not cover other steps in the localization process such as file preparation,
translation, etc., which have been covered at past ATA conferences.
2. Software L10n QA from the Tester’s Perspective – Carola F. Berger 2
1 Introduction
In the following, I will discuss the localization process for software applications, whereby
software applications, or apps, refer to computer programs that carry out operations or tasks for
a specific application. Traditionally, apps were executed on desktop computers, but lately more
and more apps run on mobile devices or over a network (in the “cloud”). In the following, I will
refer to all of these types of programs collectively as apps or alternatively simply as software.
According to a recent study, the worldwide software revenue totaled around 407 billion USD in
2013 (Gartner, 2014), whereby the mobile app market accounts for about 25 billion USD (Wall
Street Journal, 2014). While the software market enjoys a yearly increase of a few percent, the
mobile app market was expected to rise over 60% in 2013 compared to 2012, according to the
above sources. These growing markets also mean a greater need for internationalization and
localization of the software.
Below I will briefly outline the entire internationalization and localization process before
discussing one crucial step in more detail: the QA testing process. QA testing is an important
step, and many large software companies employ in-house linguistic testers or contract out the
task to full-time linguistic testers. I will explain the entire process and present tips and tricks at
the example of fictional software applications. After a brief summary, I include a glossary and
references. Glossary entries are denoted in bold on their first occurrence.
2 Overview over the Internationalization and Localization Process for
Software Apps
Figure 1 illustrates the localization process for software applications, from the linguistic and
software design preparations to the final product. The first step in the process is the preparatory
phase, which includes the so-called internationalization phase (abbreviated i18n), and the
preparation of style guides and glossaries. Internationalization is the process of preparing the
software such that it can be translated and adapted to a specific locale without design changes.
Here, the term locale denotes a set of parameters such as currency symbols, number formats, date
and time formats etc. for a specific country or region. Internationalization needs to take into
account not only these various formats but also the ability to accommodate languages with
different letter types (Roman versus Chinese characters, for example) and/or directionality such
as left-to-right versus right-to-left. This step is the task of software engineers, for further
technical details I refer to the list of references at the very end. The linguistic step of the
preparatory phase includes the development of style guides and glossaries to ensure consistency
in terminology and voice and the identification of potential challenges during the localization
step. For details on this step I refer to the excellent summaries in (Bodeux, Whitty 2013),
(Bodeux, McKay, Whitty 2014), and also (Esselink, 1998).
The next step is the translation and review of the software strings. The translation can be
prepared in various forms, from a simple Excel table to online translation tools that display the
string in its original context. Context can be very helpful for the translator, since software strings
are generally very short and sometimes consist of only one word, whereby it can sometimes be
hard to distinguish a verb from a noun without the necessary context. Here, adequate naming
conventions of the identifiers, that is, the names of the string variables, can help tremendously,
3. Software L10n QA from the Tester’s Perspective – Carola F. Berger 3
if these are supplied to the translator along with the strings to be translated. It should also
become clear now why the subsequent linguistic QA testing is so important, because during that
step the translation will be reviewed in the full software context.
Figure 1: Software localization process flow (adapted from (Bodeux, Whitty 2014))
In the next step, the software engineers read the translated and reviewed strings into the software
and produce a localized program version. They also test for functionality, that is, whether the
imported software strings broke the code due to leftover special characters as artifacts of the
translation process or due to leftover or missing code that was mistakenly added or left out of the
translation. Furthermore, a QA test plan, or script, for the next step is usually developed during
this step or earlier in the process. Occasionally, the QA testers develop the test script themselves
as part of the next step.
The fourth step is the linguistic and functional testing by a language expert. This functional
testing goes beyond the preliminary testing performed in the previous step and will be discussed
in detail in the next section. Here, the QA testers follow the QA test plan developed earlier. The
QA plan guides the linguistic QA testers through the entire app and ideally encompasses all
scenarios that could possibly be encountered by an end user located in the target country or
region. If errors, usually called bugs, are present, the testers file bug reports to inform the
software engineers about the problem and, if applicable, submit corrected strings. Then the
software engineers recompile the software, produce a new so-called build, and send the
(hopefully corrected) programs back to the testers. This cycle repeats until no more bugs are
found, and the final product is released. The testing is frequently done on site at the premises of
4. Software L10n QA from the Tester’s Perspective – Carola F. Berger 4
the software manufacturer, for confidentiality reasons or to test apps on new devices that are not
yet publicly available and have been set up specifically for this purpose.
Concurrently, manuals, help files, marketing material and other associated documents also need
to be translated and localized. Further information about this aspect can also be found in (Bodeux,
McKay, Whitty, 2014) and (Esselink, 1998). The entire localization process for specific types of
apps is also discussed in (Seeburg, 2012) and (Niedermair, Dietz, 2013).
In the following, we will look at the QA testing step and the interplay with the engineering stage
in more detail.
3 Software Quality Assurance
The software QA process can be summarized as follows: QA testers try their best to “break” the
localized software in order to locate bugs, which are then eliminated, such that the end users in
the target region speaking the target language can enjoy an error-free product.
3.1 The QA testing process
Figure 2: QA testing process flow
5. Software L10n QA from the Tester’s Perspective – Carola F. Berger 5
In brief, a typical QA testing process looks as follows, as illustrated in Figure 2 above:
1. Familiarize yourself with the product in the source language and read the test script, if the
engineers have provided one. If there is no test script, go very carefully through all the
screens, buttons, menu items, and error messages of the product in the source language
and write a test script in order to test every single screen, button, menu item, message,
and error scenario.
2. Set up the operating system for testing – this usually requires changing the locale, the
language, and other settings as appropriate for the target region. Occasionally, a second
device is available for comparison in the source language, but often the comparison is
done with the screenshots in the test script.
3. Go very carefully through every single screen and button, following the test script.
However, at every step, question whether there is a setting, input, or touch of a button not
mentioned in the test script that might cause an error.
Document all bugs that were found, the precise version of the software and the OS, and
the precise steps to reproduce the bugs without referring to the test script. This is
important, because test scripts and build versions change. Ideally, every step of the
process illustrated in Figure 1 is concluded before the next step is begun, but more often
than not the entire process is in flux, and software engineers are already adding
functionality to the product while the QA testing of the current build is not yet complete.
4. Send the bug reports to the engineers, following the precise requirements and instructions.
Many companies have their own proprietary bug reporting system and it is important to
use this system as instructed, whereby it helps to remember that the person who receives
the report likely does not speak/read the target language.
5. Wait for a new build of the software without the bugs reported in step 5. Go back to step
11
and repeat.
3.2 Problem types
There are several types of problems (see also (Globalme/Golota 2013) that software QA testers
look for. (Esselink, 1998) mentions that these problem types are identified in separate rounds of
testing. In my experience, however, testers generally look for all problem types in the same
round of testing at once, although the problems are clearly classified separately in the respective
bug reports.
• Linguistic problems
These include:
o Grammatical, spelling, and punctuation errors
o Translation errors due to context
The translator sometimes does not have the full context of a single word on a
button, and it is sometimes hard to guess whether the source word is a noun or a
verb.
o Linguistic consistency
Is the terminology consistent throughout the product and in accordance with the
glossary?
1
Occasionally, new functionality or new test steps are added as well, and the script changes.
6. Software L10n QA from the Tester’s Perspective – Carola F. Berger 6
o Missing translations
Is the source language or even the identifier displayed instead of the translation in
any part of the interface including buttons, pop-ups, tool-tips, and obscure error
messages?
o Cultural aspects
Does the translation respect local sensitivities and will the end users understand
all cultural references?
• Layout and formatting issues
o Truncations, text expansion in the entire interface including error messages, pop-
up windows, text boxes, etc.
o Wrong alignment – especially in left-to-right versus right-to-left languages
o Character corruption issues, wrongly displayed (non-ASCII or accented)
characters
o Line breaks
o Number, date/time, currency formats, addresses, zip-codes, phone numbers
Some of these problems with formats may also be functionality issues, as
discussed next.
o Symbols and icons
Do symbols and icons respect the cultural sensitivities of the target population?
• Functionality problems
o Link, button, menu functionality
Do all links, buttons, menu items function as intended in the localized
environment?
o Input/output validation
Do the input fields allow proper entries in the units/format as customary in the
target region? For example, in Austria postal codes only have four digits, whereas
in Germany they have five, in other parts of the world up to 10. Does the software
allow proper entry of these postal codes without error messages or give the
correct error message as appropriate for the country/region?
o Number, date/time, currency formats, addresses, postal codes, phone numbers,
paper sizes
Can the software handle these number formats properly? Are the calendars
adjusted appropriately? Is there interference between the OS settings and the
software settings?
o Problems with character display, sorting, or input
Are all (non-ASCII) characters of the target language properly handled upon input,
displayed, saved, and sorted? Some characters such as & or ~ label keyboard
shortcuts for quick access to menu items, others, such as n, t, denote line breaks
and tab stops. Can the software handle it, if these or other non-ASCII characters
are entered into an input field by the user?
o Keyboards and shortcuts
Can all keyboard shortcuts and control functions be accessed with international
keyboard layouts?
o Interaction with OS functions such as copy/paste and locale and language
settings in the OS
Does the software properly handle interactions with the OS, such as
7. Software L10n QA from the Tester’s Perspective – Carola F. Berger 7
copying/pasting to/from the clipboard? Do the settings for locale and language in
the OS interfere with the app?
• Installation/delivery problems
This type of problem is in fact a functionality problem, possibly the most fundamental of
all functionality problems, since the end result of a failed delivery is that the app cannot
be run on the target system due to an incompatibility. The details that are to be tested
depend on whether the software is a desktop app (delivered via installation discs or other
media), a mobile app (downloaded through an app store), or a web app (accessed via web
browser AKA the “cloud”). Sometimes, this functionality is tested separately from the
overall testing process; sometimes it is included as the very first step (after setting up the
OS) in the testing process.
3.3 A few concrete examples
Below, I will show some concrete examples to illustrate the problem types discussed in the
previous section.
Figure 3: A classic example of a layout problem English > German.
Figure 3 illustrates a classic example of a layout issue when the label “Settings” of a button is
translated from English into German. The German word “Einstellungen” clearly does not fit on
the button, but there is no shorter word with the same meaning. In general, Western languages
can take up to 30% more space than English (see for example (Bratu, 2014)). GUI designers
usually take this into account, but some problems can still arise. In this case, if at all possible, the
quickest resolution is sometimes an alternative, shorter translation that conveys the same
meaning. If this is not possible, as in the above example, a smaller font may be a possible
solution; otherwise, the interface may need to be redesigned.
Another example of a possible problem source is the use of different number formats in various
regions of the world, as shown in Figure 4. In about 60% of the world, including most English-
speaking countries, the decimal point is used as the decimal mark. These countries are colored in
blue in the figure. The green colored countries, about 24% of the world’s population, use a
comma as decimal delimiter. The red colored regions employ Eastern Arabic numerals, and for
the gray colored regions there is no data available. These different number formats can lead to
functionality problems, especially when the app has its own settings for number formats or
expects a certain number format, which interferes with the locale settings in the OS (usually
separate from the language settings). It is therefore important to thoroughly test the functionality
8. Software L10n QA from the Tester’s Perspective – Carola F. Berger 8
of apps that include operations on numbers entered by the user and to try all available
combinations of locale, OS, and app settings.
Figure 4: Worldwide map of decimal delimiter usage
(Image source: "DecimalSeparator" by NuclearVacuum -
http://commons.wikimedia.org/wiki/File:DecimalSeparator.svg#mediaviewer/
File:DecimalSeparator.svg)
Many apps have built-in functions to validate the data entered by the user. While this can be
tremendously helpful, it can also render an app completely useless. For example, ZIP codes have
5 digits in the US (plus optionally 4 digits in extended ZIP codes). Many programs have
therefore a check built in that requires exactly 5 (plus 4) numbers when entering a ZIP code,
otherwise an error message will be shown until the user corrects their entry. For an app that
specifically targets the US market, the ZIP code check is great. Suppose this app is then
subsequently translated into German, to be used in Germany, Austria, and the German-speaking
part of Switzerland. In Germany, the “Postleitzahl” (the German equivalent of the ZIP code) has
5 digits, so no problem there. In Austria and in Switzerland, however, postal codes have 4 digits,
so there would be a problem with the functionality of the app, since the user would not be able to
enter a perfectly valid postal code without receiving an error message. Figure 5 shows a global
map of the postal code formats currently in use all around the world. QA testers need to know
and test for these and other formats (phone numbers, paper sizes, etc.) that are in use in the target
region(s). If a certain language is used in various parts of the world, the testers need to be aware
of all these nuances. Sometimes, several testers are available to test for various regional variants,
but in some instances, one tester is expected to be able to handle several of these variants, which
requires a bit of preparation by the tester.
9. Software L10n QA from the Tester’s Perspective – Carola F. Berger 9
Figure 5: Postal code format by country (Image source: "Postal codes by country" by
Stadscykel - Own work. http://commons.wikimedia.org/wiki/
File:Postal_codes_by_country.svg#mediaviewer/File:Postal_codes_by_country.svg)
Finally, I want to illustrate a layout issue that borders on a functionality issue, which is not
trivial to spot. Figure 6 shows the display of a fictitious (and quite rudimentary) app for cycling,
displaying the current speed and the distance ridden since the start of the current ride, in English
and in German. The German equivalent of the speed display nicely illustrates how a potentially
problematic length increase has been dealt with, by decreasing the font size such that the word
“Geschwindigkeit” (German for “Speed”) is still readable and fits into the allotted space. The
10. Software L10n QA from the Tester’s Perspective – Carola F. Berger 10
decimal mark as discussed above is also correct, as are the units, kilometers per hour instead of
miles per hour for the German speaking market.
Figure 6: Display of a fictitious app for cycling in English (left) and in German (right) (Any
similarity to actual cycling apps is purely coincidental.)
It therefore seems that everything looks great. Not so fast! The digits allotted for the speed,
xx.y mph, allow for a maximal speed of 99.9 mph, which is usually plenty for a bicycle.2
However, the same is not true for the speed in kilometers per hour. Professional cyclists
routinely exceed 100 kph (about 62 mph) on downhills, and even I, as an amateur, have reached
top speeds of over 100 kph on descents. In this case, the display cannot accommodate the data,
which results in an error. The solution is to allot another digit for the speed display, which is
quite feasible here, since there is enough space on the screen for another digit.
These examples, and especially the last example, nicely illustrate that QA testers do not only
have to be linguistic experts, ideally they are also natives (or extremely familiar) with the target
culture and very familiar with the app or the type of app they are testing. Of course, that does not
mean that only golf pros should test golf apps, for example. However, clients usually expect
familiarity with the terminology and the functionality of the apps that are being tested, and this
means a certain amount of preparation for the testers.
I have now discussed the general QA testing process, the problem types that can arise, and a few
specific examples. These bugs, when found during the QA testing process, have to be properly
reported to the software engineers, such that they can be remedied.
3.4 Software problem reports
The project manager or localization engineer generally maintains a repository that tracks all
problems and bugs that arose, along with the date of occurrence and their resolution. This
2
The current world record on a bicycle exceeds 100 mph by far, and I have friends who have exceeded 100 mph
with their HPV (human powered vehicle = a special, very aerodynamic construction that could be classified as a
faired recumbent), but for the everyday cyclist who might be using this fictitious app, 99.9 mph should generally be
sufficient.
Geschwindigkeit
XX,Y km/h
Distanz
YYYY,Z km
Speed
XX.Y mph
Distance
YYYY.Z mi
11. Software L10n QA from the Tester’s Perspective – Carola F. Berger 11
repository serves as the interface between programmers and testers and is essentially a summary
of all problem or bug reports submitted by the QA testers.
In general, QA testers are asked to submit separate reports for every single problem that they
encounter, though this depends somewhat on the client. A typical bug report usually contains the
following information (see also (Esselink, 1998)):
• Number or ID of the problem to allow for easy identification and tracking
• Product, version, platform/OS, platform version, hardware/firmware version (if
applicable)
• Date of occurrence and (internal) build version
• Language and locale, usually identified by an alphanumerical code (see (Wikipedia, 2014)
and references therein). In case of several language variants, these details are important –
e.g., Swiss German differs from German German or Austrian German, just as American
English differs from British English.
• Precise location in the file plus file name or precise location and name of the application
where the problem occurred
• Precise description of the steps needed to reproduce the problem, avoiding extraneous
information, but containing enough information such that a software engineer, who does
not speak the target language and who does not have access to the test script, can
reproduce the problem
• Precise description of the problem, taking into account that the software engineers most
likely don’t speak or read the target language, possibly including screenshots
• Solution to the problem or linguistic correction, preferably in paste-and-copyable form
because the software engineers are most likely not able to enter special/non-ASCII
characters on their keyboard. An annotated screenshot alone is therefore not sufficient
and possibly confusing to the software engineers.
The precise format of the bug report and the submission procedure depends on the client’s
preferences. In general, it is always a good idea to keep in mind that the report needs to be
detailed enough such that a person who is familiar with the product but who cannot decipher the
specific target language can reproduce the problem. This is especially important if the source and
target languages use different character sets.
It also helps the programmers if precise computing terminology is used in the bug report, e.g. if a
checkbox is referred to as such instead of, say, a choice selector, or if the identifier of a variable
is referred to as such instead of being called a placeholder, for example. While QA testers do not
have to have a programming background, I have found that being at least able to use the correct
terminology is very helpful when communicating with the people who need to implement the
bug fixes. It also helps to know how to deal with remnant tags or other code fragments in the
translated text. In short, some rudimentary programming knowledge is certainly an asset for
software QA testers.
4 Summary
Above, I have given a brief overview over the internationalization and localization process for
software programs or apps. I have then discussed the localization QA testing phase in more detail,
12. Software L10n QA from the Tester’s Perspective – Carola F. Berger 12
outlining and explaining the individual steps. There are several classes of problems or bugs that
QA testers look for, and I have described these in detail along with a few concrete examples.
Finally, I have listed the information that should be contained in a complete bug report such that
the bug can be eliminated as quickly as possible. The following sections contain a brief glossary
with computing terminology as well as a list of references and further reading.
5 Glossary
App: A software application, or app, is a computer program that carries out operations for a
specific application. It cannot run by itself but requires an operating system to execute. An app
can run on desktop computers (traditional software applications), on mobile devices (mobile
apps), or over a network (in the “cloud”).
Bug: A software bug is an error or flaw in a computer program that causes it to malfunction or
produce an incorrect or unexpected result. The term “bug” was coined in 1946 by Admiral Grace
Hopper in a report about a malfunction of a computer that was caused by a moth trapped in a
relay.
Build: An unreleased version of a software program for testing, a “sub-version” if you will.
Usually, apps go through many test builds before they are publicly released.
G11N: Numeronym for globalization.
Globalization: The entire process of internationalization and localization.
GUI: A Graphical User Interface allows the user to interact with a program via graphical design
elements such as buttons and icons instead of a command line.
i18n: Numeronym for internationalization.
Identifier: see Variable.
Internationalization: In computing, internationalization refers to the process of designing and
preparing a software application such that it can be translated and localized without engineering
(i.e. programming) changes.
L10n: Numeronym for localization. Here, the uppercase L is used to avoid a possible confusion
between a lowercase l (L) and an uppercase I (i).
Localization: In computing, this is the process of adapting a product that has been previously
translated into different languages to a specific country, group, or region. It is the second step in
the process of translation and cultural adaptation of a product, the first step being
internationalization.
Locale: In computing, a locale is a set of parameters that defines the user’s language, country or
region, and other specifics. This includes number, currency, date formats, paper sizes, etc. For
example, an app in English still needs to be adapted to the various English-speaking locales with
different currencies (US-Dollars, British Pounds, etc.), different spelling, and so forth.
13. Software L10n QA from the Tester’s Perspective – Carola F. Berger 13
Operating system (OS): An operating system is the software that enables other programs (apps)
to run on a specific hardware and manages the interaction between apps, the hardware,
peripherals such as printers etc., and the user.
Script: Here, a test plan that outlines the precise steps to navigate through an app and test all of
its functionality.
Software string: A string is a sequence of characters. Software strings that are to be translated
are not hard-coded but occur in the form of variables.
Variable: A variable is a symbolic name, the so-called identifier, associated with a value. The
value can be changed. For example:
My_name = “Carola”
Here, “My_name” is the identifier of the variable, and “Carola” is its value.
6 References and Further Reading
Bratu, F. (2014). Guidelines for Designing Documents Intended for Translation. Retrieved from
http://desktoppub.about.com/od/layout/a/translation_2.htm
Bodeux, E. & Whitty, T. (2013). Two Sides of a Coin: Software Localization from Both the
Translator’s and Project Manager’s Perspectives. Presentation at ATA54, T-6.
Bodeux, E., McKay, C., & Whitty, T. (2014). Software localization: insights from the translator
and PM perspectives. Speaking of Translation audio recording, retrieved from
http://speakingoftranslation.com/listen/software-localization-insights-from-the-translator-
and-pm-perspectives-new/
Esselink, B. (1998). A Practical Guide to Software Localization. Amsterdam/Philadelphia, John
Benjamins Publishing Company.3
Gartner (2014). Press release: Gartner Says Worldwide Software Market Grew 4.8 Percent in
2013. Retrieved from http://www.gartner.com/newsroom/id/269631
Globalme/Golota H. (2013). The Localization Testing Checklist. Retrieved from
http://www.globalme.net/blog/the-localization-testing-checklist
Niedermair, Ch. & Dietz, F. (2013). More than a Coffee Break Amusement: Localizing Casual
and Social Media Games. Presentation at ATA54, T-5.
Seeburg, D. (2012). Localization For iPhone and Other iOS Devices. Presentation at ATA53,
T-7.
3
While the references to specific software in this book are somewhat outdated (publication date 1998), the overall
strategy and detailed procedural information are still quite valid.
14. Software L10n QA from the Tester’s Perspective – Carola F. Berger 14
Wall Street Journal (March 2013). Apps Rocket Toward $25 Billion in Sales. Retrieved from
http://online.wsj.com/news/articles/SB10001424127887323293704578334401534217878
Wikipedia (2014), Language codes. Retrieved from http://en.wikipedia.org/wiki/Language_code