Misplaced Pages

Windows Hardware Lab Kit

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

In software testing , test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or perform additional testing that would be difficult to do manually. Test automation is critical for continuous delivery and continuous testing .

#55944

63-409: The Windows Hardware Lab Kit ( Windows HLK ) is a test automation framework provided by Microsoft to certify devices for Windows. Earlier similarly released frameworks were called Windows Hardware Certification Kit (Windows HCK) and Windows Logo Kit (WLK). It provides automated scheduling and execution of the driver tests that hardware vendors are required to pass in order to qualify to use

126-470: A GUI and some level of a CLI, although the GUIs usually receive more attention. GUI wrappers find a way around the command-line interface versions (CLI) of (typically) Linux and Unix-like software applications and their text-based UIs or typed command labels. While command-line or text-based applications allow users to run a program non-interactively, GUI wrappers atop them avoid the steep learning curve of

189-615: A button or moving it to another part of the window may require the test to be re-recorded. Record and playback also often adds irrelevant activities or incorrectly records some activities. A variation on this type of tool is for testing of web sites. Here, the "interface" is the web page. However, such a framework utilizes entirely different techniques because it is rendering HTML and listening to DOM Events instead of operating system events. Headless browsers or solutions based on Selenium Web Driver are normally used for this purpose. Another variation of this type of test automation tool

252-410: A combination of technologies and devices to provide a platform that users can interact with, for the tasks of gathering and producing information. A series of elements conforming a visual language have evolved to represent information stored in computers. This makes it easier for people with few computer skills to work with and use computer software. The most common combination of such elements in GUIs

315-451: A cost-effective method for regression testing of software products that have a long maintenance life. Even minor patches over the lifetime of the application can cause existing features to break which were working at an earlier point in time. API testing is also being widely used by software testers as it enables them to verify requirements independent of their GUI implementation, commonly to test them earlier in development, and to make sure

378-505: A grid of items with rows of text extending sideways from the icon. Multi-row and multi-column layouts commonly found on the web are "shelf" and "waterfall". The former is found on image search engines , where images appear with a fixed height but variable length, and is typically implemented with the CSS property and parameter display: inline-block; . A waterfall layout found on Imgur and TweetDeck with fixed width but variable height per item

441-506: A program was busy. Additionally, it was the first GUI to introduce something resembling Virtual Desktops . Windows 95 , accompanied by an extensive marketing campaign, was a major success in the marketplace at launch and shortly became the most popular desktop operating system. In 2007, with the iPhone and later in 2010 with the introduction of the iPad , Apple popularized the post-WIMP style of interaction for multi-touch screens, and those devices were considered to be milestones in

504-474: A retail store, airline self-ticket and check-in, information kiosks in a public space, like a train station or a museum, and monitors or control screens in an embedded industrial application which employ a real-time operating system (RTOS). Cell phones and handheld game systems also employ application specific touchscreen GUIs. Newer automobiles use GUIs in their navigation systems and multimedia centers, or navigation multimedia center combinations. A GUI uses

567-414: A short sequence of words and symbols. Custom functions may be used to facilitate access to frequent actions. Command-line interfaces are more lightweight , as they only recall information necessary for a task; for example, no preview thumbnails or graphical rendering of web pages. This allows greater efficiency and productivity once many commands are learned. But reaching this level takes some time because

630-439: A single workspace for incorporating multiple testing tools and frameworks for System/Integration testing of application under test. The goal of Test Automation Interface is to simplify the process of mapping tests to business criteria without coding coming in the way of the process. Test automation interface are expected to improve the efficiency and flexibility of maintaining test scripts. Test Automation Interface consists of

693-431: A small amount of end-to-end tests. A test automation framework is an integrated system that sets the rules of automation of a specific product. This system integrates the function libraries, test data sources, object details and various reusable modules. These components act as small building blocks which need to be assembled to represent a business process. The framework provides the basis of test automation and simplifies

SECTION 10

#1733085484056

756-428: A system or moved about to different places during redesigns. Also, icons and dialog boxes are usually harder for users to script. WIMPs extensively use modes , as the meaning of all keys and clicks on specific positions on the screen are redefined all the time. Command-line interfaces use modes only in limited forms, such as for current directory and environment variables . Most modern operating systems provide both

819-657: A unified manner. This provides a common platform for the automation engineer. There are various types of frameworks. They are categorized on the basis of the automation component they leverage. These are: Graphical user interface A graphical user interface , or GUI ( / ˈ ɡ uː i / GOO -ee ), is a form of user interface that allows users to interact with electronic devices through graphical icons and visual indicators such as secondary notation . In many applications, GUIs are used instead of text-based UIs , which are based on typed command labels or text navigation. GUIs were introduced in reaction to

882-664: Is a related technology that promises to deliver the representation benefits of 3D environments without their usability drawbacks of orientation problems and hidden objects. In 2006, Hillcrest Labs introduced the first ZUI for television. Other innovations include the menus on the PlayStation 2 , the menus on the Xbox , Sun's Project Looking Glass , Metisse , which was similar to Project Looking Glass, BumpTop , where users can manipulate documents and windows with realistic movement and physics as if they were physical documents, Croquet OS , which

945-417: Is especially common with applications designed for Unix-like operating systems. The latter used to be implemented first because it allowed the developers to focus exclusively on their product's functionality without bothering about interface details such as designing icons and placing buttons. Designing programs this way also allows users to run the program in a shell script . Many environments and games use

1008-402: Is for testing mobile applications. This is very useful given the number of different sizes, resolutions, and operating systems used on mobile phones. For this variation, a framework is used in order to instantiate actions on the mobile device and to gather results of the actions. Another variation is script-less test automation that does not use record and playback, but instead builds a model of

1071-424: Is much less likely to introduce new defects when the refactored code is covered by unit tests. Continuous testing is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate. For Continuous Testing, the scope of testing extends from validating bottom-up requirements or user stories to assessing

1134-534: Is needed in order to configure them for multiple operating systems, browsers, and smart devices. Some software testing tasks (such as extensive low-level interface regression testing ) can be laborious and time-consuming to do manually. In addition, a manual approach might not always be effective in finding certain classes of defects. Test automation offers a possibility to perform these types of testing effectively. Once automated tests have been developed, they can be run quickly and repeatedly many times. This can be

1197-655: Is represented by rotating a cube with faces representing each user's workspace, and window management is represented via a Rolodex -style flipping mechanism in Windows Vista (see Windows Flip 3D ). In both cases, the operating system transforms windows on-the-fly while continuing to update the content of those windows. The GUI is usually WIMP-based, although occasionally other metaphors surface, such as those used in Microsoft Bob , 3dwm, File System Navigator, File System Visualizer , 3D Mailbox, and GopherVR . Zooming (ZUI)

1260-440: Is the windows, icons, text fields, canvases, menus, pointer ( WIMP ) paradigm, especially in personal computers . The WIMP style of interaction uses a virtual input device to represent the position of a pointing device's interface , most often a mouse , and presents information organized in windows and represented with icons . Available commands are compiled together in menus, and actions are performed making gestures with

1323-409: Is the test automation pyramid. This strategy suggests to write three types of tests with different granularity. The higher the level, less is the amount of tests to write. One conception of the testing pyramid contains unit, integration, and end-to-end unit tests. According to Google 's testing blog, unit tests should make up the majority of your testing strategy, with fewer integration tests and only

SECTION 20

#1733085484056

1386-412: Is the use of unit testing frameworks such as the xUnit frameworks (for example, JUnit and NUnit ) that allow the execution of unit tests to determine whether various sections of the code are acting as expected under various circumstances. Test cases describe tests that need to be run on the program to verify that the program runs as expected. Test automation interfaces are platforms that provide

1449-551: Is usually implemented by specifying column-width: . Smaller app mobile devices such as personal digital assistants (PDAs) and smartphones typically use the WIMP elements with different unifying metaphors, due to constraints in space and available input devices. Applications for which WIMP is not well suited may use newer interaction techniques , collectively termed post-WIMP UIs. As of 2011, some touchscreen-based operating systems such as Apple's iOS ( iPhone ) and Android use

1512-674: The Microsoft Designed for Windows Logo . It also enables users to automate driver tests they have created themselves. These tests can be mixed and matched with the Logo tests provided by Microsoft to create a custom test pass, which enables organizations to use the DTM to validate drivers in any way they see fit. During the Windows 2000 , XP , 2003 timeframe there was an old tool Hardware Compatibility Test ( HCT ) to certify devices. When Windows Vista

1575-681: The Xerox Star . These early systems spurred many other GUI efforts, including Lisp machines by Symbolics and other manufacturers, the Apple Lisa (which presented the concept of menu bar and window controls ) in 1983, the Apple Macintosh 128K in 1984, and the Atari ST with Digital Research 's GEM , and Commodore Amiga in 1985. Visi On was released in 1983 for the IBM PC compatible computers, but

1638-498: The cursor (or rather pointer ) control: mouse , pointing stick , touchpad , trackball , joystick , virtual keyboards , and head-up displays (translucent information devices at the eye level). There are also actions performed by programs that affect the GUI. For example, there are components like inotify or D-Bus to facilitate communication between computer programs. Ivan Sutherland developed Sketchpad in 1963, widely held as

1701-418: The test engineer or software quality assurance person must have software coding ability since the test cases are written in the form of source code which when run produce output according to the assertions that are a part of it. Some test automation tools allow for test authoring to be done by keywords instead of coding, which do not require programming. A strategy to decide the amount of tests to automate

1764-616: The 1970s, Engelbart's ideas were further refined and extended to graphics by researchers at Xerox PARC and specifically Alan Kay , who went beyond text-based hyperlinks and used a GUI as the main interface for the Smalltalk programming language , which ran on the Xerox Alto computer , released in 1973. Most modern general-purpose GUIs are derived from this system. The Xerox PARC GUI consisted of graphical elements such as windows , menus , radio buttons , and check boxes . The concept of icons

1827-506: The GUIs advantages, many reviewers questioned the value of the entire concept, citing hardware limits, and problems in finding compatible software. In 1984, Apple released a television commercial which introduced the Apple Macintosh during the telecast of Super Bowl XVIII by CBS , with allusions to George Orwell 's noted novel Nineteen Eighty-Four . The goal of the commercial was to make people think about computers, identifying

1890-416: The application and then enables the tester to create test cases by simply inserting test parameters and conditions, which requires no scripting skills. Test automation, mostly using unit testing, is a key feature of extreme programming and agile software development , where it is known as test-driven development (TDD) or test-first development. Unit tests can be written to define the functionality before

1953-413: The application. Choosing the right framework/scripting technique helps in maintaining lower costs. The costs associated with test scripting are due to development and maintenance efforts. The approach of scripting used during test automation has effect on costs. Various framework/scripting techniques are generally used: The Testing framework is responsible for: A growing trend in software development

Windows Hardware Lab Kit - Misplaced Pages Continue

2016-406: The automation effort. The main advantage of a framework of assumptions, concepts and tools that provide support for automated software testing is the low cost for maintenance . If there is change to any test case then only the test case file needs to be updated and the driver Script and startup script will remain the same. Ideally, there is no need to update the scripts in case of changes to

2079-401: The class of GUIs named post-WIMP. These support styles of interaction using more than one finger in contact with a display, which allows actions such as pinching and rotating, which are unsupported by one pointer and mouse. Human interface devices , for the efficient interaction with a GUI include a computer keyboard , especially used together with keyboard shortcuts , pointing devices for

2142-406: The code coverage is better, and because it is run constantly during development rather than once at the end of a waterfall development cycle. The developer discovers defects immediately upon making a change, when it is least expensive to fix. Finally, code refactoring is safer when unit testing is used; transforming the code into a simpler form with less code duplication , but equivalent behavior,

2205-423: The code is written. However, these unit tests evolve and are extended as coding progresses, issues are discovered and the code is subjected to refactoring. Only when all the tests for all the demanded features pass is the code considered complete. Proponents argue that it produces software that is both more reliable and less costly than code that is tested by manual exploration. It is considered more reliable because

2268-457: The command words may not be easily discoverable or mnemonic . Also, using the command line can become slow and error-prone when users must enter long commands comprising many parameters or several different filenames at once. However, windows, icons, menus, pointer ( WIMP ) interfaces present users with many widgets that represent and can trigger some of the system's available commands. GUIs can be made quite hard when dialogs are buried deep in

2331-413: The command-line, which requires commands to be typed on the keyboard . By starting a GUI wrapper, users can intuitively interact with, start, stop, and change its working parameters, through graphical icons and visual indicators of a desktop environment , for example. Applications may also provide both interfaces, and when they do the GUI is usually a WIMP wrapper around the command-line version. This

2394-571: The designer's work to change the interface as user needs evolve. Good GUI design relates to users more, and to system architecture less. Large widgets, such as windows , usually provide a frame or container for the main presentation content such as a web page, email message, or drawing. Smaller ones usually act as a user-input tool. A GUI may be designed for the requirements of a vertical market as application-specific GUIs. Examples include automated teller machines (ATM), point of sale (POS) touchscreens at restaurants, self-service checkouts used in

2457-485: The development of mobile devices . The GUIs familiar to most people as of the mid-late 2010s are Microsoft Windows , macOS , and the X Window System interfaces for desktop and laptop computers, and Android , Apple's iOS , Symbian , BlackBerry OS , Windows Phone / Windows 10 Mobile , Tizen , WebOS , and Firefox OS for handheld ( smartphone ) devices. Since the commands available in command line interfaces can be many, complex operations can be performed using

2520-435: The display represents a desktop, on which documents and folders of documents can be placed. Window managers and other software combine to simulate the desktop environment with varying degrees of realism. Entries may appear in a list to make space for text and details, or in a grid for compactness and larger icons with little space underneath for text. Variations in between exist, such as a list with multiple columns of items and

2583-593: The first graphical computer-aided design program. It used a light pen to create and manipulate objects in engineering drawings in realtime with coordinated graphics. In the late 1960s, researchers at the Stanford Research Institute , led by Douglas Engelbart , developed the On-Line System (NLS), which used text-based hyperlinks manipulated with a then-new device: the mouse . (A 1968 demonstration of NLS became known as " The Mother of All Demos ".) In

Windows Hardware Lab Kit - Misplaced Pages Continue

2646-422: The following core modules: Interface engines are built on top of Interface Environment. Interface engine consists of a parser and a test runner. The parser is present to parse the object files coming from the object repository into the test specific scripting language. The test runner executes the test scripts using a test harness . Object repositories are a collection of UI/Application object data recorded by

2709-462: The general approaches used widely: One way to generate test cases automatically is model-based testing through use of a model of the system for test case generation, but research continues into a variety of alternative methodologies for doing so. In some cases, the model-based approach enables non-technical users to create automated business test cases in plain English so that no programming of any kind

2772-485: The interface found in current versions of Microsoft Windows, and in various desktop environments for Unix-like operating systems , such as macOS and Linux . Thus most current GUIs have largely common idioms. GUIs were a hot topic in the early 1980s. The Apple Lisa was released in 1983, and various windowing systems existed for DOS operating systems (including PC GEM and PC/GEOS ). Individual applications for many platforms presented their own GUI variants. Despite

2835-413: The kind of data they hold. The widgets of a well-designed interface are selected to support the actions necessary to achieve the goals of users. A model–view–controller allows flexible structures in which the interface is independent of and indirectly linked to application functions, so the GUI can be customized easily. This allows users to select or design a different skin or theme at will, and eases

2898-458: The long term, especially when used repeatedly in regression testing . A good candidate for test automation is a test case for common flow of an application, as it is required to be executed (regression testing) every time an enhancement is made in the application. Test automation reduces the effort associated with manual testing. Manual effort is needed to develop and maintain automated checks, as well as reviewing test results. In automated testing,

2961-435: The methods of 3D graphics to project 3D GUI objects onto the screen. The use of 3D graphics has become increasingly common in mainstream operating systems (ex. Windows Aero , and Aqua (MacOS)) to create attractive interfaces, termed eye candy (which includes, for example, the use of drop shadows underneath windows and the cursor ), or for functional purposes only possible using three dimensions. For example, user switching

3024-680: The perceived steep learning curve of command-line interfaces (CLIs), which require commands to be typed on a computer keyboard . The actions in a GUI are usually performed through direct manipulation of the graphical elements. Beyond computers, GUIs are used in many handheld mobile devices such as MP3 players, portable media players, gaming devices, smartphones and smaller household, office and industrial controls . The term GUI tends not to be applied to other lower- display resolution types of interfaces , such as video games (where head-up displays ( HUDs ) are preferred), or not including flat screens like volumetric displays because

3087-403: The pointing device. A window manager facilitates the interactions between windows, applications , and the windowing system . The windowing system handles hardware devices such as pointing devices, graphics hardware, and positioning of the pointer. In personal computers , all these elements are modeled through a desktop metaphor to produce a simulation called a desktop environment in which

3150-529: The primary interface to application logic . Many test automation tools provide record and playback features that allow users to interactively record user actions and replay them back any number of times, comparing actual results to those expected. The advantage of this approach is that it requires little or no software development . This approach can be applied to any application that has a graphical user interface . However, reliance on these features poses major reliability and maintainability problems. Relabelling

3213-864: The so-called "Pesticide Paradox" , where repeatedly executed scripts stop detecting errors that go beyond their frameworks. In such cases, manual testing may be a better investment. This ambiguity once again leads to the conclusion that the decision on test automation should be made individually, keeping in mind project requirements and peculiarities. Testing tools can help automate tasks such as product installation, test data creation, GUI interaction, problem detection (consider parsing or polling agents equipped with test oracles ), defect logging, etc., without necessarily automating tests in an end-to-end fashion. One must keep satisfying popular requirements when thinking of test automation: Test automation tools can be expensive and are usually employed in combination with manual testing. Test automation can be made cost-effective in

SECTION 50

#1733085484056

3276-509: The system never reached commercial production. The first commercially available computer with a GUI was the 1979 PERQ workstation , manufactured by Three Rivers Computer Corporation. Its design was heavily influenced by the work at Xerox PARC. In 1981, Xerox eventually commercialized the ideas from the Alto in the form of a new and enhanced system – the Xerox 8010 Information System – more commonly known as

3339-404: The system requirements associated with overarching business goals. What to automate, when to automate, or even whether one really needs automation are crucial decisions which the testing (or development) team must make. A multi-vocal literature review of 52 practitioner and 26 academic sources found that five main factors to consider in test automation decision are: 1) System Under Test (SUT), 2)

3402-492: The term is restricted to the scope of 2D display screens able to describe generic information, in the tradition of the computer science research at the Xerox Palo Alto Research Center . Designing the visual composition and temporal behavior of a GUI is an important part of software application programming in the area of human–computer interaction . Its goal is to enhance the efficiency and ease of use for

3465-400: The test itself adheres to clean code principles, especially the single responsibility principle . It involves directly testing APIs as part of integration testing , to determine if they meet expectations for functionality, reliability, performance, and security. Since APIs lack a GUI , API testing is performed at the message layer . API testing is considered critical when an API serves as

3528-414: The testing tool while exploring the application under test. Tools are specifically designed to target some particular test environment, such as Windows and web automation tools, etc. Tools serve as a driving agent for an automation process. However, an automation framework is not a tool to perform a specific task, but rather infrastructure that provides the solution where different tools can do their job in

3591-399: The types and numbers of tests, 3) test-tool, 4) human and organizational topics, and 5) cross-cutting factors. The most frequent individual factors identified in the study were: need for regression testing, economic factors, and maturity of SUT. While the reusability of automated tests is valued by software development companies, this property can also be viewed as a disadvantage. It leads to

3654-456: The underlying logical design of a stored program , a design discipline named usability . Methods of user-centered design are used to ensure that the visual language introduced in the design is well-tailored to the tasks. The visible graphical interface features of an application are sometimes referred to as chrome or GUI . Typically, users interact with information by manipulating visual widgets that allow for interactions appropriate to

3717-466: The user-friendly interface as a personal computer which departed from prior business-oriented systems, and becoming a signature representation of Apple products. In 1985, Commodore released the Amiga 1000 , along with Workbench and Kickstart 1.0 (which contained Intuition ). This interface ran as a separate task, meaning it was very responsive and, unlike other GUIs of the time, it didn't freeze up when

3780-399: Was later introduced by David Canfield Smith , who had written a thesis on the subject under the guidance of Kay. The PARC GUI employs a pointing device along with a keyboard. These aspects can be emphasized by using the alternative term and acronym for windows, icons, menus, pointing device ( WIMP ). This effort culminated in the 1973 Xerox Alto , the first computer with a GUI, though

3843-574: Was never popular due to its high hardware demands. Nevertheless, it was a crucial influence on the contemporary development of Microsoft Windows . Apple, Digital Research, IBM and Microsoft used many of Xerox's ideas to develop products, and IBM's Common User Access specifications formed the basis of the GUIs used in Microsoft Windows, IBM OS/2 Presentation Manager , and the Unix Motif toolkit and window manager . These ideas evolved to create

SECTION 60

#1733085484056

3906-411: Was once again changed into Windows Hardware Lab Kit (Windows HLK) for Windows 10 release, intended for testing of hardware and drivers on Windows 10 platform. The Windows Hardware Certification Kit continues testing hardware on Windows 7, Windows 8 and Windows 8.1 (and their server products respectively) platforms. Test automation There are many approaches to test automation, however below are

3969-430: Was released the tool was replaced by Driver Test Manager ( DTM ) which can certify drivers for all then-supported platforms. At that time DTM was part of Windows Driver Kit ( WDK ). Later DTM was separated from WDK and changed its name to Windows Logo Kit ( WLK ). For Windows 8, the name was changed to Windows Hardware Certification Kit ( Windows HCK ), as announced at the //Build/ conference. Subsequently, its name

#55944